^1640740807852
@
sname
ExtendAttributeEditor
slabel
ExtendAttributeEditor
sdescriptors
xworker.swt.widgets.Display
  @/@shell
  sname
  shell
  stext
  数据对象属性映射
  sstyle
  APPLICATION_MODAL
  sNO_TRIM
  false
  sCLOSE
  true
  sTITLE
  true
  sMIN
  true
  sMAX
  true
  sBORDER
  false
  sRESIZE
  true
  sON_TOP
  false
  sTOOL
  false
  sNO_FOCUS
  false
  swidth
  400
  sheight
  400
  scenterScreen
  true
  spack
  false
  smaximized
  false
  sfullScreen
  false
  sH_SCROLL
  false
  sV_SCROLL
  false
  sNO_BACKGROUND
  false
  sNO_MERGE_PAINTS
  false
  sNO_REDRAW_RESIZE
  false
  sNO_RADIO_GROUP
  false
  sEMBEDDED
  false
  sDOUBLE_BUFFERED
  false
  scapture
  false
  senabled
  true
  sredraw
  true
  svisible
  true
  sdescriptors
  xworker.swt.widgets.Display/@Shell
  sid
  shell
    @/@shell/@shellGridLayout
    sname
    shellGridLayout
    smakeColumnsEqualWidth
    false
    smarginWidth
    5
    smarginHeight
    5
    smarginLeft
    0
    smarginTop
    0
    smarginRight
    0
    smarginBottom
    0
    shorizontalSpacing
    5
    sverticalSpacing
    5
    slabel
    shellGridLayout
    sdescriptors
    xworker.swt.Layouts/@GridLayout
    sid
    shellGridLayout
    @/@shell/@dataTable
    sname
    dataTable
    sselectStyle
    SINGLE
    sV_SCROLL
    true
    sH_SCROLL
    true
    sCHECK
    true
    sFULL_SELECTION
    true
    sHIDE_SELECTION
    false
    sBORDER
    true
    slineVisible
    true
    smultipleColumns
    true
    sheaderVisible
    true
    ssortIndicator
    true
    smoveableColumns
    true
    sheadImages
    false
    ssubImages
    false
    sVIRTUAL
    false
    scapture
    false
    senabled
    true
    sredraw
    true
    svisible
    true
    slabel
    dataTable
    sdescriptors
    xworker.swt.Widgets/@Table
    sid
    dataTable
      @/@shell/@dataTable/@dataTableGridData
      sname
      dataTableGridData
      sstyle
      FILL_BOTH
      shorizontalIndent
      0
      swidth
      -1
      sheight
      -1
      shorizontalAlignment
      BEGINNING
      sverticalAlignment
      CENTER
      shorizontalSpan
      1
      sverticalSpan
      1
      sgrabExcessHorizontalSpace
      false
      sgrabExcessVerticalSpace
      false
      slabel
      dataTableGridData
      sdescriptors
      xworker.swt.layout.LayoutDatas/@GridData
      sid
      dataTableGridData
      @/@shell/@dataTable/@dataStore
      sname
      dataStore
      sattachToParent
      true
      sloadBackground
      true
      sautoLoad
      false
      sautoSave
      false
      spaging
      extend
      spageSize
      50
      sstoreSortField
      _extend
      sstoreSortDir
      ASC
      seditable
      extend
      seditmethod
      extend
      slabel
      dataStore
      sdescriptors
      xworker.swt.widgets.Table/@DataStore
      sid
      dataStore
        @/@shell/@dataTable/@dataStore/@dataObjects
        sname
        dataObjects
        slabel
        dataObjects
        sdescriptors
        xworker.swt.app.view.swt.data.DataStore/@DataObjects
        sid
        dataObjects
          @/@shell/@dataTable/@dataStore/@dataObjects/@ListDataObject
          sname
          ListDataObject
          slistData
          attributes
          seditCols
          2
          spaging
          false
          sreadUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectStore/@read
          screateUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectStore/@create
          supdateUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectStore/@update
          sdestroyUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectStore/@destroy
          LstoreAutoDestroy
          false
          sstoreAutoLoad
          false
          LstoreAutoSave
          true
          LstoreBatch
          true
          LstorePruneModifiedRecords
          false
          LstoreRemoteSort
          false
          LstoreRestful
          false
          sstoreRoot
          'rows'
          sstoreSuccessProperty
          'success'
          sstoreTotalProperty
          'totalCount'
          sstoreMessageProperty
          'msg'
          sgridEditable
          false
          sformReadUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectForm/@read
          sformCreateUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectForm/@create
          sformUpdateUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectForm/@update
          sformDestroyUrl
          do?sc=xworker.web.app.view.extjs.server.DataObjectForm/@delete
          spaging_afterPageText
          页 共
          spaging_beforePageText
          第
          Lpaging_displayInfo
          false
          spaging_displayMsg
          第{0}-第{1}条，共{2}条
          spaging_emptyMsg
          没有数据
          spaging_firstText
          首页
          spaging_lastText
          最后一页
          spaging_nextText
          下一页
          Lpaging_prependButtons
          false
          spaging_prevText
          上一页
          spaging_refreshText
          刷新
          sgridColumnLocking
          false
          sgridLockText
          '锁定'
          sgridUnlockText
          '解锁'
          scolumnGroup
          false
          sgridCheckable
          false
          sgridRowNumber
          false
          sgridGrouping
          false
          sgridGroupTextTpl
          '{text} ({[values.rs.length]} 条)'
          sgridRowExpander
          false
          sautoGenerateId
          false
          sidGenerateType
          action
          sidAction
          generateId
          sstoreSortDir
          ASC
          sautoInit
          false
          sautoInitAction
          autoInit
          sdescriptors
          xworker.dataObject.DataObjects/@ListDataObject
          sid
          ListDataObject
            @/@shell/@dataTable/@dataStore/@dataObjects/@ListDataObject/@name
            sname
            name
            slabel
            名称
            spropertyPath
            name
            stype
            string
            soptional
            true
            skey
            false
            sdataField
            true
            sviewField
            true
            sreadField
            true
            screateEditor
            true
            seditEditor
            true
            sviewEditor
            true
            sgridEditor
            true
            squeryEditor
            true
            sreadOnly
            false
            seditable
            true
            sshowLabel
            true
            slabelAlign
            right
            slabelVAlign
            baseline
            svalidateAllowBlank
            true
            LvalidateOnBlur
            true
            LallowDecimals
            true
            LallowNegative
            true
            sshowInTable
            true
            sgridWidth
            140
            sgridFixed
            false
            sgridHidden
            false
            sgridHideable
            true
            sgridSortable
            false
            scolumnLocked
            false
            sgridGroupable
            true
            sgridMenuDisabled
            false
            sgridResizable
            true
            sdescriptors
            xworker.dataObject.java.ListDataObject/@attribute
            sid
            name
            @/@shell/@dataTable/@dataStore/@dataObjects/@ListDataObject/@label
            sname
            label
            slabel
            标签
            spropertyPath
            label
            stype
            string
            soptional
            true
            skey
            false
            sdataField
            true
            sviewField
            true
            sreadField
            true
            screateEditor
            true
            seditEditor
            true
            sviewEditor
            true
            sgridEditor
            true
            squeryEditor
            true
            sreadOnly
            false
            seditable
            true
            sshowLabel
            true
            slabelAlign
            right
            slabelVAlign
            baseline
            svalidateAllowBlank
            true
            LvalidateOnBlur
            true
            LallowDecimals
            true
            LallowNegative
            true
            sshowInTable
            true
            sgridWidth
            140
            sgridFixed
            false
            sgridHidden
            false
            sgridHideable
            true
            sgridSortable
            false
            scolumnLocked
            false
            sgridGroupable
            true
            sgridMenuDisabled
            false
            sgridResizable
            true
            sdescriptors
            xworker.dataObject.java.ListDataObject/@attribute
            sid
            label
            @/@shell/@dataTable/@dataStore/@dataObjects/@ListDataObject/@type
            sname
            type
            slabel
            类型
            spropertyPath
            type
            stype
            string
            soptional
            true
            skey
            false
            sdataField
            true
            sviewField
            true
            sreadField
            true
            screateEditor
            true
            seditEditor
            true
            sviewEditor
            true
            sgridEditor
            true
            squeryEditor
            true
            sreadOnly
            false
            seditable
            true
            sshowLabel
            true
            slabelAlign
            right
            slabelVAlign
            baseline
            svalidateAllowBlank
            true
            LvalidateOnBlur
            true
            LallowDecimals
            true
            LallowNegative
            true
            sshowInTable
            true
            sgridWidth
            70
            sgridFixed
            false
            sgridHidden
            false
            sgridHideable
            true
            sgridSortable
            false
            scolumnLocked
            false
            sgridGroupable
            true
            sgridMenuDisabled
            false
            sgridResizable
            true
            sdescriptors
            xworker.dataObject.java.ListDataObject/@attribute
            sid
            type
            @/@shell/@dataTable/@dataStore/@dataObjects/@ListDataObject/@path
            sname
            path
            spropertyPath
            path
            stype
            string
            soptional
            true
            skey
            false
            sdataField
            true
            sviewField
            true
            sreadField
            true
            screateEditor
            true
            seditEditor
            true
            sviewEditor
            true
            sgridEditor
            true
            squeryEditor
            true
            sreadOnly
            false
            seditable
            true
            sshowLabel
            true
            slabelAlign
            right
            slabelVAlign
            baseline
            svalidateAllowBlank
            true
            LvalidateOnBlur
            true
            LallowDecimals
            true
            LallowNegative
            true
            sshowInTable
            true
            sgridWidth
            1
            sgridFixed
            false
            sgridHidden
            true
            sgridHideable
            true
            sgridSortable
            false
            scolumnLocked
            false
            sgridGroupable
            true
            sgridMenuDisabled
            false
            sgridResizable
            true
            sdescriptors
            xworker.dataObject.java.ListDataObject/@attribute
            sid
            path
        @/@shell/@dataTable/@dataStore/@Listeners
        sname
        Listeners
        slabel
        Listeners
        sdescriptors
        xworker.swt.app.view.swt.data.DataStore/@Listeners
        sid
        Listeners
          @/@shell/@dataTable/@dataStore/@Listeners/@Listener
          sname
          Listener
          sdescriptors
          xworker.swt.app.view.swt.data.DataStore/@Listeners/@Listener
          sid
          Listener
            @/@shell/@dataTable/@dataStore/@Listeners/@Listener/@actions
            sname
            actions
            slabel
            actions
            sdescriptors
            xworker.swt.app.view.swt.data.DataStore/@Listeners/@Listener/@actions1
            sid
            actions
              @/@shell/@dataTable/@dataStore/@Listeners/@Listener/@actions/@afterLoaded
              sname
              afterLoaded
              sisSynchronized
              false
              sthrowException
              true
              suseOtherAction
              false
              svarScope
              Local
              sdisableGlobalContext
              false
              Scode
