提交 d6880354 编写于 作者: S serge-rider

#3583 ERD note: set text triggers dirty/undo/redo

上级 453783ce
/*
* 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
/* /*
* DBeaver - Universal Database Manager * 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) * Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
...@@ -28,6 +28,8 @@ import org.eclipse.gef.EditPolicy; ...@@ -28,6 +28,8 @@ import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request; import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants; import org.eclipse.gef.RequestConstants;
import org.jkiss.dbeaver.ext.erd.ERDMessages; 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.figures.NoteFigure;
import org.jkiss.dbeaver.ext.erd.model.ERDNote; import org.jkiss.dbeaver.ext.erd.model.ERDNote;
import org.jkiss.dbeaver.ext.erd.model.EntityDiagram; import org.jkiss.dbeaver.ext.erd.model.EntityDiagram;
...@@ -73,21 +75,12 @@ public class NotePart extends NodePart ...@@ -73,21 +75,12 @@ public class NotePart extends NodePart
@Override @Override
public void performRequest(Request request) public void performRequest(Request request)
{ {
if (request.getType() == RequestConstants.REQ_DIRECT_EDIT) if (request.getType() == RequestConstants.REQ_OPEN) {
{
/*
if (request instanceof DirectEditRequest
&& !directEditHitTest(((DirectEditRequest) request).getLocation().getCopy()))
return;
performDirectEdit();
*/
} else if (request.getType() == RequestConstants.REQ_OPEN) {
final String newText = EditTextDialog.editText(getViewer().getControl().getShell(), ERDMessages.part_note_title, getNote().getObject()); final String newText = EditTextDialog.editText(getViewer().getControl().getShell(), ERDMessages.part_note_title, getNote().getObject());
if (newText != null) { if (newText != null) {
getNote().setObject(newText); NoteSetTextCommand command = new NoteSetTextCommand(getNote(), (NoteFigure) getFigure(), newText);
((NoteFigure)getFigure()).setText(newText); getViewer().getEditDomain().getCommandStack().execute(command);
} }
//getTable().openEditor();
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册