^1634006046538
@
sname
NewPackageDialog
slabel
NewPackageDialog
sdescriptors
xworker.swt.widgets.Display
sid
NewCategoryDialog
  @/@shellt
  sname
  shell
  stext
  lang:d=新建目录&en=New Category
  sstyle
  APPLICATION_MODAL
  sNO_TRIM
  false
  sCLOSE
  true
  sTITLE
  true
  sMIN
  false
  sMAX
  false
  sBORDER
  false
  sRESIZE
  false
  sON_TOP
  false
  sTOOL
  false
  sNO_FOCUS
  false
  swidth
  400
  sheight
  300
  scenterScreen
  true
  spack
  true
  smaximized
  false
  sfullScreen
  false
  sdesign
  true
  sisIde
  false
  sdesignDefaultOpen
  false
  sexitOnDispose
  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
  slabel
  shell
  scapture
  false
  senabled
  true
  sredraw
  true
  svisible
  true
  sdescriptors
  xworker.swt.widgets.Display/@Shell
  sid
  shellt
    @/@shellt/@shellGridLaout
    sname
    shellGridLaout
    snumColumns
    3
    smakeColumnsEqualWidth
    false
    smarginWidth
    5
    smarginHeight
    5
    smarginLeft
    0
    smarginTop
    0
    smarginRight
    0
    smarginBottom
    0
    shorizontalSpacing
    5
    sverticalSpacing
    5
    slabel
    shellGridLaout
    sdescriptors
    xworker.swt.Layouts/@GridLayout
    sid
    shellGridLaout
    @/@shellt/@dataObjectNameLabel
    sname
    packageNameLabel
    sBORDER
    false
    stype
    HORIZONTAL
    sshadow
    SHADOW_OUT
    salignment
    LEFT
    stext
    lang:d=目录名:&en=Category Name:
    scapture
    false
    senabled
    true
    sredraw
    true
    spack
    false
    svisible
    true
    slabel
    packageNameLabel
    sdescriptors
    xworker.swt.Widgets/@Label
    sid
    dataObjectNameLabel
    @/@shellt/@dataObjectNameText
    sname
    packageNameText
    sstyle
    SINGLE
    sH_SCROLL
    false
    sV_SCROLL
    false
    sWRAP
    false
    sREAD_ONLY
    false
    sPASSWORD
    false
    sSEARCH
    false
    sCANCEL
    false
    sBORDER
    true
    salign
    LEFT
    slabel
    packageNameText
    sdescriptors
    xworker.swt.Widgets/@Text
    sid
    dataObjectNameText
      @/@shellt/@dataObjectNameText/@dataObjectNameTextGridData
      sname
      packageNameTextGridData
      shorizontalIndent
      0
      swidth
      200
      sheight
      -1
      shorizontalAlignment
      BEGINNING
      sverticalAlignment
      CENTER
      shorizontalSpan
      2
      sverticalSpan
      1
      sgrabExcessHorizontalSpace
      false
      sgrabExcessVerticalSpace
      false
      slabel
      packageNameTextGridData
      sdescriptors
      xworker.swt.Commons/@GridData
      sid
      dataObjectNameTextGridData
    @/@shellt/@buttonCell
    sname
    buttonCell
    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
    slabel
    buttonCell
    sdescriptors
    xworker.swt.Widgets/@Composite
    sid
    buttonCell
      @/@shellt/@buttonCell/@buttonCellGridData
      sname
      buttonCellGridData
      sstyle
      FILL_HORIZONTAL
      shorizontalIndent
      0
      swidth
      -1
      sheight
      -1
      shorizontalAlignment
      END
      sverticalAlignment
      CENTER
      shorizontalSpan
      3
      sverticalSpan
      1
      sgrabExcessHorizontalSpace
      false
      sgrabExcessVerticalSpace
      false
      slabel
      buttonCellGridData
      sdescriptors
      xworker.swt.Commons/@GridData
      sid
      buttonCellGridData
      @/@shellt/@buttonCell/@buttonCellRowLayout
      sname
      buttonCellRowLayout
      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
      buttonCellRowLayout
      sdescriptors
      xworker.swt.Layouts/@RowLayout
      sid
      buttonCellRowLayout
      @/@shellt/@buttonCell/@okButton
      sname
      okButton
      stext
      lang:d=确定(&amp;O)&en=Ok(&amp;O)
      stype
      SWT.PUSH
      sflat
      false
      sborder
      false
      sselected
      false
      scapture
      false
      senabled
      true
      sredraw
      true
      spack
      false
      svisible
      true
      slabel
      okButton
      sdescriptors
      xworker.swt.Widgets/@Button
      sid
      okButton
        @/@shellt/@buttonCell/@okButton/@listeners
        sname
        listeners
        slabel
        listeners
        sdescriptors
        xworker.swt.events.Listeners/@listeners
        sid
        listeners
          @/@shellt/@buttonCell/@okButton/@listeners/@okButtonSelection
          sname
          okButtonSelection
          stype
          Selection
          slabel
          okButtonSelection
          sdescriptors
          xworker.swt.events.Listeners/@listeners/@Listener
          sid
          okButtonSelection
            @/@shellt/@buttonCell/@okButton/@listeners/@okButtonSelection/@GroovyAction
            sname
            GroovyAction
            slabel
            GroovyAction
            sisSynchronized
            false
            sthrowException
            false
            suseOtherAction
            false
            svarScope
            Global
            sdisableGlobalContext
            false
            Scode
