diff options
Diffstat (limited to 'plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.stereotype.edition/src/org/eclipse/papyrus/uml/diagram/stereotype/edition/editpart/AppliedStereotypeCompartmentEditPart.java')
-rw-r--r-- | plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.stereotype.edition/src/org/eclipse/papyrus/uml/diagram/stereotype/edition/editpart/AppliedStereotypeCompartmentEditPart.java | 338 |
1 files changed, 169 insertions, 169 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.stereotype.edition/src/org/eclipse/papyrus/uml/diagram/stereotype/edition/editpart/AppliedStereotypeCompartmentEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.stereotype.edition/src/org/eclipse/papyrus/uml/diagram/stereotype/edition/editpart/AppliedStereotypeCompartmentEditPart.java index 2426065c3dc..6d7c62724b3 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.stereotype.edition/src/org/eclipse/papyrus/uml/diagram/stereotype/edition/editpart/AppliedStereotypeCompartmentEditPart.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.stereotype.edition/src/org/eclipse/papyrus/uml/diagram/stereotype/edition/editpart/AppliedStereotypeCompartmentEditPart.java @@ -1,169 +1,169 @@ -/*****************************************************************************
- * Copyright (c) 2012 CEA LIST.
- *
- *
- * 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
- *
- * Contributors:
- * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.diagram.stereotype.edition.editpart;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.OrderedLayout;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.gef.EditPolicy;
-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.editpolicies.ResizableCompartmentEditPolicy;
-import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.diagram.ui.internal.figures.NestedResizableCompartmentFigure;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.infra.gmfdiag.common.editpart.ResizeableListCompartmentEditPart;
-import org.eclipse.papyrus.uml.diagram.common.editpolicies.DuplicatePasteEditPolicy;
-import org.eclipse.papyrus.uml.diagram.common.figure.node.AppliedStereotypeCompartmentFigure;
-import org.eclipse.papyrus.uml.diagram.stereotype.edition.editpolicies.AppliedStereotypePropertiesEditPolicy;
-import org.eclipse.uml2.uml.Stereotype;
-import org.eclipse.uml2.uml.util.UMLUtil;
-
-/**
- * this compartment is the an editpart associated to an applied stereotype
- */
-
-public class AppliedStereotypeCompartmentEditPart extends ResizeableListCompartmentEditPart {
-
- public static String ID = "AppliedStereotypeCompartment";
-
- public AppliedStereotypeCompartmentEditPart(View view) {
- super(view);
- }
-
- @Override
- protected boolean hasModelChildrenChanged(Notification evt) {
- return false;
- }
-
- @Override
- public String getCompartmentName() {
-
- Stereotype stereotype = UMLUtil.getStereotype(this.resolveSemanticElement());
- if (stereotype != null) {
- return "" + String.valueOf("\u00AB") + stereotype.getName() + String.valueOf("\u00BB");
- }
- return "bad compartement stereotype";
- }
-
-
- /**
- * this method has bee rewritten in order to add its wn figure to ensure to mange it
- * in papyrus Figure.
- *
- * Adds a constrained flow layout algorithm to the content pane of compartment figure
- *
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
- */
- @Override
- public IFigure createFigure() {
- ResizableCompartmentFigure rcf;
- if (getParent() == getTopGraphicEditPart()) {
- // replace ResizableCompartmentFigure by it own figure in order to manage it.
- rcf = new AppliedStereotypeCompartmentFigure(getCompartmentName(), getMapMode());
- } else {
- rcf = new NestedResizableCompartmentFigure(getMapMode());
-
- }
- if (this.getParent() instanceof AppliedStereotypesCommentEditPart) {
- rcf.setBorder(null);
- if (rcf.getTextPane().getChildren().size() > 0 && rcf.getTextPane().getChildren().get(0) instanceof WrappingLabel) {
- WrappingLabel label = (WrappingLabel) rcf.getTextPane().getChildren().get(0);
- label.setAlignment(PositionConstants.LEFT);
- }
- }
- ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
- layout.setStretchMajorAxis(false);
- layout.setStretchMinorAxis(false);
- layout.setMinorAlignment(OrderedLayout.ALIGN_TOPLEFT);
- rcf.getContentPane().setLayoutManager(layout);
-
-
- return rcf;
- }
-
-
- /**
- *
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart#createDefaultEditPolicies()
- *
- */
- @Override
- protected void createDefaultEditPolicies() {
- super.createDefaultEditPolicies();
- installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new ResizableCompartmentEditPolicy());
- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
- installEditPolicy(DuplicatePasteEditPolicy.PASTE_ROLE, new DuplicatePasteEditPolicy());
- installEditPolicy(AppliedStereotypePropertiesEditPolicy.APPLIED_STEREOTYPE_VISIBILITY_COMPARTMENT, new AppliedStereotypePropertiesEditPolicy());
-
- }
-
- /**
- *
- * @see org.eclipse.gmf.runtime.diagram.ui.editparts.ResizableCompartmentEditPart#setRatio(java.lang.Double)
- *
- * @param ratio
- */
- @Override
- protected void setRatio(Double ratio) {
- if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
- super.setRatio(ratio);
- }
- }
-
- /**
- *
- * @see org.eclipse.papyrus.infra.gmfdiag.common.editpart.ResizeableListCompartmentEditPart#handleNotificationEvent(org.eclipse.emf.common.notify.Notification)
- *
- * @param notification
- */
- @Override
- protected void handleNotificationEvent(Notification notification) {
- Object feature = notification.getFeature();
- if (NotationPackage.eINSTANCE.getSize_Width().equals(feature) || NotationPackage.eINSTANCE.getSize_Height().equals(feature) || NotationPackage.eINSTANCE.getLocation_X().equals(feature) || NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) {
- refreshBounds();
- }
-
- // before to be suppressed by its owner, the associate EObject can be UNSET, so refresh is prevented
- if (resolveSemanticElement() != null) {
- super.handleNotificationEvent(notification);
- }
- }
-
- @Override
- protected void refreshBounds() {
- // int width = ((GraphicalEditPart)getParent()).getFigure().getBounds().getSize().width;
- // int height = 20;
- // Dimension size = new Dimension(width, height);
- // Point loc = new Point(10, 10);
- // ((GraphicalEditPart)getParent()).setLayoutConstraint(this, getFigure(), new Rectangle(loc, size));
- }
-
- /**
- *
- * @see org.eclipse.papyrus.infra.gmfdiag.common.editpart.ResizeableListCompartmentEditPart#refreshVisuals()
- *
- */
- @Override
- protected void refreshVisuals() {
- super.refreshVisuals();
- refreshBounds();
- }
-}
+/***************************************************************************** + * Copyright (c) 2012 CEA LIST. + * + * + * 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 + * + * Contributors: + * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation + * + *****************************************************************************/ +package org.eclipse.papyrus.uml.diagram.stereotype.edition.editpart; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.OrderedLayout; +import org.eclipse.draw2d.PositionConstants; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.gef.EditPolicy; +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.editpolicies.ResizableCompartmentEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure; +import org.eclipse.gmf.runtime.diagram.ui.internal.figures.NestedResizableCompartmentFigure; +import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; +import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; +import org.eclipse.gmf.runtime.notation.NotationPackage; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.papyrus.infra.gmfdiag.common.editpart.ResizeableListCompartmentEditPart; +import org.eclipse.papyrus.uml.diagram.common.editpolicies.PasteEditPolicy; +import org.eclipse.papyrus.uml.diagram.common.figure.node.AppliedStereotypeCompartmentFigure; +import org.eclipse.papyrus.uml.diagram.stereotype.edition.editpolicies.AppliedStereotypePropertiesEditPolicy; +import org.eclipse.uml2.uml.Stereotype; +import org.eclipse.uml2.uml.util.UMLUtil; + +/** + * this compartment is the an editpart associated to an applied stereotype + */ + +public class AppliedStereotypeCompartmentEditPart extends ResizeableListCompartmentEditPart { + + public static String ID = "AppliedStereotypeCompartment"; + + public AppliedStereotypeCompartmentEditPart(View view) { + super(view); + } + + @Override + protected boolean hasModelChildrenChanged(Notification evt) { + return false; + } + + @Override + public String getCompartmentName() { + + Stereotype stereotype = UMLUtil.getStereotype(this.resolveSemanticElement()); + if (stereotype != null) { + return "" + String.valueOf("\u00AB") + stereotype.getName() + String.valueOf("\u00BB"); + } + return "bad compartement stereotype"; + } + + + /** + * this method has bee rewritten in order to add its wn figure to ensure to mange it + * in papyrus Figure. + * + * Adds a constrained flow layout algorithm to the content pane of compartment figure + * + * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() + */ + @Override + public IFigure createFigure() { + ResizableCompartmentFigure rcf; + if (getParent() == getTopGraphicEditPart()) { + // replace ResizableCompartmentFigure by it own figure in order to manage it. + rcf = new AppliedStereotypeCompartmentFigure(getCompartmentName(), getMapMode()); + } else { + rcf = new NestedResizableCompartmentFigure(getMapMode()); + + } + if (this.getParent() instanceof AppliedStereotypesCommentEditPart) { + rcf.setBorder(null); + if (rcf.getTextPane().getChildren().size() > 0 && rcf.getTextPane().getChildren().get(0) instanceof WrappingLabel) { + WrappingLabel label = (WrappingLabel) rcf.getTextPane().getChildren().get(0); + label.setAlignment(PositionConstants.LEFT); + } + } + ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout(); + layout.setStretchMajorAxis(false); + layout.setStretchMinorAxis(false); + layout.setMinorAlignment(OrderedLayout.ALIGN_TOPLEFT); + rcf.getContentPane().setLayoutManager(layout); + + + return rcf; + } + + + /** + * + * @see org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart#createDefaultEditPolicies() + * + */ + @Override + protected void createDefaultEditPolicies() { + super.createDefaultEditPolicies(); + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new ResizableCompartmentEditPolicy()); + installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy()); + installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); + installEditPolicy(PasteEditPolicy.PASTE_ROLE, new PasteEditPolicy()); + installEditPolicy(AppliedStereotypePropertiesEditPolicy.APPLIED_STEREOTYPE_VISIBILITY_COMPARTMENT, new AppliedStereotypePropertiesEditPolicy()); + + } + + /** + * + * @see org.eclipse.gmf.runtime.diagram.ui.editparts.ResizableCompartmentEditPart#setRatio(java.lang.Double) + * + * @param ratio + */ + @Override + protected void setRatio(Double ratio) { + if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) { + super.setRatio(ratio); + } + } + + /** + * + * @see org.eclipse.papyrus.infra.gmfdiag.common.editpart.ResizeableListCompartmentEditPart#handleNotificationEvent(org.eclipse.emf.common.notify.Notification) + * + * @param notification + */ + @Override + protected void handleNotificationEvent(Notification notification) { + Object feature = notification.getFeature(); + if (NotationPackage.eINSTANCE.getSize_Width().equals(feature) || NotationPackage.eINSTANCE.getSize_Height().equals(feature) || NotationPackage.eINSTANCE.getLocation_X().equals(feature) || NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) { + refreshBounds(); + } + + // before to be suppressed by its owner, the associate EObject can be UNSET, so refresh is prevented + if (resolveSemanticElement() != null) { + super.handleNotificationEvent(notification); + } + } + + @Override + protected void refreshBounds() { + // int width = ((GraphicalEditPart)getParent()).getFigure().getBounds().getSize().width; + // int height = 20; + // Dimension size = new Dimension(width, height); + // Point loc = new Point(10, 10); + // ((GraphicalEditPart)getParent()).setLayoutConstraint(this, getFigure(), new Rectangle(loc, size)); + } + + /** + * + * @see org.eclipse.papyrus.infra.gmfdiag.common.editpart.ResizeableListCompartmentEditPart#refreshVisuals() + * + */ + @Override + protected void refreshVisuals() { + super.refreshVisuals(); + refreshBounds(); + } +} |