^1700618616103
@
sname
ThingForm
slabel
ThingForm
sdescriptors
xworker.lang.MetaDescriptor3
sextends
xworker.swt.layout.LayoutDatas
smany
true
seditCols
2
sinitialization
false
smodifier
public
sinheritDescription
false
sicon
icons/application_form.png
Sdescription
#$@text#$@
<p><strong>模型表单</strong></p>

<p>&nbsp;&nbsp;&nbsp; 通过描述者创建输入表单，规则同XWorker编辑器表单以及DataObject的表单。</p>

<p><strong>变量上下文和相关变量</strong></p>

<p>&nbsp;&nbsp;&nbsp; 模型表单会创建独立的变量上下文，表单中的属性控件都在新的变量上下文中。</p>

<p>&nbsp;&nbsp;&nbsp; 模型表单创建完毕后返回的是主Composite，当前变量上下文中保存的变量为表单模型（Thing），可以通过表单模型（Thing）对表单进行操作。</p>

<p><strong>模型表单保存的数据</strong></p>

<pre>
Thing form = new Thing(&quot;xworker.swt.xworker.ThingForm&quot;); 
form.setData(&quot;formThing&quot;, self);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //原始表单模型
form.setData(&quot;parent&quot;, composite);&nbsp;&nbsp;&nbsp; //主Composite，表单的主容器
form.setData(&quot;actionContext&quot;, ac);&nbsp;&nbsp;&nbsp;&nbsp; //新的变量上下文，表单自己的变量上下文</pre>

<p><strong>表单的主要方法</strong></p>

<ul>
	<li><strong>void setDescriptor（Thing descriptor）</strong><br />
	设置新的描述者并重新布局表单。<br />
	&nbsp;</li>
	<li><strong>void setThing（Thing thing）</strong><br />
	设置新的要编辑的模型，根据模型自动生成表单以及对表单填充模型本身的数据。<br />
	&nbsp;</li>
	<li><strong>void setValues（Object values)</strong><br />
	对表单赋值，values可以是Map&lt;String, Object&gt;也可以是其它对象，通过Ognl取属性的值。<br />
	&nbsp;</li>
	<li><strong>void setPartialValues（Object values）</strong><br />
	对表单的部分属性赋值，参数是Map&lt;String, Object&gt;类型。<br />
	&nbsp;</li>
	<li><strong>Map&lt;String, Object&gt; getValues()</strong><br />
	获取表单的值，返回类型是Map&lt;String, Object&gt;。<br />
	&nbsp;</li>
	<li><strong>boolean validate()</strong><br />
	对表单进行校验，返回true/false。<br />
	&nbsp;</li>
	<li><strong>void setVariablesActionContext(ActionContext variablesActionContext)</strong><br />
	设置代码编辑器辅助工具要显示变量类型时需要的变量上下文。<br />
	&nbsp;</li>
	<li><strong>Thing getFormThing()</strong><br />
	根据当前的表单创建一个新的模型并返回，其中描述者使用表单的表述者，值时当前表单的值。</li>
</ul>

<p><strong>可以实现的监听方法</strong></p>

<ul>
	<li><strong>void modified(Event event)</strong><br />
	如果表单发生了修改。<br />
	&nbsp;</li>
	<li><strong>void defaultSelection(Event event)</strong><br />
	默认选择事件。</li>
</ul>

<p><strong>可以重写的方法</strong></p>

<ul>
	<li><strong>Thing getThing()</strong><br />
	返回要编辑的模型。</li>
</ul>

<p><strong>校验和内部变更事件</strong></p>

<p>&nbsp;&nbsp;&nbsp;&nbsp; 数据对象表单使用了和模型编辑器底层相同的表单实现。要查看底层表单的文档，可以打开帮助小精灵，然后鼠标点击模型编辑器中的模型概要树，在帮助小精灵中查看模型编辑器中表单相关的内容。</p>

