<?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="CollabHomeBuilder" type="com.appiancorp.km.asi.CollabHomeBuilder"/>
    <builder name="PersonalCollabBuilder" type="com.appiancorp.km.asi.PersonalCollabBuilder"/>
    <builder name="PublicCommunitiesBuilder" type="com.appiancorp.km.asi.PublicCommunitiesBuilder"/>
    <builder name="CommunityBuilder" type="com.appiancorp.km.asi.CommunityBuilder"/>
    <builder name="KnowledgeCenterBuilder" type="com.appiancorp.content.asi.GenericContainerBuilder">
      <config-param name="localizerClass" value="com.appiancorp.process.analytics2.ArfFileFolderLocalizer"/>
      <config-param name="noncontainers" value="false"/>
    </builder>
    <builder name="FolderBuilder" type="com.appiancorp.content.asi.GenericContainerBuilder">
      <config-param name="localizerClass" value="com.appiancorp.process.analytics2.ArfFileFolderLocalizer"/>
      <config-param name="noncontainers" value="false"/>
    </builder>
    <builder name="FolderBuilderWithNonContainers" type="com.appiancorp.content.asi.GenericContainerBuilder">
      <config-param name="localizerClass" value="com.appiancorp.process.analytics2.ArfFileFolderLocalizer"/>
      <config-param name="noncontainers" value="true"/>
    </builder>
    

    <builder name="WritableFoldersInKnowledgeCenterBuilder" type="com.appiancorp.km.asi.KnowledgeCenterBuilder">
      <config-param name="write-only" value="true"/>
    </builder>
    <builder name="WritableFolderBuilder" type="com.appiancorp.content.asi.GenericContainerBuilder">
      <config-param name="write-only" value="true"/>
    </builder>
    <builder name="ArfFileFolderBuilder" type="com.appiancorp.content.asi.GenericContainerBuilder">
      <config-param name="extensions" value="arf"/>
      <config-param name="noncontainers" value="true"/>
      <config-param name="localizerClass" value="com.appiancorp.process.analytics2.ArfFileFolderLocalizer"/>
    </builder>

    <builder name="NonContainerBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
    <builder name="DocumentBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
    <builder name="FreeformRuleBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
    <builder name="ConstantBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
    <builder name="QueryRuleBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
    <builder name="DecisionBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
    <builder name="OutboundIntegrationBuilder" type="com.appiancorp.content.asi.GenericNonContainerBuilder"/>
  </dynamic-node-builders>

  <dynamic-node-types>
    <node-type name="collabhome">
      <class type="com.appiancorp.asi.components.hierarchy.beans.CollabHome"/>
      <icon-targeted>/collaboration/img/intraneticon.gif</icon-targeted>  
      <icon>/collaboration/img/intraneticon.gif</icon>  
    </node-type>
    <node-type name="personalcollab">
      <class type="com.appiancorp.asi.components.hierarchy.beans.PersonalCollab"/>
      <icon-targeted>/collaboration/img/kccommopen.gif</icon-targeted>  
      <icon>/collaboration/img/kccomm.gif</icon>  
    </node-type>
    <node-type name="publiccommunities">
      <class type="com.appiancorp.asi.components.hierarchy.beans.PublicCommunities"/>
      <icon-targeted>/collaboration/img/ecccomm.gif</icon-targeted>  
      <icon>/collaboration/img/ecccomm.gif</icon>  
    </node-type>
    <node-type name="community">
      <class type="com.appiancorp.suiteapi.knowledge.Community">
        <name>
          <token name="expr" value="{name}"/>
        </name>
      </class>
      <icon-targeted>/collaboration/img/ecccomm.gif</icon-targeted>  
      <icon>/collaboration/img/ecccomm.gif</icon>  
    </node-type>
    <node-type name="kc">
      <class type="com.appiancorp.suiteapi.knowledge.KnowledgeCenter"/>
      <icon-targeted>/collaboration/img/filecabinetopen1.gif</icon-targeted>  
      <icon>/collaboration/img/filecabinetclosed1.gif</icon>  
    </node-type>
    <node-type name="folder">
      <class type="com.appiancorp.suiteapi.content.Folder"/>
      <icon-targeted>/components/toolbar/img/open.gif</icon-targeted>  
      <icon>/components/toolbar/img/folder.gif</icon>  
    </node-type>
    <node-type name="document">
      <class type="com.appiancorp.suiteapi.knowledge.Document">
        <name>
          <token name="expr" value="{name}"/>
        </name>
      </class>
    </node-type>
    <node-type name="report_document">
      <class type="com.appiancorp.suiteapi.knowledge.Document">
        <name>
          <token name="expr" value="{name}"/>
        </name>
      </class> 
      <icon>/components/toolbar/img/bars.gif</icon>  
    </node-type>

    <node-type name="personalcollab_with_image">
      <class type="com.appiancorp.asi.components.hierarchy.beans.PersonalCollab"/>  
      <icon>/collaboration/img/menu_personalcollab.gif</icon>  
    </node-type>
    <node-type name="publiccommunities_with_image">
      <class type="com.appiancorp.asi.components.hierarchy.beans.PublicCommunities"/>
      <icon>/collaboration/img/menu_community.gif</icon>  
    </node-type>
    <node-type name="community_with_image">
      <class type="com.appiancorp.suiteapi.knowledge.Community">
        <name>
          <token name="expr" value="{name}"/>
        </name>
      </class>
      <icon>/collaboration/img/menu_community.gif</icon>  
    </node-type>
    <node-type name="kc_with_image">
      <class type="com.appiancorp.suiteapi.knowledge.KnowledgeCenter"/>
      <icon>/collaboration/img/menu_knowledgecenter.gif</icon>  
    </node-type>
  <node-type name="freeform_rule">
    <class type="com.appiancorp.suiteapi.rules.FreeformRule"/>
    <icon>/rules/img/{icon}.gif</icon>
  </node-type>
  <node-type name="constant">
    <class type="com.appiancorp.suiteapi.rules.Constant"/>
    <icon>/rules/img/{icon}.gif</icon>
  </node-type>
  <node-type name="query_rule">
    <class type="com.appiancorp.rules.query.QueryRule"/>
    <icon>/rules/img/{icon}.gif</icon>
  </node-type>
  <node-type name="decision">
    <class type="com.appiancorp.rules.decisions.Decision"/>
    <icon>/rules/img/decision.gif</icon>
  </node-type>
  <node-type name="outbound_integration">
    <class type="com.appiancorp.rules.integrations.OutboundIntegration"/>
    <icon>/rules/img/outboundIntegration.gif</icon>
  </node-type>
  </dynamic-node-types>

  <menu-type name="content" type="dynamic"> 
    <node name="collabhome" builder="CollabHomeBuilder" />
    <node name="personalcollab_with_image" builder="PersonalCollabBuilder" onclick="backgroundAction('/contents/GetContainer.do?id=0'); return false;" target="fProcess"/>
    <node name="publiccommunities_with_image" builder="PublicCommunitiesBuilder" onclick="backgroundAction('/contents/GetContainer.do?id=-1'); return false;" target="fProcess"/>
    <node name="community_with_image" builder="CommunityBuilder" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/contents/GetContainer.do?id={id}'); return false;" target="fProcess"/>
    <node name="kc_with_image" builder="KnowledgeCenterBuilder" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/contents/GetContainer.do?id={id}'); return false;" target="fProcess"/>
    <node name="folder" builder="FolderBuilder" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/contents/GetContainer.do?id={id}'); return false;" target="fProcess"  />
  </menu-type>

  <menu-type name="content_with_noncontainers" type="dynamic"> 
    <node name="collabhome" builder="CollabHomeBuilder" />
    <node name="personalcollab_with_image" builder="PersonalCollabBuilder" />
    <node name="publiccommunities_with_image" builder="PublicCommunitiesBuilder" />
    <node name="community_with_image" builder="CommunityBuilder" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/contents/GetContainer.do?id={id}'); return false;" target="fProcess"/>
    <node name="kc_with_image" builder="KnowledgeCenterBuilder" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/contents/GetContainer.do?id={id}'); return false;" target="fProcess"/>
    <node name="folder" builder="FolderBuilderWithNonContainers" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/contents/GetContainer.do?id={id}'); return false;" target="fProcess"  />	
    <node name="document" builder="DocumentBuilder" href="/knowledge/GetDocument.do?id={id}" onclick="backgroundAction('/knowledge/GetDocument.do?id={id}'); return false;" target="_blank"/>
      <!-- {servercontext} is a special token that is replaced with the server's current context (i.e. "suite", or "ae").
      The replacement happens in HierarchyConfig, and only for the onclick and mouseover properties -->
    <node name="freeform_rule" builder="FreeformRuleBuilder" href="#" onclick="if ('{preferredEditor}' === 'interface') window.open('/{servercontext}/design/{opaqueId}', '_blank'); else backgroundAction('/rules/getFreeformRule.do?id={id}'); return false;" target="fProcess" onmouseover="if ('{preferredEditor}' === 'interface') this.href='/{servercontext}/design/{opaqueId}';"/>
    <node name="constant" builder="ConstantBuilder" href="/contents/GetContainer.do?id={id}" onclick="backgroundAction('/rules/getConstant.do?id={id}'); return false;" target="fProcess" />
    <node name="query_rule" builder="QueryRuleBuilder" href="/rules/getQueryRule.do?id={id}" onclick="backgroundAction('/rules/getQueryRule.do?id={id}'); return false;" target="fProcess"/>
    <node name="decision" builder="DecisionBuilder" href="#" onclick="window.open('/{servercontext}/design/{opaqueId}', '_blank'); return false;" target="fProcess" onmouseover="this.href='/{servercontext}/design/{opaqueId}';"/>
    <node name="outbound_integration" builder="OutboundIntegrationBuilder" href="#" onclick="window.open('/{servercontext}/design/{opaqueId}', '_blank'); return false;" target="fProcess" onmouseover="this.href='/{servercontext}/design/{opaqueId}';"/>
  </menu-type>

	
  <menu-type name="collaboration" type="dynamic"> 
    <node name="collabhome" builder="CollabHomeBuilder" />
    <node name="personalcollab_with_image" builder="PersonalCollabBuilder" />
    <node name="publiccommunities_with_image" builder="PublicCommunitiesBuilder" />
    <node name="community_with_image" builder="CommunityBuilder"/>
    <node name="kc_with_image" builder="KnowledgeCenterBuilder" href="#" onclick="backgroundAction('/knowledge/ViewKnowledgeCenterContents.bg?id={id}'); return false;" target="fProcess"/>
    <node name="folder" builder="FolderBuilder" href="#" onclick="backgroundAction('/knowledge/ViewFolderContents.bg?id={id}'); return false;" target="fProcess" />	
    <node name="document" builder="DocumentBuilder" href="/doc/{id}" target="_blank"/>
  </menu-type>
	
  <menu-type name="analytics_reports" type="dynamic">
    <node name="folder" builder="ArfFileFolderBuilder" href="#" onclick="backgroundPage('/analytics/reports/browse.bg?folderId={id}'); return false;" target="fProcess"/>
    <node name="report_document" href="#" onclick="backgroundPage('/analytics/report/view/base.bg?reportId={id}'); return false;" target="fProcess" />
  </menu-type>

  <menu-type name="expression_editor_rules" type="dynamic">
    <node name="folder" builder="FolderBuilderWithNonContainers" href="#" onclick="return false;" target="fProcess"/>	
    <node name="freeform_rule" builder="FreeformRuleBuilder" href="#" target="fProcess" onmouseover="AEE.getRulePreview('{id}');"  onclick ="AEE.insertRuleIntoExpression('{name}'); return false;"/>
    <node name="constant" builder="ConstantBuilder" href="#" target="fProcess" onmouseover="AEE.getRulePreview('{id}');"  onclick ="AEE.insertConstantIntoExpression('{name}'); return false;" />
    <node name="query_rule" builder="QueryRuleBuilder" href="#" target="fProcess" onmouseover="AEE.getRulePreview('{id}');" onclick="AEE.insertRuleIntoExpression('{name}'); return false;" />
    <node name="decision" builder="DecisionBuilder" href="#" target="fProcess" onmouseover="AEE.getRulePreview('{id}');"  onclick="AEE.insertRuleIntoExpression('{name}'); return false;"/>
    <node name="outbound_integration" builder="OutboundIntegrationBuilder" href="#" target="fProcess" onmouseover="AEE.getRulePreview('{id}');"  onclick="AEE.insertRuleIntoExpression('{name}'); return false;"/>
  </menu-type>

</hierarchy-config>
