Cree nodos mediante programación en Eclipse GMF

Estoy desarrollando un editor para diseñar interfaces de usuario basadas en eclipse GMF.

Hasta ahora he desarrollado un editor con paleta. El usuario puede arrastrar y soltar elementos de la interfaz de usuario desde la paleta y diseñar la interfaz de usuario en el lienzo. Necesito implementar la facilidad para agrupar estos elementos de la interfaz de usuario.

EJ: El usuario primero diseña la interfaz de usuario arrastrando y soltando elementos en el lienzo. Luego, selecciona un conjunto de elementos de la interfaz de usuario (por ejemplo, una etiqueta y un cuadro de texto) y presiona el botón "grupo". Colocará automáticamente los elementos dentro de un rectángulo de línea discontinua.

Estoy planeando desarrollar un complemento que pueda obtener información sobre los elementos de la interfaz de usuario seleccionados, eliminarlos, crear un elemento de grupo (línea discontinua rectangular) en el lienzo e insertar elementos eliminados en él.

Pero no sé por dónde empezar.

Entonces, quiero saber cómo crear / eliminar nodos mediante programación en GMF.

Si conoce los códigos relevantes, compártalos y señale algunos recursos útiles.

preguntado el 28 de agosto de 11 a las 04:08

2 Respuestas

Al arrastrar algo de la paleta, se crea el siguiente comando en gmf. Debe especificar el tipo de elemento y pedirle a una parte de edición el comando apropiado para el elemento.

CreateUnspecifiedTypeRequest request = new
    CreateUnspecifiedTypeRequest(
        Collections.singletonList(EcoreElementTypes.EClass_1001),
        diagramEditPart.getDiagramPreferencesHint());

Command command = diagramEditPart.getCommand(request);
command.execute();

Object newObject = request.getNewObject(); // these are the newly created objects

Respondido el 11 de enero de 13 a las 21:01

También es posible agregar elementos adicionales al arrastrar algo de la paleta utilizando, por ejemplo, los comandos diferidos. Esos comandos se crean cuando se crea la solicitud del elemento de la paleta, pero aún no se conoce la posición final y la vista (solo en el momento de la caída). La vista correspondiente se resuelve más tarde.

una clase de comando existente que usa este mecanismo es: DeferredCreateConnectionViewAndElementCommand or DeferredSetValueCommand

Para usar estas clases, debe encontrar el lugar correcto en el proceso de creación de su solicitud donde la Vista (s) se crea a través de CreateViewRequest. Esta solicitud tiene la información necesaria (request.getNewObject ()) que obtiene una Vista tan pronto como el objeto de la paleta se suelta en algún lugar.

Vea este ejemplo para obtener más información: http://wiki.eclipse.org/GMF_Tutorial_Part_3

Respondido 29 Abr '13, 13:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.