Opened 15 years ago

Last modified 14 years ago

#1244 accepted enhancement

delegar opciones de menu en miembros de instancia

Reported by: Jorge Owned by: Jorge
Priority: high Milestone: TOL Packages
Component: GuiTools Version: head
Severity: critical Keywords:
Cc: Pedro Gea

Description

Cuando una clase A se compone de otras clases, B y C por ejemplo, puede ser util incorpoar las opciones de menu definidas para las clases B y C como opciones de submenu en el menu de opciones de A.

Change History (8)

comment:1 by Jorge, 15 years ago

Status: new → accepted

Una aproximación puede ser:

Real GuiTools::MenuManager::delegateMenuCommand("MMS::@Estimation", "GetStrategy", [[ 
  Text name = "StrategyOptions",
  Text label = "Strategy",
  Text image = "",
  Real flagGroup = 0,
  Real rank = 3010
]]

Lo anterior implica que al menu contextual de un objeto de tipo MMS::@Estimation se le añadirá un submenu bajo el título "Strategy" que contendrás las opciones definida en la clase de la instancia retornada por el método "GetStrategy"

comment:2 by Jorge, 15 years ago

(In [3628]) refs #1244

Se delega opciones de submenu en miembros de una instancia mediante la función GuiTools::MenuManager::delegateSubmenu. Los submenus delegados se crean con GuiTools::MenuManager::defineDelegatedSubmenus(?);.

Por ejemplo en MMS delegamos en la @Strategy desde @Estimation así:

GuiTools::MenuManager::delegateSubmenu
(
  "MMS::@Estimation",
  "MMS::@Strategy",
  "GetStrategy(?)",
  [[
     Text name = "MMS.Estimation_Strategy",
     Text label = "Estrategia"
  ]]
)

comment:3 by Jorge, 15 years ago

(In [3629]) refs #1244

Incluimos en los tests opciones delegadas.

comment:4 by Pedro Gea, 15 years ago

¿Podría delegarse en un atributo sin indicar explícitamente su clase?

En el ejemplo se indica que la clase que devuelve el método GetStrategy(?) es MMS::@Strategy pero sería tremendamente útil poder determinar ésto en tiempo de evaluación. Imagínese para el caso que se pone como ejemplo que de la clase @Strategy se derivan distintas clases (como es el caso) y cada una tiene su menú contextual particular.

Sería útil incluso poder delegar submenús en atributos de otras gramáticas, véase #1252.

comment:5 by Pedro Gea, 15 years ago

Severity: major → critical

Actualmente no funciona esta utilidad, auqnue creo que en algún momento funcionó algo.

comment:6 by Jorge, 15 years ago

(In [4447]) refs #1244, #1364, #1480, cambios en los test para adaptarse a la reimplementación de MenuManager.

comment:7 by Jorge, 15 years ago

(In [4448]) refs #1244, #1364, #1480, reimplementación de MenuManager:

  • creación apropiada opciones de menu delegadas
  • redefinición de imagenes y opciones de menu
  • unificación de las etiquetas de menu, se usa el mismo método para crear etiquetas de submenu como etiquetas de tipo de dato.

comment:8 by Jorge, 14 years ago

(In [5017]) refs #1244, #1480 set the following functions as deprecated:

  • defineTypeLabel
  • delegateSubmenu
  • defineDelegatedSubmenus
Note: See TracTickets for help on using tickets.