Example #1
0
 /// <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();
 }
Example #2
0
        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;
            }
        }
Example #3
0
 /// <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));
 }
Example #4
0
 /// <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);
 }
Example #5
0
        /// <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++;
            }
        }
Example #6
0
        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);
            }
        }
Example #7
0
 void item_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     clickedMenuItem = sender as MenuItemSilverlight;
 }
Example #8
0
        /// <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));
        }
Example #9
0
        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);
            }
        }