package org.nightlabs.jfire.reporting.admin.parameter.ui.editpolicy;
import org.eclipse.draw2d.XYLayout;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
import org.eclipse.gef.requests.CreateRequest;
import org.nightlabs.jfire.reporting.admin.parameter.ui.command.ConnectionCommand;
import org.nightlabs.jfire.reporting.admin.parameter.ui.command.CreateValueProviderCommand;
import org.nightlabs.jfire.reporting.admin.parameter.ui.command.SetConstraintCommand;
import org.nightlabs.jfire.reporting.admin.parameter.ui.request.ConnectionCreateRequest;
import org.nightlabs.jfire.reporting.admin.parameter.ui.request.ValueProviderCreateRequest;
import org.nightlabs.jfire.reporting.parameter.config.IGraphicalInfoProvider;
/**
* @author Daniel.Mazurek [at] NightLabs [dot] de
*
*/
public class ReportXYLayoutEditPolicy
extends XYLayoutEditPolicy
{
public ReportXYLayoutEditPolicy(XYLayout layout) {
super();
if (layout == null)
throw new IllegalArgumentException("Param layout must not be null!"); //$NON-NLS-1$
setXyLayout(layout);
}
@Override
protected Command createChangeConstraintCommand(EditPart child, Object constraint)
{
// if (child instanceof ValueProviderConfigEditPart) {
IGraphicalInfoProvider model = (IGraphicalInfoProvider) child.getModel();
Rectangle rect = (Rectangle) constraint;
SetConstraintCommand setConstraint = new SetConstraintCommand();
setConstraint.setLocation(rect);
setConstraint.setModel(model);
return setConstraint;
// }
}
@Override
protected Command getCreateCommand(CreateRequest request)
{
if (request instanceof ValueProviderCreateRequest) {
return new CreateValueProviderCommand((ValueProviderCreateRequest)request);
}
if (request instanceof ConnectionCreateRequest) {
return new ConnectionCommand();
}
return null;
}
// @Override
// protected Command createChangeConstraintCommand(ChangeBoundsRequest request,
// EditPart child, Object constraint)
// {
//// return super.createChangeConstraintCommand(request, child, constraint);
// IGraphicalInfoProvider model = (IGraphicalInfoProvider) child.getModel();
// Rectangle rect = (Rectangle) constraint;
// SetConstraintCommand setConstraint = new SetConstraintCommand();
// setConstraint.setLocation(rect);
// setConstraint.setModel(model);
// }
}