^1640696313563
@
sname
ThingNotesViewer
slabel
ThingNotesViewer
sdescriptors
xworker.swt.widgets.Display
  @/@shell
  sname
  shell
  stext
  笔记
  sNO_TRIM
  false
  sCLOSE
  true
  sTITLE
  true
  sMIN
  true
  sMAX
  true
  sBORDER
  false
  sRESIZE
  true
  sON_TOP
  false
  sTOOL
  false
  sNO_FOCUS
  false
  swidth
  800
  sheight
  600
  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/@FillLayout
    sname
    FillLayout
    stype
    SWT.HORIZONTAL
    slabel
    FillLayout
    sdescriptors
    xworker.swt.Layouts/@FillLayout
    sid
    FillLayout
    @/@shell/@mainComposite
    sname
    mainComposite
    sBORDER
    true
    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
    mainComposite
      @/@shell/@mainComposite/@listComposite
      sname
      listComposite
      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
      listComposite
        @/@shell/@mainComposite/@listComposite/@listCompositeGridLayout
        sname
        listCompositeGridLayout
        smakeColumnsEqualWidth
        false
        smarginWidth
        5
        smarginHeight
        5
        smarginLeft
        0
        smarginTop
        0
        smarginRight
        0
        smarginBottom
        0
        shorizontalSpacing
        5
        sverticalSpacing
        5
        slabel
        listCompositeGridLayout
        sdescriptors
        xworker.swt.Layouts/@GridLayout
        sid
        listCompositeGridLayout
        @/@shell/@mainComposite/@listComposite/@tableFolder
        sname
        tableFolder
        sstyle
        TOP
        sBORDER
        false
        sFLAT
        false
        sCLOSE
        false
        sSINGLE
        false
        sMRUVisible
        false
        ssimple
        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/@CTabFolder
        sid
        tableFolder
          @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem
          sname
          registTabItem
          stext
          label:xworker.swt.ide.worldexplorer.swt.i18n.I18nResource/@swtdesinger/@helpAndNotes
          sCLOSE
          false
          slabel
          registTabItem
          sdescriptors
          xworker.swt.custom.CTabFolder/@CTabItem
          sid
          registTabItem
            @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom
            sname
            listSashFrom
            sstyle
            HORIZONTAL
            sSMOOTH
            false
            sweights
            40,60
            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/@SashForm
            sid
            listSashFrom
              @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite
              sname
              registsComposite
              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
              registsComposite
                @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@registsCompositeGridLayout
                sname
                registsCompositeGridLayout
                snumColumns
                2
                smakeColumnsEqualWidth
                false
                smarginWidth
                5
                smarginHeight
                5
                smarginLeft
                0
                smarginTop
                0
                smarginRight
                0
                smarginBottom
                0
                shorizontalSpacing
                5
                sverticalSpacing
                5
                slabel
                registsCompositeGridLayout
                sdescriptors
                xworker.swt.Layouts/@GridLayout
                sid
                registsCompositeGridLayout
                @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store
                sname
                store
                sattachToParent
                false
                sloadBackground
                true
                sautoLoad
                false
                sautoSave
                false
                sdataObject
                xworker.ide.db.dbindex.app.dataObject.RegistsByThing
                spaging
                yes
                spageSize
                5000
                sstoreSortField
                _extend
                sstoreSortDir
                ASC
                seditable
                extend
                seditmethod
                extend
                slabel
                store
                sdescriptors
                xworker.swt.Commons/@DataStore
                sid
                store
                  @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store/@Listeners
                  sname
                  Listeners
                  slabel
                  Listeners
                  sdescriptors
                  xworker.swt.app.view.swt.data.DataStore/@Listeners
                  sid
                  Listeners
                    @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store/@Listeners/@dataTreeListener
                    sname
                    dataTreeListener
                    sdescriptors
                    xworker.swt.app.view.swt.data.DataStore/@Listeners/@Listener
                    sid
                    dataTreeListener
                      @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store/@Listeners/@dataTreeListener/@actions
                      sname
                      actions
                      slabel
                      actions
                      sdescriptors
                      xworker.swt.app.view.swt.data.DataStore/@Listeners/@Listener/@actions1
                      sid
                      actions
                        @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store/@Listeners/@dataTreeListener/@actions/@beforeLoad
                        sname
                        beforeLoad
                        sisSynchronized
                        false
                        sthrowException
                        true
                        suseOtherAction
                        false
                        svarScope
                        Local
                        sdisableGlobalContext
                        false
                        Scode
