Advanced Customization > Business Logic Customization > Customizing the Product Structure Explorer (PSE) > Allow Additional Steps During New Object Creation
  
Allow Additional Steps During New Object Creation
The PSE create wizards are defined in ExplorerForTablesAndPanels.xml. The "create new object" wizard is defined by the WizardList segment with the id of ptc.wnc.exp.CreateWizardList and the "insert new child" wizard is defined by the WizardList segment with the id of ptc.wnc.exp.CreateChildWizardList.
It is recommended that you customize these wizards in separate xml files rather than editing ExplorerForTablesAndPanels.xml. The current steps allowed in the WizardList are AttributeGroup and AttributeTable.
To add a new AttributeGroup or AttributeTable redefine the WizardList in your customization file and include your new steps along with placements segments. For example:
<WizardList id="ptc.wnc.exp.CreateChildWizardList">
<AttributeGroup id="ptc.custom.exp.CustomCreatePartTab2A">
<Placement insertKey="after"
insertId="ptc.wnc.exp.CreateChildPartTab2"/>
<CellDefinition id="endItem">
<AttributeDefinition attributeId="endItem"/>
</CellDefinition>
</AttributeGroup>
<WizardList>
The first line duplicates the id of the WizardList you want to modify. The second line shows the addition of a new AttributeGroup inline, it could also be defined in another place then imported here similar to the original WizardList definition. The Placement segment indicates that your new AttributeGroup is to be shown after CreateChildPartTab2.
You can also remove an AttributeGroup or AttributeTable from the original WizardList that you don't want to use. For example, the following xml removes the last step of the wizard (the AttributeTable that shows all the reusable attributes):
<WizardList id="ptc.wnc.exp.CreateChildWizardList">
<AttributeTable id="ptc.wnc.exp.CreatePartTab3">
<Placement remove="true"/>
</AttributeTable>
</WizartList>
The ExplorerForTablesAndPanels.xml contains many good examples of how to create AttributeGroups or AttributeTables. Within either of these segments, define the list of CellDefinitions for each attribute you want to show.
You could also redefine the existing AttributeGroups or AttributeTables and add or remove Celldefinitions using Placement segments. For example:
<AttributeGroup id="ptc.wnc.exp.CreatePartTab2">
<CellDefinition id="partType">
<AttributeDefinition attributeId="partType"/>
<Placement insertKey="before" insertId="endItem"/>
</CellDefinition>
<CellDefinition id="genericType">
<AttributeDefinition attributeId=" genericType"/>
<Placement remove="true"/>
</CellDefinition>
</AttributeGroup>
This example takes the existing AttributeGroup defined for the CreatePartTab2 step and adds the partType attribute before the endItem and removes the genericType attribute. Note that CreatePartTab2 is imported into both the CreateWizardList and the CreateChildWizardList so you will be modifying both wizards.