| /* |
| * Copyright (c) 2006, 2007 Borland Software Corporation |
| * |
| * 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: |
| * Dmitry Stadnik (Borland) - initial API and implementation |
| * Alexander Shatalin (Borland) - initial API and implementation |
| */ |
| |
| «IMPORT "http://www.eclipse.org/gmf/2008/GenModel"» |
| «EXTENSION xpt::diagram::editparts::Utils» |
| |
| «DEFINE contsructor FOR gmfgen::GenCompartment-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public «editPartClassName»(org.eclipse.gmf.runtime.notation.View view) { |
| super(view); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE hasModelChildrenChanged FOR gmfgen::GenCompartment-» |
| «IF listLayout-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected boolean hasModelChildrenChanged(org.eclipse.emf.common.notify.Notification evt) { |
| return false; |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE getCompartmentName FOR gmfgen::GenCompartment-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public String getCompartmentName() { |
| return «EXPAND xpt::Externalizer::accessorCall(i18nKeyForCompartmentTitle()) FOR getDiagram().editorGen»; |
| } |
| «ENDDEFINE» |
| |
| «DEFINE createFigure FOR gmfgen::GenCompartment-» |
| «IF !needsTitle-» |
| «REM»By default titles are shown even if there are no TitleStyle, we need to switch it off«ENDREM»«-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public org.eclipse.draw2d.IFigure createFigure() { |
| org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure result = (org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure) super.createFigure(); |
| result.setTitleVisibility(false); |
| return result; |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE createDefaultEditPoliciesBody FOR gmfgen::GenCompartment-» |
| super.createDefaultEditPolicies(); |
| «IF canCollapse-» |
| installEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy()); |
| «ENDIF-» |
| «EXPAND xpt::diagram::editparts::Common::installSemanticEditPolicy-» |
| «IF childNodes.size() > 0-» |
| installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy()); |
| installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.DRAG_DROP_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy()); |
| «ENDIF-» |
| «EXPAND xpt::diagram::editparts::Common::installCanonicalEditPolicy-» |
| «EXPAND xpt::diagram::editparts::Common::behaviour-» |
| «ENDDEFINE» |
| |
| «DEFINE refreshVisuals FOR gmfgen::GenCompartment-» |
| «IF isStoringChildPositions(node)-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void refreshVisuals() { |
| super.refreshVisuals(); |
| refreshBounds(); |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE handleNotificationEventBody FOR gmfgen::GenCompartment-» |
| super.handleNotificationEvent(notification); |
| Object feature = notification.getFeature(); |
| if (org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Width().equals(feature) |
| || org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Height().equals(feature) |
| || org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_X().equals(feature) |
| || org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) { |
| refreshBounds(); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE refreshBounds FOR gmfgen::GenCompartment-» |
| «IF isStoringChildPositions(node)-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void refreshBounds() { |
| int x = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_X())).intValue(); |
| int y = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_Y())).intValue(); |
| int width = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Width())).intValue(); |
| int height = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Height())).intValue(); |
| ((org.eclipse.gef.GraphicalEditPart) getParent()).setLayoutConstraint(this, getFigure(), new org.eclipse.draw2d.geometry.Rectangle(x, y, width, height)); |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE setRatio FOR gmfgen::GenCompartment-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void setRatio(Double ratio) { |
| «IF gmfgen::ViewmapLayoutType::UNKNOWN.value == node.getLayoutType().value-» |
| if (getFigure().getParent().getLayoutManager() instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout) { |
| super.setRatio(ratio); |
| } |
| «ELSE-» |
| // nothing to do -- parent layout does not accept Double constraints as ratio |
| // super.setRatio(ratio); |
| «ENDIF-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE i18nAccessors FOR gmfgen::GenDiagram-» |
| «EXPAND internal_i18nAccessors FOREACH compartments» |
| «ENDDEFINE» |
| |
| «DEFINE internal_i18nAccessors FOR gmfgen::GenCompartment-» |
| «IF null != title»«EXPAND xpt::Externalizer::accessorField(i18nKeyForCompartmentTitle())»«ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE i18nValues FOR gmfgen::GenDiagram-» |
| «EXPAND internal_i18nValues FOREACH compartments» |
| «ENDDEFINE» |
| |
| «DEFINE internal_i18nValues FOR gmfgen::GenCompartment-» |
| «IF null != title»«EXPAND xpt::Externalizer::messageEntry(i18nKeyForCompartmentTitle(), title)»«ENDIF-» |
| «ENDDEFINE» |