<p>&nbsp;</p>
#$@text#$@
snotXmlAttribute
false
sjson_isArray
false
sjson_attribute
false
Sen_description
#$@text#$@
<p><strong>thing form</strong></p>

<p>The input form is created by the descriptor, and the rules are the same as the XWorker editor form and the DataObject form. </p>

<p>For related documents of the thing form, please refer to <a href="do?sc=xworker.orgweb.ModuleWeb/@index&amp;menuPath=xworker.orgweb.toturial.ToturialModule/@examples/@descriptor">thing form</a> , Or <a href="http://www.xworker.org/do?sc=xworker.orgweb.ModuleWeb/@index&amp;menuPath=xworker.orgweb.toturial.ToturialModule/@examples/@descriptor">XWorker website< /a>. </p>

<p><strong>Variable context and related variables</strong></p>

<p>The thing form will create an independent variable context. The attribute controls in the form are all in the new variable context. For the variables in the variable context of the form itself, please refer to <a href="do?sc=xworker.orgweb.ModuleWeb /@index&amp;menuPath=xworker.orgweb.toturial.ToturialModule/@examples/@descriptor">thing form</a>, or <a href="http://www.xworker.org/do?sc=xworker. orgweb.ModuleWeb/@index&amp;menuPath=xworker.orgweb.toturial.ToturialModule/@examples/@descriptor">XWorker website</a>. </p>

<p>After the thing form is created, the main Composite is returned. The variables saved in the current variable context are form things (Thing), and the form can be manipulated through the form things (Thing). </p>

<p><strong>Data saved in the thing form</strong></p>

<pre>
Thing form = new Thing(&quot;xworker.swt.xworker.ThingForm&quot;);
form.setData(&quot;formThing&quot;, self);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Original form things
form.setData(&quot;parent&quot;, composite);&nbsp;&nbsp;&nbsp; //Main Composite, the main container of the form
form.setData(&quot;actionContext&quot;, ac);&nbsp;&nbsp;&nbsp;&nbsp; //New variable context, form's own variable context</pre>

<p><strong>Main method of form</strong></p>

<ul>
<li><strong>void setDescriptor(Thing descriptor)</strong><br />
Set up a new descriptor and re-layout the form. <br />
&nbsp;</li>
<li><strong>void setThing(Thing thing)</strong><br />
Set up a new thing to be edited, automatically generate a form based on the thing, and fill the form with the data of the thing itself. <br />
&nbsp;</li>
<li><strong>void setValues(Object values)</strong><br />
For form assignment, values ​​can be Map&lt;String, Object&gt; or other objects, and the value of the attribute can be obtained through Ognl. <br />
&nbsp;</li>
<li><strong>void setPartialValues(Object values)</strong><br />
Assign values ​​to some attributes of the form, and the parameters are of type Map&lt;String, Object&gt;. <br />
&nbsp;</li>
<li><strong>Map&lt;String, Object&gt; getValues()</strong><br />
Get the value of the form, the return type is Map&lt;String, Object&gt;. <br />
&nbsp;</li>
<li><strong>boolean validate()</strong><br />
Check the form and return true/false. <br />
&nbsp;</li>
<li><strong>void setVariablesActionContext(ActionContext variablesActionContext)</strong><br />
Set the variable context required for the code editor auxiliary tool to display the variable type. <br />
&nbsp;</li>
<li><strong>Thing getFormThing()</strong><br />
Create a new thing based on the current form and return it, where the descriptor uses the form's presenter, and the value is the value of the current form. </li>
</ul>

<p><strong>Monitoring methods that can be implemented</strong></p>

<ul>
<li><strong>void modified(Event event)</strong><br />
If the form is modified. <br />
&nbsp;</li>
<li><strong>void defaultSelection(Event event)</strong><br />
The event is selected by default. </li>
</ul>

<p><strong>Methods that can be overridden</strong></p>

<ul>
<li><strong>Thing getThing()</strong><br />
Return to the thing to be edited. </li>
</ul>

