/*
* 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.Rectangle;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
import org.eclipse.gef.editpolicies.ResizableEditPolicy;
import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
import org.eclipse.gef.requests.CreateRequest;
import org.teiid.designer.diagram.ui.model.DiagramModelNode;
import org.teiid.designer.diagram.ui.part.DiagramEditPart;
/**
* Layout policy for our Hello Gef Editor.
*
* @since 8.0
*/
public class DiagramXYLayoutEditPolicy extends XYLayoutEditPolicy {
boolean logging = true;
/**
* @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createAddCommand(EditPart, Object)
**/
@Override
protected Command createAddCommand(EditPart child, Object constraint) {
return null;
}
/**
* @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChangeConstraintCommand(EditPart, Object)
**/
@Override
protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
SetConstraintCommand locationCommand = new SetConstraintCommand(child);
locationCommand.setModel((DiagramModelNode) child.getModel());
locationCommand.setLocation((Rectangle) constraint);
return locationCommand;
}
/**
* @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(CreateRequest)
**/
@Override
protected Command getCreateCommand(CreateRequest request) {
return null;
}
/**
* @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(EditPart)
**/
@Override
protected EditPolicy createChildEditPolicy(EditPart child) {
EditPolicy ep = null;
if( child instanceof DiagramEditPart ) {
if( ((DiagramEditPart)child).isResizable())
ep = new ResizableEditPolicy();
else
ep = new NonResizableEditPolicy();
} else {
ep = new NonResizableEditPolicy();
}
return ep;
}
/**
* @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(Request)
**/
@Override
protected Command getDeleteDependantCommand(Request request) {
return null;
}
}