El InplaceEditorAction permitirá el usuario puede cambiar la etiqueta:
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.
| Anterior | Indice |
| 40etiqueta.png | ![]() |
1005 bytes |
| 41etiqueta.png | ![]() |
3291 bytes |