<p>&nbsp;</p>
#$@text#$@
  @/@actions
  sname
  actions
  slabel
  actions
  sdescriptors
  xworker.lang.MetaDescriptor3/@actions
  sid
  actions
    @/@actions/@create
    sname
    create
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    create
    sdisableGlobalContext
    false
    sdescriptors
    xworker.lang.actions.JavaAction
    sid
    create
    @/@actions/@setDescriptor
    sname
    setDescriptor
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    setDescriptor
    sdisableGlobalContext
    false
    sdescriptors
    xworker.lang.actions.JavaAction
    sid
    setDescriptor
      @/@actions/@setDescriptor/@ins
      sisValidate
      false
      sname
      ins
      slabel
      ins
      sdescriptors
      xworker.lang.actions.Inout/@ins
      sid
      ins
        @/@actions/@setDescriptor/@ins/@dataObject
        sname
        descriptor
        stype
        org.xmeta.Thing
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@ins/@param
        sid
        dataObject
    @/@actions/@setDataObject
    sname
    setThing
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    setThing
    sdisableGlobalContext
    false
    sdescription
    <p>设置数据对象，可以是数据对象或者数据对象的结构。</p>
    sdescriptors
    xworker.lang.actions.JavaAction
    sen_description
    <p>Set the data object, which can be a data object or the structure of a data object. </p>
    sid
    setDataObject
      @/@actions/@setDataObject/@ins
      sisValidate
      false
      sname
      ins
      slabel
      ins
      sdescriptors
      xworker.lang.actions.Inout/@ins
      sid
      ins
        @/@actions/@setDataObject/@ins/@dataObject
        sname
        thing
        stype
        org.xmeta.Thing
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@ins/@param
        sid
        dataObject
    @/@actions/@setValues
    sname
    setValues
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    setValues
    sdisableGlobalContext
    false
    sdescription
    <p>设置表单的数据。</p>
    sdescriptors
    xworker.lang.actions.JavaAction
    sen_description
    <p>Set the data of the form. </p>
    sid
    setValues
      @/@actions/@setValues/@ins
      sisValidate
      false
      sname
      ins
      slabel
      ins
      sdescriptors
      xworker.lang.actions.Inout/@ins
      sid
      ins
        @/@actions/@setValues/@ins/@dataObject
        sname
        values
        stype
        Map<String, Object>
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@ins/@param
        sid
        dataObject
    @/@actions/@setPartialValues
    sname
    setPartialValues
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    setPartialValues
    sdisableGlobalContext
    false
    sdescription
    <p>设置表单的部分数据。</p>
    sdescriptors
    xworker.lang.actions.JavaAction
    sen_description
    <p>Set some data of the form. </p>
    sid
    setPartialValues
      @/@actions/@setPartialValues/@ins
      sisValidate
      false
      sname
      ins
      slabel
      ins
      sdescriptors
      xworker.lang.actions.Inout/@ins
      sid
      ins
        @/@actions/@setPartialValues/@ins/@dataObject
        sname
        values
        stype
        Map<String, Object>
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@ins/@param
        sid
        dataObject
    @/@actions/@getValues
    sname
    getValues
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    getValues
    sdisableGlobalContext
    false
    sdescription
    <p>获得表单数据。返回的是Map格式的数据。</p>
    sdescriptors
    xworker.lang.actions.JavaAction
    sen_description
    <p>Get form data. What is returned is the data in Map format. </p>
    sid
    getValues
      @/@actions/@getValues/@outs
      sisValidate
      false
      sname
      outs
      sdescriptors
      xworker.lang.actions.Inout/@out
      sinheritDescription
      false
      sth_createIndex
      false
      sth_registMyChilds
      false
      sth_registDisabled
      false
      sth_mark
      false
      sid
      outs
        @/@actions/@getValues/@outs/@param
        sname
        param
        stype
        Map<String, Object>
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@out/@param
        sinheritDescription
        false
        sth_createIndex
        false
        sth_registMyChilds
        false
        sth_registDisabled
        false
        sth_mark
        false
        sid
        param
    @/@actions/@validate
    sname
    validate
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    validate
    sdisableGlobalContext
    false
    sdescriptors
    xworker.lang.actions.JavaAction
    sid
    validate
      @/@actions/@validate/@outs
      sisValidate
      false
      sname
      outs
      sdescriptors
      xworker.lang.actions.Inout/@out
      sinheritDescription
      false
      sth_createIndex
      false
      sth_registMyChilds
      false
      sth_registDisabled
      false
      sth_mark
      false
      sid
      outs
        @/@actions/@validate/@outs/@param
        sname
        param
        stype
        Boolean
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@out/@param
        sinheritDescription
        false
        sth_createIndex
        false
        sth_registMyChilds
        false
        sth_registDisabled
        false
        sth_mark
        false
        sid
        param
    @/@actions/@setFocus
    sname
    setFocus
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    suseInnerJava
    false
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    setFocus
    sdisableGlobalContext
    false
    sattributeTemplate
    false
    sinterpretationType
    Action
    svarScope
    Global
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.Actions/@JavaAction
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    setFocus
    @/@actions/@getThing
    sname
    getThing
    sattributeName
    thing
    schildThingFirstChild
    false
    sreturnSelf
    false
    snotNull
    false
    sinterpretationType
    Self
    sattributeTemplate
    false
    schildsAttributeTemplate
    false
    svarScope
    Local
    sisSynchronized
    false
    sthrowException
    true
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdisableGlobalContext
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.ActionUtil/@getThing
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    getThing
    @/@actions/@getInput
    sname
    getInput
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    svarScope
    Local
    sdisableGlobalContext
    false
    Scode
