关于扩展的问题

大家好,最近在使用cuba进行实验。对cuba自带的User进行了扩展,增加了几个字段,在原有的基础上增加了telephone,address,company的字段。其中telephone,address都是简单字段都是string类型的。company是个实体类。按照用户手册的说明扩展了界面,在userbrowse方面没有问题。在useredit遇到了问题,我想将company做成lookupfield,扩展进原有的useredit中,按照下面这种写法,在edit界面上面是不显示company下拉框的。
image
请问,此类问题应该怎么实现?

通过改写edit xml文件,目前可以comapny的下拉框展示出来,新的问题是,下拉框内的数据没有填充进去。

cuba自带的user-edit.xml没有使用cuba7新引入的dataContainer这些;还是沿用的旧版的datasource。
试试这样:

  1. 扩展实体:
    @ManyToOne
    @JoinColumn(name = "COMPANY")
    protected Company company;
  1. 扩展user-edit.xml
<window xmlns="http://schemas.haulmont.com/cuba/window.xsd"
        xmlns:ext="http://schemas.haulmont.com/cuba/window-ext.xsd"
        extends="/com/haulmont/cuba/gui/app/security/user/edit/user-edit.xml">

    <dsContext>

       <!-- 覆盖view,因为要额外加载Company实体-->
        <datasource id="userDs" class="com.test.entity.ExtUser" view="extUser-view_1">
        </datasource>

         <!--配置所有companyList的数据源,下拉展示-->
        <groupDatasource id="companyDs" class="com.test.entity.Company" view="_local">
            <query>
                <![CDATA[select e  from test$Company e]]>
            </query>
        </groupDatasource>
    </dsContext>


   <!--修改布局-->
    <layout>

        <groupBox id="propertiesBox">
            <grid id="propertiesGrid">
                <columns>
                    <column id="fieldGroupRight1Column" flex="1" ext:index="0"/>
                </columns>
                <rows>
                    <row id="propertiesRow">
                        <fieldGroup id="fieldGroupRight1" datasource="userDs">
                            <column>
                                <field property="company" ext:index="0" optionsDatasource="companyDs"/>
                            </column>
                        </fieldGroup>
                    </row>
                </rows>
            </grid>
        </groupBox>

    </layout>
</window>
  1. 上一步中新的user的view定义:
    <view class="com.test.entity.ExtUser"
          extends="user.edit"
          name="extUser-view_1"
          systemProperties="true">
        <property name="company"
                  view="_minimal"/>
    </view>
  1. 效果
    image
2 个赞

完美解决问题,感谢技术团队的支持