void Add_ButtonBase(DevExpress.XtraNavBar.NavBarGroup navBarGroup, Fwk.UI.Controls.Menu.ButtonBase pButtonBase, bool isNew) { DevExpress.XtraNavBar.NavBarItem navBarItem = new NavBarItem(); BarGroup wBarGroup = (BarGroup)navBarGroup.Tag; if (isNew) { wBarGroup.Buttons.Add(pButtonBase); } if (pButtonBase.Image != null) { navBarItem.SmallImage = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(pButtonBase.Image); } if (pButtonBase.LargeImage != null) { navBarItem.LargeImage = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(pButtonBase.LargeImage); } navBarItem.Caption = pButtonBase.Caption; navBarItem.Tag = pButtonBase; navBarItem.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(wNavBarItem_LinkClicked); navBarGroup.ItemLinks.Add(navBarItem); }
/// <summary> /// Agregar Item /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddNavItem_Click(object sender, EventArgs e) { if (uC_NavMenu1.ActiveGroup == null) { return; } //Si se agrega a un arbol es un TreeNodeButton if (((BarGroup)uC_NavMenu1.ActiveGroup.Tag).ContainTree) { TreeNodeButton newTreeNodeButton = new TreeNodeButton(); //Asigno el padre del nodo if (_CurrentButtonBase != null) { newTreeNodeButton.ParentID = _CurrentButtonBase.Id; } //determino que el actual nodo es el q acabo de crear _CurrentButtonBase = (Fwk.UI.Controls.Menu.ButtonBase)newTreeNodeButton; } //Si se agrega a una simple navbar es un ButtonBase (como simple link) else { _CurrentButtonBase = new Fwk.UI.Controls.Menu.ButtonBase(); } LoadControl <UC_ButtonBaseEditor>(_CurrentButtonBase, ActionTypes.Create, uC_NavMenu1.ActiveGroup.Tag); }
/// <summary> /// Obtiene el objeto ToolBar creado /// desde los nodos del Tree, /// esto se realiza para poder mantener /// el orden con el cual se han ido acomodando /// los nodos del tree. /// </summary> /// <returns>ToolBar obtenido</returns> private Fwk.UI.Controls.Menu.ToolBar GenerateToolBarFromTree() { Fwk.UI.Controls.Menu.ToolBar newToolBar = new Fwk.UI.Controls.Menu.ToolBar(); foreach (TreeListNode node in ctlTreeViewMenuBar.Nodes) { Fwk.UI.Controls.Menu.ButtonBase newButton = (Fwk.UI.Controls.Menu.ButtonBase)node.GetValue("colObjeto"); if (newButton.GetType() == typeof(PopupButton)) { PopupButton popupButton = (PopupButton)newButton; popupButton.Buttons.Clear(); foreach (TreeListNode buttonNode in node.Nodes) { Fwk.UI.Controls.Menu.ButtonBase ButtonBase = (Fwk.UI.Controls.Menu.ButtonBase)buttonNode.GetValue("colObjeto"); popupButton.Buttons.Add(ButtonBase); } newToolBar.Add(popupButton); } // Para boton común if (newButton.GetType() == typeof(Fwk.UI.Controls.Menu.ButtonBase)) { newToolBar.Add(newButton); } } return(newToolBar); }
/// <summary> /// Carga el objeto ButtonBase pasado /// en un control ButtonBaseEditor y lo muestra /// en el grpPanel de edición. /// </summary> /// <param name="ButtonBaseObjectToLoad">Objeto ButtonBase a cargar.</param> private void LoadButtonBaseObject(Fwk.UI.Controls.Menu.ButtonBase ButtonBaseObjectToLoad) { UC_ButtonBaseEditor ButtonBaseEditor = null; IEnumerable <UC_ButtonBaseEditor> editor = grpEditionContainer.Controls.OfType <UC_ButtonBaseEditor>(); if (editor.Count() > 0) { ButtonBaseEditor = editor.First(); ButtonBaseEditor.OnInit = true; ButtonBaseEditor.BringToFront(); ButtonBaseEditor.LoadControl(ButtonBaseObjectToLoad, null); ButtonBaseEditor.MenuItemSaved += new MenuItemSavedHandler(menuEditor_MenuItemSaved); //ButtonBaseEditor.EditorValueChanges += new EventHandler(editorTemp_EditorValueChanges); ButtonBaseEditor.OnInit = false; return; } ButtonBaseEditor = new UC_ButtonBaseEditor(); ButtonBaseEditor.OnInit = true; grpEditionContainer.Controls.Add(ButtonBaseEditor); ButtonBaseEditor.Dock = DockStyle.Fill; ButtonBaseEditor.BringToFront(); ButtonBaseEditor.LoadControl(ButtonBaseObjectToLoad, null); ButtonBaseEditor.MenuItemSaved += new MenuItemSavedHandler(menuEditor_MenuItemSaved); //ButtonBaseEditor.EditorValueChanges += new EventHandler(editorTemp_EditorValueChanges); ButtonBaseEditor.OnInit = false; }
/// <summary> /// Metodo utilizado para lanzar el evento /// MenuButtonClick /// </summary> /// <param name="pButtonClicked">Bot�n presionado</param> void LinkButtonClick(Fwk.UI.Controls.Menu.ButtonBase pButtonClicked) { if (OnLinkButtonClick != null) { ButtonClickArgs <Fwk.UI.Controls.Menu.ButtonBase> e = new ButtonClickArgs <Fwk.UI.Controls.Menu.ButtonBase>(pButtonClicked); OnLinkButtonClick(this, e); } }
protected override void SaveModifications() { bool exist = false; if (ActionType == Fwk.UI.Common.ActionTypes.Create) { if (_ParentGroup != null) // se debe validar ya que si no tiene otros nodos el parent es null { if (_ParentGroup.ContainTree) { exist = _ParentGroup.MenuBarTree.Exist(txtId.Text); } else { exist = _ParentGroup.Buttons.Exist(txtId.Text); } } if (exist) { if (SimpleMessageView.Show(string.Concat("Ya existe un ID = ", txtId.Text, ". ¿Desea sobre escribir este item de menú?"), "Menu", MessageBoxButtons.YesNo, Fwk.UI.Common.MessageBoxIcon.Question) == DialogResult.No) { txtId.SelectAll(); txtId.Focus(); return; } List <Fwk.UI.Controls.Menu.ButtonBase> a = (from item in _ParentGroup.Buttons where item.Id.Equals(txtId.Text.Trim(), StringComparison.OrdinalIgnoreCase) select item).ToList <Fwk.UI.Controls.Menu.ButtonBase>(); _CopyButton = a[0]; } } _CopyButton.Id = txtId.Text; _CopyButton.AssemblyInfo = txtAssemblyInfo.Text; _CopyButton.Caption = txtCaption.Text; _CopyButton.Shortcut = txtShortCut.Text; _CopyButton.ToolTipText = txtToolTip.Text; if (pctSmallImage.Image != null) { _CopyButton.Image = TypeFunctions.ConvertImageToByteArray(pctSmallImage.Image, ImageFormat.Png); } if (pctLargeImage.Image != null) { _CopyButton.LargeImage = TypeFunctions.ConvertImageToByteArray(pctLargeImage.Image, ImageFormat.Png); } OnMenuItemSaved(new MenuItemSavedEventArgs(_CopyButton)); }
public void Add_ItemToGroup(NavBarGroup pNavBarGroup, Fwk.UI.Controls.Menu.ButtonBase buttonBase) { if (((BarGroup)pNavBarGroup.Tag).ContainTree) { Update_UC_TreeNavBar(pNavBarGroup, ((TreeNodeButton)buttonBase)); } else { Add_ButtonBase(pNavBarGroup, buttonBase, true); } }
/// <summary> /// /// </summary> /// <param name="btn"></param> public override void LoadControl(Fwk.UI.Controls.Menu.MenuItemBase btn, object parent) { _ParentGroup = (BarGroup)parent; _OriginalButton = (Fwk.UI.Controls.Menu.ButtonBase)btn; _CopyButton = _OriginalButton.Clone <Fwk.UI.Controls.Menu.ButtonBase>(); txtId.Text = _CopyButton.Id; txtCaption.Text = _CopyButton.Caption; txtToolTip.Text = _CopyButton.ToolTipText; txtAssemblyInfo.Text = _CopyButton.AssemblyInfo; txtShortCut.Text = _CopyButton.Shortcut; SetControlVisibility(btn); //grpImages.Enabled Significa que se trata de NavBarItem y NO TreeView if (grpImages.Enabled) { if (this.ActionType == Fwk.UI.Common.ActionTypes.Edit)//Solo si es Edit se le asignan valores a pctSmallImage { if (_CopyButton.Image == null) { pctSmallImage.Image = null; } else { pctSmallImage.Image = new Bitmap(new MemoryStream(_CopyButton.Image)); } if (_CopyButton.LargeImage == null) { pctLargeImage.Image = null; } else { pctLargeImage.Image = new Bitmap(new MemoryStream(_CopyButton.LargeImage)); } } } if (ActionType == Fwk.UI.Common.ActionTypes.Create) { base.AceptButtonText = "Agregar elemento"; } if (ActionType == Fwk.UI.Common.ActionTypes.Edit) { base.AceptButtonText = "Aplicar cambio al item"; } }
/// <summary> /// Actualiza un simplebuton /// </summary> /// <param name="ButtonBase_Updated">ButtonBase o item con los nuevos valores /// conserva el GUID</param> public void Update_ItemFromGroup(Fwk.UI.Controls.Menu.ButtonBase buttonBase_Updated) { BarGroup wBarGroup = (BarGroup)this.ActiveGroup.Tag; //BarGroup wBarGroupX = _MenuBar.GetBy_Guid(wBarGroup.Guid); if ((wBarGroup).ContainTree) { Fwk.UI.Controls.Menu.TreeNodeButton originalButtonBase = wBarGroup.MenuBarTree.GetBy_Guid(buttonBase_Updated.Guid); originalButtonBase.Map((TreeNodeButton)buttonBase_Updated); //wBarGroup.MenuBarTree. UC_TreeNavBar treeList = (UC_TreeNavBar)((System.Windows.Forms.Control)(this.ActiveGroup.ControlContainer)).Controls[0]; treeList.Refresh(); } else { Fwk.UI.Controls.Menu.ButtonBase originalButtonBase = wBarGroup.Buttons.GetBy_Guid(buttonBase_Updated.Guid); originalButtonBase.Map(buttonBase_Updated); //Recorro los items de la ActiveGroup y actuaizo los datos del que tenga como tag el guid que se actualiza foreach (NavBarItem link in this.ActiveGroup.NavBar.Items) { if (((Fwk.UI.Controls.Menu.ButtonBase)(link.Tag)).Guid.Equals(originalButtonBase.Guid)) { if (originalButtonBase.Image != null) { link.SmallImage = Fwk.HelperFunctions.TypeFunctions.ConvertByteArrayToImage(originalButtonBase.Image); } link.Caption = originalButtonBase.Caption; } } } }
void uC_NavMenu1_MenuButtonClick(object sender, ButtonClickArgs <Fwk.UI.Controls.Menu.ButtonBase> e) { _CurrentButtonBase = e.ButtonClicked; textBox1.Text = _CurrentButtonBase.Guid.ToString(); LoadControl <UC_ButtonBaseEditor>(_CurrentButtonBase, ActionTypes.Edit, uC_NavMenu1.ActiveGroup.Tag); }