protected override void FillItem(RibbonItemData item) { base.FillItem(item); var cItem = (RibbonCommand)item; cItem.Command = Command; }
protected virtual void FillItem(RibbonItemData item) { item.Name = Name; item.Access = Access?.Select(s => s.Access).ToList(); item.Description = Description; item.IsTest = IsTest; var imgName = RibbonGroupData.GetImageName(item.Name); RibbonGroupData.SaveImage(Image, imgName, RibbonVM.userGroup); }
public RibbonItemDataVM(RibbonItemData item) { Name = item.Name; Description = item.Description; IsTest = item.IsTest; Access = new ObservableCollection <AccessItem>(item.Access?.Select(s => new AccessItem { Access = s }) ?? new List <AccessItem>()); }
protected override void FillItem(RibbonItemData item) { base.FillItem(item); var blItem = (RibbonInsertBlock)item; blItem.File = File.FileName; blItem.Layer = Layer; blItem.Explode = Explode; blItem.BlockName = BlockName; blItem.Properties = Properties.ToList(); }
/// <summary> /// Create push button on the panel /// </summary> /// <param name="name">Internal name of the button</param> /// <param name="text">Text user will see</param> /// <param name="externalCommandType">Class which implements IExternalCommand interface. /// This command will be execute when user push the button</param> /// <param name="action">Additional action with whe button</param> /// <returns>Panel where button were created</returns> public Panel CreateButton(string name, string text, Type externalCommandType, Action <Button> action) { var button = new Button(name, text, externalCommandType); action?.Invoke(button); RibbonItemData buttonData = button.Finish(); Source.AddItem(buttonData); return(this); }
public Panel CreatePullDownButton(string name, string text, Action <PulldownButton> action) { var button = new PulldownButton(name, text, nameConvention); action?.Invoke(button); RibbonItemData buttonData = button.Finish(); var ribbonItem = Source.AddItem(buttonData) as Autodesk.Revit.UI.PulldownButton; button.BuildButtons(ribbonItem); return(this); }
public RibbonItemDataVM GetItemVM(RibbonItemData item) { RibbonItemDataVM itemVm; switch (item) { case RibbonBreakPanel ribbonBreak: itemVm = new RibbonBreakVM(ribbonBreak); break; case RibbonToggle ribbonToggle: itemVm = new RibbonToggleVM(ribbonToggle); break; case RibbonCommand ribbonCommand: itemVm = new RibbonCommandVM(ribbonCommand); break; case RibbonVisualGroupInsertBlock ribbonVisualGroupInsertBlock: itemVm = new RibbonVisualGroupInsertBlockVM(ribbonVisualGroupInsertBlock, BlockFiles); break; case RibbonVisualInsertBlock ribbonVisualInsertBlock: itemVm = new RibbonVisualInsertBlockVM(ribbonVisualInsertBlock, BlockFiles); break; case RibbonInsertBlock ribbonInsertBlock: itemVm = new RibbonInsertBlockVM(ribbonInsertBlock, BlockFiles); break; case RibbonSplit ribbonSplit: itemVm = new RibbonSplitVM(ribbonSplit); break; default: throw new ArgumentOutOfRangeException(nameof(item)); } itemVm.Name = item.Name; itemVm.Access = new ObservableCollection <AccessItem>(item.Access?.Select(s => new AccessItem { Access = s }) ?? new List <AccessItem>()); itemVm.Description = item.Description; itemVm.IsTest = item.IsTest; itemVm.Image = RibbonGroupData.LoadImage(userGroup, item.Name); return(itemVm); }
/// <summary> /// Create new Stacked items at the panel /// </summary> /// <param name="action">Action where you must add items to the stacked panel</param> /// <returns>Panel where stacked items was created</returns> public Panel CreateStackedItems(Action <StackedItem> action) { if (action == null) { throw new ArgumentNullException(nameof(action)); } var stackedItem = new StackedItem(nameConvention); action.Invoke(stackedItem); if (stackedItem.ItemsCount < 2 || stackedItem.ItemsCount > 3) { throw new InvalidOperationException("You must create 2 or three items in the StackedItems"); } RibbonItemData item1 = stackedItem.Buttons[0].Finish(); RibbonItemData item2 = stackedItem.Buttons[1].Finish(); IList <RibbonItem> ribbonItems; if (stackedItem.ItemsCount == 3) { RibbonItemData item3 = stackedItem.Buttons[2].Finish(); ribbonItems = Source.AddStackedItems(item1, item2, item3); } else { ribbonItems = Source.AddStackedItems(item1, item2); } for (var i = 0; i < stackedItem.Buttons.Count; ++i) { stackedItem.Buttons[i].DoPostProcessing(ribbonItems[i]); } return(this); }
//The maxi button of stackedItem accepted is 3 public CustomPanel CreateStackedItems(Action <CustomStackedItem> action) { if (action is null) { throw new ArgumentNullException(nameof(action)); } var stackedItem = new CustomStackedItem(this); action.Invoke(stackedItem); if (stackedItem.ItemsCount < 2 || stackedItem.ItemsCount > 3) { throw new InvalidOperationException("You must create 2 or three items in the StackedItems"); } var item1 = stackedItem.Items[0].GetItemData(); var item2 = stackedItem.Items[1].GetItemData(); IList <RibbonItem> ribbonItems; if (stackedItem.ItemsCount == 3) { RibbonItemData item3 = stackedItem.Items[2].GetItemData(); ribbonItems = _panel.AddStackedItems(item1, item2, item3); } else { ribbonItems = _panel.AddStackedItems(item1, item2); } for (var i = 0; i < stackedItem.Items.Count; ++i) { stackedItem.Items[i].DoPostProcessing(ribbonItems[i]);//? } return(this); }
public RibbonItem AddItem(RibbonItemData itemData) { return(new RibbonItem()); }
/// <summary> /// Adds a stacked containing 3 UI Elements in the current panel. /// </summary> /// <param name="item1">Top UI Element.</param> /// <param name="item2">Middle UI Element.</param> /// <param name="item3">Bottom UI Element.</param> /// <returns>The list of elements added</returns> public IList <RibbonItem> AddStackedItems(RibbonItemData item1, RibbonItemData item2, RibbonItemData item3) { return(panel.AddStackedItems(item1, item2, item3)); }
private static IPaletteCommand GetCommand(RibbonItemData item, string panel, string userGroup) { if (!RibbonBuilder.IsAccess(item.Access)) { return(null); } IPaletteCommand com = null; switch (item) { case RibbonBreakPanel ribbonBreakPanel: break; case RibbonToggle ribbonToggle: var toggle = new ToggleButton(); toggle.IsChecked = ribbonToggle.IsChecked; toggle.CommandName = ribbonToggle.Command; com = toggle; break; case RibbonCommand ribbonCommand: var c = new PaletteCommand(); c.CommandName = ribbonCommand.Command; com = c; break; case RibbonVisualGroupInsertBlock ribbonVisualGroupInsertBlock: break; case RibbonVisualInsertBlock ribbonVisualInsertBlock: var vb = new PaletteVisualInsertBlocks(); vb.file = ribbonVisualInsertBlock.File; vb.filter = s => Regex.IsMatch(s, ribbonVisualInsertBlock.Filter); vb.explode = ribbonVisualInsertBlock.Explode; vb.Layer = new LayerInfo(ribbonVisualInsertBlock.Layer); com = vb; break; case RibbonInsertBlock ribbonInsertBlock: var ib = new PaletteInsertBlock(); ib.file = ribbonInsertBlock.File; ib.blName = ribbonInsertBlock.BlockName; ib.explode = ribbonInsertBlock.Explode; ib.Layer = new LayerInfo(ribbonInsertBlock.Layer); ib.props = ribbonInsertBlock.Properties; com = ib; break; case RibbonSplit ribbonSplit: var coms = ribbonSplit.Items.Select(s => GetCommand(s, panel, userGroup)) .Where(w => w != null).ToList(); var split = new SplitCommand(coms); com = split; break; } if (com != null) { com.Name = item.Name; com.Description = item.Description; com.Image = RibbonBuilder.GetImage(item, userGroup); com.Access = item.Access; com.Command = item.GetCommand(); com.IsTest = item.IsTest; com.Group = panel; } return(com); }