#$@text#$@
searchButton.display.asyncExec({
    for(item in dataTree.getItems()){
        item.dispose();
    }
});
#$@text#$@
                        sdescriptors
                        xworker.lang.actions.Actions/@GroovyAction
                        sid
                        beforeLoad
                        @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store/@Listeners/@dataTreeListener/@actions/@onLoaded
                        sname
                        onLoaded
                        sisSynchronized
                        false
                        sthrowException
                        false
                        suseOtherAction
                        true
                        sotherActionPath
                        xworker.swt.ide.worldexplorer.swt.guide.ThingGuide/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@store/@Listeners/@dataTreeListener/@actions/@onLoaded
                        svarScope
                        Local
                        sdisableGlobalContext
                        false
                        Scode
#$@text#$@
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

import java.util.Collections;
import java.util.Comparator;

def log = log;
def store = store;
def world = world;
searchButton.display.asyncExec({
    //分组
    def root = ["childs":[]];
    for(record in store.records){
        def des = world.getThing(record.path);
        if(des == null){
            log.info("thing not exists or has deleted, path=" + record.path);
            continue;
        }

        def group = des.getString("group");
        if(group == null || group == ""){
            root.childs.add(des);
        }else{
            for(grs in group.split("[,]")){
                def gs = grs.split("[.]");
                def subRoot = null;
                def currentRoot = root;
                for(g in gs){
                    subRoot = currentRoot.get(g);
                    if(subRoot == null){ 
                        subRoot = ["childs":[]];
                        subRoot.put("__name__", g);
                        currentRoot.put(g, subRoot);
                    }
                    currentRoot = subRoot;
                }
                subRoot.childs.add(des);
            }
        }
    }
    
    //构造子节点树
    dataTree.removeAll();
    createTree(dataTree, root);
});

def createTree(item, aroot){
    def groups = [];
    for(key in aroot.keySet()){
        def v = aroot.get(key);
        if(v instanceof Map){
            groups.add(v);
        }
    }
    
    //为group排序
    Collections.sort(groups, [
            compare : {
               o1, o2->
               if(o1.__name__.toLowerCase() < o2.__name__.toLowerCase()) return -1;
               if(o1.__name__.toLowerCase() == o2.__name__.toLowerCase()) return 0;
               return 1;
            }
        ] as Comparator);
    for(g in groups){
        Collections.sort(g.childs, [
                compare : {
                   o1, o2->
                   if(o1.metadata.label.toLowerCase() < o2.metadata.label.toLowerCase()) return -1;
                   if(o1.metadata.label.toLowerCase() == o2.metadata.label.toLowerCase()) return 0;
                   return 1;
                }
            ] as Comparator);
        def subItem = new TreeItem(item, SWT.NONE);
        subItem.setText(g.__name__);
        createTree(subItem, g);
    }

    Collections.sort(aroot.childs, [
                compare : {
                   o1, o2->
                   if(o1.metadata.label.toLowerCase() < o2.metadata.label.toLowerCase()) return -1;
                   if(o1.metadata.label.toLowerCase() == o2.metadata.label.toLowerCase()) return 0;
                   return 1;
                }
            ] as Comparator);
    for(child in aroot.childs){
       
        def subItem = new TreeItem(item, SWT.NONE);
        subItem.setText(child.metadata.label);
        subItem.setData(child);
    }
}
#$@text#$@
                        sinterpretationType
                        Action
                        screateLocalVarScope
                        false
                        ssaveReturn
                        false
                        sdescriptors
                        xworker.lang.actions.Actions/@GroovyAction
                        sid
                        onLoaded
                @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@searchText
                sname
                searchText
                sstyle
                SINGLE
                sH_SCROLL
                false
                sV_SCROLL
                false
                sWRAP
                false
                sREAD_ONLY
                false
                sPASSWORD
                false
                sSEARCH
                true
                sCANCEL
                false
                sBORDER
                true
                salign
                LEFT
                scapture
                false
                senabled
                true
                sredraw
                true
                svisible
                true
                slabel
                searchText
                sdescriptors
                xworker.swt.Widgets/@Text
                sid
                searchText
                  @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@searchText/@searchTextGridData
                  sname
                  searchTextGridData
                  sstyle
                  FILL_HORIZONTAL
                  shorizontalIndent
                  0
                  swidth
                  -1
                  sheight
                  -1
                  shorizontalAlignment
                  BEGINNING
                  sverticalAlignment
                  CENTER
                  shorizontalSpan
                  1
                  sverticalSpan
                  1
                  sgrabExcessHorizontalSpace
                  false
                  sgrabExcessVerticalSpace
                  false
                  slabel
                  searchTextGridData
                  sdescriptors
                  xworker.swt.layout.LayoutDatas/@GridData
                  sid
                  searchTextGridData
                @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@searchButton
                sname
                searchButton
                stext
                label:xworker.swt.ide.worldexplorer.swt.i18n.I18nResource/@buttons/@searchButton
                stype
                SWT.PUSH
                sflat
                false
                sborder
                false
                sselected
                false
                scapture
                false
                senabled
                true
                sredraw
                true
                svisible
                true
                slabel
                searchButton
                sdescriptors
                xworker.swt.Widgets/@Button
                sid
                searchButton
                  @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@searchButton/@Listeners
                  sname
                  Listeners
                  slabel
                  Listeners
                  sdescriptors
                  xworker.swt.widgets.Widget/@Listeners
                  sid
                  Listeners
                    @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@searchButton/@Listeners/@searchButtonSelection
                    sname
                    searchButtonSelection
                    stype
                    Selection
                    slabel
                    searchButtonSelection
                    sdescriptors
                    xworker.swt.events.Listeners/@listeners/@Listener
                    sid
                    searchButtonSelection
                      @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@searchButton/@Listeners/@searchButtonSelection/@GroovyAction
                      sname
                      GroovyAction
                      sisSynchronized
                      false
                      sthrowException
                      true
                      suseOtherAction
                      false
                      svarScope
                      Global
                      sdisableGlobalContext
                      false
                      Scode
