Avbravo plataforma TutorialVisualLibrary FuncionalidadIconNodeWidget

VII. Añadiendo Funcionalidad al IconNodeWidget

Anteriormente hemos agregado MoveAction a IconNodeWidget, para habilitar el comportamiento de movimiento para el widget. Del mismo modo, se puede agregar muchos otros comportamientos al widget. En esta sección, agregamos HoverAction, SelectAction e InplaceEditorAction.


El InplaceEditorAction permitirá el usuario puede cambiar la etiqueta: File:40etiqueta_Avbravo_plataforma_TutorialVisualLibrary_FuncionalidadIconNodeWidget.png

El SelectAction permite cambiar el color de la etiqueta cuando el widget es seleccionado, mientras que el HoverAction permite cambiar el color de la etiqueta cuando se sitúa el mouse sobre el widget:

File:41etiqueta_Avbravo_plataforma_TutorialVisualLibrary_FuncionalidadIconNodeWidget.png


1.En primer lugar, definir la acción del editor que vamos a añadir al IconNodeWidget en la clase GraphSceneImpl:

private WidgetAction editorAction = ActionFactory.createInplaceEditorAction(new LabelTextFieldEditor());

2. Ahora definir el LabelTextFieldEditor, como sigue en la clase GraphSceneImpl::


private class LabelTextFieldEditor implements TextFieldInplaceEditor {

   public boolean isEnabled(Widget widget) {
       return true;
   }
  public String getText(Widget widget) {
       return ((LabelWidget) widget).getLabel();
   }


  public void setText(Widget widget, String text) {
       ((LabelWidget) widget).setLabel(text);
   }

}

3. Por último, asignar el editor de acción al IconNodeWidget, de la misma manera que fue realizado para la acción de mover anteriormente:

widget.getLabelWidget().getActions().addAction(editorAction);

Aquí, primero obtenemos el LabelWidget de IconNodeWidget . A continuación, agregamos la acción de editor al LabelWidget.

4. El IDE le preguntará si desea agregar varias declaraciones de importación. En cada caso, aceptar la sugerencia que son ofrecidos por el IDE.

5.A continuación, en el caso de SelectAction y HoverAction, no necesita hacer nada más que asignar estas acciones al IconNodeWidget:

widget.getActions().addAction(createSelectAction());

widget.getActions().addAction(createObjectHoverAction());


6. A continuación, debe pensar en el orden de las acciones, que haya creado. Para obtener más información, consulte la sección de Orden de Acciones en la documentación. Después de que ha reordenado las acciones, el attachNodeWidget debería ser como sigue:

protected Widget attachNodeWidget(MyNode node) {

   IconNodeWidget widget = new IconNodeWidget(this);
   widget.setImage(node.getImage());
   widget.setLabel(Long.toString(node.hashCode()));


   //double-click, the event is consumed while double-clicking only:
   widget.getLabelWidget().getActions().addAction(editorAction);


   //single-click, the event is not consumed:
   widget.getActions().addAction(createSelectAction()); 


   //mouse-dragged, the event is consumed while mouse is dragged:
   widget.getActions().addAction(ActionFactory.createMoveAction()); 


   //mouse-over, the event is consumed while the mouse is over the widget:
   widget.getActions().addAction(createObjectHoverAction());

   mainLayer.addChild(widget);
   return widget;

}


7. Instale y vuelva a probar el módulo nuevamente. Como se muestra al inicio de esta sección, cuando se sitúa sobre la etiqueta de un widget, o cuando se selecciona, su color cambiará. Además, cuando hace clic sobre una etiqueta, es capaces de editar su contenido.

Siguientes Pasos



| Anterior| Indice

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo