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 14 years ago

#327 closed defect (fixed)

Funciones de boton derecho

Reported by: irobles Owned by: livanr68
Priority: critical Milestone: GUI 0.5
Component: GUI Keywords: menu contextual
Cc:

Description

Buenos días,

han desaparecido las funciones de boton derecho (graficar, evaluar, tabular) de la interfaz de MMS 0.5.

Estoy usando la version de tol v2.0.1 b.0.41.alpha 2010-07-05 16:00:48 i686-win

Change History (3)

comment:1 Changed 14 years ago by Pedro Gea

Component: GeneralGUI
Owner: changed from Pedro Gea to lramirez
Priority: majorcritical
Status: newassigned

comment:2 Changed 14 years ago by josp

Keywords: menu contextual added

El problema está en el fichero

  ....\RELEASE-0.5\source\gui\tcl\00_guiMMS\MMS_layer_gui.tcl

aquí en el

  proc GetObjectMenuDesc { access_info obj_info } {

la función

  IsInstanceOf( mms_obj, "@MenuDesc" )

retorna siempre falso cuando debe retornar verdadero, de ahí que el
menú sea siempre vacío.

Ahora bien, yo no sé por qué si en la declaración aparece bien que

  Class @MMS.Variable : @MenuDesc

La expresión que se genera aquí en Tol que es la siguiente:

Set __gui_menu_entries__ = {
      Anything mms_obj = MMS::GetVariable( SetOfText("EU.created","") );
      Text obj_index = mms_obj::GetIndex(?);
      // opciones de menu de instancia
      Set menu_entries0 = If( IsInstanceOf( mms_obj, "@MenuDesc" ),
                              mms_obj::getMenuEntries(?), Copy( Empty ) );
      Text class_ = ClassOf( mms_obj );
      // opciones de menu de usuario de la clase
      Text get_menu = class_+"::GetCustomMenuOptions";
      Set menu_entries1 = If( FunctionExist( "Set", get_menu ),
                              Set Eval( get_menu + "(?)" ), Copy(Empty) );
      [[ obj_index, menu_entries0, menu_entries1 ]]
    }

y he probado cargando el ejemplo de matriculación de vehiculos:

Anything mms_obj = MMS::GetVariable( SetOfText("EU.created","") );
Real x0 = IsInstanceOf( mms_obj, "@MenuDesc" );
Real x1 = IsInstanceOf( mms_obj, "@MMS.Variable" );
Real x2 = IsInstanceOf( mms_obj, "@MMS.VariableSerie" );

y obtengo

x0 -> 0
x1 -> 1
x2 -> 2

comment:3 Changed 14 years ago by josp

Resolution: fixed
Status: assignedclosed

(In [1762]) closes #327, IsInstanceOf debe preguntar por GuiTools::@MenuDesc

Note: See TracTickets for help on using tickets.