/// <summary> /// Quitar un ítem al MenuForm. /// </summary> /// <param name="item">Objeto MenuItemSilverlight a quitar.</param> public void RemoveItem(MenuItemSilverlight item) { // Lanza un evento de eliminación desde el ítem. item.OnDelete(); this.menuItemsSilverlight.Remove(item); this.MenuForm.RemoveMenuItem(item.FormMenuItem); this.canvasMenuItems.Children.Remove(item); ReorderItems(); }
private void buttonEdit_Click(object sender, RoutedEventArgs e) { try { String textEdited = TextBoxText.Text.Trim(); String stringHelpEdited = textBoxHelp.Text.Trim(); FormMenuItem formMenuItem = listBoxEnabled.SelectedItem as FormMenuItem; // Buscar el objeto MenuItemSilverlight elegido en MenuFormSilverlight. MenuItemSilverlight menuItemSilverlight = menuFormSilverlight.FindMenuItemSilverlight(formMenuItem); if (menuItemSilverlight != null) { FormMenuItem formMenuItemChanged; // Si el MenuItemsToChange ya contiene el FormMenuItem, cambiar este // FormMenuItem. if (menuItemsChanged.ContainsKey(menuItemSilverlight)) { formMenuItemChanged = menuItemsChanged[menuItemSilverlight]; formMenuItemChanged.Text = textEdited; formMenuItemChanged.HelpText = stringHelpEdited; listBoxEnabled.UpdateLayout(); return; } // Si no lo contiene, crear un nuevo formMenuItem. formMenuItemChanged = new FormMenuItem(); formMenuItemChanged.Text = textEdited; formMenuItemChanged.HelpText = stringHelpEdited; // Agregar un nuevo formMenuItem a la lista menuItemsChanged. menuItemsChanged.Add(menuItemSilverlight, formMenuItemChanged); int selected = listBoxEnabled.SelectedIndex; // Quitar el ítem viejo de la lista listBoxEneable. listBoxEnabled.Items.Remove(formMenuItem); // Insertar el nuevo ítem en la misma posición que el ítem quitado. listBoxEnabled.Items.Insert(selected, formMenuItemChanged); return; } // Si el ítem seleccionado no está en el MenuForm, entonces el ítem está // siendo editado: completar sus datos. formMenuItem.Text = textEdited; formMenuItem.HelpText = stringHelpEdited; listBoxEnabled.Items.Remove(formMenuItem); listBoxEnabled.Items.Add(formMenuItem); clearTextBoxs(); EnableOutputContext(true); buttonAddItem.IsEnabled = true; buttonEdit.IsEnabled = false; } catch (Exception) { throw; } }
/// <summary> /// Agrega un ítem al MenuForm. /// </summary> /// <param name="item">Ítem a agregar.</param> public void AddItem(MenuItemSilverlight item) { // Enlazar cuando el ítem es clickado. item.MouseLeftButtonUp += new MouseButtonEventHandler(item_MouseLeftButtonUp); this.menuItemsSilverlight.Add(item); this.MenuForm.AddMenuItem(item.FormMenuItem); item.MenuParent = this; this.canvasMenuItems.Children.Add(item); Canvas.SetZIndex(item, Canvas.GetZIndex(item) - 1); Canvas.SetTop(item, (canvasMenuItems.Children.Count - 1) * (this.ActualHeight)); }
/// <summary> /// Encuentra un MenuItemSilverlight de un MenuForm. Este método usa Equals /// para comparar el FormMenuItem encapsulado. /// </summary> /// <param name="menuItemSilverlight">Objeto MenuItemSilverlight a encontrar.</param> /// <returns>Objeto MenuItemSilverlight si se lo encuentra, null si no.</returns> public MenuItemSilverlight FindMenuItemSilverlight(MenuItemSilverlight menuItemSilverlight) { foreach (MenuItemSilverlight itemSilverlight in menuItemsSilverlight) { if (itemSilverlight.FormMenuItem.Equals(menuItemSilverlight.FormMenuItem)) { return(itemSilverlight); } } return(null); }
/// <summary> /// Dibuja el MenuForm basado en sus ítems. /// </summary> public void LoadMenuItems() { int menuNumber = 0; foreach (FormMenuItem formMenuItem in menuForm.MenuItems) { MenuItemSilverlight menuItemSilverlight = new MenuItemSilverlight(formMenuItem); // Agregar ítem de menú. menuItemsSilverlight.Add(menuItemSilverlight); menuItemSilverlight.MouseLeftButtonUp += new MouseButtonEventHandler(item_MouseLeftButtonUp); menuItemSilverlight.MenuParent = this; this.canvasMenuItems.Children.Add(menuItemSilverlight); Canvas.SetZIndex(menuItemSilverlight, Canvas.GetZIndex(menuWidget) - 1); Canvas.SetTop(menuItemSilverlight, menuNumber * 27); menuNumber++; } }
private void buttonRemoveOfList_Click(object sender, RoutedEventArgs e) { try { FormMenuItem formMenuItem = listBoxEnabled.SelectedItem as FormMenuItem; MenuItemSilverlight menuItemSilverlight = menuFormSilverlight.FindMenuItemSilverlight(formMenuItem); clearTextBoxs(); buttonAddItem.IsEnabled = true; buttonEdit.IsEnabled = false; listBoxEnabled.SelectedIndex = -1; // Si el objeto FormMenuItem estuvo desde el comienzo y no fue modificado. if (menuItemSilverlight != null) { // Agregar un formMenuItem para borrarlo de la lista ListBoxEneable. menuItemsDeleted.Add(menuItemSilverlight); listBoxEnabled.Items.Remove(formMenuItem); return; } // El objeto formMenuItem estuvo desde el comienzo, pero fue modificado. if (menuItemsChanged.ContainsValue(formMenuItem)) { foreach (MenuItemSilverlight item in menuFormSilverlight.MenuItemsSilverlight) { if (menuItemsChanged[item].Equals(formMenuItem)) { menuItemsDeleted.Add(item); menuItemsChanged.Remove(item); listBoxEnabled.Items.Remove(formMenuItem); return; } } } // El objeto formMenuItem no estuvo desde el comienzo. listBoxEnabled.Items.Remove(formMenuItem); } catch (NullReferenceException error) { Dialog.ShowErrorDialog(SilverlightVisualDesigners.Properties.Resources.UnhandledError, error.Message, this.gridLayautRoot); } }
void item_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { clickedMenuItem = sender as MenuItemSilverlight; }
/// <summary> /// Encuentra un FormMenuItem en un MenuForm. Este método usa Equals /// para comparar el FormMenuItem encapsulado. /// </summary> /// <param name="formMenuItem">Objeto FormMenuItem a ser encontrado.</param> /// <returns>Objeto MenuItemSilverlight si fue encontrado, null si no.</returns> public MenuItemSilverlight FindMenuItemSilverlight(FormMenuItem formMenuItem) { MenuItemSilverlight menuItemSivlerlight = new MenuItemSilverlight(formMenuItem); return(FindMenuItemSilverlight(menuItemSivlerlight)); }
private void buttonOk_Click(object sender, RoutedEventArgs e) { try { if (listBoxEnabled.Items.Count == 0) { Dialog.ShowErrorDialog(SilverlightVisualDesigners.Properties.Resources.Error, SilverlightVisualDesigners.Properties.Resources.NoMenuItems, this.gridLayautRoot); return; } // Verificar si el MenuForm tiene título. if (String.IsNullOrEmpty(textBoxTitle.Text)) { Dialog.ShowErrorDialog(SilverlightVisualDesigners.Properties.Resources.Error, SilverlightVisualDesigners.Properties.Resources.TitleFormEmpty, this.gridLayautRoot); return; } // Cambiar el título del MenuForm. menuFormSilverlight.ChangeTitle(textBoxTitle.Text.Trim()); // Eliminar los ítems viejos eliminados si el usuario está editando // el Menuform. foreach (MenuItemSilverlight item in menuItemsDeleted.ToArray()) { menuFormSilverlight.RemoveItem(item); } // Busca los ítems editados y actualiza los datos. foreach (MenuItemSilverlight item in menuFormSilverlight.MenuItemsSilverlight) { if (menuItemsChanged.ContainsKey(item)) { FormMenuItem tempFormMenuItem = menuItemsChanged[item]; item.Text = tempFormMenuItem.Text; item.HelpText = tempFormMenuItem.HelpText; // Remover de la lista para no agregarlo en el siguiente foreach. listBoxEnabled.Items.Remove(tempFormMenuItem); } } // Para cada ítem en listBoxEnable que no haya sido creado, crear un nuevo // FormMenuItem y añadirlo al menú. foreach (FormMenuItem formMenuItem in listBoxEnabled.Items) { MenuItemSilverlight menuItemSilverlightFinded = menuFormSilverlight.FindMenuItemSilverlight(formMenuItem); // Si el formMenuItem es nuevo, crearlo y añadirlo al menú. if (menuItemSilverlightFinded == null) { formMenuItem.Parent = this.menuFormSilverlight.MenuForm; MenuItemSilverlight newMenuItemSilverlight = new MenuItemSilverlight(formMenuItem); newMenuItemSilverlight.MenuParent = this.menuFormSilverlight; this.menuFormSilverlight.AddItem(newMenuItemSilverlight); } int indexFormMenuItem = listBoxEnabled.Items.IndexOf(formMenuItem); int indexMenuItemSilverlightFinded = menuFormSilverlight.MenuItemsSilverlight.IndexOf(menuItemSilverlightFinded); // Si el formMenuItem ha cambiado de posición en el menú, reordenarlo // también en el menú. if (indexMenuItemSilverlightFinded != -1 && indexFormMenuItem != indexMenuItemSilverlightFinded) { MenuItemSilverlight menuItemToPosicionate = menuFormSilverlight.MenuItemsSilverlight[indexMenuItemSilverlightFinded]; menuFormSilverlight.MenuItemsSilverlight.Remove(menuItemToPosicionate); menuFormSilverlight.MenuItemsSilverlight.Insert(indexFormMenuItem, menuItemToPosicionate); } } // Reordenar el ítem para actualizar la visualización. menuFormSilverlight.ReorderItems(); if (Closed != null) { Closed(this, e); } } catch (NullReferenceException error) { Dialog.ShowErrorDialog(SilverlightVisualDesigners.Properties.Resources.UnhandledError, error.Message, this.gridLayautRoot); } }