#$@text#$@
store.doAction("load", actionContext, ["params":[
    "registType":"notes",
    "keywords":searchText.getText(),
    "thing":thing]
]);
#$@text#$@
                      sinterpretationType
                      Action
                      screateLocalVarScope
                      false
                      ssaveReturn
                      false
                      sdescriptors
                      xworker.lang.actions.Actions/@GroovyAction
                      sid
                      GroovyAction
                @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@dataTree
                sname
                dataTree
                sselectStyle
                SINGLE
                sV_SCROLL
                true
                sH_SCROLL
                true
                sCHECK
                false
                sFULL_SELECTION
                false
                sHIDE_SELECTION
                false
                sBORDER
                false
                slineVisible
                false
                smultipleColumns
                false
                sheaderVisible
                false
                ssortIndicator
                false
                smoveableColumns
                false
                sheadImages
                false
                ssubImages
                false
                scheckSelection
                false
                scapture
                false
                senabled
                true
                sredraw
                true
                svisible
                true
                slabel
                dataTree
                sdescriptors
                xworker.swt.Widgets/@Tree
                sid
                dataTree
                  @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@dataTree/@registTableGridData
                  sname
                  registTableGridData
                  sstyle
                  FILL_BOTH
                  shorizontalIndent
                  0
                  swidth
                  -1
                  sheight
                  -1
                  shorizontalAlignment
                  BEGINNING
                  sverticalAlignment
                  CENTER
                  shorizontalSpan
                  2
                  sverticalSpan
                  1
                  sgrabExcessHorizontalSpace
                  false
                  sgrabExcessVerticalSpace
                  false
                  slabel
                  registTableGridData
                  sdescriptors
                  xworker.swt.Commons/@GridData
                  sid
                  registTableGridData
                  @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@dataTree/@listeners
                  sname
                  listeners
                  slabel
                  listeners
                  sdescriptors
                  xworker.swt.events.Listeners/@listeners
                  sid
                  listeners
                    @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@dataTree/@listeners/@registTableSelection
                    sname
                    registTableSelection
                    stype
                    Selection
                    slabel
                    registTableSelection
                    sdescriptors
                    xworker.swt.events.Listeners/@listeners/@Listener
                    sid
                    registTableSelection
                      @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@dataTree/@listeners/@registTableSelection/@GroovyAction
                      sname
                      GroovyAction
                      sisSynchronized
                      false
                      sthrowException
                      true
                      suseOtherAction
                      false
                      svarScope
                      Global
                      sdisableGlobalContext
                      false
                      Scode
