00001 package org.ros.model.ros_package.diagram.edit.parts;
00002
00003 import org.eclipse.draw2d.ColorConstants;
00004 import org.eclipse.draw2d.Graphics;
00005 import org.eclipse.draw2d.GridData;
00006 import org.eclipse.draw2d.GridLayout;
00007 import org.eclipse.draw2d.IFigure;
00008 import org.eclipse.draw2d.MarginBorder;
00009 import org.eclipse.draw2d.PositionConstants;
00010 import org.eclipse.draw2d.RectangleFigure;
00011 import org.eclipse.draw2d.RoundedRectangle;
00012 import org.eclipse.draw2d.Shape;
00013 import org.eclipse.draw2d.StackLayout;
00014 import org.eclipse.draw2d.geometry.Dimension;
00015 import org.eclipse.draw2d.geometry.Rectangle;
00016 import org.eclipse.emf.common.notify.Notification;
00017 import org.eclipse.emf.ecore.EcorePackage;
00018 import org.eclipse.gef.EditPart;
00019 import org.eclipse.gef.EditPolicy;
00020 import org.eclipse.gef.Request;
00021 import org.eclipse.gef.commands.Command;
00022 import org.eclipse.gef.editpolicies.LayoutEditPolicy;
00023 import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
00024 import org.eclipse.gef.requests.CreateRequest;
00025 import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter;
00026 import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
00027 import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
00028 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
00029 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
00030 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
00031 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
00032 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
00033 import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
00034 import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest;
00035 import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
00036 import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
00037 import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil;
00038 import org.eclipse.gmf.runtime.emf.type.core.IElementType;
00039 import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
00040 import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
00041 import org.eclipse.gmf.runtime.notation.View;
00042 import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;
00043 import org.eclipse.swt.SWT;
00044 import org.eclipse.swt.graphics.Color;
00045 import org.eclipse.swt.graphics.Font;
00046 import org.eclipse.swt.graphics.Path;
00047 import org.eclipse.swt.widgets.Display;
00048
00052 public class NodeEditPart extends AbstractBorderedShapeEditPart {
00053
00057 public static final int VISUAL_ID = 2001;
00058
00062 protected IFigure contentPane;
00063
00067 protected IFigure primaryShape;
00068
00072 public NodeEditPart(View view) {
00073 super(view);
00074 }
00075
00079 protected void createDefaultEditPolicies() {
00080 installEditPolicy(
00081 EditPolicyRoles.CREATION_ROLE,
00082 new CreationEditPolicyWithCustomReparent(
00083 org.ros.model.ros_package.diagram.part.RosVisualIDRegistry.TYPED_INSTANCE));
00084 super.createDefaultEditPolicies();
00085 installEditPolicy(
00086 EditPolicyRoles.SEMANTIC_ROLE,
00087 new org.ros.model.ros_package.diagram.edit.policies.NodeItemSemanticEditPolicy());
00088 installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
00089 new DragDropEditPolicy());
00090 installEditPolicy(
00091 EditPolicyRoles.CANONICAL_ROLE,
00092 new org.ros.model.ros_package.diagram.edit.policies.NodeCanonicalEditPolicy());
00093 installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
00094
00095
00096 }
00097
00101 protected LayoutEditPolicy createLayoutEditPolicy() {
00102 org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
00103
00104 protected EditPolicy createChildEditPolicy(EditPart child) {
00105 View childView = (View) child.getModel();
00106 switch (org.ros.model.ros_package.diagram.part.RosVisualIDRegistry
00107 .getVisualID(childView)) {
00108 case org.ros.model.ros_package.diagram.edit.parts.ServiceServerEditPart.VISUAL_ID:
00109 case org.ros.model.ros_package.diagram.edit.parts.ServiceClientEditPart.VISUAL_ID:
00110 case org.ros.model.ros_package.diagram.edit.parts.PublisherEditPart.VISUAL_ID:
00111 case org.ros.model.ros_package.diagram.edit.parts.ActionServerEditPart.VISUAL_ID:
00112 case org.ros.model.ros_package.diagram.edit.parts.ActionClientEditPart.VISUAL_ID:
00113 case org.ros.model.ros_package.diagram.edit.parts.SubscriberEditPart.VISUAL_ID:
00114 return new BorderItemSelectionEditPolicy();
00115 }
00116 EditPolicy result = child
00117 .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
00118 if (result == null) {
00119 result = new NonResizableEditPolicy();
00120 }
00121 return result;
00122 }
00123
00124 protected Command getMoveChildrenCommand(Request request) {
00125 return null;
00126 }
00127
00128 protected Command getCreateCommand(CreateRequest request) {
00129 return null;
00130 }
00131 };
00132 return lep;
00133 }
00134
00138 protected IFigure createNodeShape() {
00139 return primaryShape = new NodeFigure2();
00140 }
00141
00145 public NodeFigure2 getPrimaryShape() {
00146 return (NodeFigure2) primaryShape;
00147 }
00148
00152 protected boolean addFixedChild(EditPart childEditPart) {
00153 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.NodeNameEditPart) {
00154 ((org.ros.model.ros_package.diagram.edit.parts.NodeNameEditPart) childEditPart)
00155 .setLabel(getPrimaryShape().getFigureNodeNameFigure());
00156 return true;
00157 }
00158 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.NodeParametersEditPart) {
00159 IFigure pane = getPrimaryShape()
00160 .getFigureParameterCompartmentFigure();
00161 setupContentPane(pane);
00162 pane.add(((org.ros.model.ros_package.diagram.edit.parts.NodeParametersEditPart) childEditPart)
00163 .getFigure());
00164 return true;
00165 }
00166 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ServiceServerEditPart) {
00167 BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
00168 PositionConstants.EAST);
00169 getBorderedFigure()
00170 .getBorderItemContainer()
00171 .add(((org.ros.model.ros_package.diagram.edit.parts.ServiceServerEditPart) childEditPart)
00172 .getFigure(), locator);
00173 return true;
00174 }
00175 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ServiceClientEditPart) {
00176 BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
00177 PositionConstants.WEST);
00178 getBorderedFigure()
00179 .getBorderItemContainer()
00180 .add(((org.ros.model.ros_package.diagram.edit.parts.ServiceClientEditPart) childEditPart)
00181 .getFigure(), locator);
00182 return true;
00183 }
00184 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.PublisherEditPart) {
00185 BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
00186 PositionConstants.EAST);
00187 getBorderedFigure()
00188 .getBorderItemContainer()
00189 .add(((org.ros.model.ros_package.diagram.edit.parts.PublisherEditPart) childEditPart)
00190 .getFigure(), locator);
00191 return true;
00192 }
00193 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ActionServerEditPart) {
00194 BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
00195 PositionConstants.EAST);
00196 getBorderedFigure()
00197 .getBorderItemContainer()
00198 .add(((org.ros.model.ros_package.diagram.edit.parts.ActionServerEditPart) childEditPart)
00199 .getFigure(), locator);
00200 return true;
00201 }
00202 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ActionClientEditPart) {
00203 BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
00204 PositionConstants.WEST);
00205 getBorderedFigure()
00206 .getBorderItemContainer()
00207 .add(((org.ros.model.ros_package.diagram.edit.parts.ActionClientEditPart) childEditPart)
00208 .getFigure(), locator);
00209 return true;
00210 }
00211 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.SubscriberEditPart) {
00212 BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
00213 PositionConstants.WEST);
00214 getBorderedFigure()
00215 .getBorderItemContainer()
00216 .add(((org.ros.model.ros_package.diagram.edit.parts.SubscriberEditPart) childEditPart)
00217 .getFigure(), locator);
00218 return true;
00219 }
00220 return false;
00221 }
00222
00226 protected boolean removeFixedChild(EditPart childEditPart) {
00227 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.NodeNameEditPart) {
00228 return true;
00229 }
00230 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.NodeParametersEditPart) {
00231 IFigure pane = getPrimaryShape()
00232 .getFigureParameterCompartmentFigure();
00233 pane.remove(((org.ros.model.ros_package.diagram.edit.parts.NodeParametersEditPart) childEditPart)
00234 .getFigure());
00235 return true;
00236 }
00237 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ServiceServerEditPart) {
00238 getBorderedFigure()
00239 .getBorderItemContainer()
00240 .remove(((org.ros.model.ros_package.diagram.edit.parts.ServiceServerEditPart) childEditPart)
00241 .getFigure());
00242 return true;
00243 }
00244 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ServiceClientEditPart) {
00245 getBorderedFigure()
00246 .getBorderItemContainer()
00247 .remove(((org.ros.model.ros_package.diagram.edit.parts.ServiceClientEditPart) childEditPart)
00248 .getFigure());
00249 return true;
00250 }
00251 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.PublisherEditPart) {
00252 getBorderedFigure()
00253 .getBorderItemContainer()
00254 .remove(((org.ros.model.ros_package.diagram.edit.parts.PublisherEditPart) childEditPart)
00255 .getFigure());
00256 return true;
00257 }
00258 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ActionServerEditPart) {
00259 getBorderedFigure()
00260 .getBorderItemContainer()
00261 .remove(((org.ros.model.ros_package.diagram.edit.parts.ActionServerEditPart) childEditPart)
00262 .getFigure());
00263 return true;
00264 }
00265 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.ActionClientEditPart) {
00266 getBorderedFigure()
00267 .getBorderItemContainer()
00268 .remove(((org.ros.model.ros_package.diagram.edit.parts.ActionClientEditPart) childEditPart)
00269 .getFigure());
00270 return true;
00271 }
00272 if (childEditPart instanceof org.ros.model.ros_package.diagram.edit.parts.SubscriberEditPart) {
00273 getBorderedFigure()
00274 .getBorderItemContainer()
00275 .remove(((org.ros.model.ros_package.diagram.edit.parts.SubscriberEditPart) childEditPart)
00276 .getFigure());
00277 return true;
00278 }
00279 return false;
00280 }
00281
00285 protected void addChildVisual(EditPart childEditPart, int index) {
00286 if (addFixedChild(childEditPart)) {
00287 return;
00288 }
00289 super.addChildVisual(childEditPart, -1);
00290 }
00291
00295 protected void removeChildVisual(EditPart childEditPart) {
00296 if (removeFixedChild(childEditPart)) {
00297 return;
00298 }
00299 super.removeChildVisual(childEditPart);
00300 }
00301
00305 protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
00306 if (editPart instanceof org.ros.model.ros_package.diagram.edit.parts.NodeParametersEditPart) {
00307 return getPrimaryShape().getFigureParameterCompartmentFigure();
00308 }
00309 if (editPart instanceof IBorderItemEditPart) {
00310 return getBorderedFigure().getBorderItemContainer();
00311 }
00312 return getContentPane();
00313 }
00314
00318 protected NodeFigure createNodePlate() {
00319 DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
00320 return result;
00321 }
00322
00331 protected NodeFigure createMainFigure() {
00332 NodeFigure figure = createNodePlate();
00333 figure.setLayoutManager(new StackLayout());
00334 IFigure shape = createNodeShape();
00335 figure.add(shape);
00336 contentPane = setupContentPane(shape);
00337 return figure;
00338 }
00339
00346 protected IFigure setupContentPane(IFigure nodeShape) {
00347 if (nodeShape.getLayoutManager() == null) {
00348 ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
00349 layout.setSpacing(5);
00350 nodeShape.setLayoutManager(layout);
00351 }
00352 return nodeShape;
00353 }
00354
00358 public IFigure getContentPane() {
00359 if (contentPane != null) {
00360 return contentPane;
00361 }
00362 return super.getContentPane();
00363 }
00364
00368 protected void setForegroundColor(Color color) {
00369 if (primaryShape != null) {
00370 primaryShape.setForegroundColor(color);
00371 }
00372 }
00373
00377 protected void setBackgroundColor(Color color) {
00378 if (primaryShape != null) {
00379 primaryShape.setBackgroundColor(color);
00380 }
00381 }
00382
00386 protected void setLineWidth(int width) {
00387 if (primaryShape instanceof Shape) {
00388 ((Shape) primaryShape).setLineWidth(width);
00389 }
00390 }
00391
00395 protected void setLineType(int style) {
00396 if (primaryShape instanceof Shape) {
00397 ((Shape) primaryShape).setLineStyle(style);
00398 }
00399 }
00400
00404 public EditPart getPrimaryChildEditPart() {
00405 return getChildBySemanticHint(org.ros.model.ros_package.diagram.part.RosVisualIDRegistry
00406 .getType(org.ros.model.ros_package.diagram.edit.parts.NodeNameEditPart.VISUAL_ID));
00407 }
00408
00412 public EditPart getTargetEditPart(Request request) {
00413 if (request instanceof CreateViewAndElementRequest) {
00414 CreateElementRequestAdapter adapter = ((CreateViewAndElementRequest) request)
00415 .getViewAndElementDescriptor()
00416 .getCreateElementRequestAdapter();
00417 IElementType type = (IElementType) adapter
00418 .getAdapter(IElementType.class);
00419 if (type == org.ros.model.ros_package.diagram.providers.RosElementTypes.Parameter_3001) {
00420 return getChildBySemanticHint(org.ros.model.ros_package.diagram.part.RosVisualIDRegistry
00421 .getType(org.ros.model.ros_package.diagram.edit.parts.NodeParametersEditPart.VISUAL_ID));
00422 }
00423 }
00424 return super.getTargetEditPart(request);
00425 }
00426
00430 protected void handleNotificationEvent(Notification event) {
00431 if (event.getNotifier() == getModel()
00432 && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
00433 .equals(event.getFeature())) {
00434 handleMajorSemanticChange();
00435 } else {
00436 super.handleNotificationEvent(event);
00437 }
00438 }
00439
00443 public class NodeFigure2 extends RoundedRectangle {
00444
00445 public static final int BLUR_SHADOW_WIDTH = 5;
00446
00458 public void fillVerticalGradientRoundedRectangle(Graphics graphics,
00459 Rectangle bounds, Dimension corner, Color c1, Color c2) {
00460
00461 graphics.pushState();
00462
00463 graphics.setForegroundColor(c2);
00464 graphics.setBackgroundColor(c1);
00465
00466 graphics.fillGradient(bounds.x, bounds.y + (corner.height >> 1),
00467 bounds.width, bounds.height - corner.height, true);
00468
00469 Path p = new Path(null);
00470 p.addArc(bounds.x, bounds.y + bounds.height - corner.height - 1,
00471 corner.width, corner.height, 180, 90);
00472 p.addArc(bounds.x + bounds.width - corner.width - 1, bounds.y
00473 + bounds.height - corner.height - 1, corner.width,
00474 corner.height, 270, 90);
00475 graphics.fillPath(p);
00476 p.dispose();
00477
00478 p = new Path(null);
00479 graphics.setBackgroundColor(c2);
00480 p.addArc(bounds.x + bounds.width - corner.width - 1, bounds.y,
00481 corner.width, corner.height, 0, 90);
00482 p.addArc(bounds.x, bounds.y, corner.width, corner.height, 90, 90);
00483 graphics.fillPath(p);
00484 p.dispose();
00485
00486 graphics.popState();
00487 }
00488
00500 public Color mixColor(Color baseColor, Color mixinColor, int ratio) {
00501 return new Color(baseColor.getDevice(), baseColor.getRed()
00502 + (mixinColor.getRed() - baseColor.getRed()) * ratio / 255,
00503 baseColor.getGreen()
00504 + (mixinColor.getGreen() - baseColor.getGreen())
00505 * ratio / 255, baseColor.getBlue()
00506 + (mixinColor.getBlue() - baseColor.getBlue())
00507 * ratio / 255);
00508 }
00509
00510 @Override
00511 public void paintFigure(Graphics graphics) {
00512 drawBlurredShadow(graphics);
00513 super.paintFigure(graphics);
00514 }
00515
00520 @Override
00521 protected void fillShape(Graphics graphics) {
00522 Color c = mixColor(getBackgroundColor(), ColorConstants.white, 224);
00523 fillVerticalGradientRoundedRectangle(graphics, getBounds(),
00524 getCornerDimensions(), getBackgroundColor(), c);
00525 c.dispose();
00526 }
00527
00528 private void drawBlurredShadow(Graphics graphics) {
00529
00530 graphics.pushState();
00531
00532 int size = MapModeUtil.getMapMode(this).DPtoLP(BLUR_SHADOW_WIDTH);
00533 int step = MapModeUtil.getMapMode(this).DPtoLP(-1);
00534
00535 graphics.setForegroundColor(ColorConstants.gray);
00536 graphics.setLineWidth(MapModeUtil.getMapMode(this).DPtoLP(2));
00537 graphics.translate(size, size);
00538 graphics.setClip(graphics.getClip(new Rectangle(getBounds()))
00539 .expand(size, size));
00540 graphics.setAlpha(20);
00541 outlineShape(graphics);
00542 graphics.translate(step, step);
00543 graphics.setAlpha(30);
00544 outlineShape(graphics);
00545 graphics.translate(step, step);
00546 graphics.setAlpha(60);
00547 outlineShape(graphics);
00548 graphics.translate(step, step);
00549 graphics.setAlpha(100);
00550 outlineShape(graphics);
00551 graphics.translate(step, step);
00552 graphics.setAlpha(150);
00553 outlineShape(graphics);
00554
00555 graphics.popState();
00556 }
00557
00561 private WrappingLabel fFigureNodeNameFigure;
00565 private RectangleFigure fFigureParameterCompartmentFigure;
00566
00570 public NodeFigure2() {
00571
00572 GridLayout layoutThis = new GridLayout();
00573 layoutThis.numColumns = 1;
00574 layoutThis.makeColumnsEqualWidth = true;
00575 this.setLayoutManager(layoutThis);
00576
00577 this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(20),
00578 getMapMode().DPtoLP(20)));
00579 this.setLineWidth(2);
00580 this.setMinimumSize(new Dimension(getMapMode().DPtoLP(240),
00581 getMapMode().DPtoLP(180)));
00582 createContents();
00583 }
00584
00588 private void createContents() {
00589
00590 RectangleFigure nodeTopFigure0 = new RectangleFigure();
00591
00592 nodeTopFigure0.setForegroundColor(NODETOPFIGURE0_FORE);
00593
00594 nodeTopFigure0.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
00595 getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
00596 getMapMode().DPtoLP(5)));
00597
00598 GridData constraintNodeTopFigure0 = new GridData();
00599 constraintNodeTopFigure0.verticalAlignment = GridData.BEGINNING;
00600 constraintNodeTopFigure0.horizontalAlignment = GridData.FILL;
00601 constraintNodeTopFigure0.horizontalIndent = 0;
00602 constraintNodeTopFigure0.horizontalSpan = 1;
00603 constraintNodeTopFigure0.verticalSpan = 1;
00604 constraintNodeTopFigure0.grabExcessHorizontalSpace = true;
00605 constraintNodeTopFigure0.grabExcessVerticalSpace = false;
00606 this.add(nodeTopFigure0, constraintNodeTopFigure0);
00607
00608 GridLayout layoutNodeTopFigure0 = new GridLayout();
00609 layoutNodeTopFigure0.numColumns = 1;
00610 layoutNodeTopFigure0.makeColumnsEqualWidth = true;
00611 nodeTopFigure0.setLayoutManager(layoutNodeTopFigure0);
00612
00613 fFigureNodeNameFigure = new WrappingLabel();
00614
00615 fFigureNodeNameFigure.setText("<...>");
00616
00617 fFigureNodeNameFigure.setFont(FFIGURENODENAMEFIGURE_FONT);
00618
00619 GridData constraintFFigureNodeNameFigure = new GridData();
00620 constraintFFigureNodeNameFigure.verticalAlignment = GridData.BEGINNING;
00621 constraintFFigureNodeNameFigure.horizontalAlignment = GridData.BEGINNING;
00622 constraintFFigureNodeNameFigure.horizontalIndent = 0;
00623 constraintFFigureNodeNameFigure.horizontalSpan = 3;
00624 constraintFFigureNodeNameFigure.verticalSpan = 1;
00625 constraintFFigureNodeNameFigure.grabExcessHorizontalSpace = false;
00626 constraintFFigureNodeNameFigure.grabExcessVerticalSpace = false;
00627 nodeTopFigure0.add(fFigureNodeNameFigure,
00628 constraintFFigureNodeNameFigure);
00629
00630 fFigureParameterCompartmentFigure = new RectangleFigure();
00631
00632 fFigureParameterCompartmentFigure.setFill(false);
00633
00634 GridData constraintFFigureParameterCompartmentFigure = new GridData();
00635 constraintFFigureParameterCompartmentFigure.verticalAlignment = GridData.FILL;
00636 constraintFFigureParameterCompartmentFigure.horizontalAlignment = GridData.FILL;
00637 constraintFFigureParameterCompartmentFigure.horizontalIndent = 0;
00638 constraintFFigureParameterCompartmentFigure.horizontalSpan = 1;
00639 constraintFFigureParameterCompartmentFigure.verticalSpan = 1;
00640 constraintFFigureParameterCompartmentFigure.grabExcessHorizontalSpace = true;
00641 constraintFFigureParameterCompartmentFigure.grabExcessVerticalSpace = true;
00642 this.add(fFigureParameterCompartmentFigure,
00643 constraintFFigureParameterCompartmentFigure);
00644
00645 fFigureParameterCompartmentFigure
00646 .setLayoutManager(new StackLayout());
00647
00648 }
00649
00653 public WrappingLabel getFigureNodeNameFigure() {
00654 return fFigureNodeNameFigure;
00655 }
00656
00660 public RectangleFigure getFigureParameterCompartmentFigure() {
00661 return fFigureParameterCompartmentFigure;
00662 }
00663
00664 }
00665
00669 static final Color NODETOPFIGURE0_FORE = new Color(null, 236, 232, 233);
00670
00674 static final Font FFIGURENODENAMEFIGURE_FONT = new Font(
00675 Display.getCurrent(), Display.getDefault().getSystemFont()
00676 .getFontData()[0].getName(), 10, SWT.BOLD);
00677
00678 }