#$@text#$@
def formContext = self.getData("formContext");
return formContext.get(name + "Input");
#$@text#$@
    sinterpretationType
    Action
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.Actions/@GroovyAction
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    getInput
      @/@actions/@getInput/@ins
      sisValidate
      false
      sname
      ins
      sdescriptors
      xworker.lang.actions.Inout/@ins
      sinheritDescription
      false
      sth_createIndex
      false
      sth_registMyChilds
      false
      sth_registDisabled
      false
      sth_mark
      false
      sid
      ins
        @/@actions/@getInput/@ins/@name
        sname
        name
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescription
        <p>输入控件的名称。</p>
        sdescriptors
        xworker.lang.actions.Inout/@ins/@param
        sinheritDescription
        false
        sth_createIndex
        false
        sth_registMyChilds
        false
        sth_registDisabled
        false
        sen_description
        <p>Enter the name of the control. </p>
        sth_mark
        false
        sid
        name
    @/@actions/@getFormContext
    sname
    getFormContext
    sexpression
    self.getData("formContext")
    sinterpretationType
    Self
    sattributeTemplate
    false
    schildsAttributeTemplate
    false
    svarScope
    Local
    sisSynchronized
    false
    sthrowException
    true
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdisableGlobalContext
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.Actions/@Ongl
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    getFormContext
    @/@actions/@getVariablesActionContext
    sname
    getVariablesActionContext
    sattributeName
    variablesActionContext
    sclassName
    org.xmeta.ActionContext
    snotNull
    false
    sinterpretationType
    Self
    sattributeTemplate
    false
    schildsAttributeTemplate
    false
    svarScope
    Local
    sisSynchronized
    false
    sthrowException
    true
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdisableGlobalContext
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.ActionUtil/@GetObjectByClass
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    getVariablesActionContext
    @/@actions/@setVariablesActionContext
    sname
    setVariablesActionContext
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    svarScope
    Local
    sdisableGlobalContext
    false
    Scode
