package org.nightlabs.jfire.reporting.admin.parameter.ui.command; import org.eclipse.draw2d.geometry.Point; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.commands.Command; import org.nightlabs.jdo.ObjectID; import org.nightlabs.jfire.reporting.admin.parameter.ui.notification.ModelNotificationManager; import org.nightlabs.jfire.reporting.admin.parameter.ui.resource.Messages; import org.nightlabs.jfire.reporting.admin.parameter.ui.util.ObjectIDProvider; import org.nightlabs.jfire.reporting.parameter.config.IGraphicalInfoProvider; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public class SetConstraintCommand extends Command { private Point newPos; // private Dimension newSize; private Point oldPos; // private Dimension oldSize; private IGraphicalInfoProvider part; public SetConstraintCommand() { super(); setLabel(Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.command.SetConstraintCommand.changeBounds.label")); //$NON-NLS-1$ } @Override public void execute() { // oldSize = part.getSize(); // oldPos = part.getLocation(); oldPos = new Point(part.getX(), part.getY()); redo(); } @Override public String getLabel() { // if (oldSize.equals(newSize)) return Messages.getString("org.nightlabs.jfire.reporting.admin.parameter.ui.command.SetConstraintCommand.changeLocation.label"); //$NON-NLS-1$ // return "Resize"; } @Override public void redo() { // part.setSize(newSize); part.setX(newPos.x); part.setY(newPos.y); ModelNotificationManager.sharedInstance().notify( getObjectID(part), IGraphicalInfoProvider.PROP_X, oldPos.x, newPos.x); } protected ObjectID getObjectID(Object o) { return ObjectIDProvider.getObjectID(o); } public void setLocation(Rectangle r) { setLocation(r.getLocation()); // setSize(r.getSize()); } public void setLocation(Point p) { newPos = p; } public void setModel(IGraphicalInfoProvider part) { this.part = part; } // public void setSize(Dimension p) { // newSize = p; // } @Override public void undo() { // part.setSize(oldSize); // part.setLocation(oldPos); part.setX(oldPos.x); part.setY(oldPos.y); ModelNotificationManager.sharedInstance().notify( getObjectID(part), IGraphicalInfoProvider.PROP_X, oldPos.x, newPos.x); } }