You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
Plaintext
52 lines
1.6 KiB
Plaintext
11 months ago
|
/**
|
||
|
* This command just clones an existing {Connector}. All it needs is an id of
|
||
|
* cloned {Connector}
|
||
|
* @this {ConnectorCloneCommand}
|
||
|
* @constructor
|
||
|
* @param {Number} parentConnectorId - the Id of parent {Connector}
|
||
|
* @author dgq
|
||
|
*/
|
||
|
function ConnectorCloneCommand(parentConnectorId) {
|
||
|
this.oType = 'ConnectorCloneCommand';
|
||
|
|
||
|
this.firstExecute = true;
|
||
|
|
||
|
/**This will keep the newly created Connector id*/
|
||
|
this.connectorId = null;
|
||
|
|
||
|
/**This keeps the cloned connector Id*/
|
||
|
this.parentConnectorId = parentConnectorId;
|
||
|
}
|
||
|
|
||
|
|
||
|
ConnectorCloneCommand.prototype = {
|
||
|
|
||
|
/**This method got called every time the Command must execute*/
|
||
|
execute: function () {
|
||
|
if (this.firstExecute) {
|
||
|
//get old connector and clone it
|
||
|
var createdConnector = CONNECTOR_MANAGER.connectorGetById(this.parentConnectorId).clone();
|
||
|
|
||
|
//move it 10px low and 10px right
|
||
|
createdConnector.transform(Matrix.translationMatrix(10, 10));
|
||
|
|
||
|
//store newly created connector id
|
||
|
this.connectorId = createdConnector.id;
|
||
|
//update diagram state
|
||
|
selectedConnectorId = this.connectorId;
|
||
|
setUpEditPanel(createdConnector);
|
||
|
state = STATE_FIGURE_SELECTED;
|
||
|
|
||
|
this.firstExecute = false;
|
||
|
}
|
||
|
else { //redo
|
||
|
throw "Not implemented";
|
||
|
}
|
||
|
},
|
||
|
|
||
|
/**This method should be called every time the Command should be undone*/
|
||
|
undo: function () {
|
||
|
ConnectorManager.connectorRemoveById(this.connectorId, true);
|
||
|
state = STATE_NONE;
|
||
|
}
|
||
|
}
|