#$@text#$@
def formContext = self.getData("formContext");
formContext.g().put("variablesActionContext", actionContext.get("variablesActionContext"));
#$@text#$@
    sinterpretationType
    Action
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.Actions/@GroovyAction
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    setVariablesActionContext
      @/@actions/@setVariablesActionContext/@ins
      sisValidate
      false
      sname
      ins
      sdescriptors
      xworker.lang.actions.Inout/@ins
      sinheritDescription
      false
      sth_createIndex
      false
      sth_registMyChilds
      false
      sth_registDisabled
      false
      sth_mark
      false
      sid
      ins
        @/@actions/@setVariablesActionContext/@ins/@variablesActionContext
        sname
        variablesActionContext
        stypeCheck
        false
        soptional
        true
        scheck
        false
        scheckLevel
        exception
        sdescriptors
        xworker.lang.actions.Inout/@ins/@param
        sinheritDescription
        false
        sth_createIndex
        false
        sth_registMyChilds
        false
        sth_registDisabled
        false
        sth_mark
        false
        sid
        variablesActionContext
    @/@actions/@getFormThing
    sname
    getFormThing
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    suseOuterJava
    true
    suseInnerJava
    false
    souterClassName
    xworker.swt.xworker.ThingFormCreator
    smethodName
    getFormThing
    sdisableGlobalContext
    false
    sattributeTemplate
    false
    sinterpretationType
    Action
    svarScope
    Global
    screateLocalVarScope
    false
    ssaveReturn
    false
    sdebugLog
    false
    sdescriptors
    xworker.lang.actions.Actions/@JavaAction
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    getFormThing
    @/@actions/@7837
    sname
    getInitialValues
    sattributeName
    initialValues
    sinterpretationType
    Self
    sattributeTemplate
    false
    schildsAttributeTemplate
    false
    svarScope
    Local
    sisSynchronized
    false
    sthrowException
    true
    suseOtherAction
    false
    screateLocalVarScope
    false
    ssaveReturn
    false
    sswitchResult
    false
    sdisableGlobalContext
    false
    sdebugLog
    false
    susage
    params
    sdescriptors
    xworker.lang.actions.ActionUtil/@GetData1
    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
    sgroupDescriptor
    false
    sid
    7837
  @/@name
  sname
  name
  slabel
  名称
  sinheritDescription
  false
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  sen_label
  name
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_mark
  false
  sid
  name
  @/@label
  sname
  label
  slabel
  标签
  sinheritDescription
  false
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  sen_label
  label
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_mark
  false
  sid
  label
  @/@thing
  sname
  thing
  slabel
  模型
  sinputtype
  dataSelector
  ssize
  60
  scolspan
  2
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sinheritDescription
  false
  sdescription
  <p>如果不为空那么表单打开后就编辑此模型。</p>
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sen_label
  thing
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sen_description
  <p>If it is not empty, edit this item after the form is opened. </p>
  sth_mark
  false
  sid
  thing
  @/@descriptorThing
  sname
  descriptorThing
  slabel
  描述者
  ssize
  60
  scolspan
  2
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sinheritDescription
  false
  sdescription
  <p>如果模型属性为空，那么可用此模型作为用于创建表单界面的描述者，其中表单数据为默认。</p>
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sen_label
  descriptorThing
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sen_description
  <p>If the thing attribute is empty, then this thing can be used as the descriptor used to create the form interface, and the form data is the default. </p>
  sth_mark
  false
  sid
  descriptorThing
  @/@column
  sname
  column
  slabel
  编辑列数
  sshowLabel
  true
  sreadOnly
  false
  sdefault
  -1
  sinheritDescription
  false
  sdescription
  <p>-1或小于1均为默认。</p>
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  sen_label
  column
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sen_description
  <p>-1 or less than 1 is the default. </p>
  sth_mark
  false
  sid
  column
  @/@baseParams
  sname
  baseParams
  slabel
  基础参数
  scolspan
  2
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  private
  sreadOnly
  false
  sinheritDescription
  false
  Sdescription
