Esempio n. 1
0
        protected void CreatePositionedItems()
        {
            _positionedItems.Clear();
            int       x         = 0;
            ItemsList menuItems = MenuItems;

            lock (menuItems.SyncRoot)
            {
                foreach (var menuItem in menuItems)
                {
                    object action;
                    if (!menuItem.AdditionalProperties.TryGetValue(Consts.KEY_ITEM_ACTION, out action))
                    {
                        continue;
                    }
                    WorkflowAction wfAction = action as WorkflowAction;
                    if (wfAction == null)
                    {
                        continue;
                    }

                    // Under "others" all items are places, that do not fit into any other category
                    if (CurrentKey == MenuSettings.MENU_NAME_OTHERS)
                    {
                        bool found = _menuSettings.MenuItems.Keys.Any(key => _menuSettings.MenuItems[key].ContainsKey(wfAction.ActionId));
                        if (!found)
                        {
                            GridListItem gridItem = new GridListItem(menuItem)
                            {
                                GridColumn     = x % MenuSettings.DEFAULT_NUM_COLS,
                                GridRow        = (x / MenuSettings.DEFAULT_NUM_COLS) * MenuSettings.DEFAULT_ROWSPAN_SMALL,
                                GridRowSpan    = MenuSettings.DEFAULT_ROWSPAN_SMALL,
                                GridColumnSpan = MenuSettings.DEFAULT_COLSPAN_SMALL,
                            };
                            _positionedItems.Add(gridItem);
                            x += MenuSettings.DEFAULT_COLSPAN_SMALL;
                        }
                    }
                    else
                    {
                        GridPosition gridPosition;
                        if (Positions.TryGetValue(wfAction.ActionId, out gridPosition))
                        {
                            GridListItem gridItem = new GridListItem(menuItem)
                            {
                                GridRow        = gridPosition.Row,
                                GridColumn     = gridPosition.Column,
                                GridRowSpan    = gridPosition.RowSpan,
                                GridColumnSpan = gridPosition.ColumnSpan,
                            };
                            _positionedItems.Add(gridItem);
                        }
                    }
                }
            }
            _positionedItems.FireChange();
        }
        protected override FrameworkElement PrepareItemContainer(object dataItem)
        {
            FrameworkElement container = base.PrepareItemContainer(dataItem);
            GridListItem     gli       = dataItem  as GridListItem;

            if (gli != null)
            {
                Grid.SetColumn(container, gli.GridColumn);
                Grid.SetColumnSpan(container, gli.GridColumnSpan);
                Grid.SetRow(container, gli.GridRow);
                Grid.SetRowSpan(container, gli.GridRowSpan);
            }
            return(container);
        }
Esempio n. 3
0
    protected void CreatePositionedItems()
    {
      _positionedItems.Clear();
      int x = 0;
      foreach (var menuItem in MenuItems)
      {
        object action;
        if (!menuItem.AdditionalProperties.TryGetValue(Consts.KEY_ITEM_ACTION, out action))
          continue;
        WorkflowAction wfAction = action as WorkflowAction;
        if (wfAction == null)
          continue;

        // Under "others" all items are places, that do not fit into any other category
        if (CurrentKey == MenuSettings.MENU_NAME_OTHERS)
        {
          bool found = _menuSettings.MenuItems.Keys.Any(key => _menuSettings.MenuItems[key].ContainsKey(wfAction.ActionId));
          if (!found)
          {
            GridListItem gridItem = new GridListItem(menuItem)
            {
              GridColumn = x % MenuSettings.DEFAULT_NUM_COLS,
              GridRow = (x / MenuSettings.DEFAULT_NUM_COLS) * MenuSettings.DEFAULT_ROWSPAN_SMALL,
              GridRowSpan = MenuSettings.DEFAULT_ROWSPAN_SMALL,
              GridColumnSpan = MenuSettings.DEFAULT_COLSPAN_SMALL,
            };
            _positionedItems.Add(gridItem);
            x += MenuSettings.DEFAULT_COLSPAN_SMALL;
          }
        }
        else
        {
          GridPosition gridPosition;
          if (Positions.TryGetValue(wfAction.ActionId, out gridPosition))
          {
            GridListItem gridItem = new GridListItem(menuItem)
            {
              GridRow = gridPosition.Row,
              GridColumn = gridPosition.Column,
              GridRowSpan = gridPosition.RowSpan,
              GridColumnSpan = gridPosition.ColumnSpan,
            };
            _positionedItems.Add(gridItem);
          }
        }
      }
      _positionedItems.FireChange();
    }