La clase
ConnectionAdorner
permite crear enlaces nuevos en el diagrama. Antes
de crear un enlace, se llama a una función en el diagrama para
verificar si la acción está permitida. Esta función se puede enlazar
a DiagramEditor
a través del código allowCreateLinkFunction,
que tiene el formato siguiente:
allowCreateLinkFunction: function(DiagramEditor, startNode, endNode)
Cuando se crea un enlace, se llama a una función para
permitir la modificación del enlace nuevo:
onLinkUpdated: function (diagram, link, isNew, undoAction)
donde:
- diagram es el diagrama actual.
- link es el enlace creado.
- isNew es un valor booleano que indica si el enlace es nuevo (
true
para un enlace recién creado). - undoAction es la clase
ConnectAction
creada para esta actualización. Puede establecer acciones personalizadas para las operaciones de deshacer y rehacer, y añadir los datos que haga falta para esta acción.
La clase ConnectAction
La clase
ConnectAction permite deshacer y rehacer la acción de conexión.
Puede personalizar esta acción añadiendo las funciones de usuario que
normalmente se llaman desde la función
onLinkUpdated
. Contiene los
métodos siguientes: getLink
: obtiene el enlace modificado. Este método busca automáticamente el enlace correcto, incluso después de que las acciones de deshacer hayan llevado a cabo sustituciones.- setUndoUserFunction: establece la función deshacer de usuario.
- getUndoUserFunction: obtiene la función deshacer de usuario.
- setRedoUserFunction: establece la función rehacer de usuario.
- getRedoUserFunction: obtiene la función rehacer de usuario.
Utilización del descriptor de conexión
El descriptor de conexión está representado por un
triángulo colocado a cada lado del recuadro delimitador del elemento.
Al igual que los controladores de tamaño, estos manejadores se
resaltan cuando se pasa el cursor sobre ellos, lo que indica que se
puede llevar a cabo una acción. Cuando se pulsa el manejador, se crea
un enlace entre el manejador seleccionado (creando un
BasicPort
en la posición
especificada) y el cursor del ratón. El enlace nuevo se crea al
arrastrar el punto final a un puerto de otro nodo o subgráfico. Los puertos de destino se muestran en las entidades al
pasar el ratón sobre ellos. Los puertos de destino son exactamente
igual que los puertos de origen. Si se lleva a cabo una acción de
soltar en uno de los puertos, se crea un
BasicPort
al lado del elemento
y el final de enlace está conectado con él. Si no se especifica
ningún descriptor de conexión de destino y se suelta el botón del
ratón directamente sobre el componente de destino, se crea un
AutomaticPort
. Al pulsar la tecla Control, puede crear un
AutomaticPort
en el origen del
enlace, en cuyo caso el enlace puede originarse en cualquier puerto. Nota
- Mientras arrastra el descriptor de conexión, se evalúa la función
allowCreateLink
en cada suceso de pasar el ratón por encima y el cursor del ratón cambia para mostrar si la acción de conexión está permitida en ese lugar.
- Tras crear el enlace, se evalúan los elementos inicial y final, y el enlace se vuelve a asignar al padre común del primer nivel. Por ejemplo, si ambos elementos pertenecen al mismo subgráfico, el padre del enlace es el mismo subgráfico.