Spaces:
Running
Running
| import commandFactory from '@/factory/command'; | |
| import { componentNames, rejectMessages, commandNames } from '@/consts'; | |
| const { TEXT } = componentNames; | |
| const command = { | |
| name: commandNames.CHANGE_TEXT, | |
| /** | |
| * Change a text | |
| * @param {Graphics} graphics - Graphics instance | |
| * @param {number} id - object id | |
| * @param {string} text - Changing text | |
| * @returns {Promise} | |
| */ | |
| execute(graphics, id, text) { | |
| const textComp = graphics.getComponent(TEXT); | |
| const targetObj = graphics.getObject(id); | |
| if (!targetObj) { | |
| return Promise.reject(rejectMessages.noObject); | |
| } | |
| this.undoData.object = targetObj; | |
| this.undoData.text = textComp.getText(targetObj); | |
| return textComp.change(targetObj, text); | |
| }, | |
| /** | |
| * @param {Graphics} graphics - Graphics instance | |
| * @returns {Promise} | |
| */ | |
| undo(graphics) { | |
| const textComp = graphics.getComponent(TEXT); | |
| const { object: textObj, text } = this.undoData; | |
| return textComp.change(textObj, text); | |
| }, | |
| }; | |
| commandFactory.register(command); | |
| export default command; | |