close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Closed 15 years ago

#236 closed enhancement (fixed)

Funciones de botón derecho en el interfaz de MMS

Reported by: irobles Owned by: josp
Priority: major Milestone: Release 0.5
Component: GUI Keywords:
Cc:

Description (last modified by Pedro Gea)

Buenas,
relacionado con las funciones de boton derecho. Al igual que un usuario de tol puede hacer funciones de boton derecho para las gramaticas de serie, set,.... ¿Se podria hacer que un usuario pueda hacer funciones de boton derecho para el interfaz de MMS?¿Podríais poner un ejemplo de como hacerlo?

Así podriamos hacer funciones propias de cada proyecto y nos sería muy util.

Change History (13)

comment:1 Changed 15 years ago by Pedro Gea

actual_hours: 0
Component: GeneralGUI
Description: modified (diff)
due_date: DD/MM/YY
estimated: 0
Owner: changed from Pedro Gea to lramirez
Type: defectenhancement

comment:2 Changed 15 years ago by josp

Milestone: Release 0.5
Owner: changed from lramirez to josp
Status: newaccepted
version: 0.5

comment:3 Changed 15 years ago by josp

(In [1312]) refs #236, se implementa un mecanismo mediante el cual los objetos visibles en el interfaz pueden tener un conjunto de opciones de menu contextual personalizadas.

El mecanismo se describe en CustomMenu?

comment:4 Changed 15 years ago by josp

(In [1313]) refs #236, los proc's FillOptionsMenu y GetSelectionMenuSpec pasan a ser miembros del namespace ::MMSGui ya que son genericos y seran usados por todos los menu's contextuales en MMS

comment:5 Changed 15 years ago by josp

(In [1317]) refs #236, implementando el API de menu contextual en los objetos primarios de MMS. Solo Variable y Model responden en el GUI, falta llevarlo al resto de objetos.

comment:6 Changed 15 years ago by josp

(In [1322]) refs #236, implementacion en el GUI del menu contextual del output segun @MenuDesc y CustomMenu. Generalizacion de las funciones de soporte a esta funcionalidad.

comment:7 Changed 15 years ago by livanr68

(In [1340]) refs #236
Corrigiendo bug introducido en revisión 1322 que se producía al intentar cambiar el estado de activo de los outputs

comment:8 Changed 15 years ago by livanr68

(In [1450]) refs #236
Corrigiendo bug que se producía al ejecutar las funciones definidas por el usuario para todos los elementos seleccionados
closes #105
Con las funciones implementadas para modelos como Salvar, Guardar, etc; se cierra el ticket y cualquier otra opción de menú contextual que se necesite añadir debe ser subida como otro ticket.

comment:9 Changed 15 years ago by livanr68

(In [1453]) refs #236
Se ha preparado para definir opciones desde proyectos, no tiene opciones de clase, y se le ha definido la opción de Fijar o No fijar los parámetros seleccionados.

comment:10 Changed 15 years ago by livanr68

(In [1463]) refs #236
Fijando error al evaluar funciones de grupo de objetos seleccionados en los menús contextuales definidos por el usuario en su proyecto.

El error estaba en que las referencias a objetos MMS para las funciones Get no siempre esperan un Set como GetVariable que espera un Set del nombre y el escenario, por ejemplo el GetOutput sólo espera el nombre.

comment:11 Changed 15 years ago by livanr68

(In [1464]) refs #236
Praparados los outputs para poder definirles opciones de menú contextual desde proyectos.
refs #34
Preparado también para incluir algunas opciones a los outputs desde la clase dentro de MMS, como por ejemplo graficarlo, o sea a su variable transformada.

comment:12 Changed 15 years ago by livanr68

(In [1465]) refs #236
Fijando error al evaluar funciones de grupo de objetos seleccionados en las opciones de menús contextuales definidas en las clases de MMS.

El error estaba en que las referencias a objetos MMS para las funciones Get no siempre esperan un Set como GetVariable que espera un Set del nombre y el escenario, por ejemplo el GetOutput sólo espera el nombre.

comment:13 Changed 15 years ago by josp

Resolution: fixed
Status: acceptedclosed

Se ha implementado un mecanismo mediante el cual se pueden añadir nuevas opciones de menu contextual a las clases de MMS.

Las clases definen un metodo estático AddCustomMenuOption mediante el cual se puede añadir nuevas opciones. La funcion AddCustomMenuOption recibe un argumento Set que contiene la especificación de la opción. El argumento es un Set de 3 elementos con el siguiente significado:

  • option[ 1 ] : es un texto que contiene la etiqueta a mostrar en el menú
  • option[ 2 ] : es un texto que contiene el nombre de la función a invocar cuando se seleccione la opción. La función debe esperar un argumento único de tipo NameBlock que es la instancia sobre la cual se apliará la acción.
  • option[ 3 ] : es opcional y contiene el nombre de la función a invocar cuando se seleccione la opción sobre una selección múltiple. La función debe esperar un argumento único de tipo Set que contiene las instancias seleccionadas.

Ejemplo:

Real CustomDrawSingle( NameBlock S )
{
  Real S::Chart(0)
};

Real CustomDrawMultiple( Set selection )
{
  Text theClass = ClassOf( selection[ 1 ] );
  Real Eval( theClass + "::ChartGroup(selection)" )
};


Real @MMS.Variable::AddCustomMenuOption( [["Mi Grafico",
                                           "CustomDrawSingle",
                                           "CustomDrawMultiple" ]] );
Note: See TracTickets for help on using tickets.