diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/command/NoteSetTextCommand.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/command/NoteSetTextCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..582107681c54da5c61a048915d9c7b2a3e43c771 --- /dev/null +++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/command/NoteSetTextCommand.java @@ -0,0 +1,53 @@ +/* + * DBeaver - Universal Database Manager + * Copyright (C) 2010-2018 Serge Rider (serge@jkiss.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jkiss.dbeaver.ext.erd.command; + +import org.eclipse.gef.commands.Command; +import org.jkiss.dbeaver.ext.erd.figures.NoteFigure; +import org.jkiss.dbeaver.ext.erd.model.ERDNote; + +/** + * Change note text + */ +public class NoteSetTextCommand extends Command { + + private ERDNote note; + private NoteFigure figure; + private String newText; + private String oldText; + + public NoteSetTextCommand(ERDNote note, NoteFigure figure, String newText) { + super("Set note text"); + this.note = note; + this.figure = figure; + this.oldText = this.note.getName(); + this.newText = newText; + } + + @Override + public void execute() { + note.setObject(newText); + figure.setText(newText); + } + + @Override + public void undo() { + note.setObject(oldText); + figure.setText(oldText); + } + +} \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java index e408e7bed7afa6c09f70d876c8296778e6000cf9..0bbd3a31382d9af85c089b6585a78e68e132046d 100644 --- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java +++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java @@ -1,6 +1,6 @@ /* * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) + * Copyright (C) 2010-2018 Serge Rider (serge@jkiss.org) * Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,6 +28,8 @@ import org.eclipse.gef.EditPolicy; import org.eclipse.gef.Request; import org.eclipse.gef.RequestConstants; import org.jkiss.dbeaver.ext.erd.ERDMessages; +import org.jkiss.dbeaver.ext.erd.command.EntityAddCommand; +import org.jkiss.dbeaver.ext.erd.command.NoteSetTextCommand; import org.jkiss.dbeaver.ext.erd.figures.NoteFigure; import org.jkiss.dbeaver.ext.erd.model.ERDNote; import org.jkiss.dbeaver.ext.erd.model.EntityDiagram; @@ -73,21 +75,12 @@ public class NotePart extends NodePart @Override public void performRequest(Request request) { - if (request.getType() == RequestConstants.REQ_DIRECT_EDIT) - { -/* - if (request instanceof DirectEditRequest - && !directEditHitTest(((DirectEditRequest) request).getLocation().getCopy())) - return; - performDirectEdit(); -*/ - } else if (request.getType() == RequestConstants.REQ_OPEN) { + if (request.getType() == RequestConstants.REQ_OPEN) { final String newText = EditTextDialog.editText(getViewer().getControl().getShell(), ERDMessages.part_note_title, getNote().getObject()); if (newText != null) { - getNote().setObject(newText); - ((NoteFigure)getFigure()).setText(newText); + NoteSetTextCommand command = new NoteSetTextCommand(getNote(), (NoteFigure) getFigure(), newText); + getViewer().getEditDomain().getCommandStack().execute(command); } - //getTable().openEditor(); } }