Opened 15 years ago
Last modified 13 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 Changed 15 years ago by
| Status: | new → accepted |
|---|
comment:2 Changed 14 years ago by
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:4 Changed 14 years ago by
¿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 Changed 14 years ago by
| Severity: | major → critical |
|---|
Actualmente no funciona esta utilidad, auqnue creo que en algún momento funcionó algo.

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::@Estimationse 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"