//package org.eclipse.gmf.example.lesscode.diagram.edit.parts;
//
//import org.eclipse.draw2d.BorderLayout;
//import org.eclipse.draw2d.IFigure;
//import org.eclipse.draw2d.MarginBorder;
//import org.eclipse.draw2d.RectangleFigure;
//import org.eclipse.draw2d.RoundedRectangle;
//import org.eclipse.draw2d.Shape;
//import org.eclipse.draw2d.StackLayout;
//import org.eclipse.draw2d.geometry.Dimension;
//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.LayoutEditPolicy;
//import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
//import org.eclipse.gef.requests.CreateRequest;
//import org.eclipse.gmf.example.lesscode.diagram.edit.policies.Subject3ItemSemanticEditPolicy;
//import org.eclipse.gmf.example.lesscode.diagram.part.LesscodeVisualIDRegistry;
//import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
//import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
//import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
//import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
//import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
//import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
//import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
//import org.eclipse.gmf.runtime.notation.View;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.graphics.Color;
//import org.eclipse.swt.graphics.Font;
//import org.eclipse.swt.widgets.Display;
//
///**
// * @generated
// */
//public class Subject3EditPart extends ShapeNodeEditPart {
//
// /**
// * @generated
// */
// public static final int VISUAL_ID = 3002;
//
// /**
// * @generated
// */
// protected IFigure contentPane;
//
// /**
// * @generated
// */
// protected IFigure primaryShape;
//
// /**
// * @generated
// */
// public Subject3EditPart(View view) {
// super(view);
// }
//
// /**
// * @generated
// */
// protected void createDefaultEditPolicies() {
// super.createDefaultEditPolicies();
// installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new Subject3ItemSemanticEditPolicy());
// installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
// // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
// // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
// }
//
// /**
// * @generated
// */
// protected LayoutEditPolicy createLayoutEditPolicy() {
// org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
//
// protected EditPolicy createChildEditPolicy(EditPart child) {
// EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
// if (result == null) {
// result = new NonResizableEditPolicy();
// }
// return result;
// }
//
// protected Command getMoveChildrenCommand(Request request) {
// return null;
// }
//
// protected Command getCreateCommand(CreateRequest request) {
// return null;
// }
// };
// return lep;
// }
//
// /**
// * @generated
// */
// protected IFigure createNodeShape() {
// return primaryShape = new SubjectFigure();
// }
//
// /**
// * @generated
// */
// public SubjectFigure getPrimaryShape() {
// return (SubjectFigure) primaryShape;
// }
//
// /**
// * @generated
// */
// protected boolean addFixedChild(EditPart childEditPart) {
// if (childEditPart instanceof SubjectName3EditPart) {
// ((SubjectName3EditPart) childEditPart).setLabel(getPrimaryShape().getFigureSubjectNameFigure());
// return true;
// }
// if (childEditPart instanceof SubjectInSubject3EditPart) {
// IFigure pane = getPrimaryShape().getFigureSubjectContentPaneFigure();
// setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
// pane.add(((SubjectInSubject3EditPart) childEditPart).getFigure());
// return true;
// }
// return false;
// }
//
// /**
// * @generated
// */
// protected boolean removeFixedChild(EditPart childEditPart) {
// if (childEditPart instanceof SubjectName3EditPart) {
// return true;
// }
// if (childEditPart instanceof SubjectInSubject3EditPart) {
// IFigure pane = getPrimaryShape().getFigureSubjectContentPaneFigure();
// pane.remove(((SubjectInSubject3EditPart) childEditPart).getFigure());
// return true;
// }
// return false;
// }
//
// /**
// * @generated
// */
// protected void addChildVisual(EditPart childEditPart, int index) {
// if (addFixedChild(childEditPart)) {
// return;
// }
// super.addChildVisual(childEditPart, -1);
// }
//
// /**
// * @generated
// */
// protected void removeChildVisual(EditPart childEditPart) {
// if (removeFixedChild(childEditPart)) {
// return;
// }
// super.removeChildVisual(childEditPart);
// }
//
// /**
// * @generated
// */
// protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
// if (editPart instanceof SubjectInSubject3EditPart) {
// return getPrimaryShape().getFigureSubjectContentPaneFigure();
// }
// return getContentPane();
// }
//
// /**
// * @generated
// */
// protected NodeFigure createNodePlate() {
// DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
// return result;
// }
//
// /**
// * Creates figure for this edit part.
// *
// * Body of this method does not depend on settings in generation model
// * so you may safely remove <i>generated</i> tag and modify it.
// *
// * @generated
// */
// protected NodeFigure createNodeFigure() {
// NodeFigure figure = createNodePlate();
// figure.setLayoutManager(new StackLayout());
// IFigure shape = createNodeShape();
// figure.add(shape);
// contentPane = setupContentPane(shape);
// return figure;
// }
//
// /**
// * Default implementation treats passed figure as content pane.
// * Respects layout one may have set for generated figure.
// * @param nodeShape instance of generated figure class
// * @generated
// */
// protected IFigure setupContentPane(IFigure nodeShape) {
// if (nodeShape.getLayoutManager() == null) {
// ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
// layout.setSpacing(5);
// nodeShape.setLayoutManager(layout);
// }
// return nodeShape; // use nodeShape itself as contentPane
// }
//
// /**
// * @generated
// */
// public IFigure getContentPane() {
// if (contentPane != null) {
// return contentPane;
// }
// return super.getContentPane();
// }
//
// /**
// * @generated
// */
// protected void setForegroundColor(Color color) {
// if (primaryShape != null) {
// primaryShape.setForegroundColor(color);
// }
// }
//
// /**
// * @generated
// */
// protected void setBackgroundColor(Color color) {
// if (primaryShape != null) {
// primaryShape.setBackgroundColor(color);
// }
// }
//
// /**
// * @generated
// */
// protected void setLineWidth(int width) {
// if (primaryShape instanceof Shape) {
// ((Shape) primaryShape).setLineWidth(width);
// }
// }
//
// /**
// * @generated
// */
// protected void setLineType(int style) {
// if (primaryShape instanceof Shape) {
// ((Shape) primaryShape).setLineStyle(style);
// }
// }
//
// /**
// * @generated
// */
// public EditPart getPrimaryChildEditPart() {
// return getChildBySemanticHint(LesscodeVisualIDRegistry.getType(SubjectName3EditPart.VISUAL_ID));
// }
//
// /**
// * @generated
// */
// public class SubjectFigure extends RoundedRectangle {
//
// /**
// * @generated
// */
// private WrappingLabel fFigureSubjectNameFigure;
//
// /**
// * @generated
// */
// private RectangleFigure fFigureSubjectContentPaneFigure;
//
// /**
// * @generated
// */
// public SubjectFigure() {
//
// BorderLayout layoutThis = new BorderLayout();
// this.setLayoutManager(layoutThis);
//
// this.setCornerDimensions(new Dimension(6, 6));
// this.setLineWidth(3);
// this.setForegroundColor(THIS_FORE);
// this.setBackgroundColor(THIS_BACK);
// this.setMinimumSize(new Dimension(40, 40));
//
// this.setBorder(new MarginBorder(5, 3, 3, 3));
// createContents();
// }
//
// /**
// * @generated
// */
// private void createContents() {
//
// fFigureSubjectNameFigure = new WrappingLabel();
//
// fFigureSubjectNameFigure.setText("<..>");
//
// fFigureSubjectNameFigure.setFont(FFIGURESUBJECTNAMEFIGURE_FONT);
//
// this.add(fFigureSubjectNameFigure, BorderLayout.TOP);
//
// fFigureSubjectContentPaneFigure = new RectangleFigure();
//
// this.add(fFigureSubjectContentPaneFigure, BorderLayout.CENTER);
//
// }
//
// /**
// * @generated
// */
// public WrappingLabel getFigureSubjectNameFigure() {
// return fFigureSubjectNameFigure;
// }
//
// /**
// * @generated
// */
// public RectangleFigure getFigureSubjectContentPaneFigure() {
// return fFigureSubjectContentPaneFigure;
// }
//
// }
//
// /**
// * @generated
// */
// static final Color THIS_FORE = new Color(null, 111, 142, 194);
//
// /**
// * @generated
// */
// static final Color THIS_BACK = new Color(null, 242, 245, 252);
//
// /**
// * @generated
// */
// static final Font FFIGURESUBJECTNAMEFIGURE_FONT = new Font(Display.getCurrent(), "Verdana", 9, SWT.BOLD);
//
//}