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

/**
* 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;
}
}