#$@text#$@
import org.xmeta.ActionContext;
import org.xmeta.Thing;

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

import xworker.swt.util.XWorkerTreeUtil;

//descTree.removeAll();

//def data = registTable.getSelection()[0].getData();
def thing = event.item.getData();
if(thing instanceof Thing){
    openUrl("do?sc=xworker.ide.worldexplorer.swt.http.ThingDoc/@desc&thing=" + thing.metadata.path, false);

}else{
    leditButton.setEnabled(false);
    return;
}

leditButton.setEnabled(true);
   
def openUrl(url, isOuterUrl){
    //log.info(url);
    if(isOuterUrl){
        browser.setUrl(url);
    }else{
        def globalCfg = world.getThing("_local.xworker.config.GlobalConfig");
        descBrowser.setUrl(globalCfg.webUrl + url);
    }
}
#$@text#$@
                      sinterpretationType
                      Action
                      screateLocalVarScope
                      false
                      ssaveReturn
                      false
                      sdebugLog
                      false
                      sdescriptors
                      xworker.lang.actions.Actions/@GroovyAction
                      sid
                      GroovyAction
                @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@pageToolbar
                sname
                pageToolbar
                sdisplayInfo
                false
                semptyMsg
                没有数据
                sfirstText
                首页
                slastText
                最后一页
                sstore
                store
                sdescriptors
                xworker.swt.app.view.swt.Items/@PagingToolbar
                sid
                pageToolbar
                  @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@registsComposite/@pageToolbar/@pageToolbarGridData
                  sname
                  pageToolbarGridData
                  sstyle
                  FILL_HORIZONTAL
                  shorizontalIndent
                  0
                  swidth
                  -1
                  sheight
                  -1
                  shorizontalAlignment
                  BEGINNING
                  sverticalAlignment
                  CENTER
                  shorizontalSpan
                  2
                  sverticalSpan
                  1
                  sgrabExcessHorizontalSpace
                  false
                  sgrabExcessVerticalSpace
                  false
                  slabel
                  pageToolbarGridData
                  sdescriptors
                  xworker.swt.Commons/@GridData
                  sid
                  pageToolbarGridData
              @/@shell/@mainComposite/@listComposite/@tableFolder/@registTabItem/@listSashFrom/@descBrowser
              sname
              descBrowser
              sMOZILLA
              false
              slabel
              descBrowser
              sdescriptors
              xworker.swt.Widgets/@Browser
              sid
              descBrowser
          @/@shell/@mainComposite/@listComposite/@tableFolder/@tableFolderGridDAta
          sname
          tableFolderGridDAta
          sstyle
          FILL_BOTH
          shorizontalIndent
          0
          swidth
          -1
          sheight
          -1
          shorizontalAlignment
          BEGINNING
          sverticalAlignment
          CENTER
          shorizontalSpan
          1
          sverticalSpan
          1
          sgrabExcessHorizontalSpace
          false
          sgrabExcessVerticalSpace
          false
          slabel
          tableFolderGridDAta
          sdescriptors
          xworker.swt.layout.LayoutDatas/@GridData
          sid
          tableFolderGridDAta
        @/@shell/@mainComposite/@listComposite/@listButtonComposite
        sname
        listButtonComposite
        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
        listButtonComposite
          @/@shell/@mainComposite/@listComposite/@listButtonComposite/@listbuttonComGridData
          sname
          listbuttonComGridData
          sstyle
          FILL_HORIZONTAL
          shorizontalIndent
          0
          swidth
          -1
          sheight
          -1
          shorizontalAlignment
          END
          sverticalAlignment
          CENTER
          shorizontalSpan
          1
          sverticalSpan
          1
          sgrabExcessHorizontalSpace
          false
          sgrabExcessVerticalSpace
          false
          slabel
          listbuttonComGridData
          sdescriptors
          xworker.swt.layout.LayoutDatas/@GridData
          sid
          listbuttonComGridData
          @/@shell/@mainComposite/@listComposite/@listButtonComposite/@listButtonRwLayout
          sname
          listButtonRwLayout
          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
          listButtonRwLayout
          sdescriptors
          xworker.swt.Layouts/@RowLayout
          sid
          listButtonRwLayout
          @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton
          sname
          leditButton
          stext
          label:xworker.swt.ide.worldexplorer.swt.i18n.I18nResource/@buttons/@editButton
          stype
          SWT.PUSH
          sflat
          false
          sborder
          false
          sselected
          false
          scapture
          false
          senabled
          false
          sredraw
          true
          svisible
          true
          slabel
          leditButton
          sdescriptors
          xworker.swt.Widgets/@Button
          sid
          leditButton
            @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton/@Listeners
            sname
            Listeners
            slabel
            Listeners
            sdescriptors
            xworker.swt.widgets.Widget/@Listeners
            sid
            Listeners
              @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton/@Listeners/@leditButtonSelection
              sname
              leditButtonSelection
              stype
              Selection
              slabel
              leditButtonSelection
              sdescriptors
              xworker.swt.events.Listeners/@listeners/@Listener
              sid
              leditButtonSelection
                @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton/@Listeners/@leditButtonSelection/@GroovyAction
                sname
                GroovyAction
                sisSynchronized
                false
                sthrowException
                true
                suseOtherAction
                false
                svarScope
                Global
                sdisableGlobalContext
                false
                Scode
