/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.diagram.ui.util;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.commands.Command;
import org.teiid.designer.diagram.ui.editor.DiagramViewer;
import org.teiid.designer.diagram.ui.model.DiagramModelNode;
/**
* This command is used to move or to resize the nodes in Hello Gef editor.
* Support for undo/redo is ready but not used in the example.
*
* @since 8.0
*/
public class SetConstraintCommand extends Command {
private EditPart targetEditPart;
public SetConstraintCommand(EditPart ep) {
super();
targetEditPart = ep;
}
@Override
public void execute() {
oldSize = m_model.getSize();
oldPos = new Point(m_model.getPosition());
m_model.setPosition(newPos);
m_model.setSize(newSize);
if( targetEditPart.getViewer() != null ) {
((DiagramViewer)targetEditPart.getViewer()).exposePart(targetEditPart);
}
}
@Override
public void redo() {
m_model.setSize(newSize);
m_model.setPosition(newPos);
}
public void setLocation(Rectangle r) {
setLocation(r.getLocation());
setSize(r.getSize());
}
public void setLocation(Point p) {
newPos = p;
}
public void setModel(DiagramModelNode iModel) {
this.m_model = iModel;
}
public void setSize(Dimension p) {
newSize = p;
}
@Override
public void undo() {
m_model.setSize(oldSize);
m_model.setPosition(oldPos);
}
private Point newPos;
private Dimension newSize;
private Point oldPos;
private Dimension oldSize;
private DiagramModelNode m_model;
}