#$@text#$@
<p>BaseParams为表单中的下拉列表等的DataStore提供初始参数，必须是Map类型。</p>
<p>当表单中的控件联动时，基础参数中的字段会被表单中相同字段覆盖。</p>
#$@text#$@
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sen_label
  baseParams
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  Sen_description
#$@text#$@
<p>BaseParams provides initial parameters for the DataStore such as the drop-down list in the form, and must be of the Map type. </p>
<p>When the controls in the form are linked, the fields in the basic parameters will be covered by the same fields in the form. </p>
#$@text#$@
  sth_mark
  false
  sid
  baseParams
  @/@validateType
  sname
  validateType
  slabel
  校验方式
  sinputtype
  select
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  all
  sinheritDescription
  false
  Sdescription
#$@text#$@
<p>校验方式，校验时针对每一个属性的，是指遇到一个属性校验失败时操作方式。</p>

<ul>
	<li><strong>once（一次）</strong><br />
	如果有一个校验失败，那么就终止校验。<br />
	&nbsp;</li>
	<li><strong>all（所有）</strong><br />
	校验所有属性，不管有几个校验失败的。&nbsp;</li>
</ul>

<p>&nbsp;</p>
#$@text#$@
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sen_label
  validateType
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_noThingRegistViewer
  false
  sth_fileMonitor
  false
  sth_deprecated
  false
  sth_mark
  false
  sth_registQueryOnlySelf
  false
  sjson_isArray
  false
  sgroupDescriptor
  false
  sid
  validateType
    @/@validateType/@once
    sname
    once
    svalue
    once
    sdescriptors
    xworker.lang.MetaDescriptor3/@attribute/@value
    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
    sgroupDescriptor
    false
    sid
    once
    @/@validateType/@all
    sname
    all
    svalue
    all
    sdescriptors
    xworker.lang.MetaDescriptor3/@attribute/@value
    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
    sgroupDescriptor
    false
    sid
    all
  @/@variablesActionContext
  sname
  variablesActionContext
  ssize
  40
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sinheritDescription
  false
  Sdescription
#$@text#$@
<p>代码提示用。</p>

<p>从变量上下文中寻找变量对应的对象，如果对应的Java对象存在，从而提供相应的提示。</p>
#$@text#$@
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_mark
  false
  sid
  variablesActionContext
  @/@composite
  sname
  thingComposite
  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
  composite
    @/@composite/@thingCompositeFillLayout
    sname
    thingCompositeFillLayout
    stype
    SWT.HORIZONTAL
    slabel
    thingCompositeFillLayout
    sdescriptors
    xworker.swt.Layouts/@FillLayout
    sid
    thingCompositeFillLayout
    @/@composite/@interactiveUI
    sname
    interactiveUI
    slabel
    事物表单
    sregistType
    command
    sen_label
    Thing Form
    sdescriptors
    xworker.swt.Widgets/@InteractiveUI
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    interactiveUI
      @/@composite/@interactiveUI/@actions
      sname
      actions
      sdescriptors
      xworker.swt.xwidgets.InteractiveUI/@actions1
      sinheritDescription
      false
      sth_createIndex
      false
      sth_registMyChilds
      false
      sth_registDisabled
      false
      sth_mark
      false
      sid
      actions
        @/@composite/@interactiveUI/@actions/@getRegistThing
        sname
        getRegistThing
        sisSynchronized
        false
        sthrowException
        true
        suseOtherAction
        false
        svarScope
        Local
        sdisableGlobalContext
        false
        Scode
#$@text#$@
import org.xmeta.Thing;