#$@text#$@
import org.xmeta.Category;
import org.xmeta.ThingManager;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.TreeItem;
import org.xmeta.Thing;

import org.xmeta.util.UtilString;

//校验数据输入
if(!model.doAction("validate", actionContext)) return;

//创建新的对象
def values = model.doAction("getValue", actionContext);
if(actionContext.get("treeItem") == null){
    //函数式编程新加入的功能
    actionContext.getScope(0).put("result", values.get("name"));
    shell.dispose();
    return;
}

def p = treeItem.getData().getIndexObject();
String newPackage = "";
ThingManager thingManager;

if(p instanceof Thing){
    //如果目录下有相同名称的事物，会导致点击数节点其实返回的是Thing的错误
    p = p.getMetadata().getCategory();
}

if(p instanceof Category){
    thingManager = p.getThingManager();
    
    if(p.getName() != ""){
        newPackage = p.getName() + "." + values.name;
    }else{
        newPackage = values.name;
    }
}else{
    newPackage = values.name;
    thingManager = (ThingManager) p;
}

//保存新的对象
if(thingManager.getCategory(newPackage) != null){
    warn(actionContext, "message", UtilString.getString("lang:d=目录已经存在！&en=Category already exists!", actionContext));
    return;
}else{
    if(!thingManager.createCategory(newPackage)){
        warn(actionContext, "message", UtilString.getString("lang:d=不能创建目录：&en=Can not create category:", actionContext) + newPackage + "!");
        return;
    }
    
    treeItem.getData().refresh();
    def projectIndex = null;
    for(index in treeItem.getData().childs){
        if(index.name == values.name){
             projectIndex = index;
             break;
        }
    }
    //查找插入的位置
    int index = 0;
    for(item in treeItem.getItems()){
        if(item.getData().name >= values.name){         
            break;
        }
        
        index ++;
    }
    
    def tree = treeItem.getParent();
    def res = tree.getData("resources");

    TreeItem citem = new TreeItem(treeItem, SWT.NONE, index);
    citem.setText(projectIndex.getName());
    citem.setData(projectIndex);
    citem.setImage(res.packageImage);
    
    shell.dispose();
}
#$@text#$@
            sinterpretationType
            Action
            screateLocalVarScope
            false
            ssaveReturn
            false
            sswitchResult
            false
            sdebugLog
            false
            sdescriptors
            xworker.lang.actions.Actions/@GroovyAction
            sid
            GroovyAction
              @/@shellt/@buttonCell/@okButton/@listeners/@okButtonSelection/@GroovyAction/@ActionDefined
              sname
              ActionDefined
              sdescriptors
              xworker.lang.actions.Inout/@ActionDefined
              sinheritDescription
              false
              sth_createIndex
              false
              sth_registMyChilds
              false
              sth_registDisabled
              false
              sth_noThingRegistViewer
              false
              sth_fileMonitor
              false
              sth_mark
              false
              sth_registQueryOnlySelf
              false
              snotXmlAttribute
              false
              sjson_isArray
              false
              sid
              ActionDefined
                @/@shellt/@buttonCell/@okButton/@listeners/@okButtonSelection/@GroovyAction/@ActionDefined/@error
                sname
                warn
                sshell
                ognl:okButton.getShell()
                sicon
                ICON_WARNING
                sbuttons
                OK
                stitle
                lang:d=新建目录&en=New Category
                smessage
                var:message
                sinterpretationType
                Self
                sattributeTemplate
                false
                schildsAttributeTemplate
                false
                svarScope
                Local
                sisSynchronized
                false
                sthrowException
                true
                suseOtherAction
                false
                screateLocalVarScope
                false
                ssaveReturn
                false
                sswitchResult
                false
                sdisableGlobalContext
                false
                sdebugLog
                false
                sdescriptors
                xworker.swt.actions.MessageBoxActions/@MessageBox
                sinheritDescription
                false
                sth_createIndex
                false
                sth_registMyChilds
                false
                sth_registDisabled
                false
                sth_noThingRegistViewer
                false
                sth_fileMonitor
                false
                sth_mark
                false
                sth_registQueryOnlySelf
                false
                snotXmlAttribute
                false
                sjson_isArray
                false
                sid
                error
        @/@shellt/@buttonCell/@okButton/@RowData
        sname
        RowData
        sexclude
        false
        swidth
        80
        sheight
        -1
        slabel
        RowData
        sdescriptors
        xworker.swt.layout.LayoutDatas/@RowData
        sid
        RowData
      @/@shellt/@buttonCell/@cancelButton
      sname
      cancelButton
      stext
      lang:d=取消(&amp;C)&en=Cancel(&amp;C)
      stype
      SWT.PUSH
      sflat
      false
      sborder
      false
      sselected
      false
      scapture
      false
      senabled
      true
      sredraw
      true
      spack
      false
      svisible
      true
      slabel
      cancelButton
      sdescriptors
      xworker.swt.Widgets/@Button
      sid
      cancelButton
        @/@shellt/@buttonCell/@cancelButton/@listeners
        sname
        listeners
        slabel
        listeners
        sdescriptors
        xworker.swt.events.Listeners/@listeners
        sid
        listeners
          @/@shellt/@buttonCell/@cancelButton/@listeners/@cancelButtonSelection
          sname
          cancelButtonSelection
          stype
          Selection
          slabel
          cancelButtonSelection
          sdescriptors
          xworker.swt.events.Listeners/@listeners/@Listener
          sid
          cancelButtonSelection
            @/@shellt/@buttonCell/@cancelButton/@listeners/@cancelButtonSelection/@GroovyAction
            sname
            GroovyAction
            slabel
            GroovyAction
            sisSynchronized
            false
            sthrowException
            false
            suseOtherAction
            false
            scode
            shell.dispose();
            sdescriptors
            xworker.lang.actions.Actions/@GroovyAction
            sid
            GroovyAction
        @/@shellt/@buttonCell/@cancelButton/@RowData
        sname
        RowData
        sexclude
        false
        swidth
        80
        sheight
        -1
        slabel
        RowData
        sdescriptors
        xworker.swt.layout.LayoutDatas/@RowData
        sid
        RowData
    @/@shellt/@Models
    sname
    Models
    slabel
    Models
    sdescriptors
    xworker.swt.Widgets/@Models
    sid
    Models
      @/@shellt/@Models/@model
      sname
      model
      sdataType
      Map
      svalidate
      true
      sfocus
      false
      sfocusColor
      "#E8FAFF"
      sdefaultSelection
      okButtonSelection
      LvalidateOnBlur
      false
      LallowDecimals
      false
      LallowNegative
      false
      slabel
      model
      sdescriptors
      xworker.swt.model.Models/@Model
      sid
      model
        @/@shellt/@Models/@model/@name
        sname
        name
        sswtControl
        packageNameText
        spropertyName
        name
        svalidate
        true
        sfocus
        false
        sfocusColor
        "#E8FAFF"
        LvalidateOnBlur
        false
        LallowDecimals
        false
        LallowNegative
        false
        slabel
        name
        sdescriptors
        xworker.swt.model.Model/@Model
        sid
        name