#$@text#$@
int index = 0;
for(item in dataTable.getItems()){
    if(attributes.get(index).checked){
        item.setChecked(true);
    }
    index++;
}
#$@text#$@
              sdescriptors
              xworker.lang.actions.Actions/@GroovyAction
              sid
              afterLoaded
    @/@shell/@4526
    sname
    buttonComposite
    sBORDER
    false
    sH_SCROLL
    false
    sV_SCROLL
    false
    sNO_BACKGROUND
    false
    sNO_FOCUS
    false
    sNO_MERGE_PAINTS
    false
    sNO_REDRAW_RESIZE
    false
    sNO_RADIO_GROUP
    false
    sEMBEDDED
    false
    sDOUBLE_BUFFERED
    false
    scapture
    false
    senabled
    true
    sredraw
    true
    svisible
    true
    sdescriptors
    xworker.swt.Widgets/@Composite
    sid
    4526
      @/@shell/@4526/@4527
      sname
      buttonCompositeGridData
      sstyle
      FILL_HORIZONTAL
      shorizontalIndent
      0
      swidth
      -1
      sheight
      -1
      shorizontalAlignment
      END
      sverticalAlignment
      CENTER
      shorizontalSpan
      1
      sverticalSpan
      1
      sgrabExcessHorizontalSpace
      false
      sgrabExcessVerticalSpace
      false
      slabel
      buttonCompositeGridData
      sdescriptors
      xworker.swt.layout.LayoutDatas/@GridData
      sid
      4527
      @/@shell/@4526/@4528
      sname
      buttonCompositeRowLayout
      sfill
      false
      sjustify
      false
      smarginWidth
      0
      smarginHeight
      0
      smarginLeft
      3
      smarginTop
      3
      smarginRight
      3
      smarginBottom
      3
      spack
      true
      sspacing
      3
      stype
      SWT.HORIZONTAL
      swrap
      true
      slabel
      buttonCompositeRowLayout
      sdescriptors
      xworker.swt.Layouts/@RowLayout
      sid
      4528
      @/@shell/@4526/@3327
      sname
      selectAllButton
      stext
      全选
      stype
      SWT.PUSH
      sflat
      false
      sborder
      false
      sselected
      false
      scapture
      false
      senabled
      true
      sredraw
      true
      svisible
      true
      slabel
      selectAllButton
      sdescriptors
      xworker.swt.Widgets/@Button
      sid
      3327
        @/@shell/@4526/@3327/@3328
        sname
        RowData
        sexclude
        false
        swidth
        80
        sheight
        -1
        slabel
        RowData
        sdescriptors
        xworker.swt.layout.LayoutDatas/@RowData
        sid
        3328
        @/@shell/@4526/@3327/@3329
        sname
        Listeners
        slabel
        Listeners
        sdescriptors
        xworker.swt.widgets.Widget/@Listeners
        sid
        3329
          @/@shell/@4526/@3327/@3329/@3330
          sname
          selectAllButtonSelection
          stype
          Selection
          slabel
          selectAllButtonSelection
          sdescriptors
          xworker.swt.events.Listeners/@listeners/@Listener
          sid
          3330
            @/@shell/@4526/@3327/@3329/@3330/@IteratorGroovy
            sname
            IteratorGroovy
            slabel
            IteratorGroovy
            scollectionName
            dataTable.getItems()
            svarName
            item
            sinterpretationType
            Self
            sdescriptors
            xworker.lang.actions.Actions/@IteratorGroovy,xworker.lang.actions.Actions/@Iterate
            sid
            IteratorGroovy
              @/@shell/@4526/@3327/@3329/@3330/@IteratorGroovy/@setChecked
              sname
              setChecked
              sobject
              item
              smethod
              setChecked
              sinterpretationType
              Self
              svarScope
              Local
              sdescriptors
              xworker.lang.actions.Actions/@MethodCall
              sid
              setChecked
                @/@shell/@4526/@3327/@3329/@3330/@IteratorGroovy/@setChecked/@true
                sname
                true
                stype
                boolean
                svalue
                true
                sinterpretationType
                Self
                svarScope
                Local
                sdescriptors
                xworker.lang.actions.MethodCall/@ValueFactory
                sid
                true
      @/@shell/@4526/@3451
      sname
      unSelectAllButton
      stext
      全不选
      stype
      SWT.PUSH
      sflat
      false
      sborder
      false
      sselected
      false
      scapture
      false
      senabled
      true
      sredraw
      true
      svisible
      true
      slabel
      unSelectAllButton
      sdescriptors
      xworker.swt.Widgets/@Button
      sid
      3451
        @/@shell/@4526/@3451/@3452
        sname
        RowData
        sexclude
        false
        swidth
        80
        sheight
        -1
        slabel
        RowData
        sdescriptors
        xworker.swt.layout.LayoutDatas/@RowData
        sid
        3452
        @/@shell/@4526/@3451/@3453
        sname
        Listeners
        slabel
        Listeners
        sdescriptors
        xworker.swt.widgets.Widget/@Listeners
        sid
        3453
          @/@shell/@4526/@3451/@3453/@3454
          sname
          unSelectAllButtonSelection
          stype
          Selection
          slabel
          unSelectAllButtonSelection
          sdescriptors
          xworker.swt.events.Listeners/@listeners/@Listener
          sid
          3454
            @/@shell/@4526/@3451/@3453/@3454/@IteratorGroovy
            sname
            IteratorGroovy
            slabel
            IteratorGroovy
            scollectionName
            dataTable.getItems()
            svarName
            item
            sinterpretationType
            Self
            sdescriptors
            xworker.lang.actions.Actions/@IteratorGroovy,xworker.lang.actions.Actions/@Iterate
            sid
            IteratorGroovy
              @/@shell/@4526/@3451/@3453/@3454/@IteratorGroovy/@setChecked
              sname
              setChecked
              sobject
              item
              smethod
              setChecked
              sinterpretationType
              Self
              svarScope
              Local
              sdescriptors
              xworker.lang.actions.Actions/@MethodCall
              sid
              setChecked
                @/@shell/@4526/@3451/@3453/@3454/@IteratorGroovy/@setChecked/@true
                sname
                false
                stype
                boolean
                svalue
                false
                sinterpretationType
                Self
                svarScope
                Local
                sdescriptors
                xworker.lang.actions.MethodCall/@ValueFactory
                sid
                true
      @/@shell/@4526/@4529
      sname
      okButton
      stext
      确定
      stype
      SWT.PUSH
      sflat
      false
      sborder
      false
      sselected
      false
      scapture
      false
      senabled
      true
      sredraw
      true
      svisible
      true
      slabel
      okButton
      sdescriptors
      xworker.swt.Widgets/@Button
      sid
      4529
        @/@shell/@4526/@4529/@4530
        sname
        RowData
        sexclude
        false
        swidth
        80
        sheight
        -1
        slabel
        RowData
        sdescriptors
        xworker.swt.layout.LayoutDatas/@RowData
        sid
        4530
        @/@shell/@4526/@4529/@4531
        sname
        Listeners
        slabel
        Listeners
        sdescriptors
        xworker.swt.widgets.Widget/@Listeners
        sid
        4531
          @/@shell/@4526/@4529/@4531/@4532
          sname
          okButtonSelection
          stype
          Selection
          slabel
          okButtonSelection
          sdescriptors
          xworker.swt.events.Listeners/@listeners/@Listener
          sid
          4532
            @/@shell/@4526/@4529/@4531/@4532/@saveThing
            sname
            saveThing
            sisSynchronized
            false
            sthrowException
            true
            suseOtherAction
            false
            svarScope
            Local
            sdisableGlobalContext
            false
            Scode