if(actionContext.get("thing") != null){
    def path = thing.getMetadata().getPath();
    def rthing = new Thing();
    def thingPath = thing.getMetadata().getPath();
    rthing.set("descriptors", thing.getString("descriptors"));
    //默认不查询描述者，所以放到继承里
    def descs = thing.getStringBlankAsNull("descriptors");
    def exts = path + ",xworker.swt.xworker.ThingFormCommandIndex";
    if(descs != null){
        exts = exts + "," + descs;
    }
    rthing.set("extends", exts);
    rthing.set("label", thing.getMetadata().getLabel() + ":");
    rthing.set("thingPath", thingPath);
    def description = rthing.getDescriptor().getMetadata().getDescription();
    //println(description);
    rthing.set("description", description);
    rthing.setData("realThing", thing);
    return rthing;
}else{
    def rthing = new Thing();
    def idxThing = world.getThing("xworker.swt.xworker.ThingFormCommandIndex");
    rthing.set("extends", "xworker.swt.xworker.ThingFormCommandIndex");
    rthing.set("inheritDescription", "true");
    rthing.set("label", idxThing.getMetadata().getLabel());
    return rthing;
}
#$@text#$@
        sinterpretationType
        Action
        screateLocalVarScope
        false
        ssaveReturn
        false
        sdebugLog
        false
        sdescriptors
        xworker.lang.actions.Actions/@GroovyAction
        sinheritDescription
        false
        sth_createIndex
        false
        sth_registMyChilds
        false
        sth_registDisabled
        false
        sth_mark
        false
        sid
        getRegistThing
    @/@composite/@actions
    sname
    actions
    sdescriptors
    xworker.swt.Widgets/@actions
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_mark
    false
    sid
    actions
      @/@composite/@actions/@modify
      sname
      modify
      sisSynchronized
      false
      sthrowException
      true
      suseOtherAction
      false
      suseOuterJava
      true
      suseInnerJava
      false
      souterClassName
      xworker.swt.xworker.ThingFormCreator
      smethodName
      modify
      sdisableGlobalContext
      false
      sattributeTemplate
      false
      sinterpretationType
      Action
      svarScope
      Global
      screateLocalVarScope
      false
      ssaveReturn
      false
      sdebugLog
      false
      sdescriptors
      xworker.lang.actions.Actions/@JavaAction
      sinheritDescription
      false
      sth_createIndex
      false
      sth_registMyChilds
      false
      sth_registDisabled
      false
      sth_mark
      false
      sid
      modify
  @/@H_SCROLL
  sname
  H_SCROLL
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  true
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  H_SCROLL
  @/@V_SCROLL
  sname
  V_SCROLL
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  true
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  V_SCROLL
  @/@NO_BACKGROUND
  sname
  NO_BACKGROUND
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  NO_BACKGROUND
  @/@NO_FOCUS
  sname
  NO_FOCUS
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  NO_FOCUS
  @/@NO_MERGE_PAINTS
  sname
  NO_MERGE_PAINTS
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  NO_MERGE_PAINTS
  @/@NO_REDRAW_RESIZE
  sname
  NO_REDRAW_RESIZE
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  NO_REDRAW_RESIZE
  @/@O_RADIO_GROUP
  sname
  NO_RADIO_GROUP
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  O_RADIO_GROUP
  @/@EMBEDDED
  sname
  EMBEDDED
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  EMBEDDED
  @/@DOUBLE_BUFFERED
  sname
  DOUBLE_BUFFERED
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  false
  LallowDecimals
  false
  LallowNegative
  false
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sid
  DOUBLE_BUFFERED
  @/@BORDER
  sname
  BORDER
  sinputtype
  truefalse
  sgroup
  Composite
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sdefault
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_fileMonitor
  false
  sth_mark
  false
  sth_registQueryOnlySelf
  false
  sid
  BORDER
  @/@Thing
  sname
  Thing
  slabel
  模型
  sdescriptors
  xworker.lang.MetaDescriptor3/@thing
  sextends
  xworker.lang.MetaDescriptor3
  smany
  true
  seditCols
  2
  sinitialization
  false
  smodifier
  public
  sinheritDescription
  false
  sdescription
  <p>如果属性描述事物为空，那么可以用此子模型作为创建表单的描述者。</p>
  snotXmlAttribute
  false
  sjson_isArray
  false
  sjson_attribute
  false
  sen_label
  Thing
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sen_description
  <p>If the attribute description thing is empty, then this child thing can be used as the descriptor of the creation form. </p>
  sth_mark
  false
  sid
  Thing
  @/@actions1
  sname
  actions
  slabel
  Actions
  sdescriptors
  xworker.lang.MetaDescriptor2/@thing
  sextends
  xworker.lang.actions.Actions
  smany
  true
  seditCols
  2
  Sdescription
