向导中的简单和高级属性面板
这是一个复合示例,可在设置属性步骤中为 Novel 类型的新对象显示四个属性面板。(请注意:此向导为非工作向导,原因在于并未为其定义 FormProcessor)。
面板 1
这是显示以下内容的复合组件:
包含单个属性的简单面板 - 新对象容器的名称
正在创建的对象类型
请注意,如果此对象类型具有子类型,则将在此处显示类型选取器,而不是只读字段
具有组织 Id (仅当首选项“显示” > “展示组织”设置为“是”时才会显示) 输入字段的简单面板
标题为“属性”的高级面板,此内容包含新对象的大部分非驱动属性。此面板基于针对父 WTDocument 类型的屏幕类型“新建” (ScreenDefinitionName.CREATE) 的布局。
当在向导步骤 JSP 中包含文件 <Windchill>/codebase/WEB-INF/jsp/object/defineItemAttributesWizStep.jsp 时,JCA 框架会自动创建此复合面板。该文件为设置属性向导步骤的默认 JSP。如果我们不想在此向导步骤中包含其他面板,则可以在 wizardStep 标记中使用默认操作 "defineItemAttributesWizStep",而不必为向导写入任何 JSP 或 Java 代码。
面板 2
此面板 (标题为“附加属性”) 为高级属性面板,可显示未包括在 Novel 类型的“新建”布局中的 Novel 的两个属性。
此面板由步骤 jsp 中的以下语句创建:
<jsp:include page="${mvc:getComponentURL('carambola.attributePanel.
WizardPanelForEnabledAndDepartment')}"/>
此语句指示 JCA 框架查找具有组件构建器 id "carambola.attributePanel.WizardPanelForEnabledAndDepartment" 的 Java 构建器类。该框架将找到构建器类 EnabledAndDepartmentPanelBuilder,该类将配置面板、获取其数据,并设置将显示面板的 JSP。
关于此构建器的一些注意事项包括:
buildComponentData() 方法会为新的 Novel 对象返回 TypeInstance。如果面板对象为 Windchill 业务对象,则基准对象必须为 TypeInstance,这样才能获取为属性定义的任何约束,并使其可用于数据实用程序。
面板元件类型会设置为 ComponentType.WIZARD_ATTRIBUTES_TABLE。这是所需操作,可创建输入字段的 HTML 名称,以便框架可以在提交向导后标识需要针对对象设置的属性。
有关用于创建属性面板的此方法的详细信息,请参阅解决方案 - 使用在 Java 构建器类中创建的配置创建简单或高级属性面板
面板 3
这是具有特性 "Copyrighted" (不是 Novel 对象类型的属性) 的简单属性面板。如果您想要从用户获取对象属性之外的其他一些信息,则可以使用此方法。请注意,Copyrighted 信息不是对象属性,因此,在提交向导时,将需要使用自定义 FormProcessorFormProcessorDelegate 处理此信息。
此面板由步骤 JSP 中的以下语句创建:
<jsp:include page="${mvc:getComponentURL
('carambola.attributePanel.WizardPanelForCopyrightInfo')}"/>
正如上一示例所示,此语句会告知 JCA 框架调用 MVC Java 构建器类,在这种情况下,该类为类 CopyrightAttributePanelBuilder。关于此示例构建器的一些注意事项包括:
在这种情况下,我们不会将面板的组件类型设置为 ComponentType.WIZARD_ATTRIBUTES_TABLE,原因在于我们不希望框架为输入字段创建 HTML 名称,以使框架表单处理器尝试将字段的值设置为对象的属性。我们希望 HTML 名称有助于自定义表单处理器找到表单数据中的特性值,并对其进行处理。在这种情况下,值将具有键 "copyrighted",即在 buildComponentData() 方法中设置的列名称。
我们在面板配置中将视图设置为 "components/simpleAttributePanel.jsp",原因在于我们不希望面板或其他高级功能周围存在边框。
构建器的 buildComponentData() 方法会返回 HashMap,以将其作为将传递给数据实用程序的基准。键为字符串 "copyrighted",值为 BooleanInputComponent。我们需要创建输入组件,原因在于 DefaultDataUtility 不了解想要显示的特性类型,也无法确定应使用哪种类型特定的数据实用程序。或者,我们可以为此特性创建和注册数据实用程序。
有关用于创建属性面板的此方法的详细信息,请参阅解决方案 - 使用在 Java 构建器类中创建的配置创建简单或高级属性面板
面板 4
这是一个简单属性面板,其中包含面板对象类型的一个属性。在这种情况下,面板使用向导步骤 JSP 中的 JSP 标记创建。
有关用于创建属性面板的此方法的详细信息,请参阅解决方案 - 使用 JSP 标记创建简单面板
此示例使用的操作模型
此示例使用的操作
操作名称
对象类型名称
文件
wizardWithAttributePanels
attributePanel
\config\actions\Carambola-actions.xml
defineItemAttributesWizStepForAttrPanelWizard
Novel
\config\actions\Carambola-actions.xml
此示例使用的文件
源文件
说明
codebase\netmarkets\jsp\carambola\customization\examples\attributePanel\wizardWithAttributePanels.jsp
主向导 JSP
\com\ptc\mvc\builders\carambola\attributePanel\DefineItemAttributesWizStepBuilderForAttrPanelWizard
向导步骤的构建器
codebase\WEB-INF\jsp\carambola\attributePanel\defineItemAttributesWizStepForAttrPanelWizard.jsp
向导步骤的 JSP
com\ptc\mvc\builders\carambola\attributePanel\EnabledAndDepartmentPanelBuilder.java
其他属性面板的构建器
com\ptc\mvc\builders\carambola\attributePanel\CopyrightAttributePanelBuilder.java
Copyrighted 面板的构建器
codebase\config\actions\Carambola-actions.xml
包含示例的操作
com\ptc\carambola\customization\examples\attributePanel\AttributePanelExampleResource.java
示例的 UI 文本
这对您有帮助吗?