#$@text#$@
import org.xmeta.Thing;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.TreeItem;

def treeItem = thingContext.get("outlineTree").getSelection()[0];
for(item in dataTable.getItems()){
    def data = item.getData();
    if(item.getChecked()){
        //已存在修改，不存在增加
        def have = false;
        for(attr in thing.getChilds()){
            if(attr.metadata.name == data.name && attr.getThingName() == data.type){
                have = true;                
            }
        }
        if(!have){            
            def extThing = world.getThing(data.path);
            if(extThing != null){
                def attr = extThing.detach();
                thing.addChild(attr);
                
                //更新Outline
                def childTreeItem = new TreeItem(treeItem, SWT.NONE);
                childTreeItem.setText(attr.metadata.label + " (" + attr.thingName + ")");
                childTreeItem.setData(attr);
            }
        }
    }else{
        //删除对应的属性
        for(attr in thing.getChilds()){
            if(attr.metadata.name == data.name && attr.getThingName() == data.type){
                thing.removeChild(attr);
                for(childItem in treeItem.getItems()){
                    if(childItem.getData() == attr){
                        childItem.dispose();
                    }
                }
                break;
            }
        }
    }
}

if(thingContext.get("okButtonSelection") != null){
    thingContext.okButtonSelection.handleEvent(null);
}else{
    thing.save();
}
shell.dispose();
#$@text#$@
            sdescriptors
            xworker.lang.actions.Actions/@GroovyAction
            sid
            saveThing
      @/@shell/@4526/@4533
      sname
      cancelButton
      stext
      取消
      stype
      SWT.PUSH
      sflat
      false
      sborder
      false
      sselected
      false
      scapture
      false
      senabled
      true
      sredraw
      true
      svisible
      true
      slabel
      cancelButton
      sdescriptors
      xworker.swt.Widgets/@Button
      sid
      4533
        @/@shell/@4526/@4533/@4534
        sname
        RowData
        sexclude
        false
        swidth
        80
        sheight
        -1
        slabel
        RowData
        sdescriptors
        xworker.swt.layout.LayoutDatas/@RowData
        sid
        4534
        @/@shell/@4526/@4533/@4535
        sname
        Listeners
        slabel
        Listeners
        sdescriptors
        xworker.swt.widgets.Widget/@Listeners
        sid
        4535
          @/@shell/@4526/@4533/@4535/@4536
          sname
          cancelButtonSelection
          stype
          Selection
          slabel
          cancelButtonSelection
          sdescriptors
          xworker.swt.events.Listeners/@listeners/@Listener
          sid
          4536
            @/@shell/@4526/@4533/@4535/@4536/@shellDispose
            sname
            shellDispose
            sshellName
            shell
            smethod
            dispose
            sinterpretationType
            Self
            svarScope
            Local
            sdescriptors
            xworker.swt.actions.ShellActions/@ShellNormalActions1
            sid
            shellDispose
    @/@shell/@init
    sname
    init
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    svarScope
    Local
    sdisableGlobalContext
    false
    Scode
#$@text#$@
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;

def extendDataObject = world.getThing(thing.extendedDataObject);
if(extendDataObject == null){
    def box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
    box.setText("提示");
    box.setMessage("没有继承数据对象。");
    box.open();
    shell.setData("menuShellDispose", true);
    return;
}

def mappingFields = [];
for(child in extendDataObject.getChilds()){
    def data = [:];
    data.name = child.metadata.name;
    data.label = child.metadata.label;
    data.type = child.getThingName();
    data.checked = false;
    data.thing = child;
    data.path = child.metadata.path;
    mappingFields.add(data);
}
for(field in mappingFields){
    for(child in thing.getChilds()){
        if(field.name == child.metadata.name && field.type == child.getThingName()){
            field.checked = true;
        }
    }
}

//初始化表格
actionContext.getScope(0).put("attributes", mappingFields);
dataStore.doAction("load", actionContext);
#$@text#$@
    sdescriptors
    xworker.swt.Widgets/@Code
    sid
    init
