Customization > Configurable Links > Configurable Link Tables > Installing or Enabling Configurable Links with New Custom Subtyped Configurable Links Example
Installing or Enabling Configurable Links with New Custom Subtyped Configurable Links Example
* 
The file names shown below can change.
Solution Elements
Element
Type
Description
AcmePartClient-actions.xml
XML
Default system XML file for defining actions in the system.
AcmePartClient-actionmodels.xml
XML
Default system XML file for defining action models or incremental action models in the system.
AcmeConfigurableLink.xml
XML
Loadfile to define Configurable Link types and valid relationships.
loadFileSet.xml
XML
LoadfileSet XML file to load custom link subtype.
acmeConfigurableLinkResource.java
(Provide your own filename)
Java
Defines the labels to provide Uis for custom actions, custom link tables or UI components.
ConfigurableLinkCustomizations-service.properties.xconf
XCONF
Custom service.properties.xconf file to register:
Each newly created action with a common validator.
Each table with the appropriate table views class.
The relationship tables with the Action Command Delegate.
custom.site.xconf
XCONF
Set the required properties to enable Configurable Links example in this file.
AcmeCustomConfigurableLinkTableActionValidator.java
Java
Custom validator to ensure hide/display of new custom action.
AcmeConfigurableLinkTableToolbarActionCommandDelegate.java
Java
Register every Configurable Link table with ConfigurableLinkTableToolbarActionCommandDelegate to make the Configurable Link toolbar actions work.
AcmeConfigurableMastersLinkTableViews.java
Java
Custom table views with your custom Configurable Link tables.
AcmeConfigurableLinkDynamicUrlDelegate.java
Java
To see table titles on your custom Configurable Link tables, register each table with ConfigurableLinkDynamicUrlDelegate.
Modular Structure for Customization
<customizationRootDirectory>
├── configurations
│ ├── deploy.xml
│ ├── loadFiles
│ │ └── custom
│ │ ├── configurableLink
│ │ │ └── AcmeConfigurableLink.xml
│ │ └── loadFileSet.xml
│ └── xconf
│ └── custom.site.xconf
└── module1
├── descriptor.xml
└── main
├── resources
│ └── Acme-actions
│ ├── AcmePartClient-actionmodels.xml
│ └── AcmePartClient-actions.xml
├── src
│ └── com
│ └── acme
│ └── acmeLinks
│ └── customConfigurableLinkResource.java
└── xconf
└── ConfigurableLinkCustomizations-service.properties.xconf
Procedure
To install or enable custom configurable links with new custom subtyped configurable links, follow these steps:
Create a modular structure for Windchill+.
1. Create a AcmeConfigurableLink.xml file in which create MyCustomMastersLink as a subtype of the Configurable Link. In this example, we have subtyped ConfigurableMastersLink.
Create Configurable Link valid relationships in the same file and copy the file to the <customizationRootDirectory>/configurations/loadFiles/custom directory. For example, add configurableLink/AcmeConfigurableLink.xml in the custom directory.
2. First, define the action model by giving it the name "AcmeLinks". The resourceBundle definition after the name is the location of the Java file using annotations that contains the display names.
Example location: customization/module1/main/resources/custom-actions/CustomPartClient-actionmodels.xml.
Example:
<model name="AcmeLinks"> <!-- temp set the resource bundle here in codebase file due to wrong validation -->
<action name="childObjectsTable_customMastersLinkTest" type="object"/> <!--Customized Master Child Objects action-->
<action name="parentObjectsTable_customMastersLinkTest" type="object"/> <!-- Customized Master Parent Objects action-->
</model>

<model name="third_level_nav_part" incremental="">
<submodel name=" AcmeLinks "/>
</model>

<model name="configurable_links_structure_tab_part" > <!—Override Configurable Links Part PSB action model -->
<submodel name=" AcmeLinks "/> <!-- Configurable Link Examples -->
</model>
* 
For more information, see Windchill Action Framework.
3. Define Action Names for the Relationship Tables. For example:
<action name="childObjectsTable_customMastersLinkTest" uicomponent="VIEW_PSB_MASTER_CONF_LINKS_TABLE" resourceBundle="com.acme.customLinks.customConfigurableLinkResource">
<command url="/netmarkets/jsp/object/configurableLinkRoleATable.jsp"/>
<includeFilter name="hideForChangeTemplates"/>
<includeFilter name="hideBasedOnChildMasterProperty"/>
</action>

<action name="parentObjectsTable_customMastersLinkTest" uicomponent="VIEW_PSB_MASTER_CONF_LINKS_TABLE" resourceBundle="com.acme.customLinks.customConfigurableLinkResource">
<command url="/netmarkets/jsp/object/configurableLinkRoleBTable.jsp"/>
<includeFilter name="hideForChangeTemplates"/>
<includeFilter name="hideBasedOnParentMasterProperty"/>
</action>
4. Create a resourcebundle file customConfigurableLinkResource.java at com.acme.customLinks in modular structure for defining localizable entries for actions and tables.
5. Create ConfigurableLinkCustomizations-service.properties.xconf file in module1/main/xconf directory.
In the above xconf file, register the validators, ActionDynamicContentDelegate, ActionCommand, and tableview for the newly created actions. For more information, see Customizing Configurable Link Tables.
6. Add the following entry in the loadFileSet.xml file to load custom link subtype:
<loadFile filename="custom/configurableLink/AcmeConfigurableLink.xml" />
Make sure that the following entry is added in the configurations/deploy.xml file to load the loadfileset:
<loadFileSet>custom/loadFileSet.xml</loadFileSet>
7. Add the following property to the custom.site.xconf file to make the Configurable Links available in Part Structure Browser (PSB):
<Property name="com.ptc.windchill.enterprise.part.psb.showConfigurableLinksTab" value="true" targetFile="codebase/wt.properties"/>
8. To control the display of the Configurable Links tables in the Configurable Links tab, use the following properties for each of the Configurable Link types:
ReferenceLink: com.ptc.windchill.enterprise.part.showReferenceLinksTable
DescribeLink: com.ptc.windchill.enterprise.part.showDescribeLinksTable
RevisionLink: com.ptc.windchill.enterprise.part.showRevisionLinksTable
MasterLink: com.ptc.windchill.enterprise.part.showMasterLinksTable
For example, add the following property to the custom.site.xconf file:
<Property name="com.ptc.windchill.enterprise.part.showReferenceLinksTable" value="All" targetFile="codebase/wt.properties"/>
<Property name="com.ptc.windchill.enterprise.part.showDescribeLinksTable" value="All" targetFile="codebase/wt.properties"/>
<Property name="com.ptc.windchill.enterprise.part.showRevisionLinksTable" value="All" targetFile="codebase/wt.properties"/>
<Property name="com.ptc.windchill.enterprise.part.showMasterLinksTable" value="All" targetFile="codebase/wt.properties"/>
Deploying Customization on Development Environment
For information on the CCD process for deployment, see Deploy Your Customizations on Your Development Environment
Preparing CCD Package for Promotion
For information on the CCD process for promotion, see Deploying Code and Configuration Package.
Was this helpful?