/**
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* All rights reserved. This program and the accompanying materials are made available under
* the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html.
*
*/
package gov.redhawk.diagram.edit.parts;
import gov.redhawk.diagram.edit.policies.FindByStubCompartmentCanonicalEditPolicy;
import gov.redhawk.diagram.edit.policies.FindByStubCompartmentItemLayoutEditPolicy;
import gov.redhawk.diagram.edit.policies.FindByStubCompartmentItemSemanticEditPolicy;
import gov.redhawk.diagram.part.PartitioningVisualIDRegistry;
import gov.redhawk.diagram.providers.PartitioningElementTypes;
import org.eclipse.draw2d.IFigure;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
import org.eclipse.gmf.runtime.notation.View;
/**
* @since 3.0
*
*/
public class FindByStubCompartmentEditPart extends ListCompartmentEditPart {
/**
*
*/
public static final int VISUAL_ID = 17005;
private final PartitioningVisualIDRegistry visualIdRegistry;
private final PartitioningElementTypes elementTypes;
/**
*
*/
public FindByStubCompartmentEditPart(final View view, final PartitioningVisualIDRegistry visualIdVisualIDRegistry,
final PartitioningElementTypes elementTypes) {
super(view);
this.visualIdRegistry = visualIdVisualIDRegistry;
this.elementTypes = elementTypes;
}
/**
*
*/
@Override
protected boolean hasModelChildrenChanged(final Notification evt) {
return false;
}
/**
*
*/
@Override
public String getCompartmentName() {
return "FindBy";
}
/**
*
*/
@Override
public IFigure createFigure() {
final ResizableCompartmentFigure result = (ResizableCompartmentFigure) super.createFigure();
result.setTitleVisibility(false);
result.setBorder(null);
return result;
}
/**
*
*/
@Override
protected void createDefaultEditPolicies() {
super.createDefaultEditPolicies();
installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new FindByStubCompartmentItemSemanticEditPolicy(this.elementTypes, this.visualIdRegistry));
installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new FindByStubCompartmentCanonicalEditPolicy(this.visualIdRegistry));
installEditPolicy(EditPolicy.LAYOUT_ROLE, new FindByStubCompartmentItemLayoutEditPolicy());
}
/**
*
*/
@Override
protected void setRatio(final Double ratio) {
if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
super.setRatio(ratio);
}
}
}