<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE hierarchy-config PUBLIC "-//Appian Corporation//DTD Hierarchy Configuration //EN" "/com/appiancorp/asi/components/hierarchy/internal/hierarchy-config.dtd">

<hierarchy-config>
  <dynamic-node-builders>
      <builder name="PaletteBuilder" type="com.appiancorp.process.common.presentation.PaletteBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
      <builder name="PaletteBaseBuilder" type="com.appiancorp.process.common.presentation.PaletteBaseBuilder">
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
      <builder name="UDDIHomeBuilder" type="com.appiancorp.process.webservices.asi.UDDIHomeBuilder"/>
      <builder name="UDDIRegistryBuilder" type="com.appiancorp.process.webservices.asi.UDDIRegistryBuilder"/>
      <builder name="BusinessEntityBuilder" type="com.appiancorp.process.webservices.asi.BusinessEntityBuilder"/>
      <builder name="ProcessModelFolderBuilder" type="com.appiancorp.process.common.presentation.ProcessModelFolderBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
      <builder name="PaletteItemBuilder" type="com.appiancorp.process.common.presentation.PaletteItemBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
      <builder name="ProcessModelBuilder" type="com.appiancorp.process.common.presentation.ProcessModelBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
      <builder name="ProcessModelFolderOnlyBuilder" type="com.appiancorp.process.common.presentation.ProcessModelFolderBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
        <config-param name="foldersOnly" value="true"/>
      </builder>
      <builder name="EPExPaletteBuilder" type="com.appiancorp.process.common.presentation.EPExPaletteBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
      <builder name="EPExPaletteItemBuilder" type="com.appiancorp.process.common.presentation.EPExPaletteItemBuilder">
        <config-param name="services-current-node" value="process-design-service"/>
        <config-param name="services-child-nodes" value="process-design-service"/>
      </builder>
  </dynamic-node-builders>

  <dynamic-node-types>
    <node-type name="palette">
      <class type="com.appiancorp.suiteapi.process.Palette"/>
      <icon alt="Palette">/process/designer/img/smartnodes/palette/category.gif</icon>
    </node-type>
    <node-type name="palette_modern">
      <class type="com.appiancorp.suiteapi.process.Palette"/>
      <icon alt="Folder">/process/designer/img/smartnodes/palette/category.gif</icon>
    </node-type>
    <node-type name="palette_category">
      <class type="com.appiancorp.suiteapi.process.PaletteCategory$Descriptor"/>
      <icon-targeted alt="Folder">/collaboration/img/menu_folder_open.gif</icon-targeted>
      <icon alt="Folder">/collaboration/img/menu_folder_closed.gif</icon>
    </node-type>
    <node-type name="palette_category_modern">
      <class type="com.appiancorp.suiteapi.process.PaletteCategory$Descriptor"/>
    </node-type>
    <node-type name="palettes_base">
      <class type="com.appiancorp.suiteapi.process.PaletteCategory$AllCategories"/>
      <icon-targeted alt="Folder">/collaboration/img/menu_folder_open.gif</icon-targeted>
      <icon alt="Folder">/collaboration/img/menu_folder_closed.gif</icon>
    </node-type>
    <node-type name="palettes_base_modern">
      <class type="com.appiancorp.suiteapi.process.PaletteCategory$AllCategories"/>
    </node-type>
    <node-type name="uddiHome">
      <class type="com.appiancorp.process.webservices.asi.UDDIHome"/>
    </node-type>
    <node-type name="uddiRegistry">
      <class type="com.appiancorp.process.webservices.UddiRegistry">
        <id>inquiryUrl</id>
      </class>
    </node-type>
    <node-type name="businessEntity">
      <class type="com.appiancorp.process.webservices.BusinessEntityMediator">
        <id>uuid</id>
      </class>
      <icon-targeted alt="Business">/process/designer/img/business.gif</icon-targeted>
      <icon alt="Business">/process/designer/img/business.gif</icon>
    </node-type>
    <node-type name="processmodel_folder">
      <class type="com.appiancorp.suiteapi.process.ProcessModelFolder"/>
      <icon-targeted>/components/toolbar/img/open.gif</icon-targeted>
      <icon>/components/toolbar/img/folder.gif</icon>
    </node-type>
    <node-type name="processmodel">
      <class type="com.appiancorp.suiteapi.process.ProcessModel$Descriptor"/>
      <icon alt="ProcessModel">/components/toolbar/img/processmodel.gif</icon>
      <className>isTerminal</className>
    </node-type>
    <node-type name="palette_item">
      <class type="com.appiancorp.suiteapi.process.PaletteItem">
        <name>
          <token name="div_tag" value="JSXDragId={id},JSXName=designer/img/smartnodes/palette/{paletteIcon}.svg,JSXDragType=node,class=paletteItem,title={name}" />
          <token name="image_tag" value="src={staticResourcePrefix}/designer/smartservices/{acSchemaLocalId}/images/palette/{paletteIcon}.svg,alt={name},ondragstart=return false,JSXDragId={id},JSXName=designer/img/smartnodes/palette/{paletteIcon}.svg,JSXDragType=node" />
          <token name="expr" value="{name}" />
          <token name="close_div_tag" />
        </name>
      </class>
    </node-type>
    <node-type name="palette_item_modern">
      <class type="com.appiancorp.suiteapi.process.PaletteItem">
        <name>
          <token name="div_tag" value="JSXDragId={id},JSXName=designer/img/smartnodes/palette/{paletteIcon}.svg,JSXDragType=node,class=paletteItem,title={name}" />
            <token name="image_tag" value="src={staticResourcePrefix}/pmx/smartservices/{acSchemaLocalId}/images/palette/{paletteIcon}.svg,alt={name},ondragstart=return false,JSXDragId={id},JSXName=designer/img/smartnodes/palette/{paletteIcon}.svg,JSXDragType=node,class=palette_item_icon" />
            <token name="div_tag" value=""/>
              <token name="expr" value="{name}" />
            <token name="close_div_tag" />
            <token name="image_tag" value="show={isCustomPlugin},src=designer/img/smartnodes/palette/plugin_palette_icon.svg,alt=plug-in icon,title=Plug-in,ondragstart=return false,JSXDragId={id},JSXName=designer/img/smartnodes/palette/plugin_palette_icon.svg,JSXDragType=node,class=palette_item_plugin" />
          <token name="close_div_tag" />
        </name>
      </class>
    </node-type>
    <node-type name="palette_error_item">
      <class type="com.appiancorp.suiteapi.process.PaletteErrorItem">
        <name>
          <token name="jsp" value="/process/refresh_palette.jsp"/>
        </name>
      </class>
    </node-type>
  </dynamic-node-types>

  <menu-type name="palettes" type="dynamic">
    <node name="palette_item"/>
    <node name="palette_error_item"/>
    <node name="palette" builder="PaletteItemBuilder" />
    <node name="palette_category" builder="PaletteBuilder" />
    <node name="palettes_base" builder="PaletteBaseBuilder"/>
  </menu-type>

  <menu-type name="palettes_modern" type="dynamic">
    <node name="palette_item_modern"/>
    <node name="palette_error_item"/>
    <node name="palette_modern" builder="PaletteItemBuilder" />
    <node name="palette_category_modern" builder="PaletteBuilder" />
    <node name="palettes_base" builder="PaletteBaseBuilder"/>
  </menu-type>

  <!-- This is a copy of palettes_modern with different builders to filter out EPEx-incompatible nodes -->
  <menu-type name="palettes_modern_epex" type="dynamic">
    <node name="palettes_base" builder="PaletteBaseBuilder"/>
    <node name="palette_category_modern" builder="EPExPaletteBuilder" />
    <node name="palette_modern" builder="EPExPaletteItemBuilder" />
    <node name="palette_item_modern"/>
    <node name="palette_error_item"/>
  </menu-type>

  <menu-type name="movefolder" type="dynamic">
    <node name="processmodel_folder" builder="ProcessModelFolderBuilder" onclick="ap.dialogs.Move.selectFolder({id});"/>
  </menu-type>

  <menu-type name="leftNav_processmodel_folder" type="dynamic">
    <node name="processmodel_folder" builder="ProcessModelFolderBuilder" onclick="backgroundAction('/process/getProcessModelFolders.bg?id={id}');"/>
    <node name="processmodel" builder="ProcessModelBuilder" onclick="backgroundAction('/process/switchmodeldashboardordetails.bg?processModelId={id}');"/>
  </menu-type>
</hierarchy-config>
