Quintiq file version 2.0
Component CustomDrawComponentSupplyChainVisualization
{
  #keys: '[132894.0.847763263]'
  BaseType: 'CustomDrawComponent'
  Children:
  [
    Component menuCustomDraw
    {
      #keys: '[132894.0.847763264]'
      BaseType: 'popupCustomDraw'
    }
    Component GUIDataExtractorSCVNode
    {
      #keys: '[132894.0.847774951]'
      BaseType: 'GUIDataExtractor'
      Properties:
      [
        Component: 'DataHolderSCVConfiguration'
        DataType: 'shadow[SCVConfiguration]'
        PosX: 4
        PosY: 56
        Transformation: 'SCVNode'
      ]
    }
    Component DataHolderDisplayPISPIP
    {
      #keys: '[132894.0.847793878]'
      BaseType: 'DataHolder'
      Databinding: 'structured[ProductInStockingPointInPeriod]*'
      Children:
      [
        Component GUIDataExtractorLeafPISPIP
        {
          #keys: '[132894.0.847794265]'
          BaseType: 'GUIDataExtractor'
          Properties:
          [
            Component: 'DataHolderProductInSPIP'
            DataType: 'structured[ProductInStockingPointInPeriod]'
            FixedFilter: 'object.ProductInStockingPoint_MP().IsLeaf()'
            PosX: 15
            PosY: 43
            Transformation: 'Elements'
          ]
        }
        Component GUIDataExtractorFocusedPISPIP
        {
          #keys: '[132894.0.1020279383]'
          BaseType: 'GUIDataExtractor'
          Properties:
          [
            Component: 'DataHolderFocusedPISPIP'
            DataType: 'structured[ProductInStockingPointInPeriod]'
            PosX: 59
            PosY: 44
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Description: 'Holds data from Product planning matrix selection or user focused node'
        MergeStyle: 'Unite'
        PosX: 121
        PosY: 50
        ShowName: true
        ModeledStringList ChildOrdering
        {
          c: GUIDataExtractorLeafPISPIP
          c: GUIDataExtractorFocusedPISPIP
        }
      ]
    }
    Component CustomDrawDataLayerNode
    {
      #keys: '[132894.0.851822513]'
      BaseType: 'CustomDrawDataLayer'
      Children:
      [
        Component UserConfigurableInformationSCVPISPIPNode
        {
          #keys: '[132894.0.1052382324]'
          BaseType: 'UserConfigurableInformation'
          Properties:
          [
            ObjectType: 'shadow[SCVPISPIPNode]'
            PosX: 56
            PosY: 55
            TooltipText:
            [*
              <table>
              <tr>
              <td><b>Stocking point:</b></td>
              <td>VALUE( object.ProductInStockingPointInPeriod().ProductInStockingPoint_MP().StockingPoint_MP().Name() )</td>
              <td></td>
              </tr>
              
              <tr>
              <td><b>Product:</b></td>
              <td>VALUE( object.ProductInStockingPointInPeriod().ProductInStockingPoint_MP().Product_MP().Name() )</td>
              </tr>
              </table>
              
              <hr>
              
              <table>
              <tr>
              <td><font color="#0000FF"><b>Inventory level end </b></font></td>
              <td><font color="#0000FF">VALUE( MacroPlan::GetDisplayValue( object.ProductInStockingPointInPeriod().InventoryLevelEnd() ) )</font></td>
              <td></td>
              <td><b>Inventory holding cost </b></td>
              <td>VALUE(object.ProductInStockingPointInPeriod().TotalBaseInventoryHoldingCost())</td>
              <td>VALUE( ifexpr( object.ProductInStockingPointInPeriod().IsLeaf(), '[' + object.ProductInStockingPointInPeriod().TotalBaseInventoryHoldingCostPerQuantity().Format('N(Dec(2))') + object.ProductInStockingPointInPeriod().ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol()  + '/' + object.ProductInStockingPointInPeriod().ProductInStockingPoint_MP().UnitOfMeasure_MP().Name() + ']', '' ) ) </td>
              </tr>
              
              <tr>
              <td><font color="#088A08"><b>Total supply </b></font></td>
              <td><font color="#088A08">VALUE(object.ProductInStockingPointInPeriod().SupplyQuantity())</font></td>
              <td></td>
              <td><font color="#FF8000"><b>Total demand </b><font></td>
              <td><font color="#FF8000">VALUE(object.ProductInStockingPointInPeriod().GetDemandQuantity())</font></td>
              </tr>
              <br>
              <tr>
              <td><b>Inventory start </b></td>
              <td>VALUE( MacroPlan::GetDisplayValue( object.ProductInStockingPointInPeriod().InventoryLevelStartPISPIP().InventoryLevelEnd() ) )</td>
              <td></td>
              <td><b>Sales demand </b></td>
              <td>VALUE(object.ProductInStockingPointInPeriod().SalesDemandQuantity())</td>
              </tr>
              
              <tr>
              <td><b>New supply </b></td>
              <td>VALUE(object.ProductInStockingPointInPeriod().NewSupplyQuantity())</td>
              <td></td>
              <td><b>Dependent demand </b></td>
              <td>VALUE(object.ProductInStockingPointInPeriod().DependentDemandQuantity())</td>
              </tr>
              
              <tr>
              <td><b>Inventory supply </b></td>
              <td>VALUE(object.ProductInStockingPointInPeriod().InventorySupplyQuantity())</td>
              <td></td>
              <td><b>VALUE( ifexpr( object.ProductInStockingPointInPeriod().TargetInventoryLevel() >= object.ProductInStockingPointInPeriod().MinInventoryLevel() , 'Target inventory level', 'Minimum inventory level' ) ) </b></td>
              <td>VALUE( ifexpr( object.ProductInStockingPointInPeriod().TargetInventoryLevel() >= object.ProductInStockingPointInPeriod().MinInventoryLevel() , object.ProductInStockingPointInPeriod().TargetInventoryLevel(), object.ProductInStockingPointInPeriod().MinInventoryLevel() ) )</td>
              </tr>
              </table>
            *]
          ]
        }
        Component UserConfigurableInformationSCVISNode
        {
          #keys: '[134266.1.1611568707]'
          BaseType: 'UserConfigurableInformation'
          Properties:
          [
            ObjectType: 'shadow[SCVISNode]'
            PosX: 56
            PosY: 91
            TooltipText: 'VALUE(object.Tooltip())'
          ]
        }
        Component UserConfigurableInformationSCVSDNode
        {
          #keys: '[134266.1.1611569449]'
          BaseType: 'UserConfigurableInformation'
          Properties:
          [
            ObjectType: 'shadow[SCVSDNode]'
            PosX: 105
            PosY: 62
            TooltipText: 'VALUE(object.Tooltip())'
          ]
        }
        Component UserConfigurableInformationSCVRoutingStepNode
        {
          #keys: '[134266.1.1611571765]'
          BaseType: 'UserConfigurableInformation'
          Properties:
          [
            ObjectType: 'shadow[SCVRoutingStepNode]'
            PosX: 100
            PosY: 90
            TooltipText: 'VALUE(object.Tooltip())'
          ]
        }
        Component UserConfigurableInformationSCVLaneNode
        {
          #keys: '[134266.1.1611573383]'
          BaseType: 'UserConfigurableInformation'
          Properties:
          [
            ObjectType: 'shadow[SCVLaneNode]'
            PosX: 81
            PosY: 26
            TooltipText: 'VALUE(object.Tooltip())'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'PopupMenuSCVNode'
        DataExtractor: 'GUIDataExtractorSCVNode'
        DrawingOrder: 2
        PosX: 34
        PosY: 56
        ModeledStringList ChildOrdering
        {
          c: UserConfigurableInformationSCVPISPIPNode
          c: UserConfigurableInformationSCVISNode
          c: UserConfigurableInformationSCVSDNode
          c: UserConfigurableInformationSCVRoutingStepNode
          c: UserConfigurableInformationSCVLaneNode
        }
      ]
    }
    Component DataHolderSCVConfiguration
    {
      #keys: '[132894.0.860791506]'
      BaseType: 'DataHolder'
      Databinding: 'shadow[SCVConfiguration]*'
      Properties:
      [
        Description: 'Starting point for extractors on supply chain visualization, store the drawing parameters and also shadow nodes and edges'
        PosX: 106
        PosY: 15
        ShowName: true
      ]
    }
    Component CustomDrawDataLayerSCVEdge
    {
      #keys: '[132894.0.877941259]'
      BaseType: 'CustomDrawDataLayer'
      Children:
      [
        Component UserConfigurableInformationPISPIPSCVEdge
        {
          #keys: '[132894.0.1052382218]'
          BaseType: 'UserConfigurableInformation'
          Properties:
          [
            ObjectType: 'shadow[SCVEdge]'
            PosX: 95
            PosY: 66
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'PopupMenuSCVNode'
        DataExtractor: 'GUIDataExtractorSCVEdge'
        DrawingOrder: 1
        PosX: 33
        PosY: 87
      ]
    }
    Component GUIDataExtractorSCVEdge
    {
      #keys: '[132894.0.877941937]'
      BaseType: 'GUIDataExtractor'
      Properties:
      [
        Component: 'DataHolderSCVConfiguration'
        DataType: 'shadow[SCVConfiguration]'
        PosX: 2
        PosY: 89
        Transformation: 'SCVNode.SCVEdge'
      ]
    }
    Component PopupMenuSCVNode
    {
      #keys: '[132894.0.999786189]'
      BaseType: 'PopupMenu'
      Children:
      [
        Component PopupParent id:PopupParent_987
        {
          #keys: '[132894.0.999786190]'
          BaseType: 'Menu'
          Children:
          [
            Component MenuSelect { #keys: '[132894.0.1024354605]' BaseType: 'Menu' Properties: [ Image: 'FLASH' Shortcut: 'Ctrl+L' Text: 'Select' ] }
            Component MenuEditSCVView { #keys: '[132894.0.1045502125]' BaseType: 'Menu' ViewSecurity: 'Administrator' Properties: [ Image: 'NOTE_EDIT' Shortcut: 'Ctrl+E' Text: 'Edit supply chain visualization view...' ] }
            Component MenuLegend { #keys: '[132894.0.1062218350]' BaseType: 'Menu' Properties: [ Image: 'COLORS' Text: 'Legend...' ] }
            Component menuSeparator843 { #keys: '[133968.0.64181620]' BaseType: 'Menu' Properties: [ Separator: true ] }
            Component MenuRefresh { #keys: '[133968.0.64182187]' BaseType: 'Menu' Properties: [ Image: 'REFRESH' Shortcut: 'F5' Text: 'Refresh' Tooltip: 'Refreshes the supply chain visualization if it becomes unresponsive' ] }
            Component menuSeparator531 { #keys: '[133968.0.64182288]' BaseType: 'Menu' Properties: [ Separator: true ] }
          ]
          Properties:
          [
            ModeledStringList ChildOrdering
            {
              c: MenuEditSCVView
              c: MenuRefresh
              c: menuSeparator531
              c: MenuSelect
              c: menuSeparator843
              c: MenuLegend
            }
          ]
        }
      ]
      Properties:
      [
        PosX: 7
        PosY: 158
      ]
    }
    Component DataHolderFocusedPISPIP
    {
      #keys: '[132894.0.1007049330]'
      BaseType: 'DataHolder'
      Databinding: 'structured[ProductInStockingPointInPeriod]*'
      Properties:
      [
        Description: 'Holds user focused node (double clicked)'
        PosX: 129
        PosY: 78
        ShowName: true
      ]
    }
    Component DataHolderSelectedNodes
    {
      #keys: '[132894.0.1050781785]'
      BaseType: 'DataHolder'
      Databinding: 'structured[shadow[SCVPISPIPNode]]*'
      Properties:
      [
        Description: 'Holds user selected nodes (single click or ctrl+click)'
        PosX: 123
        PosY: 127
        ShowName: true
      ]
    }
    Component CustomDrawDataLayerSCVConfig
    {
      #keys: '[134266.1.1781055790]'
      BaseType: 'CustomDrawDataLayer'
      Properties:
      [
        ContextMenu: 'PopupMenuSCVNode'
        DataExtractor: 'GUIDataExtractorSCVConfig'
        DrawingOrder: 0
        PosX: 31
        PosY: 31
      ]
    }
    Component GUIDataExtractorSCVConfig
    {
      #keys: '[134266.1.1781055791]'
      BaseType: 'GUIDataExtractor'
      Properties:
      [
        Component: 'DataHolderSCVConfiguration'
        DataType: 'shadow[SCVConfiguration]'
        PosX: 5
        PosY: 30
      ]
    }
  ]
  Properties:
  [
    BackgroundColor: 'Window'
    Border: true
    ModeledStringList ChildOrdering
    {
      c: menuCustomDraw
      c: GUIDataExtractorSCVNode
      c: DataHolderDisplayPISPIP
      c: CustomDrawDataLayerNode
      c: DataHolderSCVConfiguration
      c: CustomDrawDataLayerSCVEdge
      c: GUIDataExtractorSCVEdge
      c: PopupMenuSCVNode
      c: DataHolderFocusedPISPIP
      c: DataHolderSelectedNodes
      c: CustomDrawDataLayerSCVConfig
      c: GUIDataExtractorSCVConfig
    }
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_CustomDrawComponentSupplyChainVisualization_Menu_OnClick
    {
      #keys: '[132894.0.847763265]'
      Initiator: 'Menu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[132895.0.232128246]'
          Binding: 'this.Selection()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_CustomDrawComponentSupplyChainVisualization_GUIButtonBase_OnClick
    {
      #keys: '[132894.0.847763266]'
      Initiator: 'GUIButtonBase'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[132895.0.232128262]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