#$@text#$@
<p><strong>动作集合</strong></p>

<p>&nbsp;&nbsp;&nbsp; 通过动作可以定义事物的行为，事物的行为即动作，可以用多种语言和方式编写。</p>

<p><strong>self变量</strong></p>

<p>&nbsp;&nbsp;&nbsp; 当一个动作作为一个事物的行为执行时，会把该事物以self变量传给动作。</p>

<p><strong>第一个动作集合生效</strong></p>

<p>&nbsp;&nbsp;&nbsp; 只有事物的第一个actions子节点才被认为是行为的定义集合，第二个及以后不算。</p>
#$@text#$@
  szh_label
  动作
  sinheritDescription
  false
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  Sen_description
#$@text#$@
<p><strong>Actions</strong></p>

<p>&nbsp;&nbsp;&nbsp; Use actions can define behaviors of the&nbsp;thing. Behavior is action, can be defined by many program languages or other things.</p>

<p><strong>Variable self</strong></p>

<p>&nbsp;&nbsp;&nbsp; When a action is executed as a behavior, in the actionContext will have a virable named &#39;self&#39;, self like this in java, self is it&#39;s onwer thing.</p>

<p><strong>First actions is validate</strong></p>

<p>&nbsp;&nbsp;&nbsp; Only first actions node is behaviros collections.</p>
#$@text#$@
  sth_mark
  false
  sid
  actions1
    @/@actions1/@name
    sname
    name
    sdescriptors
    xworker.lang.MetaDescriptor2/@attribute
    sid
    name
  @/@VariablesDescs
  sname
  VariablesDescs
  sdescriptors
  xworker.lang.MetaThing/@VariablesDesc
  sinheritDescription
  false
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_fileMonitor
  false
  sth_mark
  false
  sid
  VariablesDescs
    @/@VariablesDescs/@var
    sname
    var
    svarName
    ognl:thing.getMetadata().getName()
    stype
    thing
    sthing
    var:thing
    sdescriptors
    xworker.lang.MetaThing/@VariablesDesc/@Object
    sinheritDescription
    false
    sth_createIndex
    false
    sth_registMyChilds
    false
    sth_registDisabled
    false
    sth_fileMonitor
    false
    sth_mark
    false
    sid
    var
  @/@values
  sname
  initialValues
  sinputtype
  textarea
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sinheritDescription
  false
  Sdescription
#$@text#$@
<p>表单的初始值。</p>

<p>如果设置了，在创建表单后设置表单的值。</p>
#$@text#$@
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_noThingRegistViewer
  false
  sth_fileMonitor
  false
  sth_mark
  false
  sth_registQueryOnlySelf
  false
  sjson_isArray
  false
  sgroupDescriptor
  false
  sid
  values
  @/@description
  sname
  description
  sinputtype
  html
  sshowLabel
  true
  slabelAlign
  right
  slabelVAlign
  baseline
  smodifier
  public
  sreadOnly
  false
  sinheritDescription
  false
  svalidateAllowBlank
  true
  LvalidateOnBlur
  true
  LallowDecimals
  true
  LallowNegative
  true
  snotXmlAttribute
  false
  sxmlJsonIncludeDefault
  false
  sdescriptors
  xworker.lang.MetaDescriptor3/@attribute
  sth_createIndex
  false
  sth_registMyChilds
  false
  sth_registDisabled
  false
  sth_noThingRegistViewer
  false
  sth_fileMonitor
  false
  sth_mark
  false
  sth_registQueryOnlySelf
  false
  sjson_isArray
  false
  sgroupDescriptor
  false
  sid
  description