#$@text#$@
import org.xmeta.Thing;

if(dataTree.getSelection().length == 0) return;

def template = dataTree.getSelection()[0].getData();
if(template != null){
    explorerActions.doAction("openThing", ["thing":template]);
}
#$@text#$@
                sdescriptors
                xworker.lang.actions.Actions/@GroovyAction
                sid
                GroovyAction
            @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton/@RowData
            sname
            RowData
            sexclude
            false
            swidth
            80
            sheight
            -1
            slabel
            RowData
            sdescriptors
            xworker.swt.layout.LayoutDatas/@RowData
            sid
            RowData
          @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton1
          sname
          closeButton
          stext
          取消
          stype
          SWT.PUSH
          sflat
          false
          sborder
          false
          sselected
          false
          scapture
          false
          senabled
          true
          sredraw
          true
          svisible
          true
          slabel
          closeButton
          sdescriptors
          xworker.swt.Widgets/@Button
          sth_createIndex
          false
          sth_registMyChilds
          false
          sth_mark
          false
          sid
          leditButton1
            @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton1/@Listeners
            sname
            Listeners
            slabel
            Listeners
            sdescriptors
            xworker.swt.widgets.Widget/@Listeners
            sid
            Listeners
              @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton1/@Listeners/@leditButtonSelection
              sname
              leditButtonSelection
              stype
              Selection
              slabel
              leditButtonSelection
              sdescriptors
              xworker.swt.events.Listeners/@listeners/@Listener
              sid
              leditButtonSelection
                @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton1/@Listeners/@leditButtonSelection/@GroovyAction
                sname
                GroovyAction
                sisSynchronized
                false
                sthrowException
                true
                suseOtherAction
                false
                svarScope
                Global
                sdisableGlobalContext
                false
                scode
                shell.dispose();
                sinterpretationType
                Action
                screateLocalVarScope
                false
                ssaveReturn
                false
                sdescriptors
                xworker.lang.actions.Actions/@GroovyAction
                sid
                GroovyAction
            @/@shell/@mainComposite/@listComposite/@listButtonComposite/@leditButton1/@RowData
            sname
            RowData
            sexclude
            false
            swidth
            80
            sheight
            -1
            slabel
            RowData
            sdescriptors
            xworker.swt.layout.LayoutDatas/@RowData
            sid
            RowData
      @/@shell/@mainComposite/@init
      sname
      init
      sisSynchronized
      false
      sthrowException
      true
      suseOtherAction
      false
      svarScope
      Global
      sdisableGlobalContext
      false
      Scode
#$@text#$@
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.TreeItem;

if(actionContext.get("utilBrowser") != null){
    utilBrowser.attach(descBrowser);
}
//初始化关联模板的数据
searchButtonSelection.handleEvent(null);
#$@text#$@
      sdescriptors
      xworker.swt.Widgets/@Code
      sid
      init
      @/@shell/@mainComposite/@mainCompositeStackLayout
      sname
      mainCompositeStackLayout
      stopControl
      listComposite
      slabel
      mainCompositeStackLayout
      sdescriptors
      xworker.swt.Layouts/@StackLayout
      sid
      mainCompositeStackLayout
