Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 38538 Details for
Bug 136702
Provide code generation targeting pure-GEF (no gmf.runtime) -- Part I
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Fixes the subj
patch_136702.txt (text/plain), 870.69 KB, created by
Boris Blajer
on 2006-04-13 14:33:48 EDT
(
hide
)
Description:
Fixes the subj
Filename:
MIME Type:
Creator:
Boris Blajer
Created:
2006-04-13 14:33:48 EDT
Size:
870.69 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gmf.codegen.lite >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/CompartmentEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/CompartmentEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/CompartmentEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/CompartmentEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,456 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import java.util.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class CompartmentEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized CompartmentEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ CompartmentEditPartGenerator result = new CompartmentEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " extends "; >+ protected final String TEXT_6 = " implements IUpdatableEditPart {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_7 = "(View view) {" + NL + "\t\tsetModel(view);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_8 = " getModelChildren() {" + NL + "\t\treturn ((View) getModel()).getChildren();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {" + NL + "\t\t//XXX: install correct edit policies!"; >+ protected final String TEXT_9 = NL + "\t\tinstallEditPolicy("; >+ protected final String TEXT_10 = ".LAYOUT_ROLE, new "; >+ protected final String TEXT_11 = "() {" + NL + "\t\t\tprotected Command createChangeConstraintCommand(final "; >+ protected final String TEXT_12 = " request, EditPart child, Object constraint) {" + NL + "\t\t\t\tfinal Node node = (Node) child.getModel();" + NL + "\t\t\t\treturn new Command(\"Change node position/size\") {" + NL + "\t\t\t\t\tprivate "; >+ protected final String TEXT_13 = " moveDelta = request.getMoveDelta();" + NL + "\t\t\t\t\tprivate "; >+ protected final String TEXT_14 = " resizeDelta = request.getSizeDelta();" + NL + "" + NL + "\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\treturn canExecute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\treturn node.getLayoutConstraint() instanceof Bounds;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\texecute(moveDelta.getNegated(), resizeDelta.getNegated());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\texecute(moveDelta, resizeDelta);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tprivate void execute("; >+ protected final String TEXT_15 = " move, "; >+ protected final String TEXT_16 = " resize) {" + NL + "\t\t\t\t\t\tBounds bounds = (Bounds) node.getLayoutConstraint();" + NL + "\t\t\t\t\t\tbounds.setX(bounds.getX() + move.x);" + NL + "\t\t\t\t\t\tbounds.setY(bounds.getY() + move.y);" + NL + "\t\t\t\t\t\tbounds.setWidth(bounds.getWidth() + resize.width);" + NL + "\t\t\t\t\t\tbounds.setHeight(bounds.getHeight() + resize.height);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t}" + NL + "\t\t\tprotected Command createChangeConstraintCommand(EditPart child, Object constraint) {" + NL + "\t\t\t\tassert false;" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_17 = ".INSTANCE;" + NL + "\t\t\t}"; >+ protected final String TEXT_18 = NL + "\t\tinstallEditPolicy("; >+ protected final String TEXT_19 = ".LAYOUT_ROLE, new "; >+ protected final String TEXT_20 = "() {" + NL + "\t\t\tprotected Object getConstraintFor("; >+ protected final String TEXT_21 = " rect) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t\tprotected Object getConstraintFor("; >+ protected final String TEXT_22 = " point) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t\tprotected Command createChangeConstraintCommand(EditPart child, Object constraint) {" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_23 = ".INSTANCE;" + NL + "\t\t\t}"; >+ protected final String TEXT_24 = NL + "\t\t\tprotected Command getCreateCommand(CreateRequest request) {"; >+ protected final String TEXT_25 = NL + "\t\t\t\tif (request instanceof "; >+ protected final String TEXT_26 = ".CreateRequestEx) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_27 = ".CreateRequestEx requestEx = ("; >+ protected final String TEXT_28 = ".CreateRequestEx) request;" + NL + "\t\t\t\t\tint[] visualIds = requestEx.getVisualIds();" + NL + "\t\t\t\t\tCompoundCommand result = new CompoundCommand();" + NL + "\t\t\t\t\tfor(int i = 0; i < visualIds.length; i++) {" + NL + "\t\t\t\t\t\tint nextVisualId = visualIds[i];" + NL + "\t\t\t\t\t\tswitch (nextVisualId) {"; >+ protected final String TEXT_29 = NL + "\t\t\t\t\t\tcase "; >+ protected final String TEXT_30 = ":" + NL + "\t\t\t\t\t\t\tresult.add(new Create"; >+ protected final String TEXT_31 = "Command((View) getModel(), requestEx"; >+ protected final String TEXT_32 = ", " + NL + "\t\t\t\t\t\t\t\t("; >+ protected final String TEXT_33 = ")getConstraintFor(request)"; >+ protected final String TEXT_34 = "));" + NL + "\t\t\t\t\t\t\tbreak;"; >+ protected final String TEXT_35 = NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\treturn result.unwrap();" + NL + "\t\t\t\t}"; >+ protected final String TEXT_36 = NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t});" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getTitleName() {" + NL + "\t\treturn \""; >+ protected final String TEXT_37 = "\";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_38 = " createFigure() {" + NL + "\t\t"; >+ protected final String TEXT_39 = " result = new "; >+ protected final String TEXT_40 = "();" + NL + "\t\tresult.setLabel(getTitleName());" + NL + "\t\tresult.setOpaque(false);" + NL + "\t\tresult.setLayoutManager(new "; >+ protected final String TEXT_41 = "());" + NL + "\t\t"; >+ protected final String TEXT_42 = " scrollPane = new "; >+ protected final String TEXT_43 = "();" + NL + "\t\tresult.add(scrollPane);"; >+ protected final String TEXT_44 = NL + "\t\t"; >+ protected final String TEXT_45 = " viewport = new "; >+ protected final String TEXT_46 = "();" + NL + "\t\tcontentPane = new "; >+ protected final String TEXT_47 = "();" + NL + "\t\tcontentPane.setLayoutManager(new "; >+ protected final String TEXT_48 = "());"; >+ protected final String TEXT_49 = NL + "\t\t"; >+ protected final String TEXT_50 = " viewport = new "; >+ protected final String TEXT_51 = "();" + NL + "\t\tcontentPane = new "; >+ protected final String TEXT_52 = "();" + NL + "\t\tcontentPane.setLayoutManager(new "; >+ protected final String TEXT_53 = "());"; >+ protected final String TEXT_54 = NL + "\t\tviewport.setContents(contentPane);" + NL + "\t\tscrollPane.setViewport(viewport);" + NL + "\t\treturn result;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IFigure getContentPane() {" + NL + "\t\treturn contentPane;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IFigure contentPane;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_55 = " resolveSemanticElement() {" + NL + "\t\tfor(EditPart editPart = this; editPart != null; editPart = editPart.getParent()) {" + NL + "\t\t\tView view = (View)editPart.getModel();" + NL + "\t\t\tif (view != null && view.getElement() != null) {" + NL + "\t\t\t\treturn ("; >+ protected final String TEXT_56 = ") view.getElement();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL; >+ protected final String TEXT_57 = NL; >+ protected final String TEXT_58 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_59 = " structuralFeatures2Refresher;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Refresher getRefresher("; >+ protected final String TEXT_60 = " feature, "; >+ protected final String TEXT_61 = " msg) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\treturn (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void createRefreshers() {" + NL + "\t\tstructuralFeatures2Refresher = new HashMap();"; >+ protected final String TEXT_62 = NL; >+ protected final String TEXT_63 = "\t\tRefresher childrenRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshChildren();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_64 = ".eINSTANCE.getView_PersistedChildren(), childrenRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_65 = ".eINSTANCE.getView_TransientChildren(), childrenRefresher);"; >+ protected final String TEXT_66 = NL; >+ protected final String TEXT_67 = "\t\tRefresher visibilityRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshVisibility();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_68 = ".eINSTANCE.getView_Visible(), visibilityRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisuals() {" + NL + "\t\tsuper.refreshVisuals();" + NL + "//XXX:\t\trefreshBackgroundColor();" + NL + "//XXX:\t\trefreshForegroundColor();" + NL + "//XXX:\t\trefreshFont();" + NL + "\t\trefreshVisibility();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisibility() {" + NL + "\t\tboolean isVisible = ((View)getModel()).isVisible();" + NL + "\t\tboolean wasVisible = getFigure().isVisible();" + NL + "\t\tif (isVisible == wasVisible) {" + NL + "\t\t\treturn;" + NL + "\t\t}" + NL + "\t\tif (!isVisible && (getSelected() != SELECTED_NONE)) {" + NL + "\t\t\tgetViewer().deselect(this);" + NL + "\t\t}" + NL + "" + NL + "\t\tgetFigure().setVisible(isVisible);" + NL + "\t\tgetFigure().revalidate();" + NL + "\t}" + NL; >+ protected final String TEXT_69 = NL; >+ protected final String TEXT_70 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_71 = "static "; >+ protected final String TEXT_72 = "class Create"; >+ protected final String TEXT_73 = "Command extends "; >+ protected final String TEXT_74 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final "; >+ protected final String TEXT_75 = " parent;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_76 = " createdNode;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic Create"; >+ protected final String TEXT_77 = "Command("; >+ protected final String TEXT_78 = " parent, "; >+ protected final String TEXT_79 = ".CreateRequestEx request"; >+ protected final String TEXT_80 = ", "; >+ protected final String TEXT_81 = " constraint"; >+ protected final String TEXT_82 = ") {" + NL + "\t\t\tthis.parent = parent;" + NL + "\t\t\tcreatedNode = "; >+ protected final String TEXT_83 = ".eINSTANCE.createNode();"; >+ protected final String TEXT_84 = NL + "\t\t\t"; >+ protected final String TEXT_85 = " createdDomainElement = "; >+ protected final String TEXT_86 = ".eINSTANCE.create(" + NL + "\t\t\t\t"; >+ protected final String TEXT_87 = ".eINSTANCE.get"; >+ protected final String TEXT_88 = "());"; >+ protected final String TEXT_89 = NL + "\t\t\t"; >+ protected final String TEXT_90 = " createdDomainElement = "; >+ protected final String TEXT_91 = ".eINSTANCE.create"; >+ protected final String TEXT_92 = "();"; >+ protected final String TEXT_93 = "\t\t\tcreatedNode.setElement(createdDomainElement);" + NL + "\t\t\t"; >+ protected final String TEXT_94 = NL + "\t\t\t"; >+ protected final String TEXT_95 = "."; >+ protected final String TEXT_96 = ".initializeElement(createdDomainElement);" + NL + "\t\t\t"; >+ protected final String TEXT_97 = ".decorateView(createdNode);"; >+ protected final String TEXT_98 = NL + "\t\t\t"; >+ protected final String TEXT_99 = " bounds = "; >+ protected final String TEXT_100 = ".eINSTANCE.createBounds();" + NL + "\t\t\tcreatedNode.setLayoutConstraint(bounds);" + NL + "\t\t\tbounds.setX(constraint.x);" + NL + "\t\t\tbounds.setY(constraint.y);"; >+ protected final String TEXT_101 = NL + "\t\t\tbounds.setWidth(Math.max(constraint.width, "; >+ protected final String TEXT_102 = "));" + NL + "\t\t\tbounds.setHeight(Math.max(constraint.height, "; >+ protected final String TEXT_103 = "));"; >+ protected final String TEXT_104 = NL + "\t\t\t"; >+ protected final String TEXT_105 = " domainModelEditDomain = "; >+ protected final String TEXT_106 = ".getEditingDomainFor(parent.getDiagram().getElement());"; >+ protected final String TEXT_107 = NL + "\t\t\t"; >+ protected final String TEXT_108 = " compoundCommand = new "; >+ protected final String TEXT_109 = "();" + NL + "\t\t\tcompoundCommand.append("; >+ protected final String TEXT_110 = ".create(domainModelEditDomain, "; >+ protected final String TEXT_111 = ", " + NL + "\t\t\t\t"; >+ protected final String TEXT_112 = ".eINSTANCE.get"; >+ protected final String TEXT_113 = "(), createdNode.getElement()));" + NL + "\t\t\tcompoundCommand.append("; >+ protected final String TEXT_114 = ".create(domainModelEditDomain, "; >+ protected final String TEXT_115 = ", " + NL + "\t\t\t\t"; >+ protected final String TEXT_116 = ".eINSTANCE.get"; >+ protected final String TEXT_117 = "(), createdNode.getElement()));" + NL + "\t\t\tthis.domainModelAddCommand = compoundCommand;"; >+ protected final String TEXT_118 = NL + "\t\t\tthis.domainModelAddCommand = "; >+ protected final String TEXT_119 = ".create(domainModelEditDomain, "; >+ protected final String TEXT_120 = ", " + NL + "\t\t\t\t"; >+ protected final String TEXT_121 = ".eINSTANCE.get"; >+ protected final String TEXT_122 = "(), createdNode.getElement());"; >+ protected final String TEXT_123 = NL + "\t\t\trequest.setCreatedObject(createdNode);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final org.eclipse.emf.common.command.Command domainModelAddCommand;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic boolean canExecute() {" + NL + "\t\t\treturn domainModelAddCommand != null && domainModelAddCommand.canExecute();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic boolean canUndo() {" + NL + "\t\t\treturn domainModelAddCommand != null && domainModelAddCommand.canUndo();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void execute() {" + NL + "\t\t\tparent.insertChild(createdNode);" + NL + "\t\t\tdomainModelAddCommand.execute();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void undo() {" + NL + "\t\t\tparent.getPersistedChildren().remove(createdNode);" + NL + "\t\t\tdomainModelAddCommand.undo();" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_124 = NL + "}" + NL; >+ protected final String TEXT_125 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenCompartment genCompartment = (GenCompartment) ((Object[]) argument)[0]; >+GenNode genHost = genCompartment.getNode(); >+GenDiagram genDiagram = genCompartment.getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("org.eclipse.gef.commands.Command"); >+importManager.addImport("org.eclipse.gef.commands.CompoundCommand"); >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.requests.CreateRequest"); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genCompartment.getEditPartClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(genCompartment.getEditPartClassName()); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("java.util.List")); >+ stringBuffer.append(TEXT_8); >+ if (!genCompartment.isListLayout()) { >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.XYLayoutEditPolicy")); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.ChangeBoundsRequest")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Dimension")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Dimension")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_17); >+ } else { >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy")); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_23); >+ } >+ stringBuffer.append(TEXT_24); >+ if (null != genDiagram.getPalette()) { >+final Palette palette = genDiagram.getPalette(); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_28); >+ >+for(Iterator it = genCompartment.getChildNodes().iterator(); it.hasNext(); ) { >+ GenChildNode next = (GenChildNode)it.next(); >+ >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(next.getDomainMetaClass().getName()); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_31); >+ if (!genCompartment.isListLayout()) { >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_33); >+ } >+ stringBuffer.append(TEXT_34); >+ >+} >+ >+ stringBuffer.append(TEXT_35); >+ }/*when there's palette*/ >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(genCompartment.getTitle()); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.LabeledContainer")); >+ stringBuffer.append(TEXT_39); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.LabeledContainer")); >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.StackLayout")); >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ScrollPane")); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ScrollPane")); >+ stringBuffer.append(TEXT_43); >+ if (genCompartment.isListLayout()) { >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Viewport")); >+ stringBuffer.append(TEXT_45); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Viewport")); >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Figure")); >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ToolbarLayout")); >+ stringBuffer.append(TEXT_48); >+ } else { >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Viewport")); >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformViewport")); >+ stringBuffer.append(TEXT_51); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayer")); >+ stringBuffer.append(TEXT_52); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayout")); >+ stringBuffer.append(TEXT_53); >+ } >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("java.util.HashMap")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(TEXT_63); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_64); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_65); >+ stringBuffer.append(TEXT_66); >+ stringBuffer.append(TEXT_67); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_68); >+ >+for(Iterator it = genCompartment.getChildNodes().iterator(); genDiagram.getPalette() != null && it.hasNext(); ) { >+ GenChildNode next = (GenChildNode)it.next(); >+ boolean isStatic = false; >+ boolean isListLayout = genCompartment.isListLayout(); >+ String resolvedSemanticElement = "resolveSemanticElement()"; >+ >+ stringBuffer.append(TEXT_69); >+ stringBuffer.append(TEXT_70); >+ if (isStatic) { >+ stringBuffer.append(TEXT_71); >+ } >+ stringBuffer.append(TEXT_72); >+ stringBuffer.append(next.getDomainMetaClass().getName()); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_73); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_74); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_75); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_76); >+ stringBuffer.append(next.getDomainMetaClass().getName()); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_78); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getPalette().getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_79); >+ if (!isListLayout) { >+ stringBuffer.append(TEXT_80); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_81); >+ } >+ stringBuffer.append(TEXT_82); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_83); >+ >+if (next.getDomainMetaClass().isMapEntry()) { >+/*Workaround for Ecore example: map entries cannot be created using factory, only using reflective EFactory.create() method*/ >+ >+ stringBuffer.append(TEXT_84); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_85); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedFactoryInterfaceName())); >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(next.getDomainMetaClass().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_88); >+ >+} else { >+ >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedFactoryInterfaceName())); >+ stringBuffer.append(TEXT_91); >+ stringBuffer.append(next.getDomainMetaClass().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_92); >+ >+} >+ >+ stringBuffer.append(TEXT_93); >+ /*XXX: Class name DomainElementInitializer should be user-customizable*/ >+ stringBuffer.append(TEXT_94); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getNotationViewFactoriesPackageName() + ".DomainElementInitializer")); >+ stringBuffer.append(TEXT_95); >+ stringBuffer.append(next.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(importManager.getImportedName(next.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_97); >+ >+ if (!isListLayout) { >+ >+ stringBuffer.append(TEXT_98); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")); >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_100); >+ >+ int defaultWidth = 40; >+ int defaultHeight = 40; >+ DefaultSizeAttributes defSizeAttrs = (DefaultSizeAttributes) next.getViewmap().find(DefaultSizeAttributes.class); >+ if (defSizeAttrs != null) { >+ defaultWidth = defSizeAttrs.getWidth(); >+ defaultHeight = defSizeAttrs.getHeight(); >+ } >+ >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(defaultWidth); >+ stringBuffer.append(TEXT_102); >+ stringBuffer.append(defaultHeight); >+ stringBuffer.append(TEXT_103); >+ >+ } >+ >+ stringBuffer.append(TEXT_104); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_105); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_106); >+ >+ TypeModelFacet facet = next.getModelFacet(); >+ GenFeature childFeature = facet.getChildMetaFeature(); >+ GenFeature containmentFeature = facet.getContainmentMetaFeature(); >+ if (childFeature != null && childFeature != containmentFeature && !childFeature.isDerived()) { >+ >+ stringBuffer.append(TEXT_107); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_108); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_109); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_110); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_111); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_112); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_113); >+ stringBuffer.append(importManager.getImportedName(childFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_114); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_115); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_116); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_117); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_118); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_119); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_120); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_121); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_122); >+ >+ } >+ >+ stringBuffer.append(TEXT_123); >+ >+} >+ >+ stringBuffer.append(TEXT_124); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_125); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/DiagramEditPart.javajet >=================================================================== >RCS file: templates/parts/DiagramEditPart.javajet >diff -N templates/parts/DiagramEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/DiagramEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,249 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="DiagramEditPartGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* java.util.* org.eclipse.emf.codegen.ecore.genmodel.*"%> >+<% >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+ >+<% >+importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.gef.editparts.AbstractGraphicalEditPart"); >+importManager.addImport("org.eclipse.draw2d.IFigure"); >+importManager.addImport("org.eclipse.draw2d.FreeformLayer"); >+importManager.addImport("org.eclipse.draw2d.FreeformLayout"); >+importManager.addImport("org.eclipse.draw2d.MarginBorder"); >+importManager.addImport("org.eclipse.gef.commands.Command"); >+importManager.addImport("org.eclipse.gef.commands.CompoundCommand"); >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.draw2d.geometry.Dimension"); >+importManager.addImport("org.eclipse.draw2d.geometry.Point"); >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.SnapToGrid"); >+importManager.addImport("org.eclipse.gef.SnapToHelper"); >+importManager.addImport("org.eclipse.gef.editpolicies.RootComponentEditPolicy"); >+importManager.addImport("org.eclipse.gef.commands.UnexecutableCommand"); >+importManager.addImport("org.eclipse.gef.editpolicies.RootComponentEditPolicy"); >+importManager.addImport("org.eclipse.gef.editpolicies.XYLayoutEditPolicy"); >+importManager.addImport("org.eclipse.gef.requests.ChangeBoundsRequest"); >+importManager.addImport("org.eclipse.gef.requests.CreateRequest"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Bounds"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Diagram"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Node"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.NotationPackage"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("java.util.List"); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genDiagram.getEditPartClassName()%> extends AbstractGraphicalEditPart implements IUpdatableEditPart { >+ /** >+ * @generated >+ */ >+ public <%=genDiagram.getEditPartClassName()%>(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")%> model) { >+ setModel(model); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")%> getDiagram() { >+ return (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")%>) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+ installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy()); >+ installEditPolicy(EditPolicy.LAYOUT_ROLE, new XYLayoutEditPolicy() { >+ protected Command getCreateCommand(CreateRequest request) { >+<%if (null != genDiagram.getPalette()) { >+final Palette palette = genDiagram.getPalette();%> >+ if (request instanceof <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateRequestEx) { >+ <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateRequestEx requestEx = (<%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateRequestEx) request; >+ int[] visualIds = requestEx.getVisualIds(); >+ CompoundCommand result = new CompoundCommand(); >+ for(int i = 0; i < visualIds.length; i++) { >+ int nextVisualId = visualIds[i]; >+ switch (nextVisualId) { >+<% >+for(Iterator it = genDiagram.getTopLevelNodes().iterator(); it.hasNext(); ) { >+ GenTopLevelNode next = (GenTopLevelNode)it.next(); >+%> >+ case <%=next.getVisualID()%>: >+ result.add(new Create<%=next.getDomainMetaClass().getName()%><%=next.getVisualID()%>Command(getDiagram(), requestEx, (<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%>)getConstraintFor(request))); >+ break; >+<% >+} >+%> >+ } >+ } >+ return result.unwrap(); >+ } >+<%}/*when there's palette*/%> >+ return null; >+ } >+ protected Command createChangeConstraintCommand(final ChangeBoundsRequest request, EditPart child, Object constraint) { >+ final Node node = (Node) child.getModel(); >+ return new Command("Change node position/size") { >+ private Point moveDelta = request.getMoveDelta(); >+ private Dimension resizeDelta = request.getSizeDelta(); >+ >+ public boolean canUndo() { >+ return canExecute(); >+ } >+ public boolean canExecute() { >+ return node.getLayoutConstraint() instanceof Bounds; >+ } >+ public void undo() { >+ execute(moveDelta.getNegated(), resizeDelta.getNegated()); >+ } >+ public void execute() { >+ execute(moveDelta, resizeDelta); >+ } >+ private void execute(Point move, Dimension resize) { >+ Bounds bounds = (Bounds) node.getLayoutConstraint(); >+ bounds.setX(bounds.getX() + move.x); >+ bounds.setY(bounds.getY() + move.y); >+ bounds.setWidth(bounds.getWidth() + resize.width); >+ bounds.setHeight(bounds.getHeight() + resize.height); >+ } >+ }; >+ } >+ protected Command createChangeConstraintCommand(EditPart child, Object constraint) { >+ assert false; >+ return UnexecutableCommand.INSTANCE; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IFigure createFigure() { >+ IFigure f = new FreeformLayer(); >+ f.setBorder(new MarginBorder(5)); >+ f.setLayoutManager(new FreeformLayout()); >+ return f; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getAdapter(Class key) { >+ if (<%=importManager.getImportedName("org.eclipse.gef.SnapToHelper")%>.class == key) { >+ return new <%=importManager.getImportedName("org.eclipse.gef.SnapToGrid")%>(this); >+ } >+<%/*@ include file="adapters/propertySource.javajetinc"*/%> >+ return super.getAdapter(key); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return getDiagram().getVisibleChildren(); >+ } >+ >+<% >+for(Iterator it = genDiagram.getTopLevelNodes().iterator(); genDiagram.getPalette() != null && it.hasNext(); ) { >+ GenTopLevelNode next = (GenTopLevelNode)it.next(); >+ boolean isStatic = true; >+ boolean isListLayout = false; >+ String resolvedSemanticElement = "parent.getElement()"; >+%> >+<%@ include file="createNodeCommand.javajetinc"%> >+<% >+} >+%> >+ >+<%@ include file="refresher.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private void createRefreshers() { >+ structuralFeatures2Refresher = new HashMap(); >+<%@ include file="refreshers.javajetinc/children.javajetinc"%> >+ } >+ >+ /** >+ * @generated >+ */ >+ private class UpdateManager extends <%=importManager.getImportedName("org.eclipse.emf.ecore.util.EContentAdapter")%> { >+ /** >+ * @generated >+ */ >+ public void notifyChanged(<%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> msg) { >+ super.notifyChanged(msg); >+ if (msg.isTouch()) { >+ return; >+ } >+ <%=importManager.getImportedName("java.util.Collection")%> affectedEditParts = findAffectedParts(msg); >+ for(<%=importManager.getImportedName("java.util.Iterator")%> it = affectedEditParts.iterator(); it.hasNext(); ) { >+ IUpdatableEditPart next = (IUpdatableEditPart) it.next(); >+ IUpdatableEditPart.Refresher refresher = next.getRefresher((<%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>)msg.getFeature(), msg); >+ if (refresher != null) { >+ refresher.refresh(); >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("java.util.Collection")%>/*<IUpdatableEditPart>*/ findAffectedParts(<%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> msg) { >+ Object notifier = msg.getNotifier(); >+ if (notifier instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view = getView((EObject) notifier); >+ if (view != null) { >+ EditPart affectedEditPart = (EditPart) getViewer().getEditPartRegistry().get(view); >+ if (affectedEditPart != null) { >+ return <%=importManager.getImportedName("java.util.Collections")%>.singleton(affectedEditPart); >+ } >+ } >+ } >+ return <%=importManager.getImportedName("java.util.Collections")%>.EMPTY_LIST; >+ } >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> getView(EObject offspring) { >+ while (offspring != null && offspring instanceof View == false) { >+ offspring = offspring.eContainer(); >+ } >+ return (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) offspring; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ getDiagram().eAdapters().add(updateManager); >+ getDiagram().getElement().eAdapters().add(domainModelRefresher); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ getDiagram().getElement().eAdapters().remove(domainModelRefresher); >+ getDiagram().eAdapters().remove(updateManager); >+ super.deactivate(); >+ } >+ >+<%@ include file="refreshers.javajetinc/domainModelRefresher.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private UpdateManager updateManager = new UpdateManager(); >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/PropertySourceProviderGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/PropertySourceProviderGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/PropertySourceProviderGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/PropertySourceProviderGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,120 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class PropertySourceProviderGenerator >+{ >+ protected static String nl; >+ public static synchronized PropertySourceProviderGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ PropertySourceProviderGenerator result = new PropertySourceProviderGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " implements "; >+ protected final String TEXT_6 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_7 = " adapterFactoryContentProvider;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_8 = "("; >+ protected final String TEXT_9 = " domainAdapterFactory) {" + NL + "\t\tadapterFactoryContentProvider = new "; >+ protected final String TEXT_10 = "(domainAdapterFactory);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_11 = " getPropertySource(Object object) {" + NL + "\t\tif (object instanceof "; >+ protected final String TEXT_12 = ") {" + NL + "\t\t\treturn ("; >+ protected final String TEXT_13 = ") object;" + NL + "\t\t}" + NL + "\t\t"; >+ protected final String TEXT_14 = " view = getNotationElement(object);" + NL + "\t\tif (view == null) {" + NL + "\t\t\treturn adapterFactoryContentProvider.getPropertySource(object);" + NL + "\t\t}" + NL + "\t\t//XXX: compose with view properties" + NL + "\t\t"; >+ protected final String TEXT_15 = " domainElement = view.getElement();" + NL + "\t\treturn adapterFactoryContentProvider.getPropertySource(domainElement);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_16 = " getNotationElement(Object object) {" + NL + "\t\t"; >+ protected final String TEXT_17 = " view = null;" + NL + "\t\tif (object instanceof "; >+ protected final String TEXT_18 = ") {" + NL + "\t\t\tview = ("; >+ protected final String TEXT_19 = ") object;" + NL + "\t\t} else if (object instanceof "; >+ protected final String TEXT_20 = ") {" + NL + "\t\t\t"; >+ protected final String TEXT_21 = " editPart = ("; >+ protected final String TEXT_22 = ") object;" + NL + "\t\t\tif (editPart.getModel() instanceof "; >+ protected final String TEXT_23 = ") {" + NL + "\t\t\t\tview = ("; >+ protected final String TEXT_24 = ") editPart.getModel();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tif (view != null && \""; >+ protected final String TEXT_25 = "\".equals(getModelID(view))) {" + NL + "\t\t\treturn view;" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL; >+ protected final String TEXT_26 = NL; >+ protected final String TEXT_27 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate String getModelID("; >+ protected final String TEXT_28 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_29 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn (String) annotation.getDetails().get(\"modelID\"); //$NON-NLS-1$" + NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genDiagram.getPropertyProviderClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySourceProvider")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider")); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(genDiagram.getPropertyProviderClassName()); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.AdapterFactory")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(genDiagram.getEditorGen().getModelID()); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_29); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/componentEditPolicy.javajetinc >=================================================================== >RCS file: templates/parts/componentEditPolicy.javajetinc >diff -N templates/parts/componentEditPolicy.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/componentEditPolicy.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,91 @@ >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.COMPONENT_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ComponentEditPolicy")%>() { >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> createDeleteCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.GroupRequest")%> deleteRequest) { >+ return new <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%>() { >+<% >+{ >+TypeModelFacet facet = genNode.getModelFacet(); >+GenFeature childFeature = facet.getChildMetaFeature(); >+GenFeature containmentFeature = facet.getContainmentMetaFeature(); >+if (childFeature != null && childFeature != containmentFeature && !childFeature.isDerived()) { >+%> >+ private final org.eclipse.emf.common.command.Command domainModelRemoveCommand = getDomainModelRemoveCommand(); >+ private org.eclipse.emf.common.command.Command getDomainModelRemoveCommand() { >+ <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%> result = new <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%>(); >+<% >+ if (containmentFeature.getEcoreFeature().isMany()) { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram().getElement()), >+ getDiagramNode().getElement().eContainer(), <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), >+ getDiagramNode().getElement())); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram().getElement()), >+ getDiagramNode().getElement().eContainer(), <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), >+ <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE)); >+<% >+ } >+%> >+<% >+ if (childFeature.getEcoreFeature().isMany()) { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram().getElement()), >+ getDiagramNode().getElement().eContainer(), <%=importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=childFeature.getFeatureAccessorName()%>(), >+ getDiagramNode().getElement())); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram().getElement()), >+ getDiagramNode().getElement().eContainer(), <%=importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=childFeature.getFeatureAccessorName()%>(), >+ <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE)); >+<% >+ } >+%> >+ return result; >+ } >+<% >+} else { >+ if (containmentFeature.getEcoreFeature().isMany()) { >+%> >+ private final org.eclipse.emf.common.command.Command domainModelRemoveCommand = <%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram().getElement()), >+ getDiagramNode().getElement().eContainer(), <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), >+ getDiagramNode().getElement()); >+<% >+ } else { >+%> >+ private final org.eclipse.emf.common.command.Command domainModelRemoveCommand = <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram().getElement()), >+ getDiagramNode().getElement().eContainer(), <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), >+ <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE); >+<% >+ } >+} >+%> >+ private final org.eclipse.emf.common.command.Command viewRemoveCommand = <%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(getDiagramNode().getDiagram()), >+ getDiagramNode()); >+ public boolean canExecute() { >+ return domainModelRemoveCommand != null && domainModelRemoveCommand.canExecute() && viewRemoveCommand != null && viewRemoveCommand.canExecute(); >+ } >+ public void execute() { >+ domainModelRemoveCommand.execute(); >+ viewRemoveCommand.execute(); >+ } >+ public boolean canUndo() { >+ return domainModelRemoveCommand != null && domainModelRemoveCommand.canUndo() && viewRemoveCommand != null && viewRemoveCommand.canUndo(); >+ } >+ public void undo() { >+ domainModelRemoveCommand.undo(); >+ viewRemoveCommand.undo(); >+ } >+ }; >+ } >+ }); >+<% >+} /*restrict local vars used in component edit policy*/ >+%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DiagramViewFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DiagramViewFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DiagramViewFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DiagramViewFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,74 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class DiagramViewFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized DiagramViewFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ DiagramViewFactoryGenerator result = new DiagramViewFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void decorateView("; >+ protected final String TEXT_6 = " view) {"; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = " annotation = "; >+ protected final String TEXT_9 = ".eINSTANCE.createEAnnotation();" + NL + "annotation.setSource(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "view.getEAnnotations().add(annotation);" + NL + "annotation.getDetails().put(\"modelID\", \""; >+ protected final String TEXT_10 = "\"); //$NON-NLS-1$" + NL + "annotation.getDetails().put(\"visualID\", \""; >+ protected final String TEXT_11 = "\"); //$NON-NLS-1$" + NL + "\t\t"; >+ protected final String TEXT_12 = " style = "; >+ protected final String TEXT_13 = ".eINSTANCE.createDiagramStyle();" + NL + "\t\tview.getStyles().add(style);" + NL + "\t\t//XXX: init styles from attributes!!!" + NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+GenDiagram genElement = genDiagram; /*make jetinc happy*/ >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genElement.getNotationViewFactoryClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EcoreFactory")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genDiagram.getEditorGen().getModelID()); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genElement.getVisualID()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.DiagramStyle")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_13); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/ChildNodeEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/ChildNodeEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/ChildNodeEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/ChildNodeEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,921 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import java.util.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.emf.ecore.*; >+ >+public class ChildNodeEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized ChildNodeEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ ChildNodeEditPartGenerator result = new ChildNodeEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL; >+ protected final String TEXT_5 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_6 = " extends "; >+ protected final String TEXT_7 = " implements IUpdatableEditPart {"; >+ protected final String TEXT_8 = NL; >+ protected final String TEXT_9 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_10 = " manager;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate String defaultText;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_11 = "(View view) {" + NL + "\t\tsetModel(view);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_12 = " getDiagramNode() {" + NL + "\t\treturn ("; >+ protected final String TEXT_13 = ") getModel();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {" + NL + "\t\t//XXX: install correct edit policies!"; >+ protected final String TEXT_14 = NL; >+ protected final String TEXT_15 = "\t\tinstallEditPolicy("; >+ protected final String TEXT_16 = ".DIRECT_EDIT_ROLE," + NL + "\t\t\t\tnew "; >+ protected final String TEXT_17 = "() {" + NL + "\t\t\t\t\tprotected void showCurrentEditValue("; >+ protected final String TEXT_18 = " request) {" + NL + "\t\t\t\t\t\tString value = (String) request.getCellEditor().getValue();" + NL + "\t\t\t\t\t\tgetLabel().setText(value);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tprotected "; >+ protected final String TEXT_19 = " getDirectEditCommand("; >+ protected final String TEXT_20 = " request) {" + NL + "\t\t\t\t\t\tString value = (String) request.getCellEditor().getValue();" + NL + "\t\t\t\t\t\tif (value == null) {" + NL + "\t\t\t\t\t\t\t//Invalid value is transformed into a null by the validator." + NL + "\t\t\t\t\t\t\t//XXX: implement validator" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_21 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tfinal Object[] parseResult;" + NL + "\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\tparseResult = new "; >+ protected final String TEXT_22 = "(EDIT_PATTERN).parse(value);" + NL + "\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_23 = ".INSTANCE;" + NL + "\t\t\t\t\t\t} catch ("; >+ protected final String TEXT_24 = " e) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_25 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}"; >+ protected final String TEXT_26 = NL + "\t\t\t\t\t\tif (parseResult.length != 1) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_27 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn new "; >+ protected final String TEXT_28 = "() {" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_29 = " element = "; >+ protected final String TEXT_30 = ";" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_31 = " domainModelCommand = createDomainModelCommand();" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_32 = " createDomainModelCommand() {" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_33 = " domainModelEditDomain = "; >+ protected final String TEXT_34 = ".getEditingDomainFor("; >+ protected final String TEXT_35 = ".getDiagram().getElement());" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_36 = " feature = ("; >+ protected final String TEXT_37 = ") "; >+ protected final String TEXT_38 = ".eINSTANCE.get"; >+ protected final String TEXT_39 = "();" + NL + "\t\t\t\t\t\t\t\tObject valueToSet;" + NL + "\t\t\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\t\t\tvalueToSet = "; >+ protected final String TEXT_40 = ".parseValue(feature, parseResult[0]);" + NL + "\t\t\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_41 = ".INSTANCE;" + NL + "\t\t\t\t\t\t\t\t}"; >+ protected final String TEXT_42 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_43 = " result = new "; >+ protected final String TEXT_44 = "();" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_45 = " values = new "; >+ protected final String TEXT_46 = "();" + NL + "\t\t\t\t\t\t\t\tvalues.addAll(element.get"; >+ protected final String TEXT_47 = "());" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_48 = ".create(domainModelEditDomain, element, feature, values));" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_49 = ".create(domainModelEditDomain, element, feature, valueToSet));" + NL + "\t\t\t\t\t\t\t\treturn result;"; >+ protected final String TEXT_50 = NL + "\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_51 = ".create(domainModelEditDomain, element, feature, valueToSet);"; >+ protected final String TEXT_52 = NL + "\t\t\t\t\t\t\t}"; >+ protected final String TEXT_53 = NL + "\t\t\t\t\t\tif (parseResult.length != "; >+ protected final String TEXT_54 = ") {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_55 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn new "; >+ protected final String TEXT_56 = "() {" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_57 = " element = "; >+ protected final String TEXT_58 = ";" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_59 = " domainModelCommand = createDomainModelCommand();" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_60 = " createDomainModelCommand() {" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_61 = " domainModelEditDomain = "; >+ protected final String TEXT_62 = ".getEditingDomainFor("; >+ protected final String TEXT_63 = ".getDiagram().getElement());" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_64 = " result = new "; >+ protected final String TEXT_65 = "();" + NL + "\t\t\t\t\t\t\t\tObject valueToSet;"; >+ protected final String TEXT_66 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_67 = " "; >+ protected final String TEXT_68 = "feature = ("; >+ protected final String TEXT_69 = ") "; >+ protected final String TEXT_70 = ".eINSTANCE.get"; >+ protected final String TEXT_71 = "();" + NL + "\t\t\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\t\t\tvalueToSet = "; >+ protected final String TEXT_72 = ".parseValue(feature, parseResult["; >+ protected final String TEXT_73 = "]);" + NL + "\t\t\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_74 = ".INSTANCE;" + NL + "\t\t\t\t\t\t\t\t}"; >+ protected final String TEXT_75 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_76 = " "; >+ protected final String TEXT_77 = "values = new "; >+ protected final String TEXT_78 = "();" + NL + "\t\t\t\t\t\t\t\tvalues.addAll(element.get"; >+ protected final String TEXT_79 = "());" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_80 = ".create(domainModelEditDomain, element, feature, values));" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_81 = ".create(domainModelEditDomain, element, feature, valueToSet));"; >+ protected final String TEXT_82 = NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_83 = ".create(domainModelEditDomain, element, feature, valueToSet));"; >+ protected final String TEXT_84 = NL + "\t\t\t\t\t\t\t\treturn result;" + NL + "\t\t\t\t\t\t\t}"; >+ protected final String TEXT_85 = NL + "\t\t\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\t\t\tdomainModelCommand.undo();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\t\t\tdomainModelCommand.execute();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\t\t\treturn element != null && domainModelCommand != null && domainModelCommand.canUndo();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\t\t\treturn element != null && domainModelCommand != null && domainModelCommand.canExecute();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t};" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t});"; >+ protected final String TEXT_86 = NL; >+ protected final String TEXT_87 = "\t\tinstallEditPolicy("; >+ protected final String TEXT_88 = ".COMPONENT_ROLE, new "; >+ protected final String TEXT_89 = "() {" + NL + "\t\t\tprotected "; >+ protected final String TEXT_90 = " createDeleteCommand("; >+ protected final String TEXT_91 = " deleteRequest) {" + NL + "\t\t\t\treturn new "; >+ protected final String TEXT_92 = "() {"; >+ protected final String TEXT_93 = NL + "\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = getDomainModelRemoveCommand();" + NL + "\t\t\t\t\tprivate org.eclipse.emf.common.command.Command getDomainModelRemoveCommand() {" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_94 = " result = new "; >+ protected final String TEXT_95 = "();"; >+ protected final String TEXT_96 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_97 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_98 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_99 = ".eINSTANCE.get"; >+ protected final String TEXT_100 = "()," + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement()));"; >+ protected final String TEXT_101 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_102 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_103 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_104 = ".eINSTANCE.get"; >+ protected final String TEXT_105 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_106 = ".UNSET_VALUE));"; >+ protected final String TEXT_107 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_108 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_109 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_110 = ".eINSTANCE.get"; >+ protected final String TEXT_111 = "()," + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement()));"; >+ protected final String TEXT_112 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_113 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_114 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_115 = ".eINSTANCE.get"; >+ protected final String TEXT_116 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_117 = ".UNSET_VALUE));"; >+ protected final String TEXT_118 = NL + "\t\t\t\t\t\treturn result;" + NL + "\t\t\t\t\t}"; >+ protected final String TEXT_119 = NL + "\t\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = "; >+ protected final String TEXT_120 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_121 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_122 = ".eINSTANCE.get"; >+ protected final String TEXT_123 = "()," + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement());"; >+ protected final String TEXT_124 = NL + "\t\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = "; >+ protected final String TEXT_125 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_126 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_127 = ".eINSTANCE.get"; >+ protected final String TEXT_128 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_129 = ".UNSET_VALUE);"; >+ protected final String TEXT_130 = NL + "\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command viewRemoveCommand = "; >+ protected final String TEXT_131 = ".create(" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_132 = ".getEditingDomainFor(getDiagramNode().getDiagram()), " + NL + "\t\t\t\t\t\tgetDiagramNode());" + NL + "\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\treturn domainModelRemoveCommand != null && domainModelRemoveCommand.canExecute() && viewRemoveCommand != null && viewRemoveCommand.canExecute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\tdomainModelRemoveCommand.execute();" + NL + "\t\t\t\t\t\tviewRemoveCommand.execute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\treturn domainModelRemoveCommand != null && domainModelRemoveCommand.canUndo() && viewRemoveCommand != null && viewRemoveCommand.canUndo();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\tdomainModelRemoveCommand.undo();" + NL + "\t\t\t\t\t\tviewRemoveCommand.undo();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t}" + NL + "\t\t});"; >+ protected final String TEXT_133 = NL + "\t}" + NL; >+ protected final String TEXT_134 = NL; >+ protected final String TEXT_135 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void performRequest("; >+ protected final String TEXT_136 = " req) {" + NL + "\t\tif ("; >+ protected final String TEXT_137 = ".REQ_DIRECT_EDIT == req.getType()) {" + NL + "\t\t\tperformDirectEdit();" + NL + "\t\t} else {" + NL + "\t\t\tsuper.performRequest(req);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_138 = " getManager() {" + NL + "\t\tif (manager == null) {" + NL + "\t\t\tmanager = new "; >+ protected final String TEXT_139 = "(this, "; >+ protected final String TEXT_140 = ".class, new "; >+ protected final String TEXT_141 = "() {" + NL + "\t\t\t\tpublic void relocate("; >+ protected final String TEXT_142 = " celleditor) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_143 = " rect = getLabel().getTextBounds();" + NL + "\t\t\t\t\tgetLabel().translateToAbsolute(rect);" + NL + "\t\t\t\t\tcelleditor.getControl().setBounds(rect.x, rect.y, rect.width, rect.height);" + NL + "\t\t\t\t}" + NL + "\t\t\t}) {" + NL + "\t\t\t\tprotected void initCellEditor() {" + NL + "\t\t\t\t\tgetCellEditor().setValue(getLabelEditText());" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "\t\t}" + NL + "\t\treturn manager;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void performDirectEdit() {" + NL + "\t\tgetManager().show();" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected List getModelChildren() {" + NL + "\t\treturn ((View)getModel()).getVisibleChildren();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected List getModelSourceConnections() {" + NL + "\t\treturn ((View)getModel()).getSourceEdges();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected List getModelTargetConnections() {" + NL + "\t\treturn ((View)getModel()).getTargetEdges();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisuals() {" + NL + "\t\tsuper.refreshVisuals();" + NL + "\t\trefreshLabel();" + NL + "\t\trefreshFont();" + NL + "\t\trefreshFontColor();" + NL + "\t\trefreshVisibility();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshLabel() {" + NL + "\t\tgetLabel().setText(getLabelText());" + NL + "\t\tgetLabel().setIcon(getLabelIcon());" + NL + "\t}"; >+ protected final String TEXT_144 = NL; >+ protected final String TEXT_145 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final String VIEW_PATTERN = \""; >+ protected final String TEXT_146 = "\";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final String EDIT_PATTERN = \""; >+ protected final String TEXT_147 = "\";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getLabelText() {" + NL + "\t\t"; >+ protected final String TEXT_148 = " element = "; >+ protected final String TEXT_149 = ";" + NL + "\t\tif (element == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}" + NL + "\t\treturn buildTextByPattern(element, VIEW_PATTERN);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getLabelEditText() {" + NL + "\t\t"; >+ protected final String TEXT_150 = " element = "; >+ protected final String TEXT_151 = ";" + NL + "\t\tif (element == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}" + NL + "\t\treturn buildTextByPattern(element, EDIT_PATTERN);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String buildTextByPattern("; >+ protected final String TEXT_152 = " element, String pattern) {"; >+ protected final String TEXT_153 = NL + "\t\tif (element.get"; >+ protected final String TEXT_154 = "() == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}"; >+ protected final String TEXT_155 = NL + "\t\treturn "; >+ protected final String TEXT_156 = ".format(pattern, new Object[] {"; >+ protected final String TEXT_157 = NL + "\t\t\t"; >+ protected final String TEXT_158 = NL + "\t\t});"; >+ protected final String TEXT_159 = NL + "\t\treturn "; >+ protected final String TEXT_160 = ".format(pattern, new Object[] {"; >+ protected final String TEXT_161 = NL + "\t\t"; >+ protected final String TEXT_162 = ","; >+ protected final String TEXT_163 = NL + "\t\t});"; >+ protected final String TEXT_164 = NL + "\t\t//XXX: unexpected model facet." + NL + "\t\treturn defaultText;"; >+ protected final String TEXT_165 = NL + "\t}"; >+ protected final String TEXT_166 = NL; >+ protected final String TEXT_167 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFont() {" + NL + "\t\t"; >+ protected final String TEXT_168 = " style =" + NL + "\t\t\t("; >+ protected final String TEXT_169 = ") "; >+ protected final String TEXT_170 = ".getStyle(" + NL + "\t\t\t\t"; >+ protected final String TEXT_171 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_172 = " toDispose = createdFont;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tString fontName = style.getFontName();" + NL + "\t\t\tint fontHeight = style.getFontHeight();" + NL + "\t\t\tint fontStyle = "; >+ protected final String TEXT_173 = ".NORMAL;" + NL + "\t\t\tif (style.isBold()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_174 = ".BOLD;" + NL + "\t\t\t}" + NL + "\t\t\tif (style.isItalic()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_175 = ".ITALIC;" + NL + "\t\t\t}" + NL + "\t\t\t"; >+ protected final String TEXT_176 = " currentFont = getFigure().getFont();" + NL + "\t\t\tif (currentFont != null) {" + NL + "\t\t\t\t"; >+ protected final String TEXT_177 = " currentFontData = currentFont.getFontData()[0];" + NL + "\t\t\t\tif (currentFontData.getName().equals(fontName) && currentFontData.getHeight() == fontHeight && currentFontData.getStyle() == fontStyle) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFont = new "; >+ protected final String TEXT_178 = "(null, fontName, fontHeight, fontStyle);" + NL + "\t\t\tgetFigure().setFont(createdFont);" + NL + "\t\t} else {" + NL + "\t\t\t//revert to the default font" + NL + "\t\t\tgetFigure().setFont(getViewer().getControl().getFont());" + NL + "\t\t\tcreatedFont = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The font (created by {@link #refreshFont()}) currently assigned to the label (unless the default font is assigned)." + NL + "\t * Whenever another non-default font is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_179 = " createdFont;"; >+ protected final String TEXT_180 = NL; >+ protected final String TEXT_181 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFontColor() {" + NL + "\t\t"; >+ protected final String TEXT_182 = " style = ("; >+ protected final String TEXT_183 = ") "; >+ protected final String TEXT_184 = ".getStyle("; >+ protected final String TEXT_185 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_186 = " toDispose = createdFontColor;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tint fontColor = style.getFontColor();" + NL + "\t\t\tint red = fontColor & 0x000000FF;" + NL + "\t\t\tint green = (fontColor & 0x0000FF00) >> 8;" + NL + "\t\t\tint blue = (fontColor & 0x00FF0000) >> 16;" + NL + "\t\t\t"; >+ protected final String TEXT_187 = " currentColor = getLabel().getForegroundColor();" + NL + "\t\t\tif (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFontColor = new "; >+ protected final String TEXT_188 = "(null, red, green, blue);" + NL + "\t\t\tgetFigure().setForegroundColor(createdFontColor);" + NL + "\t\t} else {" + NL + "\t\t\tgetFigure().setForegroundColor(getViewer().getControl().getForeground());" + NL + "\t\t\tcreatedFontColor = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The color (created by {@link #refreshFontColor()}) currently assigned to the label." + NL + "\t * Whenever another color is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_189 = " createdFontColor;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_190 = " getLabelIcon() {" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisibility() {" + NL + "\t\tboolean isVisible = getDiagramNode().isVisible();" + NL + "\t\tboolean wasVisible = getFigure().isVisible();" + NL + "\t\tif (isVisible == wasVisible) {" + NL + "\t\t\treturn;" + NL + "\t\t}" + NL + "\t\tif (!isVisible && (getSelected() != SELECTED_NONE)) {" + NL + "\t\t\tgetViewer().deselect(this);" + NL + "\t\t}" + NL + "" + NL + "\t\tgetFigure().setVisible(isVisible);" + NL + "\t\tgetFigure().revalidate();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object getAdapter(Class key) {"; >+ protected final String TEXT_191 = NL + "\t\treturn super.getAdapter(key);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void activate() {" + NL + "\t\tsuper.activate();" + NL + "\t\tgetDiagramNode().getElement().eAdapters().add(domainModelRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void deactivate() {" + NL + "\t\tgetDiagramNode().getElement().eAdapters().remove(domainModelRefresher);" + NL + "\t\tsuper.deactivate();" + NL + "\t}" + NL; >+ protected final String TEXT_192 = NL; >+ protected final String TEXT_193 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate DomainModelRefresher domainModelRefresher = new DomainModelRefresher();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate class DomainModelRefresher extends "; >+ protected final String TEXT_194 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void notifyChanged("; >+ protected final String TEXT_195 = " msg) {" + NL + "\t\t\tsuper.notifyChanged(msg);" + NL + "\t\t\tif (msg.isTouch()) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tRefresher refresher = getRefresher(("; >+ protected final String TEXT_196 = ") msg.getFeature(), msg);" + NL + "\t\t\tif (refresher != null) {" + NL + "\t\t\t\trefresher.refresh();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL; >+ protected final String TEXT_197 = NL; >+ protected final String TEXT_198 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_199 = " structuralFeatures2Refresher;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Refresher getRefresher("; >+ protected final String TEXT_200 = " feature, "; >+ protected final String TEXT_201 = " msg) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\treturn (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void createRefreshers() {" + NL + "\t\tstructuralFeatures2Refresher = new HashMap();"; >+ protected final String TEXT_202 = NL; >+ protected final String TEXT_203 = "\t\tRefresher childrenRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshChildren();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_204 = ".eINSTANCE.getView_PersistedChildren(), childrenRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_205 = ".eINSTANCE.getView_TransientChildren(), childrenRefresher);"; >+ protected final String TEXT_206 = NL; >+ protected final String TEXT_207 = "\t\tRefresher visibilityRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshVisibility();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_208 = ".eINSTANCE.getView_Visible(), visibilityRefresher);" + NL + "\t\tRefresher labelRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshLabel();" + NL + "\t\t\t}" + NL + "\t\t};"; >+ protected final String TEXT_209 = NL + "\t\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_210 = ".eINSTANCE.get"; >+ protected final String TEXT_211 = "(), labelRefresher);"; >+ protected final String TEXT_212 = NL + "\t\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_213 = ".eINSTANCE.get"; >+ protected final String TEXT_214 = "(), labelRefresher);"; >+ protected final String TEXT_215 = NL; >+ protected final String TEXT_216 = "\t\tRefresher fontRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshFont();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_217 = ".eINSTANCE.getFontStyle_FontHeight(), fontRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_218 = ".eINSTANCE.getFontStyle_FontName(), fontRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_219 = ".eINSTANCE.getFontStyle_Bold(), fontRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_220 = ".eINSTANCE.getFontStyle_Italic(), fontRefresher);" + NL + "\t\t"; >+ protected final String TEXT_221 = NL; >+ protected final String TEXT_222 = "\t\tRefresher fontColorRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshFontColor();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_223 = ".eINSTANCE.getFontStyle_FontColor(), fontColorRefresher);" + NL + "\t}" + NL; >+ protected final String TEXT_224 = NL; >+ protected final String TEXT_225 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_226 = " createFigure() {" + NL + "\t\t"; >+ protected final String TEXT_227 = " label = createLabel();" + NL + "\t\tdefaultText = label.getText();" + NL + "\t\treturn label;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_228 = " createLabel() {"; >+ protected final String TEXT_229 = NL + "\t\treturn new "; >+ protected final String TEXT_230 = "();"; >+ protected final String TEXT_231 = NL + "\t\treturn "; >+ protected final String TEXT_232 = ";"; >+ protected final String TEXT_233 = NL + "\t\treturn new "; >+ protected final String TEXT_234 = "();"; >+ protected final String TEXT_235 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_236 = " getLabel() {" + NL + "\t\treturn ("; >+ protected final String TEXT_237 = ") getFigure();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setLabel("; >+ protected final String TEXT_238 = " figure) {" + NL + "\t\tunregisterVisuals();" + NL + "\t\tsetFigure(figure);" + NL + "\t\tdefaultText = figure.getText();" + NL + "\t\tregisterVisuals();" + NL + "\t\trefreshVisuals();" + NL + "\t}" + NL; >+ protected final String TEXT_239 = NL; >+ protected final String TEXT_240 = NL; >+ protected final String TEXT_241 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class MapModeWorkaround {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int DPtoLP(int dp) {" + NL + "\t\t\treturn dp;" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static MapModeWorkaround INSTANCE = new MapModeWorkaround();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate MapModeWorkaround getMapMode() {" + NL + "\t\treturn MapModeWorkaround.INSTANCE;" + NL + "\t}"; >+ protected final String TEXT_242 = NL + "}"; >+ protected final String TEXT_243 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenNode genChildNode = (GenNode) ((Object[]) argument)[0]; >+GenNodeLabel genLabel = (GenNodeLabel) genChildNode.getLabels().get(0); >+GenNode genHost = genChildNode; >+GenNode genNode = genChildNode; /*var used by componentEditPolicy.javajetinc*/ >+GenClass underlyingMetaClass = genHost.getDomainMetaClass(); >+GenDiagram genDiagram = genChildNode.getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+LabelModelFacet labelModelFacet = genLabel.getModelFacet(); >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ stringBuffer.append(TEXT_4); >+ importManager.emitPackageStatement(stringBuffer); >+ >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.gef.Request"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.NotationPackage"); >+importManager.addImport("java.util.List"); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genChildNode.getEditPartClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genChildNode.getEditPartClassName()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_13); >+ >+ String resolvedSemanticElement = "(" + importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName()) + ") getDiagramNode().getElement()"; >+ final String primaryView = "getDiagramNode()"; >+ >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.DirectEditPolicy")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(importManager.getImportedName("java.text.ParseException")); >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_25); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet && !genLabel.isReadOnly()) { >+ GenFeature featureToSet = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ EStructuralFeature ecoreFeature = featureToSet.getEcoreFeature(); >+ >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName(featureToSet.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(featureToSet.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_39); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())); >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_41); >+ >+ if (ecoreFeature.isMany()) { >+ >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.EList")); >+ stringBuffer.append(TEXT_45); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(featureToSet.getAccessorName()); >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")); >+ stringBuffer.append(TEXT_49); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_51); >+ >+ } >+ >+ stringBuffer.append(TEXT_52); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ List metaFeatures = compositeFeatureLabelModelFacet.getMetaFeatures(); >+ >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(metaFeatures.size()); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_63); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_64); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_65); >+ >+ boolean haveDeclaredValues = false; >+ for(int i = 0; i < metaFeatures.size(); i++) { >+ GenFeature nextFeatureToSet = (GenFeature) metaFeatures.get(i); >+ EStructuralFeature nextEcoreFeature = nextFeatureToSet.getEcoreFeature(); >+ >+ stringBuffer.append(TEXT_66); >+ if (i == 0) { >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_67); >+ } >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_69); >+ stringBuffer.append(importManager.getImportedName(nextFeatureToSet.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(nextFeatureToSet.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_71); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())); >+ stringBuffer.append(TEXT_72); >+ stringBuffer.append(i); >+ stringBuffer.append(TEXT_73); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_74); >+ >+ if (nextEcoreFeature.isMany()) { >+ >+ stringBuffer.append(TEXT_75); >+ if (!haveDeclaredValues) { haveDeclaredValues = true; >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.EList")); >+ stringBuffer.append(TEXT_76); >+ } >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_78); >+ stringBuffer.append(nextFeatureToSet.getAccessorName()); >+ stringBuffer.append(TEXT_79); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_80); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")); >+ stringBuffer.append(TEXT_81); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_82); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_83); >+ >+ } >+ >+ >+ } >+ >+ stringBuffer.append(TEXT_84); >+ >+} >+ >+ stringBuffer.append(TEXT_85); >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_88); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ComponentEditPolicy")); >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.GroupRequest")); >+ stringBuffer.append(TEXT_91); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_92); >+ >+{ >+TypeModelFacet facet = genNode.getModelFacet(); >+GenFeature childFeature = facet.getChildMetaFeature(); >+GenFeature containmentFeature = facet.getContainmentMetaFeature(); >+if (childFeature != null && childFeature != containmentFeature && !childFeature.isDerived()) { >+ >+ stringBuffer.append(TEXT_93); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_94); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_95); >+ >+ if (containmentFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_97); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_98); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_100); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_102); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_103); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_104); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_105); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_106); >+ >+ } >+ >+ >+ if (childFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_107); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_108); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_109); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_110); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_111); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_112); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_113); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_114); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_115); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_116); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_117); >+ >+ } >+ >+ stringBuffer.append(TEXT_118); >+ >+} else { >+ if (containmentFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_119); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_120); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_121); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_122); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_123); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_124); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_125); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_126); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_127); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_128); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_129); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_130); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_131); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_132); >+ >+} /*restrict local vars used in component edit policy*/ >+ >+ stringBuffer.append(TEXT_133); >+ stringBuffer.append(TEXT_134); >+ stringBuffer.append(TEXT_135); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_136); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_137); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_138); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_139); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.viewers.TextCellEditor")); >+ stringBuffer.append(TEXT_140); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.CellEditorLocator")); >+ stringBuffer.append(TEXT_141); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.viewers.CellEditor")); >+ stringBuffer.append(TEXT_142); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_143); >+ stringBuffer.append(TEXT_144); >+ >+/*genFeature.getObjectType() throws NPE on primitive types. This is a workaround. */ >+HashMap primitiveTypeToWrapperClassName = new HashMap(); >+primitiveTypeToWrapperClassName.put(Boolean.TYPE, "Boolean"); >+primitiveTypeToWrapperClassName.put(Byte.TYPE, "Byte"); >+primitiveTypeToWrapperClassName.put(Character.TYPE, "Character"); >+primitiveTypeToWrapperClassName.put(Double.TYPE, "Double"); >+primitiveTypeToWrapperClassName.put(Float.TYPE, "Float"); >+primitiveTypeToWrapperClassName.put(Integer.TYPE, "Integer"); >+primitiveTypeToWrapperClassName.put(Long.TYPE, "Long"); >+primitiveTypeToWrapperClassName.put(Short.TYPE, "Short"); >+String viewPattern = null; >+String editPattern = null; >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ viewPattern = featureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ viewPattern = "{0}"; >+ } >+ editPattern = featureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ editPattern = "{0}"; >+ } >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ viewPattern = compositeFeatureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ viewPattern = patternBuffer.toString().trim(); >+ } >+ editPattern = compositeFeatureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ editPattern = patternBuffer.toString().trim(); >+ } >+} >+ >+ stringBuffer.append(TEXT_145); >+ stringBuffer.append(viewPattern); >+ stringBuffer.append(TEXT_146); >+ stringBuffer.append(editPattern); >+ stringBuffer.append(TEXT_147); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_148); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_149); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_150); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_151); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_152); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ GenFeature feature = featureLabelModelFacet.getMetaFeature(); >+ if (!feature.isPrimitiveType()) { >+ >+ stringBuffer.append(TEXT_153); >+ stringBuffer.append(feature.getCapName()); >+ stringBuffer.append(TEXT_154); >+ >+ } >+ >+ stringBuffer.append(TEXT_155); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_156); >+ >+ String value = "element.get" + feature.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (feature.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(feature.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+ >+ stringBuffer.append(TEXT_157); >+ stringBuffer.append(value); >+ stringBuffer.append(TEXT_158); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ >+ stringBuffer.append(TEXT_159); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_160); >+ >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ String value = "element.get" + next.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (next.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(next.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+ >+ stringBuffer.append(TEXT_161); >+ stringBuffer.append(value); >+ if (it.hasNext()) { >+ stringBuffer.append(TEXT_162); >+ } >+ >+ } >+ >+ stringBuffer.append(TEXT_163); >+ >+} else { >+ >+ stringBuffer.append(TEXT_164); >+ >+} >+ >+ stringBuffer.append(TEXT_165); >+ stringBuffer.append(TEXT_166); >+ stringBuffer.append(TEXT_167); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_168); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_169); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_170); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_171); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_172); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_173); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_174); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_175); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_176); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.FontData")); >+ stringBuffer.append(TEXT_177); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_178); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_179); >+ stringBuffer.append(TEXT_180); >+ stringBuffer.append(TEXT_181); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_182); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_183); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_184); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_185); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_186); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_187); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_188); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_189); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Image")); >+ stringBuffer.append(TEXT_190); >+ /*@ include file="adapters/propertySource.javajetinc"*/ >+ stringBuffer.append(TEXT_191); >+ stringBuffer.append(TEXT_192); >+ stringBuffer.append(TEXT_193); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.impl.AdapterImpl")); >+ stringBuffer.append(TEXT_194); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_195); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_196); >+ stringBuffer.append(TEXT_197); >+ stringBuffer.append(TEXT_198); >+ stringBuffer.append(importManager.getImportedName("java.util.HashMap")); >+ stringBuffer.append(TEXT_199); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_200); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_201); >+ stringBuffer.append(TEXT_202); >+ stringBuffer.append(TEXT_203); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_204); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_205); >+ stringBuffer.append(TEXT_206); >+ stringBuffer.append(TEXT_207); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_208); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ >+ stringBuffer.append(TEXT_209); >+ stringBuffer.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_210); >+ stringBuffer.append(feature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_211); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ >+ stringBuffer.append(TEXT_212); >+ stringBuffer.append(importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_213); >+ stringBuffer.append(next.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_214); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_215); >+ stringBuffer.append(TEXT_216); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_217); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_218); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_219); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_220); >+ stringBuffer.append(TEXT_221); >+ stringBuffer.append(TEXT_222); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_223); >+ stringBuffer.append(TEXT_224); >+ stringBuffer.append(TEXT_225); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_226); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_227); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_228); >+ >+String figureQualifiedClassName = null; >+Viewmap viewmap = genLabel.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.draw2d.Label"; >+ } >+ >+ stringBuffer.append(TEXT_229); >+ stringBuffer.append(importManager.getImportedName(figureQualifiedClassName)); >+ stringBuffer.append(TEXT_230); >+ } // instanceof FigureViewmap >+ else if (viewmap instanceof SnippetViewmap) { >+ stringBuffer.append(TEXT_231); >+ stringBuffer.append(((SnippetViewmap) viewmap).getBody()); >+ stringBuffer.append(TEXT_232); >+ } // instanceof SnippetViewmap; FIXME : obtain figure class name to generate getter >+ else if (viewmap instanceof InnerClassViewmap) { >+ figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >+ >+ stringBuffer.append(TEXT_233); >+ stringBuffer.append(figureQualifiedClassName); >+ stringBuffer.append(TEXT_234); >+ } >+ stringBuffer.append(TEXT_235); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_236); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_237); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_238); >+ >+if (genLabel.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genLabel.getViewmap()).getClassBody(); >+ >+ stringBuffer.append(TEXT_239); >+ stringBuffer.append(classBody); >+ stringBuffer.append(TEXT_240); >+ >+if (classBody.indexOf("DPtoLP") != -1) { >+ >+ stringBuffer.append(TEXT_241); >+ >+} >+ >+ >+} >+ >+ stringBuffer.append(TEXT_242); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_243); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/editor/PaletteFactory.javajet >=================================================================== >RCS file: templates/editor/PaletteFactory.javajet >diff -N templates/editor/PaletteFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/PaletteFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,352 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="PaletteFactoryGenerator" >+ imports="java.util.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.emf.codegen.ecore.genmodel.*"%> >+<% >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final Palette palette = genDiagram.getPalette(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+ >+importManager.addImport("org.eclipse.gef.Tool"); >+importManager.addImport("org.eclipse.gef.Request"); >+importManager.addImport("org.eclipse.gef.requests.CreationFactory"); >+importManager.addImport("org.eclipse.gef.tools.CreationTool"); >+importManager.addImport("org.eclipse.gef.tools.ConnectionCreationTool"); >+importManager.addImport("org.eclipse.gef.palette.PaletteContainer"); >+importManager.addImport("org.eclipse.gef.palette.PaletteDrawer"); >+importManager.addImport("org.eclipse.gef.palette.PaletteGroup"); >+importManager.addImport("org.eclipse.gef.palette.PaletteRoot"); >+importManager.addImport("org.eclipse.gef.palette.ConnectionCreationToolEntry"); >+importManager.addImport("org.eclipse.gef.palette.MarqueeToolEntry"); >+importManager.addImport("org.eclipse.gef.palette.SelectionToolEntry"); >+importManager.addImport("org.eclipse.gef.palette.ToolEntry"); >+importManager.addImport("org.eclipse.jface.resource.ImageDescriptor"); >+importManager.addImport("org.eclipse.emf.edit.provider.IItemLabelProvider"); >+importManager.addImport("org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry"); >+importManager.addImport("org.eclipse.emf.common.notify.AdapterFactory"); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=palette.getFactoryClassName()%> { >+ /** >+ * @generated >+ */ >+ private final AdapterFactory domainAdapterFactory; >+ >+ /** >+ * @generated >+ */ >+ public <%=palette.getFactoryClassName()%>(AdapterFactory domainAdapterFactory) { >+ this.domainAdapterFactory = domainAdapterFactory; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void contributeToPalette(PaletteRoot paletteRoot) { >+ PaletteGroup controls = new PaletteGroup("Controls"); >+ paletteRoot.add(controls); >+ >+ ToolEntry tool = new SelectionToolEntry(); >+ controls.add(tool); >+ paletteRoot.setDefaultEntry(tool); >+ >+ controls.add(new MarqueeToolEntry()); >+<% >+List toolGroups = palette.getGroups(); >+for (int i = 0; i < toolGroups.size(); i++) { >+ ToolGroup toolGroup = (ToolGroup) toolGroups.get(i); >+%> >+ paletteRoot.add(<%=toolGroup.getCreateMethodName()%>()); >+<%}%> >+ } >+ >+<% >+for (int i = 0; i < toolGroups.size(); i++) { >+ ToolGroup toolGroup = (ToolGroup) toolGroups.get(i); >+%> >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer <%=toolGroup.getCreateMethodName()%>() { >+ PaletteContainer paletteContainer = createContainer("<%=toolGroup.getTitleKey()%>"); >+<% >+ List nodeCreationTools = toolGroup.getNodeTools(); >+ for (int j = 0; j < nodeCreationTools.size(); j++) { >+ NodeEntry nodeCreationTool = (NodeEntry) nodeCreationTools.get(j); >+%> >+ paletteContainer.add(<%=nodeCreationTool.getCreateMethodName()%>()); >+<% } >+ List linkCreationTools = toolGroup.getLinkTools(); >+ for (int j = 0; j < linkCreationTools.size(); j++) { >+ LinkEntry linkCreationTool = (LinkEntry) linkCreationTools.get(j); >+ if (j == 0) { >+%> >+ paletteContainer.add(new <%=importManager.getImportedName("org.eclipse.gef.palette.PaletteSeparator")%>()); >+<% }%> >+ paletteContainer.add(<%=linkCreationTool.getCreateMethodName()%>()); >+<% }%> >+ return paletteContainer; >+ } >+<% >+} >+for (int i = 0; i < toolGroups.size(); i++) { >+ ToolGroup toolGroup = (ToolGroup) toolGroups.get(i); >+ List nodeCreationTools = toolGroup.getNodeTools(); >+ for (int j = 0; j < nodeCreationTools.size(); j++) { >+ NodeEntry nodeCreationTool = (NodeEntry) nodeCreationTools.get(j); >+ List genNodes = nodeCreationTool.getGenNode(); >+ GenNode firstGenNode = (GenNode) genNodes.get(0); >+ GenClass genClass = firstGenNode.getDomainMetaClass(); >+ final String domainElementInstanceCreationCode; >+ if (!genClass.isMapEntry()) { >+ domainElementInstanceCreationCode = importManager.getImportedName(genClass.getGenPackage().getQualifiedFactoryInterfaceName()) + ".eINSTANCE.create" + genClass.getName() + "()"; >+ } else { >+ domainElementInstanceCreationCode = importManager.getImportedName(genClass.getGenPackage().getQualifiedFactoryInterfaceName()) + ".eINSTANCE.create(" + >+ importManager.getImportedName(genClass.getGenPackage().getQualifiedPackageInterfaceName()) + ".eINSTANCE.get" + genClass.getClassifierAccessorName() + "())"; >+ } >+%> >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry <%=nodeCreationTool.getCreateMethodName()%>() { >+ <%if (nodeCreationTool.getSmallIconPath() != null) {%> >+ ImageDescriptor smallImage = ImageDescriptor.createFromFile(<%=palette.getFactoryClassName()%>.class, "<%=nodeCreationTool.getSmallIconPath()%>"); >+ <%} else {%> >+ ImageDescriptor smallImage = getImage(<%=domainElementInstanceCreationCode%>); >+ <%}%> >+ <%if (nodeCreationTool.getLargeIconPath() != null) {%> >+ ImageDescriptor largeImage = ImageDescriptor.createFromFile(<%=palette.getFactoryClassName()%>.class, "<%=nodeCreationTool.getLargeIconPath()%>"); >+ <%} else {%> >+ ImageDescriptor largeImage = smallImage; >+ <%}%> >+ final int[] visualIds = new int[] { >+<% >+ for (Iterator genNodesIterator = genNodes.iterator(); genNodesIterator.hasNext();) { >+ GenNode nextNode = (GenNode) genNodesIterator.next(); >+%> >+ <%=nextNode.getVisualID()%><%if (genNodesIterator.hasNext()) {%>,<%}%> >+<% >+ } >+%> >+ }; >+ return new <%=importManager.getImportedName("org.eclipse.gef.palette.CombinedTemplateCreationEntry")%>("<%=nodeCreationTool.getTitleKey()%>", >+ "<%=nodeCreationTool.getDescriptionKey()%>", new ModelCreationFactory(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%>.class), smallImage, largeImage) { >+ public Tool createTool() { >+ Tool result = new CreationTool() { >+ protected Request createTargetRequest() { >+ CreateRequestEx request = new CreateRequestEx(visualIds); >+ request.setFactory(getFactory()); >+ return request; >+ } >+ protected void performCreation(int button) { >+ super.performCreation(button); >+ final <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> createdEditPart = (<%=importManager.getImportedName("org.eclipse.gef.EditPart")%>)getCurrentViewer().getEditPartRegistry().get(getCreateRequest().getNewObject()); >+ if (createdEditPart != null) { >+ getCurrentViewer().getControl().getDisplay().asyncExec(new Runnable() { >+ public void run() { >+ if (createdEditPart.isActive()) { >+ createdEditPart.performRequest(new <%=importManager.getImportedName("org.eclipse.gef.Request")%>(<%=importManager.getImportedName("org.eclipse.gef.RequestConstants")%>.REQ_DIRECT_EDIT)); >+ } >+ } >+ }); >+ } >+ } >+ }; >+ result.setProperties(getToolProperties()); >+ return result; >+ } >+ }; >+ } >+<% >+ } >+ List linkCreationTools = toolGroup.getLinkTools(); >+ for (int j = 0; j < linkCreationTools.size(); j++) { >+ LinkEntry linkCreationTool = (LinkEntry) linkCreationTools.get(j); >+ List genLinks = linkCreationTool.getGenLink(); >+ GenLink firstGenLink = (GenLink) genLinks.get(0); >+ LinkModelFacet linkModelFacet = firstGenLink.getModelFacet(); >+ final String domainElementInstanceCreationCode; >+ if (linkModelFacet instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet typeLinkModelFacet = (TypeLinkModelFacet) linkModelFacet; >+ GenClass genClass = typeLinkModelFacet.getMetaClass(); >+ domainElementInstanceCreationCode = importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedFactoryInterfaceName()) + ".eINSTANCE.create" + genClass.getName() + "()"; >+ } else { >+ domainElementInstanceCreationCode = "null"; >+ } >+%> >+ >+ /** >+ * @generated >+ */ >+ private ToolEntry <%=linkCreationTool.getCreateMethodName()%>() { >+ <%if (linkCreationTool.getSmallIconPath() != null) {%> >+ ImageDescriptor smallImage = ImageDescriptor.createFromFile(<%=palette.getFactoryClassName()%>.class, "<%=linkCreationTool.getSmallIconPath()%>"); >+ <%} else {%> >+ ImageDescriptor smallImage = getImage(<%=domainElementInstanceCreationCode%>); >+ <%}%> >+ <%if (linkCreationTool.getLargeIconPath() != null) {%> >+ ImageDescriptor largeImage = ImageDescriptor.createFromFile(<%=palette.getFactoryClassName()%>.class, "<%=linkCreationTool.getLargeIconPath()%>"); >+ <%} else {%> >+ ImageDescriptor largeImage = smallImage; >+ <%}%> >+ final int[] visualIds = new int[] { >+<% >+ for (Iterator genLinksIterator = genLinks.iterator(); genLinksIterator.hasNext();) { >+ GenLink nextLink = (GenLink) genLinksIterator.next(); >+%> >+ <%=nextLink.getVisualID()%><%if (genLinksIterator.hasNext()) {%>,<%}%> >+<% >+ } >+%> >+ }; >+ return new ConnectionCreationToolEntry("<%=linkCreationTool.getTitleKey()%>", "<%=linkCreationTool.getDescriptionKey()%>", >+ new ModelCreationFactory(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")%>.class), smallImage, largeImage) { >+ public Tool createTool() { >+ Tool result = new ConnectionCreationTool() { >+ protected Request createTargetRequest() { >+ CreateConnectionRequestEx request = new CreateConnectionRequestEx(visualIds); >+ request.setFactory(getFactory()); >+ return request; >+ } >+ }; >+ result.setProperties(getToolProperties()); >+ return result; >+ } >+ }; >+ } >+<% >+ } >+} >+%> >+ >+ /** >+ * @generated >+ */ >+ private PaletteContainer createContainer(String title) { >+ return new PaletteDrawer(title); >+ } >+ >+ /** >+ * @generated >+ */ >+ private ImageDescriptor getImage(Object o) { >+ IItemLabelProvider labelProvider = (IItemLabelProvider) domainAdapterFactory.adapt(o, IItemLabelProvider.class); >+ if (labelProvider != null) { >+ return ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(o)); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static class CreateRequestEx extends <%=importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")%> { >+ /** >+ * @generated >+ */ >+ private final int[] visualIds; >+ >+ /** >+ * @generated >+ */ >+ public CreateRequestEx(int[] visualIds) { >+ this.visualIds = visualIds; >+ } >+ >+ /** >+ * @generated >+ */ >+ public int[] getVisualIds() { >+ return visualIds; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setCreatedObject(Object createdObject) { >+ ((ModelCreationFactory)getFactory()).setCreatedObject(createdObject); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public static class CreateConnectionRequestEx extends <%=importManager.getImportedName("org.eclipse.gef.requests.CreateConnectionRequest")%> { >+ /** >+ * @generated >+ */ >+ private final int[] visualIds; >+ >+ /** >+ * @generated >+ */ >+ public CreateConnectionRequestEx(int[] visualIds) { >+ this.visualIds = visualIds; >+ } >+ >+ /** >+ * @generated >+ */ >+ public int[] getVisualIds() { >+ return visualIds; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setCreatedObject(Object createdObject) { >+ ((ModelCreationFactory)getFactory()).setCreatedObject(createdObject); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private static class ModelCreationFactory implements CreationFactory { >+ /** >+ * @generated >+ */ >+ private Object createdObject; >+ >+ /** >+ * @generated >+ */ >+ private final Class createdObjectType; >+ >+ /** >+ * @generated >+ */ >+ public ModelCreationFactory(Class objectType) { >+ createdObjectType = objectType; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getNewObject() { >+ return createdObject; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getObjectType() { >+ return createdObjectType; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setCreatedObject(Object createdObject) { >+ this.createdObject = createdObject; >+ } >+ } >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,79 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.emf.common.util.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class PluginGenerator >+{ >+ protected static String nl; >+ public static synchronized PluginGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ PluginGenerator result = new PluginGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = NL + "import java.util.ArrayList;" + NL + "import java.util.List;" + NL + "" + NL + "import org.eclipse.core.runtime.IStatus;" + NL + "import org.eclipse.core.runtime.Status;" + NL + "" + NL + "import org.eclipse.emf.common.notify.AdapterFactory;" + NL + "import org.eclipse.emf.edit.provider.ComposedAdapterFactory;" + NL + "import org.eclipse.emf.edit.provider.IItemLabelProvider;" + NL + "import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;" + NL + "import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;" + NL + "import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;" + NL + "import org.eclipse.jface.resource.ImageDescriptor;" + NL + "import org.eclipse.swt.graphics.Image;" + NL + "import org.eclipse.ui.plugin.AbstractUIPlugin;" + NL + "import org.osgi.framework.BundleContext;"; >+ protected final String TEXT_2 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_3 = " extends AbstractUIPlugin {" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static final String ID = \""; >+ protected final String TEXT_4 = "\"; //$NON-NLS-1$" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static "; >+ protected final String TEXT_5 = " instance;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ComposedAdapterFactory adapterFactory;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_6 = "() {" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void start(BundleContext context) throws Exception {" + NL + "\t\tsuper.start(context);" + NL + "\t\tinstance = this;" + NL + "\t\tadapterFactory = createAdapterFactory();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void stop(BundleContext context) throws Exception {" + NL + "\t\tadapterFactory.dispose();" + NL + "\t\tadapterFactory = null;" + NL + "\t\tinstance = null;" + NL + "\t\tsuper.stop(context);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static "; >+ protected final String TEXT_7 = " getInstance() {" + NL + "\t\treturn instance;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ComposedAdapterFactory createAdapterFactory() {" + NL + "\t\tList factories = new ArrayList();" + NL + "\t\tfillItemProviderFactories(factories);" + NL + "\t\treturn new ComposedAdapterFactory(factories);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void fillItemProviderFactories(List factories) {"; >+ protected final String TEXT_8 = NL + "\t\tfactories.add(new "; >+ protected final String TEXT_9 = "());"; >+ protected final String TEXT_10 = NL + "\t\tfactories.add(new ResourceItemProviderAdapterFactory());" + NL + "\t\tfactories.add(new ReflectiveItemProviderAdapterFactory());" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic AdapterFactory getItemProvidersAdapterFactory() {" + NL + "\t\treturn adapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ImageDescriptor getItemImageDescriptor(Object item) {" + NL + "\t\tIItemLabelProvider labelProvider = (IItemLabelProvider) adapterFactory.adapt(item, IItemLabelProvider.class);" + NL + "\t\tif (labelProvider != null) {"; >+ protected final String TEXT_11 = NL + "\t\t\treturn ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(item));" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns an image descriptor for the image file at the given" + NL + "\t * plug-in relative path." + NL + "\t *" + NL + "\t * @generated" + NL + "\t * @param path the path" + NL + "\t * @return the image descriptor" + NL + "\t */" + NL + "\tpublic static ImageDescriptor getBundledImageDescriptor(String path) {" + NL + "\t\treturn AbstractUIPlugin.imageDescriptorFromPlugin(ID, path);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * Returns an image for the image file at the given plug-in relative path." + NL + "\t * Client do not need to dispose this image. Images will be disposed automatically." + NL + "\t *" + NL + "\t * @generated" + NL + "\t * @param path the path" + NL + "\t * @return image instance" + NL + "\t */" + NL + "\tpublic Image getBundledImage(String path) {" + NL + "\t\tImage image = getImageRegistry().get(path);" + NL + "\t\tif (image == null) {" + NL + "\t\t\tgetImageRegistry().put(path, getBundledImageDescriptor(path));" + NL + "\t\t\timage = getImageRegistry().get(path);" + NL + "\t\t}" + NL + "\t\treturn image;" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void logError(String error) {" + NL + "\t\tlogError(error, null);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @param throwable actual error or null could be passed" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void logError(String error, Throwable throwable) {" + NL + "\t\tif (error == null && throwable != null) {" + NL + "\t\t\terror = throwable.getMessage();" + NL + "\t\t}" + NL + "\t\tgetLog().log(new Status(IStatus.ERROR, "; >+ protected final String TEXT_12 = ".ID, IStatus.OK, error, throwable));" + NL + "\t\tdebug(error, throwable);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void logInfo(String message) {" + NL + "\t\tlogInfo(message, null);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @param throwable actual error or null could be passed" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void logInfo(String message, Throwable throwable) {" + NL + "\t\tif (message == null && message != null) {" + NL + "\t\t\tmessage = throwable.getMessage();" + NL + "\t\t}" + NL + "\t\tgetLog().log(new Status(IStatus.INFO, "; >+ protected final String TEXT_13 = ".ID, IStatus.OK, message, throwable));" + NL + "\t\tdebug(message, throwable);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void debug(String message, Throwable throwable) {" + NL + "\t\tif (!isDebugging()) {" + NL + "\t\t\treturn;" + NL + "\t\t}" + NL + "\t\tif (message != null) {" + NL + "\t\t\tSystem.err.println(message);" + NL + "\t\t}" + NL + "\t\tif (throwable != null) {" + NL + "\t\t\tthrowable.printStackTrace();" + NL + "\t\t}" + NL + "\t}" + NL + "\t" + NL + "}"; >+ protected final String TEXT_14 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenPlugin genPlugin = (GenPlugin) ((Object[]) argument)[0]; >+final EList genPackages = genPlugin.getEditorGen().getAllDomainGenPackages(true); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+ stringBuffer.append(TEXT_1); >+ importManager.markImportLocation(stringBuffer); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(genPlugin.getID()); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_7); >+ >+for (int i = 0; i < genPackages.size(); i++) { >+ GenPackage genPackage = (GenPackage) genPackages.get(i); >+ >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName(genPackage.getQualifiedItemProviderAdapterFactoryClassName())); >+ stringBuffer.append(TEXT_9); >+ } >+ stringBuffer.append(TEXT_10); >+ >+ // XXX dependency org.eclipse.emf.edit.ui is for ExtendedImageRegistry only. >+ // FIXME move image registry to plugin class code >+ >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_13); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_14); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refreshMethods/font.javajetinc >=================================================================== >RCS file: templates/parts/refreshMethods/font.javajetinc >diff -N templates/parts/refreshMethods/font.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshMethods/font.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,43 @@ >+ /** >+ * @generated >+ */ >+ protected void refreshFont() { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")%> style = >+ (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")%>) <%=primaryView%>.getStyle( >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle()); >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Font")%> toDispose = createdFont; >+ if (style != null) { >+ String fontName = style.getFontName(); >+ int fontHeight = style.getFontHeight(); >+ int fontStyle = <%=importManager.getImportedName("org.eclipse.swt.SWT")%>.NORMAL; >+ if (style.isBold()) { >+ fontStyle |= <%=importManager.getImportedName("org.eclipse.swt.SWT")%>.BOLD; >+ } >+ if (style.isItalic()) { >+ fontStyle |= <%=importManager.getImportedName("org.eclipse.swt.SWT")%>.ITALIC; >+ } >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Font")%> currentFont = getFigure().getFont(); >+ if (currentFont != null) { >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.FontData")%> currentFontData = currentFont.getFontData()[0]; >+ if (currentFontData.getName().equals(fontName) && currentFontData.getHeight() == fontHeight && currentFontData.getStyle() == fontStyle) { >+ return; >+ } >+ } >+ createdFont = new <%=importManager.getImportedName("org.eclipse.swt.graphics.Font")%>(null, fontName, fontHeight, fontStyle); >+ getFigure().setFont(createdFont); >+ } else { >+ //revert to the default font >+ getFigure().setFont(getViewer().getControl().getFont()); >+ createdFont = null; >+ } >+ if (toDispose != null) { >+ toDispose.dispose(); >+ } >+ } >+ >+ /** >+ * The font (created by {@link #refreshFont()}) currently assigned to the label (unless the default font is assigned). >+ * Whenever another non-default font is assigned to it, it is safe to dispose the previous one. >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.swt.graphics.Font")%> createdFont; >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DomainElementInitializerGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DomainElementInitializerGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DomainElementInitializerGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/DomainElementInitializerGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,189 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import java.util.*; >+ >+public class DomainElementInitializerGenerator >+{ >+ protected static String nl; >+ public static synchronized DomainElementInitializerGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ DomainElementInitializerGenerator result = new DomainElementInitializerGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class DomainElementInitializer "; >+ protected final String TEXT_5 = "{" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static interface IElementInitializer {" + NL + "\t\tpublic void initializeElement("; >+ protected final String TEXT_6 = " instance);" + NL + "\t}" + NL; >+ protected final String TEXT_7 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static IElementInitializer NULL_INITIALIZER = new IElementInitializer() {" + NL + "\t\tpublic void initializeElement("; >+ protected final String TEXT_8 = " instance) {" + NL + "\t\t}" + NL + "\t};" + NL; >+ protected final String TEXT_9 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static IElementInitializer "; >+ protected final String TEXT_10 = " = NULL_INITIALIZER;"; >+ protected final String TEXT_11 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static IElementInitializer "; >+ protected final String TEXT_12 = " = new ObjectInitializer(new FeatureInitializer[] {"; >+ protected final String TEXT_13 = NL + "\t\t\tnew FeatureInitializer(\""; >+ protected final String TEXT_14 = "\", //$NON-NLS-1$" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_15 = ".eINSTANCE.get"; >+ protected final String TEXT_16 = "()," + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_17 = ".eINSTANCE.get"; >+ protected final String TEXT_18 = "())"; >+ protected final String TEXT_19 = ", "; >+ protected final String TEXT_20 = NL; >+ protected final String TEXT_21 = NL + "\t});"; >+ protected final String TEXT_22 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class ObjectInitializer implements IElementInitializer {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate FeatureInitializer[] initExpressions;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tObjectInitializer(FeatureInitializer[] initExpressions) {" + NL + "\t\t\tthis.initExpressions = initExpressions;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void initializeElement("; >+ protected final String TEXT_23 = " instance) {" + NL + "\t\t\tfor (int i = 0; i < initExpressions.length; i++) {" + NL + "\t\t\t\tFeatureInitializer nextExpr = initExpressions[i];" + NL + "\t\t\t\tnextExpr.init(instance);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tstatic class FeatureInitializer {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_24 = " contextClass;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_25 = " sFeature;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_26 = " expressionBody;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_27 = " query;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tFeatureInitializer("; >+ protected final String TEXT_28 = " expression, " + NL + "\t\t\t"; >+ protected final String TEXT_29 = " context, " + NL + "\t\t\t"; >+ protected final String TEXT_30 = " sFeature) {" + NL + "\t\t\tthis.sFeature = sFeature;" + NL + "\t\t\tthis.expressionBody = expression;" + NL + "\t\t\tthis.contextClass\t= context;" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tvoid init("; >+ protected final String TEXT_31 = " contextInstance) {" + NL + "\t\t\tif(this.query == null) {" + NL + "\t\t\t\tthis.query = "; >+ protected final String TEXT_32 = ".eINSTANCE.createQuery(expressionBody, contextClass);" + NL + "\t\t\t}" + NL + "\t\t\tObject value = query.evaluate(contextInstance);" + NL + "\t\t\tif(sFeature.getEType() instanceof "; >+ protected final String TEXT_33 = " && " + NL + "\t\t\t\tvalue instanceof "; >+ protected final String TEXT_34 = ") {" + NL + "\t\t\t\tvalue = (("; >+ protected final String TEXT_35 = ")value).getInstance();" + NL + "\t\t\t} else if(value != null && sFeature.isMany()) {" + NL + "\t\t\t\tvalue = new "; >+ protected final String TEXT_36 = "(("; >+ protected final String TEXT_37 = ")value);" + NL + "\t\t\t}" + NL + "\t\t\tcontextInstance.eSet(sFeature, value);" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_38 = NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ >+importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ /*XXX: class name should be customizable!*/ >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_6); >+ >+boolean needsNullInitializer = false; >+boolean needsOCLInitializer = false; >+for (Iterator it = genDiagram.eAllContents(); it.hasNext(); ) { >+ Object next = it.next(); >+ String id = null; >+ TypeModelFacet modelFacet = null; >+ if (next instanceof GenNode) { >+ id = ((GenNode) next).getUniqueIdentifier(); >+ modelFacet = ((GenNode) next).getModelFacet(); >+ } else if (next instanceof GenLink && ((GenLink) next).getModelFacet() instanceof TypeLinkModelFacet) { >+ id = ((GenLink) next).getUniqueIdentifier(); >+ modelFacet = (TypeLinkModelFacet) ((GenLink) next).getModelFacet(); >+ } >+ if (modelFacet == null) { >+ continue; >+ } >+ GenElementInitializer elementInitializer = modelFacet.getModelElementInitializer(); >+ if (elementInitializer instanceof GenFeatureSeqInitializer == false) { >+ if (!needsNullInitializer) { >+ needsNullInitializer = true; >+ >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_8); >+ >+ } >+ >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(id); >+ stringBuffer.append(TEXT_10); >+ >+ continue; >+ } >+ needsOCLInitializer = true; >+ GenFeatureSeqInitializer ftInitializer = (GenFeatureSeqInitializer) elementInitializer; >+ >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(id); >+ stringBuffer.append(TEXT_12); >+ >+ for(Iterator featInitIt = ftInitializer.getInitializers().iterator(); featInitIt.hasNext();) { >+ GenFeatureValueSpec featureValSpec = (GenFeatureValueSpec)featInitIt.next(); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(featureValSpec.getBody()); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName(ftInitializer.getElementQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(ftInitializer.getElementClassAccessorName()); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName(featureValSpec.getFeatureQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(featureValSpec.getFeature().getFeatureAccessorName() >+ ); >+ stringBuffer.append(TEXT_18); >+ if (featInitIt.hasNext()) { >+ stringBuffer.append(TEXT_19); >+ } >+ stringBuffer.append(TEXT_20); >+ >+ } // end of GenFeatureValueSpec iteration >+ >+ stringBuffer.append(TEXT_21); >+ >+} >+if (needsOCLInitializer) { >+ >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EClass")); >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("java.lang.String")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ocl.query.Query")); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("java.lang.String")); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EClass")); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ocl.query.QueryFactory")); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EEnum")); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EEnumLiteral")); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EEnumLiteral")); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName("java.util.Collection")); >+ stringBuffer.append(TEXT_37); >+ >+} >+ >+ stringBuffer.append(TEXT_38); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/DiagramEditorUtilGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/DiagramEditorUtilGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/DiagramEditorUtilGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/DiagramEditorUtilGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,60 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class DiagramEditorUtilGenerator >+{ >+ protected static String nl; >+ public static synchronized DiagramEditorUtilGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ DiagramEditorUtilGenerator result = new DiagramEditorUtilGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_3 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static String openFilePathDialog(Shell shell, String fileExtensionFilter, int style) {" + NL + "\t\tFileDialog fileDialog = new FileDialog(shell, style);" + NL + "\t\tfileDialog.setFilterExtensions(new String[]{fileExtensionFilter});" + NL + "" + NL + "\t\tfileDialog.open();" + NL + "\t\tif (fileDialog.getFileName() != null && fileDialog.getFileName().length() > 0) {" + NL + "\t\t\treturn fileDialog.getFilterPath() + File.separator + fileDialog.getFileName();" + NL + "\t\t}" + NL + "\t\telse" + NL + "\t\t{" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static boolean openEditor(URI fileURI) {" + NL + "\t\tIWorkbench workbench = PlatformUI.getWorkbench();" + NL + "\t\tIWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();" + NL + "\t\tIWorkbenchPage page = workbenchWindow.getActivePage();" + NL + "" + NL + "\t\tIEditorDescriptor editorDescriptor = workbench.getEditorRegistry().getDefaultEditor(fileURI.toFileString());" + NL + "\t\tif (editorDescriptor == null) {" + NL + "\t\t\tMessageDialog.openError(" + NL + "\t\t\tworkbenchWindow.getShell()," + NL + "\t\t\t\"Error\"," + NL + "\t\t\t\"There is no editor registered for the file \" + fileURI.toFileString());" + NL + "\t\t\treturn false;" + NL + "\t\t} else {" + NL + "\t\t\ttry {" + NL + "\t\t\t\tpage.openEditor(new URIEditorInput(fileURI), editorDescriptor.getId());" + NL + "\t\t\t} catch (PartInitException exception) {" + NL + "\t\t\t\tMessageDialog.openError(" + NL + "\t\t\t\tworkbenchWindow.getShell()," + NL + "\t\t\t\t\"Error Opening Editor\"," + NL + "\t\t\t\texception.getMessage());" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\treturn true;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static URI getDiagramFileURI(URI modelFileURI) {" + NL + "\t\tif (modelFileURI == null || !modelFileURI.isFile()) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn modelFileURI.trimFileExtension().appendFileExtension(\""; >+ protected final String TEXT_4 = "\");" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static URI getModelFileURI(URI diagramFileURI) {" + NL + "\t\tif (diagramFileURI == null || !diagramFileURI.isFile()) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn diagramFileURI.trimFileExtension().appendFileExtension(\""; >+ protected final String TEXT_5 = "\");" + NL + "\t}" + NL + " }"; >+ protected final String TEXT_6 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final GenEditorGenerator editorGen = genDiagram.getEditorGen(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+ stringBuffer.append(TEXT_1); >+ importManager.markImportLocation(stringBuffer); >+importManager.addImport("java.io.File"); >+importManager.addImport("org.eclipse.ui.IWorkbench"); >+importManager.addImport("org.eclipse.ui.IWorkbenchPage"); >+importManager.addImport("org.eclipse.ui.IWorkbenchWindow"); >+importManager.addImport("org.eclipse.ui.PlatformUI"); >+importManager.addImport("org.eclipse.ui.PartInitException"); >+importManager.addImport("org.eclipse.ui.IEditorDescriptor"); >+importManager.addImport("org.eclipse.swt.widgets.Shell"); >+importManager.addImport("org.eclipse.swt.widgets.FileDialog"); >+importManager.addImport("org.eclipse.jface.dialogs.MessageDialog"); >+importManager.addImport("org.eclipse.emf.common.util.URI"); >+importManager.addImport("org.eclipse.emf.common.ui.URIEditorInput"); >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(genDiagram.getDiagramEditorUtilClassName()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(editorGen.getDiagramFileExtension()); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(editorGen.getDomainFileExtension()); >+ stringBuffer.append(TEXT_5); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_6); >+ return stringBuffer.toString(); >+ } >+} >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: META-INF/MANIFEST.MF >diff -N META-INF/MANIFEST.MF >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ META-INF/MANIFEST.MF 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,14 @@ >+Manifest-Version: 1.0 >+Bundle-ManifestVersion: 2 >+Bundle-Name: %pluginName >+Bundle-SymbolicName: org.eclipse.gmf.codegen.lite >+Bundle-Version: 1.0.0 >+Bundle-Vendor: %providerName >+Bundle-Localization: plugin >+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", >+ org.eclipse.emf.codegen.ecore, >+ org.eclipse.gmf.common, >+ org.eclipse.gmf.codegen >+Eclipse-LazyStart: true >+Bundle-Activator: org.eclipse.gmf.internal.codegen.lite.Activator >+Export-Package: org.eclipse.gmf.internal.codegen.lite >Index: templates/providers/NodeViewFactory.javajet >=================================================================== >RCS file: templates/providers/NodeViewFactory.javajet >diff -N templates/providers/NodeViewFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/NodeViewFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,78 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="NodeViewFactoryGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* java.util.*"%> >+<% >+GenNode genElement = (GenNode) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genElement.getNotationViewFactoryClassName()%> { >+ /** >+ * @generated >+ */ >+ public static void decorateView(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+<%@ include file="createVIDAnnotation.jetinc"%> >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.ShapeStyle")%> style = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createShapeStyle(); >+ view.getStyles().add(style); >+ //XXX: init styles from attributes!!! >+<% >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenNodeLabel label = (GenNodeLabel) it.next(); >+%> >+ create<%=label.getVisualID()%>Label(view); >+<% >+}/*iterate over labels*/ >+%> >+<% >+for (Iterator it = genElement.getCompartments().iterator(); it.hasNext(); ) { >+ GenCompartment compartment = (GenCompartment) it.next(); >+%> >+ create<%=compartment.getVisualID()%>Compartment(view); >+<% >+}/*iterate over compartments*/ >+%> >+ } >+ >+<% >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenNodeLabel label = (GenNodeLabel) it.next(); >+%> >+ /** >+ * @generated >+ */ >+ private static void create<%=label.getVisualID()%>Label(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> label = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createNode(); >+ view.getPersistedChildren().add(label); >+ label.setElement(null); >+ <%=importManager.getImportedName(label.getNotationViewFactoryQualifiedClassName())%>.decorateView(label); >+ } >+<% >+}/*iterate over labels*/ >+%> >+ >+<% >+for (Iterator it = genElement.getCompartments().iterator(); it.hasNext(); ) { >+ GenCompartment compartment = (GenCompartment) it.next(); >+%> >+ /** >+ * @generated >+ */ >+ private static void create<%=compartment.getVisualID()%>Compartment(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> compartment = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createNode(); >+ view.getPersistedChildren().add(compartment); >+ compartment.setElement(null); >+ <%=importManager.getImportedName(compartment.getNotationViewFactoryQualifiedClassName())%>.decorateView(compartment); >+ } >+<% >+}/*iterate over compartments*/ >+%> >+} >+<%importManager.emitSortedImports();%> >Index: templates/parts/CompartmentEditPart.javajet >=================================================================== >RCS file: templates/parts/CompartmentEditPart.javajet >diff -N templates/parts/CompartmentEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/CompartmentEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,227 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="CompartmentEditPartGenerator" >+ imports="java.util.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+GenCompartment genCompartment = (GenCompartment) ((Object[]) argument)[0]; >+GenNode genHost = genCompartment.getNode(); >+GenDiagram genDiagram = genCompartment.getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("org.eclipse.gef.commands.Command"); >+importManager.addImport("org.eclipse.gef.commands.CompoundCommand"); >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.requests.CreateRequest"); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genCompartment.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")%> implements IUpdatableEditPart { >+ /** >+ * @generated >+ */ >+ public <%=genCompartment.getEditPartClassName()%>(View view) { >+ setModel(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("java.util.List")%> getModelChildren() { >+ return ((View) getModel()).getChildren(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+ //XXX: install correct edit policies! >+<%if (!genCompartment.isListLayout()) {%> >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.LAYOUT_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.XYLayoutEditPolicy")%>() { >+ protected Command createChangeConstraintCommand(final <%=importManager.getImportedName("org.eclipse.gef.requests.ChangeBoundsRequest")%> request, EditPart child, Object constraint) { >+ final Node node = (Node) child.getModel(); >+ return new Command("Change node position/size") { >+ private <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> moveDelta = request.getMoveDelta(); >+ private <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Dimension")%> resizeDelta = request.getSizeDelta(); >+ >+ public boolean canUndo() { >+ return canExecute(); >+ } >+ public boolean canExecute() { >+ return node.getLayoutConstraint() instanceof Bounds; >+ } >+ public void undo() { >+ execute(moveDelta.getNegated(), resizeDelta.getNegated()); >+ } >+ public void execute() { >+ execute(moveDelta, resizeDelta); >+ } >+ private void execute(<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> move, <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Dimension")%> resize) { >+ Bounds bounds = (Bounds) node.getLayoutConstraint(); >+ bounds.setX(bounds.getX() + move.x); >+ bounds.setY(bounds.getY() + move.y); >+ bounds.setWidth(bounds.getWidth() + resize.width); >+ bounds.setHeight(bounds.getHeight() + resize.height); >+ } >+ }; >+ } >+ protected Command createChangeConstraintCommand(EditPart child, Object constraint) { >+ assert false; >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+<%} else {%> >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.LAYOUT_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy")%>() { >+ protected Object getConstraintFor(<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%> rect) { >+ return null; >+ } >+ protected Object getConstraintFor(<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> point) { >+ return null; >+ } >+ protected Command createChangeConstraintCommand(EditPart child, Object constraint) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+<%}%> >+ protected Command getCreateCommand(CreateRequest request) { >+<%if (null != genDiagram.getPalette()) { >+final Palette palette = genDiagram.getPalette();%> >+ if (request instanceof <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateRequestEx) { >+ <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateRequestEx requestEx = (<%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateRequestEx) request; >+ int[] visualIds = requestEx.getVisualIds(); >+ CompoundCommand result = new CompoundCommand(); >+ for(int i = 0; i < visualIds.length; i++) { >+ int nextVisualId = visualIds[i]; >+ switch (nextVisualId) { >+<% >+for(Iterator it = genCompartment.getChildNodes().iterator(); it.hasNext(); ) { >+ GenChildNode next = (GenChildNode)it.next(); >+%> >+ case <%=next.getVisualID()%>: >+ result.add(new Create<%=next.getDomainMetaClass().getName()%><%=next.getVisualID()%>Command((View) getModel(), requestEx<%if (!genCompartment.isListLayout()) {%>, >+ (<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%>)getConstraintFor(request)<%}%>)); >+ break; >+<% >+} >+%> >+ } >+ } >+ return result.unwrap(); >+ } >+<%}/*when there's palette*/%> >+ return null; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getTitleName() { >+ return "<%=genCompartment.getTitle()%>"; >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> createFigure() { >+ <%=importManager.getImportedName("org.eclipse.draw2d.LabeledContainer")%> result = new <%=importManager.getImportedName("org.eclipse.draw2d.LabeledContainer")%>(); >+ result.setLabel(getTitleName()); >+ result.setOpaque(false); >+ result.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.StackLayout")%>()); >+ <%=importManager.getImportedName("org.eclipse.draw2d.ScrollPane")%> scrollPane = new <%=importManager.getImportedName("org.eclipse.draw2d.ScrollPane")%>(); >+ result.add(scrollPane); >+<%if (genCompartment.isListLayout()) {%> >+ <%=importManager.getImportedName("org.eclipse.draw2d.Viewport")%> viewport = new <%=importManager.getImportedName("org.eclipse.draw2d.Viewport")%>(); >+ contentPane = new <%=importManager.getImportedName("org.eclipse.draw2d.Figure")%>(); >+ contentPane.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.ToolbarLayout")%>()); >+<%} else {%> >+ <%=importManager.getImportedName("org.eclipse.draw2d.Viewport")%> viewport = new <%=importManager.getImportedName("org.eclipse.draw2d.FreeformViewport")%>(); >+ contentPane = new <%=importManager.getImportedName("org.eclipse.draw2d.FreeformLayer")%>(); >+ contentPane.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.FreeformLayout")%>()); >+<%}%> >+ viewport.setContents(contentPane); >+ scrollPane.setViewport(viewport); >+ return result; >+ } >+ >+ /** >+ * @generated >+ */ >+ public IFigure getContentPane() { >+ return contentPane; >+ } >+ >+ /** >+ * @generated >+ */ >+ private IFigure contentPane; >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())%> resolveSemanticElement() { >+ for(EditPart editPart = this; editPart != null; editPart = editPart.getParent()) { >+ View view = (View)editPart.getModel(); >+ if (view != null && view.getElement() != null) { >+ return (<%=importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())%>) view.getElement(); >+ } >+ } >+ return null; >+ } >+ >+<%@ include file="refresher.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private void createRefreshers() { >+ structuralFeatures2Refresher = new HashMap(); >+<%@ include file="refreshers.javajetinc/children.javajetinc"%> >+<%@ include file="refreshers.javajetinc/visibility.javajetinc"%> >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+//XXX: refreshBackgroundColor(); >+//XXX: refreshForegroundColor(); >+//XXX: refreshFont(); >+ refreshVisibility(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisibility() { >+ boolean isVisible = ((View)getModel()).isVisible(); >+ boolean wasVisible = getFigure().isVisible(); >+ if (isVisible == wasVisible) { >+ return; >+ } >+ if (!isVisible && (getSelected() != SELECTED_NONE)) { >+ getViewer().deselect(this); >+ } >+ >+ getFigure().setVisible(isVisible); >+ getFigure().revalidate(); >+ } >+ >+<% >+for(Iterator it = genCompartment.getChildNodes().iterator(); genDiagram.getPalette() != null && it.hasNext(); ) { >+ GenChildNode next = (GenChildNode)it.next(); >+ boolean isStatic = false; >+ boolean isListLayout = genCompartment.isListLayout(); >+ String resolvedSemanticElement = "resolveSemanticElement()"; >+%> >+<%@ include file="createNodeCommand.javajetinc"%> >+<% >+} >+%> >+} >+ >+<%importManager.emitSortedImports();%> >Index: templates/parts/refreshers.javajetinc/externalRefreshers.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/externalRefreshers.javajetinc >diff -N templates/parts/refreshers.javajetinc/externalRefreshers.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/externalRefreshers.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,25 @@ >+ public void addRefresher(<%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> feature, Refresher refresher) { >+ CompositeRefresher compositeRefresher = getCompositeRefresher(feature); >+ compositeRefresher.addRefresher(refresher); >+ } >+ >+ public void removeRefresher(<%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> feature, Refresher refresher) { >+ CompositeRefresher compositeRefresher = getCompositeRefresher(feature); >+ compositeRefresher.removeRefresher(refresher); >+ } >+ >+ private CompositeRefresher getCompositeRefresher(<%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> feature) { >+ if (structuralFeatures2Refresher == null) { >+ createRefreshers(); >+ } >+ Refresher refresher = (Refresher) structuralFeatures2Refresher.get(feature); >+ if (refresher instanceof CompositeRefresher) { >+ return (CompositeRefresher) refresher; >+ } >+ CompositeRefresher result = new CompositeRefresher(); >+ if (refresher != null) { >+ result.addRefresher(refresher); >+ } >+ structuralFeatures2Refresher.put(feature, result); >+ return result; >+ } >Index: templates/parts/refreshers.javajetinc/sourceEdges.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/sourceEdges.javajetinc >diff -N templates/parts/refreshers.javajetinc/sourceEdges.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/sourceEdges.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+ Refresher sourceEdgesRefresher = new Refresher() { >+ public void refresh() { >+ refreshSourceConnections(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getView_SourceEdges(), sourceEdgesRefresher); >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,497 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.emf.ecore.*; >+ >+public class LinkEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized LinkEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ LinkEditPartGenerator result = new LinkEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " extends "; >+ protected final String TEXT_6 = " implements IUpdatableEditPart {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_7 = "("; >+ protected final String TEXT_8 = " view) {" + NL + "\t\tassert view instanceof "; >+ protected final String TEXT_9 = ";" + NL + "\t\tsetModel(view);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_10 = " getDiagramEdge() {" + NL + "\t\treturn ("; >+ protected final String TEXT_11 = ") getModel();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {" + NL + "\t\t//XXX: install correct edit policies!"; >+ protected final String TEXT_12 = NL; >+ protected final String TEXT_13 = "\t\tinstallEditPolicy("; >+ protected final String TEXT_14 = ".COMPONENT_ROLE, new "; >+ protected final String TEXT_15 = "() {" + NL + "\t\t\tprotected "; >+ protected final String TEXT_16 = " createDeleteCommand("; >+ protected final String TEXT_17 = " deleteRequest) {" + NL + "\t\t\t\treturn new "; >+ protected final String TEXT_18 = "() {" + NL + "\t\t\t\t\tprivate final Edge edgeToRemove = getDiagramEdge();" + NL + "\t\t\t\t\tprivate final View source = edgeToRemove.getSource();" + NL + "\t\t\t\t\tprivate final View target = edgeToRemove.getTarget();" + NL + "\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = createDomainModelRemoveCommand();" + NL + "\t\t\t\t\tprivate org.eclipse.emf.common.command.Command createDomainModelRemoveCommand() {"; >+ protected final String TEXT_19 = NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_20 = " result = new "; >+ protected final String TEXT_21 = "();"; >+ protected final String TEXT_22 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_23 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_24 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement().eContainer(), edgeToRemove.getElement().eContainmentFeature(), edgeToRemove.getElement()));"; >+ protected final String TEXT_25 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_26 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_27 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement().eContainer(), edgeToRemove.getElement().eContainmentFeature(), "; >+ protected final String TEXT_28 = ".UNSET_VALUE));"; >+ protected final String TEXT_29 = NL + "\t\t\treturn "; >+ protected final String TEXT_30 = ".INSTANCE;"; >+ protected final String TEXT_31 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_32 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_33 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement().eContainer(), "; >+ protected final String TEXT_34 = ".eINSTANCE.get"; >+ protected final String TEXT_35 = "()," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement()));"; >+ protected final String TEXT_36 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_37 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_38 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement().eContainer(), "; >+ protected final String TEXT_39 = ".eINSTANCE.get"; >+ protected final String TEXT_40 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_41 = ".UNSET_VALUE));"; >+ protected final String TEXT_42 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_43 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_44 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement(), "; >+ protected final String TEXT_45 = ".eINSTANCE.get"; >+ protected final String TEXT_46 = "(), source.getElement()));"; >+ protected final String TEXT_47 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_48 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_49 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement(), "; >+ protected final String TEXT_50 = ".eINSTANCE.get"; >+ protected final String TEXT_51 = "(), "; >+ protected final String TEXT_52 = ".UNSET_VALUE));"; >+ protected final String TEXT_53 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_54 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_55 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement(), "; >+ protected final String TEXT_56 = ".eINSTANCE.get"; >+ protected final String TEXT_57 = "(), target.getElement()));"; >+ protected final String TEXT_58 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_59 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_60 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tedgeToRemove.getElement(), "; >+ protected final String TEXT_61 = ".eINSTANCE.get"; >+ protected final String TEXT_62 = "(), "; >+ protected final String TEXT_63 = ".UNSET_VALUE));"; >+ protected final String TEXT_64 = NL + "\t\t\t\t\t\treturn result;"; >+ protected final String TEXT_65 = NL + "\t\t\t\t\t\treturn "; >+ protected final String TEXT_66 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_67 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tsource.getElement(), "; >+ protected final String TEXT_68 = ".eINSTANCE.get"; >+ protected final String TEXT_69 = "(), target.getElement());"; >+ protected final String TEXT_70 = NL + "\t\t\t\t\t\treturn "; >+ protected final String TEXT_71 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_72 = ".getEditingDomainFor(edgeToRemove.getDiagram().getElement())," + NL + "\t\t\t\t\t\t\tsource.getElement(), "; >+ protected final String TEXT_73 = ".eINSTANCE.get"; >+ protected final String TEXT_74 = "(), "; >+ protected final String TEXT_75 = ".UNSET_VALUE);"; >+ protected final String TEXT_76 = NL + "\t\t\t\t\t}" + NL + "" + NL + "\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\treturn domainModelRemoveCommand != null && domainModelRemoveCommand.canExecute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\tdomainModelRemoveCommand.execute();" + NL + "\t\t\t\t\t\tsource.getDiagram().removeEdge(edgeToRemove);" + NL + "\t\t\t\t\t\tedgeToRemove.setSource(null);" + NL + "\t\t\t\t\t\tedgeToRemove.setTarget(null);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\treturn domainModelRemoveCommand != null && domainModelRemoveCommand.canUndo();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\tdomainModelRemoveCommand.undo();" + NL + "\t\t\t\t\t\tsource.getDiagram().insertEdge(edgeToRemove);" + NL + "\t\t\t\t\t\tedgeToRemove.setSource(source);" + NL + "\t\t\t\t\t\tedgeToRemove.setTarget(target);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t}" + NL + "\t\t});" + NL + "\t\tinstallEditPolicy("; >+ protected final String TEXT_77 = ".CONNECTION_ENDPOINTS_ROLE, new "; >+ protected final String TEXT_78 = "());" + NL + "\t}" + NL; >+ protected final String TEXT_79 = NL; >+ protected final String TEXT_80 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static int getVisualID("; >+ protected final String TEXT_81 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_82 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tString visualID = (String) annotation.getDetails().get(\"visualID\"); //$NON-NLS-1$" + NL + "\t\tif (visualID == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\ttry {" + NL + "\t\t\treturn Integer.parseInt(visualID);" + NL + "\t\t} catch (NumberFormatException e) {" + NL + "\t\t\t"; >+ protected final String TEXT_83 = ".getInstance().logError(\"Unable to parse \\\"visualID\\\" annotation: \" + visualID, e);" + NL + "\t\t}" + NL + "\t\treturn -1;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns the label which should be direct-edited by default." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_84 = " getPrimaryLabelEditPart() {" + NL + "\t\tfor("; >+ protected final String TEXT_85 = " it = getDiagramEdge().getChildren().iterator(); it.hasNext(); ) {" + NL + "\t\t\t"; >+ protected final String TEXT_86 = " nextChild = ("; >+ protected final String TEXT_87 = ")it.next();" + NL + "\t\t\tif (getVisualID(nextChild) == "; >+ protected final String TEXT_88 = ") {" + NL + "\t\t\t\treturn (EditPart) getViewer().getEditPartRegistry().get(nextChild);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void performRequest("; >+ protected final String TEXT_89 = " req) {" + NL + "\t\tif ("; >+ protected final String TEXT_90 = ".REQ_DIRECT_EDIT == req.getType()) {" + NL + "\t\t\t"; >+ protected final String TEXT_91 = " primaryLabel = getPrimaryLabelEditPart();" + NL + "\t\t\tif (primaryLabel != null) {" + NL + "\t\t\t\tprimaryLabel.performRequest(req);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_92 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected List getModelChildren() {" + NL + "\t\treturn ((Edge)getModel()).getChildren();" + NL + "\t}" + NL; >+ protected final String TEXT_93 = NL; >+ protected final String TEXT_94 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_95 = " structuralFeatures2Refresher;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Refresher getRefresher("; >+ protected final String TEXT_96 = " feature, "; >+ protected final String TEXT_97 = " msg) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\treturn (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void activate() {" + NL + "\t\tsuper.activate();" + NL + "\t\tgetDiagramEdge().getElement().eAdapters().add(domainModelRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void deactivate() {" + NL + "\t\tgetDiagramEdge().getElement().eAdapters().remove(domainModelRefresher);" + NL + "\t\tsuper.deactivate();" + NL + "\t}" + NL; >+ protected final String TEXT_98 = NL; >+ protected final String TEXT_99 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate DomainModelRefresher domainModelRefresher = new DomainModelRefresher();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate class DomainModelRefresher extends "; >+ protected final String TEXT_100 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void notifyChanged("; >+ protected final String TEXT_101 = " msg) {" + NL + "\t\t\tsuper.notifyChanged(msg);" + NL + "\t\t\tif (msg.isTouch()) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tRefresher refresher = getRefresher(("; >+ protected final String TEXT_102 = ") msg.getFeature(), msg);" + NL + "\t\t\tif (refresher != null) {" + NL + "\t\t\t\trefresher.refresh();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL; >+ protected final String TEXT_103 = NL; >+ protected final String TEXT_104 = "\tpublic void addRefresher("; >+ protected final String TEXT_105 = " feature, Refresher refresher) {" + NL + "\t\tCompositeRefresher compositeRefresher = getCompositeRefresher(feature);" + NL + "\t\tcompositeRefresher.addRefresher(refresher);" + NL + "\t}" + NL + "" + NL + "\tpublic void removeRefresher("; >+ protected final String TEXT_106 = " feature, Refresher refresher) {" + NL + "\t\tCompositeRefresher compositeRefresher = getCompositeRefresher(feature);" + NL + "\t\tcompositeRefresher.removeRefresher(refresher);" + NL + "\t}" + NL + "" + NL + "\tprivate CompositeRefresher getCompositeRefresher("; >+ protected final String TEXT_107 = " feature) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\tRefresher refresher = (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t\tif (refresher instanceof CompositeRefresher) {" + NL + "\t\t\treturn (CompositeRefresher) refresher;" + NL + "\t\t}" + NL + "\t\tCompositeRefresher result = new CompositeRefresher();" + NL + "\t\tif (refresher != null) {" + NL + "\t\t\tresult.addRefresher(refresher);" + NL + "\t\t}" + NL + "\t\tstructuralFeatures2Refresher.put(feature, result);" + NL + "\t\treturn result;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void createRefreshers() {" + NL + "\t\tstructuralFeatures2Refresher = new HashMap();"; >+ protected final String TEXT_108 = NL; >+ protected final String TEXT_109 = "\t\tRefresher childrenRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshChildren();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_110 = ".eINSTANCE.getView_PersistedChildren(), childrenRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_111 = ".eINSTANCE.getView_TransientChildren(), childrenRefresher);"; >+ protected final String TEXT_112 = NL; >+ protected final String TEXT_113 = "\t\tRefresher visibilityRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshVisibility();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_114 = ".eINSTANCE.getView_Visible(), visibilityRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisuals() {" + NL + "\t\tsuper.refreshVisuals();" + NL + "//XXX:\t\trefreshBackgroundColor();" + NL + "//XXX:\t\trefreshForegroundColor();" + NL + "//XXX:\t\trefreshFont();" + NL + "\t\trefreshVisibility();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisibility() {" + NL + "\t\tboolean isVisible = ((View)getModel()).isVisible();" + NL + "\t\tboolean wasVisible = getFigure().isVisible();" + NL + "\t\tif (isVisible == wasVisible) {" + NL + "\t\t\treturn;" + NL + "\t\t}" + NL + "\t\tif (!isVisible && (getSelected() != SELECTED_NONE)) {" + NL + "\t\t\tgetViewer().deselect(this);" + NL + "\t\t}" + NL + "" + NL + "\t\tgetFigure().setVisible(isVisible);" + NL + "\t\tgetFigure().revalidate();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Creates figure for this edit part." + NL + "\t * " + NL + "\t * Body of this method does not depend on settings in generation model" + NL + "\t * so you may safely remove <i>generated</i> tag and modify it." + NL + "\t * " + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_115 = " createFigure() {"; >+ protected final String TEXT_116 = NL + "\t\treturn new "; >+ protected final String TEXT_117 = "();"; >+ protected final String TEXT_118 = NL + "\t\treturn "; >+ protected final String TEXT_119 = ";"; >+ protected final String TEXT_120 = NL + " \t\treturn new "; >+ protected final String TEXT_121 = "();"; >+ protected final String TEXT_122 = NL + "\t}" + NL; >+ protected final String TEXT_123 = NL; >+ protected final String TEXT_124 = NL; >+ protected final String TEXT_125 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class MapModeWorkaround {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int DPtoLP(int dp) {" + NL + "\t\t\treturn dp;" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static MapModeWorkaround INSTANCE = new MapModeWorkaround();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate MapModeWorkaround getMapMode() {" + NL + "\t\treturn MapModeWorkaround.INSTANCE;" + NL + "\t}"; >+ protected final String TEXT_126 = NL + "}"; >+ protected final String TEXT_127 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenLink genLink = (GenLink) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genLink.getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("java.util.List"); >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genLink.getEditPartClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.AbstractConnectionEditPart")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(genLink.getEditPartClassName()); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ComponentEditPolicy")); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.GroupRequest")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_18); >+ >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ GenFeature sourceFeature = modelFacet.getSourceMetaFeature(); >+ GenFeature containmentFeature = modelFacet.getContainmentMetaFeature(); >+ GenFeature childFeature = modelFacet.getChildMetaFeature(); >+ GenFeature targetFeature = modelFacet.getTargetMetaFeature(); >+ //See creation of links in NodeEditPart >+ >+ boolean removeSource = sourceFeature != null; >+ boolean removeTarget = targetFeature != null; >+ boolean removeChild = childFeature != null && childFeature != containmentFeature && !childFeature.isDerived(); >+ if (containmentFeature != null) { >+ if (sourceFeature != null && sourceFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference sourceEcoreFeature = (EReference)sourceFeature.getEcoreFeature(); >+ if (sourceEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ removeSource = false; >+ } >+ } >+ if (targetFeature != null && targetFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference targetEcoreFeature = (EReference)targetFeature.getEcoreFeature(); >+ if (targetEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ removeTarget = false; >+ } >+ } >+ >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_21); >+ >+ if (containmentFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_24); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_28); >+ >+ } >+ } else { >+ >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_30); >+ >+ } >+ if (removeChild) { >+ if (childFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_35); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_39); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_41); >+ >+ } >+ } >+ if (removeSource) { >+ if (sourceFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(importManager.getImportedName(sourceFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_45); >+ stringBuffer.append(sourceFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_46); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(importManager.getImportedName(sourceFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(sourceFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_51); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_52); >+ >+ } >+ } >+ if (removeTarget) { >+ if (targetFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(importManager.getImportedName(targetFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(targetFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_57); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(importManager.getImportedName(targetFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(targetFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_63); >+ >+ } >+ } >+ >+ stringBuffer.append(TEXT_64); >+ >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ if (metaFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_65); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_66); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_67); >+ stringBuffer.append(importManager.getImportedName(metaFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(metaFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_69); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_71); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_72); >+ stringBuffer.append(importManager.getImportedName(metaFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_73); >+ stringBuffer.append(metaFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_74); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_75); >+ >+ } >+ >+ >+ } >+ >+ stringBuffer.append(TEXT_76); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy")); >+ stringBuffer.append(TEXT_78); >+ >+if (genLink.getLabels().size() > 0) { >+ GenLinkLabel primaryLabel = (GenLinkLabel)genLink.getLabels().get(0); >+ >+ stringBuffer.append(TEXT_79); >+ stringBuffer.append(TEXT_80); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_81); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_82); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_83); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_84); >+ stringBuffer.append(importManager.getImportedName("java.util.Iterator")); >+ stringBuffer.append(TEXT_85); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(primaryLabel.getVisualID()); >+ stringBuffer.append(TEXT_88); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_91); >+ >+} //if (genLink.getLabels().size() > 0) >+ >+ stringBuffer.append(TEXT_92); >+ stringBuffer.append(TEXT_93); >+ stringBuffer.append(TEXT_94); >+ stringBuffer.append(importManager.getImportedName("java.util.HashMap")); >+ stringBuffer.append(TEXT_95); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_97); >+ stringBuffer.append(TEXT_98); >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.impl.AdapterImpl")); >+ stringBuffer.append(TEXT_100); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_102); >+ stringBuffer.append(TEXT_103); >+ stringBuffer.append(TEXT_104); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_105); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_106); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_107); >+ stringBuffer.append(TEXT_108); >+ stringBuffer.append(TEXT_109); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_110); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_111); >+ stringBuffer.append(TEXT_112); >+ stringBuffer.append(TEXT_113); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_114); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_115); >+ >+Viewmap viewmap = genLink.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ String figureQualifiedClassName = null; >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.gmf.runtime.draw2d.PolylineConnection"; >+ } >+ >+ stringBuffer.append(TEXT_116); >+ stringBuffer.append(importManager.getImportedName(figureQualifiedClassName)); >+ stringBuffer.append(TEXT_117); >+ } // instanceof FigureViewmap >+ else if (viewmap instanceof SnippetViewmap) { >+ stringBuffer.append(TEXT_118); >+ stringBuffer.append(((SnippetViewmap) viewmap).getBody()); >+ stringBuffer.append(TEXT_119); >+ } // instanceof SnippetViewmap >+ else if (viewmap instanceof InnerClassViewmap) { >+ stringBuffer.append(TEXT_120); >+ stringBuffer.append(((InnerClassViewmap) viewmap).getClassName()); >+ stringBuffer.append(TEXT_121); >+ } >+ stringBuffer.append(TEXT_122); >+ >+if (genLink.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genLink.getViewmap()).getClassBody(); >+ >+ stringBuffer.append(TEXT_123); >+ stringBuffer.append(classBody); >+ stringBuffer.append(TEXT_124); >+ >+if (classBody.indexOf("DPtoLP") != -1) { >+ >+ stringBuffer.append(TEXT_125); >+ >+} >+ >+ >+} >+ >+ stringBuffer.append(TEXT_126); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_127); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/editor/getModelID.jetinc >=================================================================== >RCS file: templates/editor/getModelID.jetinc >diff -N templates/editor/getModelID.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/getModelID.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,10 @@ >+ /** >+ * @generated >+ */ >+ private String getModelID(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> containerView) { >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")%> annotation = containerView.getEAnnotation("ViewIdentifier"); //$NON-NLS-1$ >+ if (annotation == null) { >+ return null; >+ } >+ return (String) annotation.getDetails().get("modelID"); //$NON-NLS-1$ >+ } >Index: templates/editor/Editor.javajet >=================================================================== >RCS file: templates/editor/Editor.javajet >diff -N templates/editor/Editor.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/Editor.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,760 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="EditorGenerator" >+ imports="org.eclipse.emf.common.util.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenEditorView genEditor = (GenEditorView) ((Object[]) argument)[0]; >+final GenDiagram genDiagram = genEditor.getEditorGen().getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer);%> >+ >+<% >+importManager.addImport("java.io.IOException"); >+importManager.addImport("java.util.ArrayList"); >+importManager.addImport("java.util.Collections"); >+importManager.addImport("java.util.EventObject"); >+importManager.addImport("java.util.HashMap"); >+importManager.addImport("java.util.Iterator"); >+importManager.addImport("java.util.List"); >+ >+importManager.addImport("org.eclipse.core.runtime.CoreException"); >+importManager.addImport("org.eclipse.core.runtime.IProgressMonitor"); >+importManager.addImport("org.eclipse.core.runtime.IStatus"); >+importManager.addImport("org.eclipse.core.runtime.NullProgressMonitor"); >+importManager.addImport("org.eclipse.core.runtime.Status"); >+importManager.addImport("org.eclipse.draw2d.PositionConstants"); >+importManager.addImport("org.eclipse.emf.common.command.BasicCommandStack"); >+importManager.addImport("org.eclipse.emf.common.ui.URIEditorInput"); >+importManager.addImport("org.eclipse.emf.common.util.URI"); >+importManager.addImport("org.eclipse.emf.ecore.resource.Resource"); >+importManager.addImport("org.eclipse.emf.ecore.resource.ResourceSet"); >+importManager.addImport("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain"); >+importManager.addImport("org.eclipse.emf.edit.domain.EditingDomain"); >+importManager.addImport("org.eclipse.emf.edit.provider.ComposedAdapterFactory"); >+importManager.addImport("org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory"); >+importManager.addImport("org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory"); >+importManager.addImport("org.eclipse.gef.ContextMenuProvider"); >+importManager.addImport("org.eclipse.gef.EditPartViewer"); >+importManager.addImport("org.eclipse.gef.GraphicalViewer"); >+importManager.addImport("org.eclipse.gef.KeyHandler"); >+importManager.addImport("org.eclipse.gef.KeyStroke"); >+importManager.addImport("org.eclipse.gef.RootEditPart"); >+importManager.addImport("org.eclipse.gef.MouseWheelHandler"); >+importManager.addImport("org.eclipse.gef.MouseWheelZoomHandler"); >+importManager.addImport("org.eclipse.gef.commands.CommandStack"); >+importManager.addImport("org.eclipse.gef.commands.CommandStackListener"); >+importManager.addImport("org.eclipse.gef.editparts.ScalableFreeformRootEditPart"); >+importManager.addImport("org.eclipse.gef.editparts.ScalableRootEditPart"); >+importManager.addImport("org.eclipse.gef.editparts.ZoomManager"); >+importManager.addImport("org.eclipse.gef.palette.PaletteRoot"); >+importManager.addImport("org.eclipse.gef.ui.actions.AlignmentAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.DeleteAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.DirectEditAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.GEFActionConstants"); >+importManager.addImport("org.eclipse.gef.ui.actions.PrintAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.RedoAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.SaveAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.SelectionAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.StackAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.UndoAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.UpdateAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.WorkbenchPartAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.ZoomInAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.ZoomOutAction"); >+importManager.addImport("org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Diagram"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.NotationFactory"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.provider.NotationItemProviderAdapterFactory"); >+importManager.addImport("org.eclipse.jface.action.IAction"); >+importManager.addImport("org.eclipse.jface.action.IMenuManager"); >+importManager.addImport("org.eclipse.jface.action.MenuManager"); >+importManager.addImport("org.eclipse.jface.action.Separator"); >+importManager.addImport("org.eclipse.jface.dialogs.ErrorDialog"); >+importManager.addImport("org.eclipse.jface.viewers.ISelection"); >+importManager.addImport("org.eclipse.swt.SWT"); >+importManager.addImport("org.eclipse.swt.widgets.Composite"); >+importManager.addImport("org.eclipse.ui.IEditorPart"); >+importManager.addImport("org.eclipse.ui.IEditorInput"); >+importManager.addImport("org.eclipse.ui.IEditorSite"); >+importManager.addImport("org.eclipse.ui.IPathEditorInput"); >+importManager.addImport("org.eclipse.ui.ISelectionListener"); >+importManager.addImport("org.eclipse.ui.IWorkbenchPart"); >+importManager.addImport("org.eclipse.ui.PartInitException"); >+importManager.addImport("org.eclipse.ui.actions.ActionFactory"); >+importManager.addImport("org.eclipse.ui.views.contentoutline.IContentOutlinePage"); >+importManager.addImport("org.eclipse.ui.views.properties.IPropertySheetPage"); >+importManager.addImport("org.eclipse.ui.views.properties.PropertySheetPage"); >+importManager.addImport("org.eclipse.emf.common.notify.AdapterFactory"); >+importManager.addImport("org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette"); >+importManager.addImport("org.eclipse.gef.DefaultEditDomain"); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genEditor.getClassName()%> extends GraphicalEditorWithFlyoutPalette { >+ /** >+ * @generated >+ */ >+ private static class UpdatableActionGroup { >+ /** >+ * @generated >+ */ >+ public void addAction(UpdateAction action) { >+ assert action != null; >+ myActions.add(action); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeAction(UpdateAction action) { >+ myActions.remove(action); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void update() { >+ for (Iterator it = myActions.iterator(); it.hasNext();) { >+ UpdateAction next = (UpdateAction) it.next(); >+ next.update(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private ArrayList myActions = new ArrayList(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private EditingDomain editingDomain; >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())%> <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%>; >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")%> diagram; >+ >+ /** >+ * @generated >+ */ >+ private boolean isDirty = false; >+ >+ /** >+ * @generated >+ */ >+ private PaletteRoot paletteRoot; >+ >+ /** >+ * @generated >+ */ >+ private PropertySheetPage undoablePropertySheetPage; >+ >+ /** >+ * @generated >+ */ >+ private UpdatableActionGroup stackActions = new UpdatableActionGroup(); >+ >+ /** >+ * @generated >+ */ >+ private CommandStackListener commandStackListener = new CommandStackListener() { >+ >+ public void commandStackChanged(EventObject event) { >+ stackActions.update(); >+ setDirty(((CommandStack) event.getSource()).isDirty()); >+ } >+ }; >+ >+ /** >+ * @generated >+ */ >+ private UpdatableActionGroup editPartActions = new UpdatableActionGroup(); >+ >+ /** >+ * @generated >+ */ >+ private ISelectionListener selectionListener = new ISelectionListener() { >+ >+ public void selectionChanged(IWorkbenchPart part, ISelection selection) { >+ editPartActions.update(); >+ } >+ }; >+ >+ /** >+ * @generated >+ */ >+ private UpdatableActionGroup editorActions = new UpdatableActionGroup(); >+ >+ /** >+ * @generated >+ */ >+ private ComposedAdapterFactory domainAdapterFactory; >+ >+ /** >+ * @generated >+ */ >+ protected void firePropertyChange(int propertyId) { >+ super.firePropertyChange(propertyId); >+ editorActions.update(); >+ } >+ >+ /** >+ * Adds an action to this editor's <code>ActionRegistry</code>. (This is >+ * a helper method.) >+ * >+ * @generated >+ * @param action >+ * the action to add. >+ */ >+ protected void addAction(IAction action) { >+ getActionRegistry().registerAction(action); >+ } >+ >+ /** >+ * Adds an editor action to this editor. >+ * >+ * <p> >+ * Editor actions are actions that depend and work on the editor. >+ * >+ * @generated >+ * @param action >+ * the editor action >+ */ >+ protected void addEditorAction(WorkbenchPartAction action) { >+ getActionRegistry().registerAction(action); >+ editorActions.addAction(action); >+ } >+ >+ /** >+ * Adds an <code>EditPart</code> action to this editor. >+ * >+ * <p> >+ * <code>EditPart</code> actions are actions that depend and work on the >+ * selected <code>EditPart</code>s. >+ * >+ * @generated >+ * @param action >+ * the <code>EditPart</code> action >+ */ >+ protected void addEditPartAction(SelectionAction action) { >+ getActionRegistry().registerAction(action); >+ editPartActions.addAction(action); >+ } >+ >+ /** >+ * Adds an <code>CommandStack</code> action to this editor. >+ * >+ * <p> >+ * <code>CommandStack</code> actions are actions that depend and work on >+ * the <code>CommandStack</code>. >+ * >+ * @generated >+ * @param action >+ * the <code>CommandStack</code> action >+ */ >+ protected void addStackAction(StackAction action) { >+ getActionRegistry().registerAction(action); >+ stackActions.addAction(action); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createActions() { >+ addStackAction(new UndoAction(this)); >+ addStackAction(new RedoAction(this)); >+ >+ addEditPartAction(new DeleteAction((IWorkbenchPart) this)); >+ addEditPartAction(new DirectEditAction((IWorkbenchPart) this)); >+ >+ addEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.LEFT)); >+ addEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.RIGHT)); >+ addEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.TOP)); >+ addEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.BOTTOM)); >+ addEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.CENTER)); >+ addEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.MIDDLE)); >+ >+ addEditorAction(new SaveAction(this)); >+ addEditorAction(new PrintAction(this)); >+ >+ IAction zoomIn = new ZoomInAction(getZoomManager()); >+ IAction zoomOut = new ZoomOutAction(getZoomManager()); >+ addAction(zoomIn); >+ addAction(zoomOut); >+ getSite().getKeyBindingService().registerAction(zoomIn); >+ getSite().getKeyBindingService().registerAction(zoomOut); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void dispose() { >+ // remove CommandStackListener >+ getCommandStack().removeCommandStackListener(getStackActionsListener()); >+ >+ // remove selection listener >+ getSite().getWorkbenchWindow().getSelectionService().removeSelectionListener(getSelectionListener()); >+ >+ // dispose the ActionRegistry (will dispose all actions) >+ getActionRegistry().dispose(); >+ >+ // important: always call super implementation of dispose >+ super.dispose(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void doSave(IProgressMonitor monitor) { >+ try { >+ save(monitor); >+ getCommandStack().markSaveLocation(); >+ } catch (CoreException e) { >+ ErrorDialog.openError(getSite().getShell(), "Error During Save", "The current <%=genDiagram.getEditorGen().getDomainGenModel().getModelName()%> model could not be saved.", e.getStatus()); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void save(IProgressMonitor progressMonitor) throws CoreException { >+ if (progressMonitor == null) { >+ progressMonitor = new NullProgressMonitor(); >+ } >+ progressMonitor.beginTask("Saving", getEditingDomain().getResourceSet().getResources().size()); >+ try { >+ for(Iterator it = getEditingDomain().getResourceSet().getResources().iterator(); it.hasNext(); ) { >+ Resource next = (Resource)it.next(); >+ next.save(Collections.EMPTY_MAP); >+ progressMonitor.worked(1); >+ } >+ } catch (IOException e) { >+ IStatus status = new Status(IStatus.ERROR, <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.ID, 0, "Error writing file.", e); >+ throw new CoreException(status); >+ } finally { >+ progressMonitor.done(); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean isSaveAsAllowed() { >+ // TODO: should be allowed. >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void doSaveAs() { >+ // TODO: Implement. >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getAdapter(Class type) { >+ if (type == IPropertySheetPage.class) { >+ return getPropertySheetPage(); >+ } else if (type == IContentOutlinePage.class) { >+ return getOutlinePage(); >+ } else if (type == ZoomManager.class) { >+ return getZoomManager(); >+ } >+ return super.getAdapter(type); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ZoomManager getZoomManager() { >+ return getZoomManager(getGraphicalViewer()); >+ } >+ >+ /** >+ * @generated >+ */ >+ private ZoomManager getZoomManager(GraphicalViewer viewer) { >+ // get zoom manager from root edit part >+ RootEditPart rootEditPart = viewer.getRootEditPart(); >+ ZoomManager zoomManager = null; >+ if (rootEditPart instanceof ScalableFreeformRootEditPart) { >+ zoomManager = ((ScalableFreeformRootEditPart) rootEditPart).getZoomManager(); >+ } else if (rootEditPart instanceof ScalableRootEditPart) { >+ zoomManager = ((ScalableRootEditPart) rootEditPart).getZoomManager(); >+ } >+ return zoomManager; >+ } >+ >+ /** >+ * @generated >+ */ >+ private CommandStackListener getStackActionsListener() { >+ return commandStackListener; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected IContentOutlinePage getOutlinePage() { >+ //TODO: outline page missing >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected PaletteRoot getPaletteRoot() { >+ if (paletteRoot == null) { >+ paletteRoot = new PaletteRoot(); >+<% >+{ >+ final Palette palette = genDiagram.getPalette(); >+ if (palette != null) { >+%> >+ new <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>(getDomainAdapterFactory()).contributeToPalette(paletteRoot); >+<% >+ } >+} >+%> >+ } >+ return paletteRoot; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected PropertySheetPage getPropertySheetPage() { >+ if (undoablePropertySheetPage == null) { >+ undoablePropertySheetPage = new PropertySheetPage(); >+ <%=importManager.getImportedName("org.eclipse.gef.ui.properties.UndoablePropertySheetEntry")%> rootEntry = new <%=importManager.getImportedName("org.eclipse.gef.ui.properties.UndoablePropertySheetEntry")%>(getCommandStack()); >+ rootEntry.setPropertySourceProvider(new <%=importManager.getImportedName(genDiagram.getPropertyProviderQualifiedClassName())%>(getDomainAdapterFactory())); >+ undoablePropertySheetPage.setRootEntry(rootEntry); >+ } >+ >+ return undoablePropertySheetPage; >+ } >+ >+ /** >+ * @generated >+ */ >+ private ISelectionListener getSelectionListener() { >+ return selectionListener; >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())%> get<%=genDiagram.getDomainDiagramElement().getClassifierAccessorName()%>() { >+ return <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%>; >+ } >+ >+ /** >+ * @generated >+ */ >+ public Diagram getDiagram() { >+ return diagram; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void init(IEditorSite site, IEditorInput input) throws PartInitException { >+ URI file = getURIFromInput(input); >+ if (file == null) { >+ throw new PartInitException("The specified input is not valid."); >+ } >+ setSite(site); >+ setInput(input); >+ setEditDomain(new DefaultEditDomain(this)); >+ >+ // validate >+ if (get<%=genDiagram.getDomainDiagramElement().getClassifierAccessorName()%>() == null) { >+ throw new PartInitException("The specified input is not valid."); >+ } >+ >+ // add CommandStackListener >+ getCommandStack().addCommandStackListener(getStackActionsListener()); >+ >+ // add selection change listener >+ getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(getSelectionListener()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void setInput(IEditorInput input) { >+ URI file = getURIFromInput(input); >+ load(file); >+ setPartName(file.lastSegment()); >+ setContentDescription(file.toFileString()); >+ super.setInput(input); >+ } >+ >+ /** >+ * @generated >+ */ >+ private URI getURIFromInput(IEditorInput input) { >+ if (input instanceof URIEditorInput) { >+ return ((URIEditorInput) input).getURI(); >+ } >+ if (input instanceof IPathEditorInput) { >+ return URI.createFileURI(((IPathEditorInput)input).getPath().toOSString()); >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean isDirty() { >+ return isDirty; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void setDirty(boolean dirty) { >+ if (isDirty != dirty) { >+ isDirty = dirty; >+ firePropertyChange(IEditorPart.PROP_DIRTY); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected EditingDomain getEditingDomain() { >+ if (editingDomain == null) { >+ BasicCommandStack commandStack = new BasicCommandStack(); >+ editingDomain = new AdapterFactoryEditingDomain(getDomainAdapterFactory(), commandStack, new HashMap()); >+ editingDomain.getResourceSet().eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(editingDomain)); >+ } >+ return editingDomain; >+ } >+ >+ /** >+ * @generated >+ */ >+ private AdapterFactory getDomainAdapterFactory() { >+ if (domainAdapterFactory == null) { >+ List factories = new ArrayList(); >+ factories.add(new ResourceItemProviderAdapterFactory()); >+<% >+final EList genPackages = genDiagram.getEditorGen().getAllDomainGenPackages(true); >+for (int i = 0; i < genPackages.size(); i++) { >+ GenPackage genPackage = (GenPackage) genPackages.get(i); >+%> >+ factories.add(new <%=importManager.getImportedName(genPackage.getQualifiedItemProviderAdapterFactoryClassName())%>()); >+<%}%> >+ factories.add(new ReflectiveItemProviderAdapterFactory()); >+ factories.add(new NotationItemProviderAdapterFactory()); >+ domainAdapterFactory = new ComposedAdapterFactory(factories); >+ } >+ return domainAdapterFactory; >+ } >+ >+ /** >+ * @generated >+ */ >+ private void load(URI diagramFile) { >+ <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%> = null; >+ diagram = null; >+ if (diagramFile == null) { >+ return; >+ } >+ EditingDomain editingDomain = getEditingDomain(); >+ ResourceSet resourceSet = editingDomain.getResourceSet(); >+ Resource diagramResource = resourceSet.getResource(diagramFile, true); >+ if (diagramResource == null) { >+ diagramResource = resourceSet.createResource(diagramFile); >+ } >+ diagram = (Diagram) findInResource(diagramResource, Diagram.class); >+ if (diagram == null) { >+ diagram = NotationFactory.eINSTANCE.createDiagram(); >+ diagramResource.getContents().add(0, diagram); >+ //Auxiliary creation should not be undoable. >+ try { >+ diagramResource.save(Collections.EMPTY_MAP); >+ } catch (IOException e) { >+ diagram = null; >+ <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%> = null; >+ return; >+ } >+ } >+<% >+{ >+%> >+<% >+ boolean sameFile = genDiagram.getEditorGen().isSameFileForDiagramAndModel(); >+ String resourceToUse; >+ if (!sameFile) { >+%> >+ URI modelFile = <%=genDiagram.getDiagramEditorUtilClassName()%>.getModelFileURI(diagramFile); >+ Resource modelResource = resourceSet.getResource(modelFile, true); >+ if (modelResource == null) { >+ modelResource = resourceSet.createResource(modelFile); >+ } >+<% >+ resourceToUse = "modelResource"; >+ } else { >+ resourceToUse = "diagramResource"; >+ } >+%> >+ <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%> = (<%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())%>) findInResource(<%=resourceToUse%>, <%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())%>.class); >+ if (<%=genDiagram.getDomainDiagramElement().getSafeUncapName()%> == null) { >+ <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%> = <%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedFactoryClassName())%>.eINSTANCE.create<%=genDiagram.getDomainDiagramElement().getClassifierAccessorName()%>(); >+ <%=resourceToUse%>.getContents().add(0, <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%>); >+ //We don't want this auxiliary creation to be undoable. >+ try { >+ <%=resourceToUse%>.save(Collections.EMPTY_MAP); >+ } catch (IOException e) { >+ diagram = null; >+ <%=genDiagram.getDomainDiagramElement().getSafeUncapName()%> = null; >+ return; >+ } >+ } >+ if (!diagram.isSetElement()) { >+ diagram.setElement(<%=genDiagram.getDomainDiagramElement().getSafeUncapName()%>); >+ } >+ } >+<% >+} >+%> >+ >+ /** >+ * @generated >+ */ >+ private Object findInResource(Resource resource, Class expectedClass) { >+ for(Iterator it = resource.getContents().iterator(); it.hasNext(); ) { >+ Object next = it.next(); >+ if (expectedClass.isInstance(next)) { >+ return next; >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setFocus() { >+ getGraphicalViewer().getControl().setFocus(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public final void createPartControl(Composite parent) { >+ super.createPartControl(parent); >+ // initialize actions >+ createActions(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createGraphicalViewer(Composite parent) { >+ super.createGraphicalViewer(parent); >+ // initialize the viewer with input >+ ScalableFreeformRootEditPart root = new ScalableFreeformRootEditPart(); >+ getGraphicalViewer().setRootEditPart(root); >+ getGraphicalViewer().setEditPartFactory(new <%=importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())%>()); >+ getGraphicalViewer().setContents(getDiagram()); >+ >+ <%=importManager.getImportedName("org.eclipse.draw2d.LayeredPane")%> printableLayers = (<%=importManager.getImportedName("org.eclipse.draw2d.LayeredPane")%>) root.getLayer(<%=importManager.getImportedName("org.eclipse.gef.LayerConstants")%>.PRINTABLE_LAYERS); >+ <%=importManager.getImportedName("org.eclipse.draw2d.FreeformLayer")%> extLabelsLayer = new <%=importManager.getImportedName("org.eclipse.draw2d.FreeformLayer")%>(); >+ extLabelsLayer.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.DelegatingLayout")%>()); >+ printableLayers.addLayerAfter(extLabelsLayer, <%=importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())%>.EXTERNAL_NODE_LABELS_LAYER, <%=importManager.getImportedName("org.eclipse.gef.LayerConstants")%>.PRIMARY_LAYER); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void configureGraphicalViewer() { >+ super.configureGraphicalViewer(); >+ GraphicalViewer viewer = getGraphicalViewer(); >+ // configure the context menu >+ ContextMenuProvider provider = new <%=genEditor.getClassName()%>ContextMenuProvider(viewer); >+ viewer.setContextMenu(provider); >+ getSite().registerContextMenu(<%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.ID + ".editor.contextmenu", provider, getSite().getSelectionProvider()); //$NON-NLS-1$ >+ >+ KeyHandler keyHandler = new GraphicalViewerKeyHandler(viewer); >+ keyHandler.put(KeyStroke.getPressed(SWT.DEL, 127, 0), getActionRegistry().getAction(ActionFactory.DELETE.getId())); >+ keyHandler.put(KeyStroke.getPressed(SWT.F2, 0), getActionRegistry().getAction(GEFActionConstants.DIRECT_EDIT)); >+ viewer.setKeyHandler(keyHandler); >+ >+ viewer.setProperty(MouseWheelHandler.KeyGenerator.getKey(SWT.CTRL), MouseWheelZoomHandler.SINGLETON); >+ } >+ >+ /** >+ * @generated >+ */ >+ private class <%=genEditor.getClassName()%>ContextMenuProvider extends ContextMenuProvider { >+ /** >+ * @generated >+ */ >+ public <%=genEditor.getClassName()%>ContextMenuProvider(EditPartViewer viewer) { >+ super(viewer); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void buildContextMenu(IMenuManager menuManager) { >+ GEFActionConstants.addStandardActionGroups(menuManager); >+ appendActionToMenu(menuManager, ActionFactory.UNDO.getId(), GEFActionConstants.GROUP_UNDO); >+ appendActionToMenu(menuManager, ActionFactory.REDO.getId(), GEFActionConstants.GROUP_UNDO); >+ >+ appendActionToMenu(menuManager, ActionFactory.COPY.getId(), GEFActionConstants.GROUP_EDIT); >+ appendActionToMenu(menuManager, ActionFactory.PASTE.getId(), GEFActionConstants.GROUP_EDIT); >+ appendActionToMenu(menuManager, ActionFactory.DELETE.getId(), GEFActionConstants.GROUP_EDIT); >+ appendActionToMenu(menuManager, GEFActionConstants.DIRECT_EDIT, GEFActionConstants.GROUP_EDIT); >+ >+ appendActionToMenu(menuManager, ActionFactory.SAVE.getId(), GEFActionConstants.GROUP_SAVE); >+ >+ appendAlignmentSubmenu(menuManager); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void appendAlignmentSubmenu(IMenuManager menuManager) { >+ // Alignment Actions >+ MenuManager submenu = new MenuManager("Align"); >+ submenu.add(new Separator(GEFActionConstants.MB_ADDITIONS)); >+ >+ appendActionToMenu(submenu, GEFActionConstants.ALIGN_LEFT, GEFActionConstants.MB_ADDITIONS); >+ appendActionToMenu(submenu, GEFActionConstants.ALIGN_CENTER, GEFActionConstants.MB_ADDITIONS); >+ appendActionToMenu(submenu, GEFActionConstants.ALIGN_RIGHT, GEFActionConstants.MB_ADDITIONS); >+ appendActionToMenu(submenu, GEFActionConstants.ALIGN_TOP, GEFActionConstants.MB_ADDITIONS); >+ appendActionToMenu(submenu, GEFActionConstants.ALIGN_MIDDLE, GEFActionConstants.MB_ADDITIONS); >+ appendActionToMenu(submenu, GEFActionConstants.ALIGN_BOTTOM, GEFActionConstants.MB_ADDITIONS); >+ >+ if (!submenu.isEmpty()) { >+ menuManager.appendToGroup(GEFActionConstants.GROUP_REST, submenu); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private void appendActionToMenu(IMenuManager menu, String actionId, String menuGroup) { >+ IAction action = getActionRegistry().getAction(actionId); >+ if (action != null && action.isEnabled()) { >+ menu.appendToGroup(menuGroup, action); >+ } >+ } >+ } >+} >+<%importManager.emitSortedImports();%> >Index: templates/parts/refreshers.javajetinc/visibility.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/visibility.javajetinc >diff -N templates/parts/refreshers.javajetinc/visibility.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/visibility.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+ Refresher visibilityRefresher = new Refresher() { >+ public void refresh() { >+ refreshVisibility(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getView_Visible(), visibilityRefresher); >Index: templates/parts/NodeLabelEditPart.javajet >=================================================================== >RCS file: templates/parts/NodeLabelEditPart.javajet >diff -N templates/parts/NodeLabelEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/NodeLabelEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,197 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="NodeLabelEditPartGenerator" >+ imports="java.util.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.emf.ecore.*"%> >+<% >+GenNodeLabel genLabel = (GenNodeLabel) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+GenNode genHost = genLabel.getNode(); >+GenClass underlyingMetaClass = genHost.getDomainMetaClass(); >+GenDiagram genDiagram = genLabel.getDiagram(); >+LabelModelFacet labelModelFacet = genLabel.getModelFacet(); >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer);%> >+ >+<% >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genLabel.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")%> { >+<%@ include file="textAwareFields.jetinc"%> >+ >+ /** >+ * @generated >+ */ >+ public <%=genLabel.getEditPartClassName()%>(View view) { >+ setModel(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+<% >+ final String primaryView = "getUpdatableParent().getDiagramNode()"; >+ final String resolvedSemanticElement = "resolveSemanticElement()"; >+%> >+<%@ include file="directEditPolicy.javajetinc"%> >+ } >+ >+<%@ include file="directEdit.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ getLabel().setText(getLabelText()); >+ getLabel().setIcon(getLabelIcon()); >+ } >+ >+<%@ include file="labelText.javajetinc"%> >+<%@ include file="refreshMethods/font.javajetinc"%> >+<%@ include file="refreshMethods/fontColor.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.swt.graphics.Image")%> getLabelIcon() { >+ <%=importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())%> element = resolveSemanticElement(); >+ <%=importManager.getImportedName("org.eclipse.jface.resource.ImageDescriptor")%> imageDescriptor = <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().getItemImageDescriptor(element); >+ if (imageDescriptor != null) { >+ return imageDescriptor.createImage(); >+ } >+ return <%=importManager.getImportedName("org.eclipse.jface.resource.ImageDescriptor")%>.getMissingImageDescriptor().createImage(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())%> resolveSemanticElement() { >+ for(EditPart editPart = this; editPart != null; editPart = editPart.getParent()) { >+ View view = (View)editPart.getModel(); >+ if (view != null && view.getElement() != null) { >+ return (<%=importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())%>) view.getElement(); >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> getUpdatableParent() { >+ for(EditPart editPart = getParent(); editPart != null; editPart = editPart.getParent()) { >+ if (editPart instanceof <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%>) { >+ return (<%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%>) editPart; >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> updatableParent = getUpdatableParent(); >+ if (updatableParent != null) { >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontColor(), fontColorRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontHeight(), fontRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontName(), fontRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Bold(), fontRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Italic(), fontRefresher); >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+%> >+ updatableParent.addRefresher(<%=importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=feature.getFeatureAccessorName()%>(), labelRefresher); >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+%> >+ updatableParent.addRefresher(<%=importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=next.getFeatureAccessorName()%>(), labelRefresher); >+<% >+ } >+} >+%> >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ super.deactivate(); >+ <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> updatableParent = getUpdatableParent(); >+ if (updatableParent != null) { >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontColor(), fontColorRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontHeight(), fontRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontName(), fontRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Bold(), fontRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Italic(), fontRefresher); >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+%> >+ updatableParent.removeRefresher(<%=importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=feature.getFeatureAccessorName()%>(), labelRefresher); >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+%> >+ updatableParent.removeRefresher(<%=importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=next.getFeatureAccessorName()%>(), labelRefresher); >+<% >+ } >+} >+%> >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private IUpdatableEditPart.Refresher labelRefresher = new IUpdatableEditPart.Refresher() { >+ public void refresh() { >+ refreshLabel(); >+ } >+ }; >+ >+ >+ /** >+ * @generated >+ */ >+ private IUpdatableEditPart.Refresher fontColorRefresher = new IUpdatableEditPart.Refresher() { >+ public void refresh() { >+ refreshFontColor(); >+ } >+ }; >+ >+ /** >+ * @generated >+ */ >+ private IUpdatableEditPart.Refresher fontRefresher = new IUpdatableEditPart.Refresher() { >+ public void refresh() { >+ refreshFont(); >+ } >+ }; >+<%@ include file="labelFigure.jetinc"%> >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginXML.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginXML.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginXML.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginXML.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,70 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+ >+public class PluginXML >+{ >+ protected static String nl; >+ public static synchronized PluginXML create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ PluginXML result = new PluginXML(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + NL + "<?eclipse version=\"3.0\"?>" + NL + "<plugin>" + NL + " <extension point=\"org.eclipse.team.core.fileTypes\">" + NL + " <fileTypes" + NL + " type=\"text\"" + NL + " extension=\""; >+ protected final String TEXT_2 = "\">" + NL + " </fileTypes>" + NL + " </extension>" + NL + "" + NL + " <extension point=\"org.eclipse.ui.editors\">" + NL + " <editor" + NL + " id=\""; >+ protected final String TEXT_3 = "\"" + NL + " name=\""; >+ protected final String TEXT_4 = " Diagram Editor\"" + NL + " icon=\""; >+ protected final String TEXT_5 = "\"" + NL + " extensions=\""; >+ protected final String TEXT_6 = "\"" + NL + " default=\"true\"" + NL + " class=\""; >+ protected final String TEXT_7 = "\"" + NL + " contributorClass=\""; >+ protected final String TEXT_8 = "\">" + NL + " </editor>" + NL + " </extension>" + NL + "" + NL + " <extension point=\"org.eclipse.ui.newWizards\">" + NL + " \t <wizard" + NL + " \t name=\""; >+ protected final String TEXT_9 = " Diagram\"" + NL + " \t icon=\""; >+ protected final String TEXT_10 = "\"" + NL + " \t category=\"org.eclipse.ui.Examples\"" + NL + " \t class=\""; >+ protected final String TEXT_11 = "\"" + NL + " \t id=\""; >+ protected final String TEXT_12 = "ID\">" + NL + " \t \t <description>" + NL + " \t \t\tCreates "; >+ protected final String TEXT_13 = " diagram." + NL + " \t \t </description> " + NL + " </wizard>" + NL + " </extension>" + NL + "" + NL + "</plugin>"; >+ protected final String TEXT_14 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenPlugin genPlugin = (GenPlugin) argument; >+final GenEditorGenerator editorGen = genPlugin.getEditorGen(); >+final GenDiagram genDiagram = editorGen.getDiagram(); >+final GenModel genModel = editorGen.getDomainGenModel(); >+ >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(editorGen.getDiagramFileExtension()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(editorGen.getEditor().getID()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(genModel.getModelName()); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(editorGen.getEditor().getIconPath()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(editorGen.getDiagramFileExtension()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(editorGen.getEditor().getQualifiedClassName()); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(editorGen.getEditor().getActionBarContributorQualifiedClassName()); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(genModel.getModelName()); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genDiagram.getCreationWizardIconPath()); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genDiagram.getCreationWizardQualifiedClassName()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(genDiagram.getCreationWizardQualifiedClassName()); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(genModel.getModelName()); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(TEXT_14); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refreshers.javajetinc/fontColor.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/fontColor.javajetinc >diff -N templates/parts/refreshers.javajetinc/fontColor.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/fontColor.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+ Refresher fontColorRefresher = new Refresher() { >+ public void refresh() { >+ refreshFontColor(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontColor(), fontColorRefresher); >Index: templates/parts/mapmodeWorkaround.javajetinc >=================================================================== >RCS file: templates/parts/mapmodeWorkaround.javajetinc >diff -N templates/parts/mapmodeWorkaround.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/mapmodeWorkaround.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+<% >+if (classBody.indexOf("DPtoLP") != -1) { >+%> >+ /** >+ * @generated >+ */ >+ private static class MapModeWorkaround { >+ /** >+ * @generated >+ */ >+ public int DPtoLP(int dp) { >+ return dp; >+ } >+ /** >+ * @generated >+ */ >+ public static MapModeWorkaround INSTANCE = new MapModeWorkaround(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private MapModeWorkaround getMapMode() { >+ return MapModeWorkaround.INSTANCE; >+ } >+<% >+} >+%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/EditorGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/EditorGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/EditorGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/EditorGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,296 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.emf.common.util.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class EditorGenerator >+{ >+ protected static String nl; >+ public static synchronized EditorGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ EditorGenerator result = new EditorGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_3 = " extends GraphicalEditorWithFlyoutPalette {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class UpdatableActionGroup {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void addAction(UpdateAction action) {" + NL + "\t\t\tassert action != null;" + NL + "\t\t\tmyActions.add(action);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void removeAction(UpdateAction action) {" + NL + "\t\t\tmyActions.remove(action);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void update() {" + NL + "\t\t\tfor (Iterator it = myActions.iterator(); it.hasNext();) {" + NL + "\t\t\t\tUpdateAction next = (UpdateAction) it.next();" + NL + "\t\t\t\tnext.update();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate ArrayList myActions = new ArrayList();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate EditingDomain editingDomain;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_4 = " "; >+ protected final String TEXT_5 = ";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_6 = " diagram;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isDirty = false;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate PaletteRoot paletteRoot;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate PropertySheetPage undoablePropertySheetPage;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate UpdatableActionGroup stackActions = new UpdatableActionGroup();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate CommandStackListener commandStackListener = new CommandStackListener() {" + NL + "" + NL + "\t\tpublic void commandStackChanged(EventObject event) {" + NL + "\t\t\tstackActions.update();" + NL + "\t\t\tsetDirty(((CommandStack) event.getSource()).isDirty());" + NL + "\t\t}" + NL + "\t};" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate UpdatableActionGroup editPartActions = new UpdatableActionGroup();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ISelectionListener selectionListener = new ISelectionListener() {" + NL + "" + NL + "\t\tpublic void selectionChanged(IWorkbenchPart part, ISelection selection) {" + NL + "\t\t\teditPartActions.update();" + NL + "\t\t}" + NL + "\t};" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate UpdatableActionGroup editorActions = new UpdatableActionGroup();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ComposedAdapterFactory domainAdapterFactory;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void firePropertyChange(int propertyId) {" + NL + "\t\tsuper.firePropertyChange(propertyId);" + NL + "\t\teditorActions.update();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Adds an action to this editor's <code>ActionRegistry</code>. (This is" + NL + "\t * a helper method.)" + NL + "\t * " + NL + "\t * @generated" + NL + "\t * @param action" + NL + "\t * the action to add." + NL + "\t */" + NL + "\tprotected void addAction(IAction action) {" + NL + "\t\tgetActionRegistry().registerAction(action);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Adds an editor action to this editor." + NL + "\t * " + NL + "\t * <p>" + NL + "\t * Editor actions are actions that depend and work on the editor." + NL + "\t * " + NL + "\t * @generated" + NL + "\t * @param action" + NL + "\t * the editor action" + NL + "\t */" + NL + "\tprotected void addEditorAction(WorkbenchPartAction action) {" + NL + "\t\tgetActionRegistry().registerAction(action);" + NL + "\t\teditorActions.addAction(action);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Adds an <code>EditPart</code> action to this editor." + NL + "\t * " + NL + "\t * <p>" + NL + "\t * <code>EditPart</code> actions are actions that depend and work on the" + NL + "\t * selected <code>EditPart</code>s." + NL + "\t * " + NL + "\t * @generated" + NL + "\t * @param action" + NL + "\t * the <code>EditPart</code> action" + NL + "\t */" + NL + "\tprotected void addEditPartAction(SelectionAction action) {" + NL + "\t\tgetActionRegistry().registerAction(action);" + NL + "\t\teditPartActions.addAction(action);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Adds an <code>CommandStack</code> action to this editor." + NL + "\t * " + NL + "\t * <p>" + NL + "\t * <code>CommandStack</code> actions are actions that depend and work on" + NL + "\t * the <code>CommandStack</code>." + NL + "\t * " + NL + "\t * @generated" + NL + "\t * @param action" + NL + "\t * the <code>CommandStack</code> action" + NL + "\t */" + NL + "\tprotected void addStackAction(StackAction action) {" + NL + "\t\tgetActionRegistry().registerAction(action);" + NL + "\t\tstackActions.addAction(action);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createActions() {" + NL + "\t\taddStackAction(new UndoAction(this));" + NL + "\t\taddStackAction(new RedoAction(this));" + NL + "" + NL + "\t\taddEditPartAction(new DeleteAction((IWorkbenchPart) this));" + NL + "\t\taddEditPartAction(new DirectEditAction((IWorkbenchPart) this));" + NL + "" + NL + "\t\taddEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.LEFT));" + NL + "\t\taddEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.RIGHT));" + NL + "\t\taddEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.TOP));" + NL + "\t\taddEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.BOTTOM));" + NL + "\t\taddEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.CENTER));" + NL + "\t\taddEditPartAction(new AlignmentAction((IWorkbenchPart) this, PositionConstants.MIDDLE));" + NL + "" + NL + "\t\taddEditorAction(new SaveAction(this));" + NL + "\t\taddEditorAction(new PrintAction(this));" + NL + "" + NL + "\t\tIAction zoomIn = new ZoomInAction(getZoomManager());" + NL + "\t\tIAction zoomOut = new ZoomOutAction(getZoomManager());" + NL + "\t\taddAction(zoomIn);" + NL + "\t\taddAction(zoomOut);" + NL + "\t\tgetSite().getKeyBindingService().registerAction(zoomIn);" + NL + "\t\tgetSite().getKeyBindingService().registerAction(zoomOut);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void dispose() {" + NL + "\t\t// remove CommandStackListener" + NL + "\t\tgetCommandStack().removeCommandStackListener(getStackActionsListener());" + NL + "" + NL + "\t\t// remove selection listener" + NL + "\t\tgetSite().getWorkbenchWindow().getSelectionService().removeSelectionListener(getSelectionListener());" + NL + "" + NL + "\t\t// dispose the ActionRegistry (will dispose all actions)" + NL + "\t\tgetActionRegistry().dispose();" + NL + "" + NL + "\t\t// important: always call super implementation of dispose" + NL + "\t\tsuper.dispose();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void doSave(IProgressMonitor monitor) {" + NL + "\t\ttry {" + NL + "\t\t\tsave(monitor);" + NL + "\t\t\tgetCommandStack().markSaveLocation();" + NL + "\t\t} catch (CoreException e) {" + NL + "\t\t\tErrorDialog.openError(getSite().getShell(), \"Error During Save\", \"The current "; >+ protected final String TEXT_7 = " model could not be saved.\", e.getStatus());" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void save(IProgressMonitor progressMonitor) throws CoreException {" + NL + "\t\tif (progressMonitor == null) {" + NL + "\t\t\tprogressMonitor = new NullProgressMonitor();" + NL + "\t\t}" + NL + "\t\tprogressMonitor.beginTask(\"Saving\", getEditingDomain().getResourceSet().getResources().size());" + NL + "\t\ttry {" + NL + "\t\t\tfor(Iterator it = getEditingDomain().getResourceSet().getResources().iterator(); it.hasNext(); ) {" + NL + "\t\t\t\tResource next = (Resource)it.next();" + NL + "\t\t\t\tnext.save(Collections.EMPTY_MAP);" + NL + "\t\t\t\tprogressMonitor.worked(1);" + NL + "\t\t\t}" + NL + "\t\t} catch (IOException e) {" + NL + "\t\t\tIStatus status = new Status(IStatus.ERROR, "; >+ protected final String TEXT_8 = ".ID, 0, \"Error writing file.\", e);" + NL + "\t\t\tthrow new CoreException(status);" + NL + "\t\t} finally {" + NL + "\t\t\tprogressMonitor.done();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isSaveAsAllowed() {" + NL + "\t\t// TODO: should be allowed." + NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void doSaveAs() {" + NL + "\t\t// TODO: Implement." + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object getAdapter(Class type) {" + NL + "\t\tif (type == IPropertySheetPage.class) {" + NL + "\t\t\treturn getPropertySheetPage();" + NL + "\t\t} else if (type == IContentOutlinePage.class) {" + NL + "\t\t\treturn getOutlinePage();" + NL + "\t\t} else if (type == ZoomManager.class) {" + NL + "\t\t\treturn getZoomManager();" + NL + "\t\t}" + NL + "\t\treturn super.getAdapter(type);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ZoomManager getZoomManager() {" + NL + "\t\treturn getZoomManager(getGraphicalViewer());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ZoomManager getZoomManager(GraphicalViewer viewer) {" + NL + "\t\t// get zoom manager from root edit part" + NL + "\t\tRootEditPart rootEditPart = viewer.getRootEditPart();" + NL + "\t\tZoomManager zoomManager = null;" + NL + "\t\tif (rootEditPart instanceof ScalableFreeformRootEditPart) {" + NL + "\t\t\tzoomManager = ((ScalableFreeformRootEditPart) rootEditPart).getZoomManager();" + NL + "\t\t} else if (rootEditPart instanceof ScalableRootEditPart) {" + NL + "\t\t\tzoomManager = ((ScalableRootEditPart) rootEditPart).getZoomManager();" + NL + "\t\t}" + NL + "\t\treturn zoomManager;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate CommandStackListener getStackActionsListener() {" + NL + "\t\treturn commandStackListener;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IContentOutlinePage getOutlinePage() {" + NL + "\t\t//TODO: outline page missing" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected PaletteRoot getPaletteRoot() {" + NL + "\t\tif (paletteRoot == null) {" + NL + "\t\t\tpaletteRoot = new PaletteRoot();"; >+ protected final String TEXT_9 = NL + "\t\t\tnew "; >+ protected final String TEXT_10 = "(getDomainAdapterFactory()).contributeToPalette(paletteRoot);"; >+ protected final String TEXT_11 = NL + "\t\t}" + NL + "\t\treturn paletteRoot;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected PropertySheetPage getPropertySheetPage() {" + NL + "\t\tif (undoablePropertySheetPage == null) {" + NL + "\t\t\tundoablePropertySheetPage = new PropertySheetPage();" + NL + "\t\t\t"; >+ protected final String TEXT_12 = " rootEntry = new "; >+ protected final String TEXT_13 = "(getCommandStack());" + NL + "\t\t\trootEntry.setPropertySourceProvider(new "; >+ protected final String TEXT_14 = "(getDomainAdapterFactory()));" + NL + "\t\t\tundoablePropertySheetPage.setRootEntry(rootEntry);" + NL + "\t\t}" + NL + "" + NL + "\t\treturn undoablePropertySheetPage;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ISelectionListener getSelectionListener() {" + NL + "\t\treturn selectionListener;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_15 = " get"; >+ protected final String TEXT_16 = "() {" + NL + "\t\treturn "; >+ protected final String TEXT_17 = ";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Diagram getDiagram() {" + NL + "\t\treturn diagram;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void init(IEditorSite site, IEditorInput input) throws PartInitException {" + NL + "\t\tURI file = getURIFromInput(input);" + NL + "\t\tif (file == null) {" + NL + "\t\t\tthrow new PartInitException(\"The specified input is not valid.\");" + NL + "\t\t}" + NL + "\t\tsetSite(site);" + NL + "\t\tsetInput(input);" + NL + "\t\tsetEditDomain(new DefaultEditDomain(this));" + NL + "" + NL + "\t\t// validate" + NL + "\t\tif (get"; >+ protected final String TEXT_18 = "() == null) {" + NL + "\t\t\tthrow new PartInitException(\"The specified input is not valid.\");" + NL + "\t\t}" + NL + "" + NL + "\t\t// add CommandStackListener" + NL + "\t\tgetCommandStack().addCommandStackListener(getStackActionsListener());" + NL + "" + NL + "\t\t// add selection change listener" + NL + "\t\tgetSite().getWorkbenchWindow().getSelectionService().addSelectionListener(getSelectionListener());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void setInput(IEditorInput input) {" + NL + "\t\tURI file = getURIFromInput(input);" + NL + "\t\tload(file);" + NL + "\t\tsetPartName(file.lastSegment());" + NL + "\t\tsetContentDescription(file.toFileString());" + NL + "\t\tsuper.setInput(input);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate URI getURIFromInput(IEditorInput input) {" + NL + "\t\tif (input instanceof URIEditorInput) {" + NL + "\t\t\treturn ((URIEditorInput) input).getURI();" + NL + "\t\t}" + NL + "\t\tif (input instanceof IPathEditorInput) {" + NL + "\t\t\treturn URI.createFileURI(((IPathEditorInput)input).getPath().toOSString());" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isDirty() {" + NL + "\t\treturn isDirty;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void setDirty(boolean dirty) {" + NL + "\t\tif (isDirty != dirty) {" + NL + "\t\t\tisDirty = dirty;" + NL + "\t\t\tfirePropertyChange(IEditorPart.PROP_DIRTY);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected EditingDomain getEditingDomain() {" + NL + "\t\tif (editingDomain == null) {" + NL + "\t\t\tBasicCommandStack commandStack = new BasicCommandStack();" + NL + "\t\t\teditingDomain = new AdapterFactoryEditingDomain(getDomainAdapterFactory(), commandStack, new HashMap());" + NL + "\t\t\teditingDomain.getResourceSet().eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(editingDomain));" + NL + "\t\t}" + NL + "\t\treturn editingDomain;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate AdapterFactory getDomainAdapterFactory() {" + NL + "\t\tif (domainAdapterFactory == null) {" + NL + "\t\t\tList factories = new ArrayList();" + NL + "\t\t\tfactories.add(new ResourceItemProviderAdapterFactory());"; >+ protected final String TEXT_19 = NL + "\t\t\tfactories.add(new "; >+ protected final String TEXT_20 = "());"; >+ protected final String TEXT_21 = NL + "\t\t\tfactories.add(new ReflectiveItemProviderAdapterFactory());" + NL + "\t\t\tfactories.add(new NotationItemProviderAdapterFactory());" + NL + "\t\t\tdomainAdapterFactory = new ComposedAdapterFactory(factories);" + NL + "\t\t}" + NL + "\t\treturn domainAdapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void load(URI diagramFile) {" + NL + "\t\t"; >+ protected final String TEXT_22 = " = null;" + NL + "\t\tdiagram = null;" + NL + "\t\tif (diagramFile == null) {" + NL + "\t\t\treturn;" + NL + "\t\t}" + NL + "\t\tEditingDomain editingDomain = getEditingDomain();" + NL + "\t\tResourceSet resourceSet = editingDomain.getResourceSet();" + NL + "\t\tResource diagramResource = resourceSet.getResource(diagramFile, true);" + NL + "\t\tif (diagramResource == null) {" + NL + "\t\t\tdiagramResource = resourceSet.createResource(diagramFile);" + NL + "\t\t}" + NL + "\t\tdiagram = (Diagram) findInResource(diagramResource, Diagram.class);" + NL + "\t\tif (diagram == null) {" + NL + "\t\t\tdiagram = NotationFactory.eINSTANCE.createDiagram();" + NL + "\t\t\tdiagramResource.getContents().add(0, diagram);" + NL + "\t\t\t//Auxiliary creation should not be undoable." + NL + "\t\t\ttry {" + NL + "\t\t\t\tdiagramResource.save(Collections.EMPTY_MAP);" + NL + "\t\t\t} catch (IOException e) {" + NL + "\t\t\t\tdiagram = null;" + NL + "\t\t\t\t"; >+ protected final String TEXT_23 = " = null;" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t}"; >+ protected final String TEXT_24 = NL + "\t\tURI modelFile = "; >+ protected final String TEXT_25 = ".getModelFileURI(diagramFile);" + NL + "\t\tResource modelResource = resourceSet.getResource(modelFile, true);" + NL + "\t\tif (modelResource == null) {" + NL + "\t\t\tmodelResource = resourceSet.createResource(modelFile);" + NL + "\t\t}"; >+ protected final String TEXT_26 = NL + "\t\t"; >+ protected final String TEXT_27 = " = ("; >+ protected final String TEXT_28 = ") findInResource("; >+ protected final String TEXT_29 = ", "; >+ protected final String TEXT_30 = ".class);" + NL + "\t\tif ("; >+ protected final String TEXT_31 = " == null) {" + NL + "\t\t\t"; >+ protected final String TEXT_32 = " = "; >+ protected final String TEXT_33 = ".eINSTANCE.create"; >+ protected final String TEXT_34 = "();" + NL + "\t\t\t"; >+ protected final String TEXT_35 = ".getContents().add(0, "; >+ protected final String TEXT_36 = ");" + NL + "\t\t\t//We don't want this auxiliary creation to be undoable." + NL + "\t\t\ttry {" + NL + "\t\t\t\t"; >+ protected final String TEXT_37 = ".save(Collections.EMPTY_MAP);" + NL + "\t\t\t} catch (IOException e) {" + NL + "\t\t\t\tdiagram = null;" + NL + "\t\t\t\t"; >+ protected final String TEXT_38 = " = null;" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tif (!diagram.isSetElement()) {" + NL + "\t\t\tdiagram.setElement("; >+ protected final String TEXT_39 = ");" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_40 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate Object findInResource(Resource resource, Class expectedClass) {" + NL + "\t\tfor(Iterator it = resource.getContents().iterator(); it.hasNext(); ) {" + NL + "\t\t\tObject next = it.next();" + NL + "\t\t\tif (expectedClass.isInstance(next)) {" + NL + "\t\t\t\treturn next;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setFocus() {" + NL + "\t\tgetGraphicalViewer().getControl().setFocus();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic final void createPartControl(Composite parent) {" + NL + "\t\tsuper.createPartControl(parent);" + NL + "\t\t// initialize actions" + NL + "\t\tcreateActions();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createGraphicalViewer(Composite parent) {" + NL + "\t\tsuper.createGraphicalViewer(parent);" + NL + "\t\t// initialize the viewer with input" + NL + "\t\tScalableFreeformRootEditPart root = new ScalableFreeformRootEditPart();" + NL + "\t\tgetGraphicalViewer().setRootEditPart(root);" + NL + "\t\tgetGraphicalViewer().setEditPartFactory(new "; >+ protected final String TEXT_41 = "());" + NL + "\t\tgetGraphicalViewer().setContents(getDiagram());" + NL + "" + NL + "\t\t"; >+ protected final String TEXT_42 = " printableLayers = ("; >+ protected final String TEXT_43 = ") root.getLayer("; >+ protected final String TEXT_44 = ".PRINTABLE_LAYERS);" + NL + "\t\t"; >+ protected final String TEXT_45 = " extLabelsLayer = new "; >+ protected final String TEXT_46 = "();" + NL + "\t\textLabelsLayer.setLayoutManager(new "; >+ protected final String TEXT_47 = "());" + NL + "\t\tprintableLayers.addLayerAfter(extLabelsLayer, "; >+ protected final String TEXT_48 = ".EXTERNAL_NODE_LABELS_LAYER, "; >+ protected final String TEXT_49 = ".PRIMARY_LAYER);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void configureGraphicalViewer() {" + NL + "\t\tsuper.configureGraphicalViewer();" + NL + "\t\tGraphicalViewer viewer = getGraphicalViewer();" + NL + "\t\t// configure the context menu" + NL + "\t\tContextMenuProvider provider = new "; >+ protected final String TEXT_50 = "ContextMenuProvider(viewer);" + NL + "\t\tviewer.setContextMenu(provider);" + NL + "\t\tgetSite().registerContextMenu("; >+ protected final String TEXT_51 = ".ID + \".editor.contextmenu\", provider, getSite().getSelectionProvider()); //$NON-NLS-1$" + NL + "" + NL + "\t\tKeyHandler keyHandler = new GraphicalViewerKeyHandler(viewer);" + NL + "\t\tkeyHandler.put(KeyStroke.getPressed(SWT.DEL, 127, 0), getActionRegistry().getAction(ActionFactory.DELETE.getId()));" + NL + "\t\tkeyHandler.put(KeyStroke.getPressed(SWT.F2, 0), getActionRegistry().getAction(GEFActionConstants.DIRECT_EDIT));" + NL + "\t\tviewer.setKeyHandler(keyHandler);" + NL + "" + NL + "\t\tviewer.setProperty(MouseWheelHandler.KeyGenerator.getKey(SWT.CTRL), MouseWheelZoomHandler.SINGLETON);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate class "; >+ protected final String TEXT_52 = "ContextMenuProvider extends ContextMenuProvider {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic "; >+ protected final String TEXT_53 = "ContextMenuProvider(EditPartViewer viewer) {" + NL + "\t\t\tsuper(viewer);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t public void buildContextMenu(IMenuManager menuManager) {" + NL + "\t GEFActionConstants.addStandardActionGroups(menuManager);" + NL + "\t\t\tappendActionToMenu(menuManager, ActionFactory.UNDO.getId(), GEFActionConstants.GROUP_UNDO);" + NL + "\t\t\tappendActionToMenu(menuManager, ActionFactory.REDO.getId(), GEFActionConstants.GROUP_UNDO);" + NL + "\t" + NL + "\t\t\tappendActionToMenu(menuManager, ActionFactory.COPY.getId(), GEFActionConstants.GROUP_EDIT);" + NL + "\t\t\tappendActionToMenu(menuManager, ActionFactory.PASTE.getId(), GEFActionConstants.GROUP_EDIT);" + NL + "\t\t\tappendActionToMenu(menuManager, ActionFactory.DELETE.getId(), GEFActionConstants.GROUP_EDIT);" + NL + "\t\t\tappendActionToMenu(menuManager, GEFActionConstants.DIRECT_EDIT, GEFActionConstants.GROUP_EDIT);" + NL + "" + NL + "\t\t\tappendActionToMenu(menuManager, ActionFactory.SAVE.getId(), GEFActionConstants.GROUP_SAVE);" + NL + "" + NL + "\t\t\tappendAlignmentSubmenu(menuManager);" + NL + "\t }" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate void appendAlignmentSubmenu(IMenuManager menuManager) {" + NL + "\t\t\t// Alignment Actions" + NL + "\t\t\tMenuManager submenu = new MenuManager(\"Align\");" + NL + "\t\t\tsubmenu.add(new Separator(GEFActionConstants.MB_ADDITIONS));" + NL + "\t" + NL + "\t\t\tappendActionToMenu(submenu, GEFActionConstants.ALIGN_LEFT, GEFActionConstants.MB_ADDITIONS);" + NL + "\t\t\tappendActionToMenu(submenu, GEFActionConstants.ALIGN_CENTER, GEFActionConstants.MB_ADDITIONS);" + NL + "\t\t\tappendActionToMenu(submenu, GEFActionConstants.ALIGN_RIGHT, GEFActionConstants.MB_ADDITIONS);" + NL + "\t\t\tappendActionToMenu(submenu, GEFActionConstants.ALIGN_TOP, GEFActionConstants.MB_ADDITIONS);" + NL + "\t\t\tappendActionToMenu(submenu, GEFActionConstants.ALIGN_MIDDLE, GEFActionConstants.MB_ADDITIONS);" + NL + "\t\t\tappendActionToMenu(submenu, GEFActionConstants.ALIGN_BOTTOM, GEFActionConstants.MB_ADDITIONS);" + NL + "\t" + NL + "\t\t\tif (!submenu.isEmpty()) {" + NL + "\t\t\t\tmenuManager.appendToGroup(GEFActionConstants.GROUP_REST, submenu);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate void appendActionToMenu(IMenuManager menu, String actionId, String menuGroup) {" + NL + "\t\t\tIAction action = getActionRegistry().getAction(actionId);" + NL + "\t\t\tif (action != null && action.isEnabled()) {" + NL + "\t\t\t\tmenu.appendToGroup(menuGroup, action);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenEditorView genEditor = (GenEditorView) ((Object[]) argument)[0]; >+final GenDiagram genDiagram = genEditor.getEditorGen().getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+ stringBuffer.append(TEXT_1); >+ >+importManager.addImport("java.io.IOException"); >+importManager.addImport("java.util.ArrayList"); >+importManager.addImport("java.util.Collections"); >+importManager.addImport("java.util.EventObject"); >+importManager.addImport("java.util.HashMap"); >+importManager.addImport("java.util.Iterator"); >+importManager.addImport("java.util.List"); >+ >+importManager.addImport("org.eclipse.core.runtime.CoreException"); >+importManager.addImport("org.eclipse.core.runtime.IProgressMonitor"); >+importManager.addImport("org.eclipse.core.runtime.IStatus"); >+importManager.addImport("org.eclipse.core.runtime.NullProgressMonitor"); >+importManager.addImport("org.eclipse.core.runtime.Status"); >+importManager.addImport("org.eclipse.draw2d.PositionConstants"); >+importManager.addImport("org.eclipse.emf.common.command.BasicCommandStack"); >+importManager.addImport("org.eclipse.emf.common.ui.URIEditorInput"); >+importManager.addImport("org.eclipse.emf.common.util.URI"); >+importManager.addImport("org.eclipse.emf.ecore.resource.Resource"); >+importManager.addImport("org.eclipse.emf.ecore.resource.ResourceSet"); >+importManager.addImport("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain"); >+importManager.addImport("org.eclipse.emf.edit.domain.EditingDomain"); >+importManager.addImport("org.eclipse.emf.edit.provider.ComposedAdapterFactory"); >+importManager.addImport("org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory"); >+importManager.addImport("org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory"); >+importManager.addImport("org.eclipse.gef.ContextMenuProvider"); >+importManager.addImport("org.eclipse.gef.EditPartViewer"); >+importManager.addImport("org.eclipse.gef.GraphicalViewer"); >+importManager.addImport("org.eclipse.gef.KeyHandler"); >+importManager.addImport("org.eclipse.gef.KeyStroke"); >+importManager.addImport("org.eclipse.gef.RootEditPart"); >+importManager.addImport("org.eclipse.gef.MouseWheelHandler"); >+importManager.addImport("org.eclipse.gef.MouseWheelZoomHandler"); >+importManager.addImport("org.eclipse.gef.commands.CommandStack"); >+importManager.addImport("org.eclipse.gef.commands.CommandStackListener"); >+importManager.addImport("org.eclipse.gef.editparts.ScalableFreeformRootEditPart"); >+importManager.addImport("org.eclipse.gef.editparts.ScalableRootEditPart"); >+importManager.addImport("org.eclipse.gef.editparts.ZoomManager"); >+importManager.addImport("org.eclipse.gef.palette.PaletteRoot"); >+importManager.addImport("org.eclipse.gef.ui.actions.AlignmentAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.DeleteAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.DirectEditAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.GEFActionConstants"); >+importManager.addImport("org.eclipse.gef.ui.actions.PrintAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.RedoAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.SaveAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.SelectionAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.StackAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.UndoAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.UpdateAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.WorkbenchPartAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.ZoomInAction"); >+importManager.addImport("org.eclipse.gef.ui.actions.ZoomOutAction"); >+importManager.addImport("org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Diagram"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.NotationFactory"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.provider.NotationItemProviderAdapterFactory"); >+importManager.addImport("org.eclipse.jface.action.IAction"); >+importManager.addImport("org.eclipse.jface.action.IMenuManager"); >+importManager.addImport("org.eclipse.jface.action.MenuManager"); >+importManager.addImport("org.eclipse.jface.action.Separator"); >+importManager.addImport("org.eclipse.jface.dialogs.ErrorDialog"); >+importManager.addImport("org.eclipse.jface.viewers.ISelection"); >+importManager.addImport("org.eclipse.swt.SWT"); >+importManager.addImport("org.eclipse.swt.widgets.Composite"); >+importManager.addImport("org.eclipse.ui.IEditorPart"); >+importManager.addImport("org.eclipse.ui.IEditorInput"); >+importManager.addImport("org.eclipse.ui.IEditorSite"); >+importManager.addImport("org.eclipse.ui.IPathEditorInput"); >+importManager.addImport("org.eclipse.ui.ISelectionListener"); >+importManager.addImport("org.eclipse.ui.IWorkbenchPart"); >+importManager.addImport("org.eclipse.ui.PartInitException"); >+importManager.addImport("org.eclipse.ui.actions.ActionFactory"); >+importManager.addImport("org.eclipse.ui.views.contentoutline.IContentOutlinePage"); >+importManager.addImport("org.eclipse.ui.views.properties.IPropertySheetPage"); >+importManager.addImport("org.eclipse.ui.views.properties.PropertySheetPage"); >+importManager.addImport("org.eclipse.emf.common.notify.AdapterFactory"); >+importManager.addImport("org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette"); >+importManager.addImport("org.eclipse.gef.DefaultEditDomain"); >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(genEditor.getClassName()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(genDiagram.getEditorGen().getDomainGenModel().getModelName()); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_8); >+ >+{ >+ final Palette palette = genDiagram.getPalette(); >+ if (palette != null) { >+ >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_10); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.ui.properties.UndoablePropertySheetEntry")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.ui.properties.UndoablePropertySheetEntry")); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getPropertyProviderQualifiedClassName())); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_18); >+ >+final EList genPackages = genDiagram.getEditorGen().getAllDomainGenPackages(true); >+for (int i = 0; i < genPackages.size(); i++) { >+ GenPackage genPackage = (GenPackage) genPackages.get(i); >+ >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName(genPackage.getQualifiedItemProviderAdapterFactoryClassName())); >+ stringBuffer.append(TEXT_20); >+ } >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_23); >+ >+{ >+ >+ >+ boolean sameFile = genDiagram.getEditorGen().isSameFileForDiagramAndModel(); >+ String resourceToUse; >+ if (!sameFile) { >+ >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(genDiagram.getDiagramEditorUtilClassName()); >+ stringBuffer.append(TEXT_25); >+ >+ resourceToUse = "modelResource"; >+ } else { >+ resourceToUse = "diagramResource"; >+ } >+ >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(resourceToUse); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedFactoryClassName())); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(resourceToUse); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(resourceToUse); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getSafeUncapName()); >+ stringBuffer.append(TEXT_39); >+ >+} >+ >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.LayeredPane")); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.LayeredPane")); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.LayerConstants")); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayer")); >+ stringBuffer.append(TEXT_45); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayer")); >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.DelegatingLayout")); >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.LayerConstants")); >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(genEditor.getClassName()); >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_51); >+ stringBuffer.append(genEditor.getClassName()); >+ stringBuffer.append(TEXT_52); >+ stringBuffer.append(genEditor.getClassName()); >+ stringBuffer.append(TEXT_53); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/providers/DiagramViewFactory.javajet >=================================================================== >RCS file: templates/providers/DiagramViewFactory.javajet >diff -N templates/providers/DiagramViewFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/DiagramViewFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="DiagramViewFactoryGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+GenDiagram genElement = genDiagram; /*make jetinc happy*/ >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genElement.getNotationViewFactoryClassName()%> { >+ /** >+ * @generated >+ */ >+ public static void decorateView(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+<%@ include file="createVIDAnnotation.jetinc"%> >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.DiagramStyle")%> style = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createDiagramStyle(); >+ view.getStyles().add(style); >+ //XXX: init styles from attributes!!! >+ } >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginPropertiesGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginPropertiesGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginPropertiesGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PluginPropertiesGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,32 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+ >+public class PluginPropertiesGenerator >+{ >+ protected static String nl; >+ public static synchronized PluginPropertiesGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ PluginPropertiesGenerator result = new PluginPropertiesGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = "pluginName="; >+ protected final String TEXT_2 = NL + "providerName="; >+ protected final String TEXT_3 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ GenPlugin genPlugin = (GenPlugin) argument; >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(genPlugin.getName()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(genPlugin.getProvider()); >+ stringBuffer.append(TEXT_3); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/providers/DomainElementInitializer.javajet >=================================================================== >RCS file: templates/providers/DomainElementInitializer.javajet >diff -N templates/providers/DomainElementInitializer.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/DomainElementInitializer.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,167 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="DomainElementInitializerGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* java.util.*"%> >+<% >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<% >+importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class DomainElementInitializer <%/*XXX: class name should be customizable!*/%>{ >+ /** >+ * @generated >+ */ >+ public static interface IElementInitializer { >+ public void initializeElement(<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> instance); >+ } >+ >+<% >+boolean needsNullInitializer = false; >+boolean needsOCLInitializer = false; >+for (Iterator it = genDiagram.eAllContents(); it.hasNext(); ) { >+ Object next = it.next(); >+ String id = null; >+ TypeModelFacet modelFacet = null; >+ if (next instanceof GenNode) { >+ id = ((GenNode) next).getUniqueIdentifier(); >+ modelFacet = ((GenNode) next).getModelFacet(); >+ } else if (next instanceof GenLink && ((GenLink) next).getModelFacet() instanceof TypeLinkModelFacet) { >+ id = ((GenLink) next).getUniqueIdentifier(); >+ modelFacet = (TypeLinkModelFacet) ((GenLink) next).getModelFacet(); >+ } >+ if (modelFacet == null) { >+ continue; >+ } >+ GenElementInitializer elementInitializer = modelFacet.getModelElementInitializer(); >+ if (elementInitializer instanceof GenFeatureSeqInitializer == false) { >+ if (!needsNullInitializer) { >+ needsNullInitializer = true; >+%> >+ /** >+ * @generated >+ */ >+ private static IElementInitializer NULL_INITIALIZER = new IElementInitializer() { >+ public void initializeElement(<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> instance) { >+ } >+ }; >+ >+<% >+ } >+%> >+ /** >+ * @generated >+ */ >+ public static IElementInitializer <%=id%> = NULL_INITIALIZER; >+<% >+ continue; >+ } >+ needsOCLInitializer = true; >+ GenFeatureSeqInitializer ftInitializer = (GenFeatureSeqInitializer) elementInitializer; >+%> >+ >+ /** >+ * @generated >+ */ >+ public static IElementInitializer <%=id%> = new ObjectInitializer(new FeatureInitializer[] { >+<% >+ for(Iterator featInitIt = ftInitializer.getInitializers().iterator(); featInitIt.hasNext();) { >+ GenFeatureValueSpec featureValSpec = (GenFeatureValueSpec)featInitIt.next();%> >+ new FeatureInitializer("<%=featureValSpec.getBody()%>", //$NON-NLS-1$ >+ <%=importManager.getImportedName(ftInitializer.getElementQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=ftInitializer.getElementClassAccessorName()%>(), >+ <%=importManager.getImportedName(featureValSpec.getFeatureQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=featureValSpec.getFeature().getFeatureAccessorName() >+ %>())<%if (featInitIt.hasNext()) {%>, <%}%> >+ >+<% >+ } // end of GenFeatureValueSpec iteration >+%> >+ }); >+<% >+} >+if (needsOCLInitializer) { >+%> >+ /** >+ * @generated >+ */ >+ private static class ObjectInitializer implements IElementInitializer { >+ /** >+ * @generated >+ */ >+ private FeatureInitializer[] initExpressions; >+ >+ /** >+ * @generated >+ */ >+ ObjectInitializer(FeatureInitializer[] initExpressions) { >+ this.initExpressions = initExpressions; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void initializeElement(<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> instance) { >+ for (int i = 0; i < initExpressions.length; i++) { >+ FeatureInitializer nextExpr = initExpressions[i]; >+ nextExpr.init(instance); >+ } >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ static class FeatureInitializer { >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.emf.ecore.EClass")%> contextClass; >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> sFeature; >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("java.lang.String")%> expressionBody; >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.emf.ocl.query.Query")%> query; >+ /** >+ * @generated >+ */ >+ FeatureInitializer(<%=importManager.getImportedName("java.lang.String")%> expression, >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EClass")%> context, >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> sFeature) { >+ this.sFeature = sFeature; >+ this.expressionBody = expression; >+ this.contextClass = context; >+ } >+ /** >+ * @generated >+ */ >+ void init(<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> contextInstance) { >+ if(this.query == null) { >+ this.query = <%=importManager.getImportedName("org.eclipse.emf.ocl.query.QueryFactory")%>.eINSTANCE.createQuery(expressionBody, contextClass); >+ } >+ Object value = query.evaluate(contextInstance); >+ if(sFeature.getEType() instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EEnum")%> && >+ value instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EEnumLiteral")%>) { >+ value = ((<%=importManager.getImportedName("org.eclipse.emf.ecore.EEnumLiteral")%>)value).getInstance(); >+ } else if(value != null && sFeature.isMany()) { >+ value = new <%=importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")%>((<%=importManager.getImportedName("java.util.Collection")%>)value); >+ } >+ contextInstance.eSet(sFeature, value); >+ } >+ } >+<% >+} >+%> >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/AbstractParserGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/AbstractParserGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/AbstractParserGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/AbstractParserGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,65 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class AbstractParserGenerator >+{ >+ protected static String nl; >+ public static synchronized AbstractParserGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ AbstractParserGenerator result = new AbstractParserGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL; >+ protected final String TEXT_5 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public abstract class "; >+ protected final String TEXT_6 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static Object parseValue("; >+ protected final String TEXT_7 = " feature, Object value) throws IllegalArgumentException {" + NL + "\t\tif (value == null) {" + NL + "\t\t\tthrow new IllegalArgumentException();" + NL + "\t\t}" + NL + "\t\t"; >+ protected final String TEXT_8 = " type = feature.getEAttributeType();" + NL + "\t\tClass iClass = type.getInstanceClass();" + NL + "\t\tif (Boolean.TYPE.equals(iClass) || Boolean.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Boolean) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tvalue = Boolean.valueOf((String) value);" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Boolean is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Character.TYPE.equals(iClass) || Character.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Character) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tthrow new IllegalArgumentException();\t//XXX: ?" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\tvalue = new Character(s.charAt(0));" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Character is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Byte.TYPE.equals(iClass) || Byte.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Byte) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof Number) {" + NL + "\t\t\t\tvalue = new Byte(((Number) value).byteValue());" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tvalue = null;" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\tvalue = Byte.valueOf(s);" + NL + "\t\t\t\t\t} catch (NumberFormatException nfe) {" + NL + "\t\t\t\t\t\tthrow new IllegalArgumentException(\"String value does not convert to Byte value\");" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Byte is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Short.TYPE.equals(iClass) || Short.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Short) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof Number) {" + NL + "\t\t\t\tvalue = new Short(((Number) value).shortValue());" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tvalue = null;" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\tvalue = Short.valueOf(s);" + NL + "\t\t\t\t\t} catch (NumberFormatException nfe) {" + NL + "\t\t\t\t\t\tthrow new IllegalArgumentException(\"String value does not convert to Short value\");" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Short is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Integer.TYPE.equals(iClass) || Integer.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Integer) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof Number) {" + NL + "\t\t\t\tvalue = new Integer(((Number) value).intValue());" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tvalue = null;" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\tvalue = Integer.valueOf(s);" + NL + "\t\t\t\t\t} catch (NumberFormatException nfe) {" + NL + "\t\t\t\t\t\tthrow new IllegalArgumentException(\"String value does not convert to Integer value\");" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Integer is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Long.TYPE.equals(iClass) || Long.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Long) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof Number) {" + NL + "\t\t\t\tvalue = new Long(((Number) value).longValue());" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tvalue = null;" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\tvalue = Long.valueOf(s);" + NL + "\t\t\t\t\t} catch (NumberFormatException nfe) {" + NL + "\t\t\t\t\t\tthrow new IllegalArgumentException(\"String value does not convert to Long value\");" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Long is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Float.TYPE.equals(iClass) || Float.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Float) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof Number) {" + NL + "\t\t\t\tvalue = new Float(((Number) value).floatValue());" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tvalue = null;" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\tvalue = Float.valueOf(s);" + NL + "\t\t\t\t\t} catch (NumberFormatException nfe) {" + NL + "\t\t\t\t\t\tthrow new IllegalArgumentException(\"String value does not convert to Float value\");" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Float is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (Double.TYPE.equals(iClass) || Double.class.equals(iClass)) {" + NL + "\t\t\tif (value instanceof Double) {" + NL + "\t\t\t\t// ok" + NL + "\t\t\t} else if (value instanceof Number) {" + NL + "\t\t\t\tvalue = new Double(((Number) value).doubleValue());" + NL + "\t\t\t} else if (value instanceof String) {" + NL + "\t\t\t\tString s = (String) value;" + NL + "\t\t\t\tif (s.length() == 0) {" + NL + "\t\t\t\t\tvalue = null;" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\tvalue = Double.valueOf(s);" + NL + "\t\t\t\t\t} catch (NumberFormatException nfe) {" + NL + "\t\t\t\t\t\tthrow new IllegalArgumentException(\"String value does not convert to Double value\");" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type Double is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else if (String.class.equals(iClass)) {" + NL + "\t\t\tvalue = String.valueOf(value);" + NL + "\t\t} else if (type instanceof "; >+ protected final String TEXT_9 = ") {" + NL + "\t\t\tif (value instanceof String) {" + NL + "\t\t\t\t"; >+ protected final String TEXT_10 = " literal = (("; >+ protected final String TEXT_11 = ") type).getEEnumLiteralByLiteral((String) value);" + NL + "\t\t\t\tif (literal == null) {" + NL + "\t\t\t\t\tthrow new IllegalArgumentException(\"Unknown literal: \" + value);" + NL + "\t\t\t\t} else {" + NL + "\t\t\t\t\tvalue = literal.getInstance();" + NL + "\t\t\t\t}" + NL + "\t\t\t} else {" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"Value of type String is expected\");" + NL + "\t\t\t}" + NL + "\t\t} else {" + NL + "\t\t\tthrow new IllegalArgumentException(\"Unsupported type\");" + NL + "\t\t}" + NL + "\t\treturn value;" + NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+ ImportAssistant importManager = (ImportAssistant) ((Object[])argument)[1]; >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ stringBuffer.append(TEXT_4); >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genDiagram.getAbstractParserClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EDataType")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EEnum")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EEnumLiteral")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EEnum")); >+ stringBuffer.append(TEXT_11); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: .jetproperties >=================================================================== >RCS file: .jetproperties >diff -N .jetproperties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .jetproperties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,4 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<jet-settings> >+ <template-container>templates</template-container> <source-container>src-templates</source-container> >+</jet-settings> >Index: templates/parts/refreshers.javajetinc/font.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/font.javajetinc >diff -N templates/parts/refreshers.javajetinc/font.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/font.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,10 @@ >+ Refresher fontRefresher = new Refresher() { >+ public void refresh() { >+ refreshFont(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontHeight(), fontRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontName(), fontRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Bold(), fontRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Italic(), fontRefresher); >+ >Index: src/org/eclipse/gmf/internal/codegen/lite/Generator.java >=================================================================== >RCS file: src/org/eclipse/gmf/internal/codegen/lite/Generator.java >diff -N src/org/eclipse/gmf/internal/codegen/lite/Generator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/internal/codegen/lite/Generator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,191 @@ >+/* >+ * Copyright (c) 2005 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: >+ * Artem Tikhomirov (Borland) - initial API and implementation >+ */ >+package org.eclipse.gmf.internal.codegen.lite; >+ >+import java.lang.ref.SoftReference; >+import java.net.URL; >+import java.util.ArrayList; >+import java.util.Collections; >+import java.util.HashMap; >+import java.util.Iterator; >+import java.util.List; >+import java.util.Map; >+ >+import org.eclipse.core.runtime.Path; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EObject; >+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; >+import org.eclipse.gmf.codegen.gmfgen.GenCompartment; >+import org.eclipse.gmf.codegen.gmfgen.GenDiagram; >+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; >+import org.eclipse.gmf.codegen.gmfgen.GenLink; >+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel; >+import org.eclipse.gmf.codegen.gmfgen.GenNode; >+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel; >+import org.eclipse.gmf.common.UnexpectedBehaviourException; >+import org.eclipse.gmf.common.codegen.GeneratorBase; >+ >+/** >+ * Invokes JET templates to populate diagram editor project. >+ * >+ * @author artem >+ */ >+public class Generator extends GeneratorBase implements Runnable { >+ >+ private final GenEditorGenerator myEditorGen; >+ >+ private final GenDiagram myDiagram; >+ >+ private final CodegenEmitters myEmitters; >+ >+ private static Map/*<URI, SoftReference>*/ myCachedURI2EmitterMap = new HashMap(); >+ >+ public Generator(GenEditorGenerator genModel) { >+ myDiagram = genModel.getDiagram(); >+ myEditorGen = genModel; >+ URI resourceURI = myEditorGen.eResource().getURI(); >+ if (myEditorGen.isDynamicTemplates()) { >+ myCachedURI2EmitterMap.remove(resourceURI); >+ } >+ CodegenEmitters old = myCachedURI2EmitterMap.containsKey(resourceURI) ? (CodegenEmitters) ((SoftReference) myCachedURI2EmitterMap.get(resourceURI)).get() : null; >+ if (old == null) { >+ myEmitters = new CodegenEmitters(!myEditorGen.isDynamicTemplates(), myEditorGen.getTemplateDirectory()); >+ if (!myEditorGen.isDynamicTemplates()) { >+ myCachedURI2EmitterMap.put(resourceURI, new SoftReference(myEmitters)); >+ } >+ } else { >+ myEmitters = old; >+ } >+ } >+ >+ protected URL getJMergeControlFile() { >+ return myEmitters.getJMergeControlFile(); >+ } >+ >+ protected void customRun() throws InterruptedException, UnexpectedBehaviourException { >+ initializeEditorProject(myDiagram.getEditorGen().getPlugin().getID(), createReferencedProjectsList()); >+ >+ doGenerateFile(myEmitters.getManifestGenerator(), new Path("META-INF/MANIFEST.MF"), myEditorGen.getPlugin()); >+ doGenerateFile(myEmitters.getBuildPropertiesGenerator(), new Path("build.properties"), myEditorGen.getPlugin()); >+ doGenerateFile(myEmitters.getPluginXML(), new Path("plugin.xml"), myEditorGen.getPlugin()); >+ doGenerateFile(myEmitters.getPluginPropertiesGenerator(), new Path("plugin.properties"), myEditorGen.getPlugin()); >+ >+ doGenerateJavaClass(myEmitters.getCreationWizardGenerator(), myDiagram.getCreationWizardQualifiedClassName(), myDiagram); >+ doGenerateJavaClass(myEmitters.getCreationWizardPageGenerator(), myDiagram.getCreationWizardPageQualifiedClassName(), myDiagram); >+ doGenerateJavaClass(myEmitters.getPluginGenerator(), myEditorGen.getPlugin().getActivatorQualifiedClassName(), myEditorGen.getPlugin()); >+ >+ doGenerateJavaClass(myEmitters.getActionBarContributorGenerator(), myEditorGen.getEditor().getActionBarContributorQualifiedClassName(), myEditorGen.getEditor()); >+ doGenerateJavaClass(myEmitters.getDiagramEditorUtilGenerator(), myDiagram.getDiagramEditorUtilQualifiedClassName(), myDiagram); >+ doGenerateJavaClass(myEmitters.getEditorGenerator(), myEditorGen.getEditor().getQualifiedClassName(), myEditorGen.getEditor()); >+ doGenerateJavaClass(myEmitters.getPropertySourceProviderGenerator(), myDiagram.getPropertyProviderQualifiedClassName(), myDiagram); >+ if (myDiagram.getPalette() != null) { >+ doGenerateJavaClass(myEmitters.getPaletteFactoryGenerator(), myDiagram.getPalette().getFactoryQualifiedClassName(), myDiagram); >+ } >+ doGenerateJavaClass(myEmitters.getUpdatableEditPartGenerator(), myDiagram.getEditPartsPackageName(), "IUpdatableEditPart", myDiagram); // XXX: should be customizable >+ doGenerateJavaClass(myEmitters.getEditPartFactoryGenerator(), myDiagram.getEditPartFactoryQualifiedClassName(), myDiagram); >+ doGenerateJavaClass(myEmitters.getDiagramEditPartGenerator(), myDiagram.getEditPartQualifiedClassName(), myDiagram); >+ >+ for (Iterator it = myDiagram.getAllNodes().iterator(); it.hasNext(); ) { >+ final GenNode next = (GenNode) it.next(); >+ if (!next.isListContainerEntry()) { >+ doGenerateJavaClass(myEmitters.getNodeEditPartGenerator(), next.getEditPartQualifiedClassName(), next); >+ for (Iterator it2 = next.getLabels().iterator(); it2.hasNext();) { >+ final GenNodeLabel label = (GenNodeLabel) it2.next(); >+ doGenerateJavaClass(myEmitters.getNodeLabelEditPartGenerator(), label.getEditPartQualifiedClassName(), label); >+ doGenerateJavaClass(myEmitters.getLabelViewFactoryGenerator(), label.getNotationViewFactoryQualifiedClassName(), label); >+ } >+ doGenerateJavaClass(myEmitters.getNodeViewFactoryGenerator(), next.getNotationViewFactoryQualifiedClassName(), next); >+ } else { >+ doGenerateJavaClass(myEmitters.getChildNodeEditPartGenerator(), next.getEditPartQualifiedClassName(), next); >+ doGenerateJavaClass(myEmitters.getLabelViewFactoryGenerator(), next.getNotationViewFactoryQualifiedClassName(), next); >+ } >+ } >+ doGenerateJavaClass(myEmitters.getAbstractParserGenerator(),myDiagram.getAbstractParserQualifiedClassName(), myDiagram); >+ for (Iterator it = myDiagram.getLinks().iterator(); it.hasNext();) { >+ final GenLink next = (GenLink) it.next(); >+ doGenerateJavaClass(myEmitters.getLinkEditPartGenerator(), next.getEditPartQualifiedClassName(), next); >+ for (Iterator it2 = next.getLabels().iterator(); it2.hasNext();) { >+ final GenLinkLabel label = (GenLinkLabel) it2.next(); >+ doGenerateJavaClass(myEmitters.getLinkLabelEditPartGenerator(), label.getEditPartQualifiedClassName(), label); >+ doGenerateJavaClass(myEmitters.getLabelViewFactoryGenerator(), label.getNotationViewFactoryQualifiedClassName(), label); >+ } >+ doGenerateJavaClass(myEmitters.getLinkViewFactoryGenerator(), next.getNotationViewFactoryQualifiedClassName(), next); >+ } >+ for (Iterator it = myDiagram.getCompartments().iterator(); it.hasNext(); ) { >+ final GenCompartment next = (GenCompartment) it.next(); >+ doGenerateJavaClass(myEmitters.getCompartmentEditPartGenerator(), next.getEditPartQualifiedClassName(), next); >+ doGenerateJavaClass(myEmitters.getCompartmentViewFactoryGenerator(), next.getNotationViewFactoryQualifiedClassName(), next); >+ } >+ doGenerateJavaClass(myEmitters.getDiagramViewFactoryGenerator(), myDiagram.getNotationViewFactoryQualifiedClassName(), myDiagram); >+ doGenerateJavaClass(myEmitters.getDomainElementInitializerGenerator(), myDiagram.getNotationViewFactoriesPackageName(), "DomainElementInitializer",myDiagram); // XXX: allow customization! >+ doGenerateJavaClass(myEmitters.getVisualIDRegistryGenerator(), myDiagram.getVisualIDRegistryQualifiedClassName(), myDiagram); >+ } >+ >+ protected void setupProgressMonitor() { >+ Counter c = new Counter(); >+ c.curiousAbout(GMFGenPackage.eINSTANCE.getGenNode()); >+ c.curiousAbout(GMFGenPackage.eINSTANCE.getGenCompartment()); >+ c.curiousAbout(GMFGenPackage.eINSTANCE.getGenLink()); >+ c.curiousAbout(GMFGenPackage.eINSTANCE.getGenNodeLabel()); >+ c.curiousAbout(GMFGenPackage.eINSTANCE.getGenLinkLabel()); >+ c.count(myDiagram); >+ int total = 2 * c.getCount(GMFGenPackage.eINSTANCE.getGenNode()); >+ total += 2 * c.getCount(GMFGenPackage.eINSTANCE.getGenCompartment()); >+ total += 2 * c.getCount(GMFGenPackage.eINSTANCE.getGenLink()); >+ total += 2 * c.getCount(GMFGenPackage.eINSTANCE.getGenNodeLabel()); >+ total += 2 * c.getCount(GMFGenPackage.eINSTANCE.getGenLinkLabel()); >+ total++; // init >+ total += 4; // text files >+ total += 15; // out-of-cycle doGenerateJava... <- genDiagram + genEditor >+ setupProgressMonitor("Generation in progress...", total); >+ } >+ >+ protected final List createReferencedProjectsList() { >+ return Collections.EMPTY_LIST; >+ } >+ >+ private static final class Counter { >+ private final List/*<EClass>*/ myAttractions = new ArrayList(); >+ private int[] myHits; >+ >+ public void curiousAbout(EClass eClass) { >+ myAttractions.add(eClass); >+ } >+ >+ public void count(EObject start) { >+ myHits = new int[myAttractions.size()]; >+ final EClass[] attractions = (EClass[]) myAttractions.toArray(new EClass[myAttractions.size()]); >+ doCount(start.eClass(), attractions); >+ for (Iterator it = start.eAllContents(); it.hasNext(); ) { >+ EObject next = (EObject) it.next(); >+ doCount(next.eClass(), attractions); >+ } >+ } >+ >+ private void doCount(EClass eClass, EClass[] attractions) { >+ for (int i = 0; i < attractions.length; i++) { >+ if (attractions[i].isSuperTypeOf(eClass)) { >+ myHits[i]++; >+ } >+ } >+ } >+ >+ public int getCount(EClass eClass) { >+ int index = myAttractions.indexOf(eClass); >+ if (index == -1) { >+ throw new IllegalArgumentException("No class " + eClass + " was previously registered with curiousAbout(EClass)"); >+ } >+ return myHits[index]; >+ } >+ } >+} >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/VisualIDRegistryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/VisualIDRegistryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/VisualIDRegistryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/VisualIDRegistryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,323 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import java.util.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class VisualIDRegistryGenerator >+{ >+ protected static String nl; >+ public static synchronized VisualIDRegistryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ VisualIDRegistryGenerator result = new VisualIDRegistryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * This registry is used to determine which type of visual object should be" + NL + " * created for the corresponding Diagram, Node, ChildNode or Link represented " + NL + " * by a domain model object. Note that it only returns semantically complete objects (those who must have an element associated with them)." + NL + " *" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " {" + NL + "" + NL + "\tpublic static final "; >+ protected final String TEXT_6 = " INSTANCE = new "; >+ protected final String TEXT_7 = "();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getDiagramVisualID(EObject domainElement) {" + NL + "\t\tif (domainElement == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tEClass domainElementMetaclass = domainElement.eClass();" + NL + "\t\treturn getDiagramVisualID(domainElement, domainElementMetaclass);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getDiagramVisualID(EObject domainElement, EClass domainElementMetaclass) {"; >+ protected final String TEXT_8 = NL + "\t\tif ("; >+ protected final String TEXT_9 = ".eINSTANCE.get"; >+ protected final String TEXT_10 = "().equals(domainElementMetaclass) && isDiagram"; >+ protected final String TEXT_11 = "(("; >+ protected final String TEXT_12 = ") domainElement)) {" + NL + "\t\t\treturn "; >+ protected final String TEXT_13 = ";" + NL + "\t\t}"; >+ protected final String TEXT_14 = NL + "\t\treturn getUnrecognizedDiagramID(domainElement);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getNodeVisualID(View containerView, EObject domainElement) {" + NL + "\t\tif (domainElement == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tEClass domainElementMetaclass = domainElement.eClass();" + NL + "\t\treturn getNodeVisualID(containerView, domainElement, domainElementMetaclass);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getNodeVisualID(View containerView, EObject domainElement, EClass domainElementMetaclass) {" + NL + "\t\tString containerModelID = getModelID(containerView);" + NL + "\t\tif (!\""; >+ protected final String TEXT_15 = "\".equals(containerModelID)) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tint containerVisualID;" + NL + "\t\tif (\""; >+ protected final String TEXT_16 = "\".equals(containerModelID)) {" + NL + "\t\t\tcontainerVisualID = getVisualID(containerView);" + NL + "\t\t} else {" + NL + "\t\t\tif (containerView instanceof Diagram) {" + NL + "\t\t\t\tcontainerVisualID = "; >+ protected final String TEXT_17 = ";\t\t" + NL + "\t\t\t} else {" + NL + "\t\t\t\treturn -1;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tswitch (containerVisualID) {"; >+ protected final String TEXT_18 = NL + "\t\tcase "; >+ protected final String TEXT_19 = ":"; >+ protected final String TEXT_20 = NL + "\t\t\tif ("; >+ protected final String TEXT_21 = ".eINSTANCE.get"; >+ protected final String TEXT_22 = "().isSuperTypeOf(domainElementMetaclass) && isNode"; >+ protected final String TEXT_23 = "(("; >+ protected final String TEXT_24 = ") domainElement)) {" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_25 = ";" + NL + "\t\t\t}"; >+ protected final String TEXT_26 = NL + "\t\t\treturn getUnrecognized"; >+ protected final String TEXT_27 = "ChildNodeID(domainElement);"; >+ protected final String TEXT_28 = NL + "\t\t}" + NL + "\t\treturn -1;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getLinkWithClassVisualID(EObject domainElement) {" + NL + "\t\tEClass domainElementMetaclass = domainElement.eClass();" + NL + "\t\treturn getLinkWithClassVisualID(domainElement, domainElementMetaclass);" + NL + "\t}" + NL + "\t\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int getLinkWithClassVisualID(EObject domainElement, EClass domainElementMetaclass) {"; >+ protected final String TEXT_29 = NL + "\t\tif ("; >+ protected final String TEXT_30 = ".eINSTANCE.get"; >+ protected final String TEXT_31 = "().isSuperTypeOf(domainElementMetaclass) && isLinkWithClass"; >+ protected final String TEXT_32 = "(("; >+ protected final String TEXT_33 = ") domainElement)) {" + NL + "\t\t\treturn "; >+ protected final String TEXT_34 = ";" + NL + "\t\t}"; >+ protected final String TEXT_35 = NL + "\t\treturn getUnrecognizedLinkWithClassID(domainElement);" + NL + "\t}" + NL; >+ protected final String TEXT_36 = NL + "\t/**" + NL + "\t * User can change implementation of this method to check some additional " + NL + "\t * conditions here." + NL + "\t *" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isDiagram"; >+ protected final String TEXT_37 = "("; >+ protected final String TEXT_38 = " element) {" + NL + "\t\treturn true;" + NL + "\t}"; >+ protected final String TEXT_39 = NL + NL + "\t/**" + NL + "\t * User can change implementation of this method to handle some specific" + NL + "\t * situations not covered by default logic." + NL + "\t *" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate int getUnrecognizedDiagramID(EObject domainElement) {" + NL + "\t\treturn -1;" + NL + "\t}" + NL; >+ protected final String TEXT_40 = NL + NL + "\t/**" + NL + "\t * User can change implementation of this method to check some additional " + NL + "\t * conditions here." + NL + "\t *" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isNode"; >+ protected final String TEXT_41 = "("; >+ protected final String TEXT_42 = " element) {" + NL + "\t\treturn ElementSelectors."; >+ protected final String TEXT_43 = ".matches(element);" + NL + "\t}\t"; >+ protected final String TEXT_44 = NL + NL + "\t/**" + NL + "\t * User can change implementation of this method to handle some specific" + NL + "\t * situations not covered by default logic." + NL + "\t *" + NL + "\t * @generated" + NL + "\t */\t" + NL + "\tprivate int getUnrecognized"; >+ protected final String TEXT_45 = "ChildNodeID(EObject domainElement) {" + NL + "\t\treturn -1;" + NL + "\t}"; >+ protected final String TEXT_46 = NL + NL + "\t/**" + NL + "\t * User can change implementation of this method to handle some specific" + NL + "\t * situations not covered by default logic." + NL + "\t *" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate int getUnrecognizedLinkWithClassID(EObject domainElement) {" + NL + "\t\treturn -1;" + NL + "\t}" + NL; >+ protected final String TEXT_47 = NL + NL + "\t/**" + NL + "\t * User can change implementation of this method to check some additional " + NL + "\t * conditions here." + NL + "\t *" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate boolean isLinkWithClass"; >+ protected final String TEXT_48 = "("; >+ protected final String TEXT_49 = " element) {" + NL + "\t\treturn ElementSelectors."; >+ protected final String TEXT_50 = ".matches(element);" + NL + "\t}"; >+ protected final String TEXT_51 = NL; >+ protected final String TEXT_52 = NL; >+ protected final String TEXT_53 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate String getModelID("; >+ protected final String TEXT_54 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_55 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn (String) annotation.getDetails().get(\"modelID\"); //$NON-NLS-1$" + NL + "\t}" + NL; >+ protected final String TEXT_56 = NL; >+ protected final String TEXT_57 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static int getVisualID("; >+ protected final String TEXT_58 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_59 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tString visualID = (String) annotation.getDetails().get(\"visualID\"); //$NON-NLS-1$" + NL + "\t\tif (visualID == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\ttry {" + NL + "\t\t\treturn Integer.parseInt(visualID);" + NL + "\t\t} catch (NumberFormatException e) {" + NL + "\t\t\t"; >+ protected final String TEXT_60 = ".getInstance().logError(\"Unable to parse \\\"visualID\\\" annotation: \" + visualID, e);" + NL + "\t\t}" + NL + "\t\treturn -1;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class ElementSelectors {\t"; >+ protected final String TEXT_61 = NL + NL + "\t\t/**" + NL + "\t\t * Element matching condition for "; >+ protected final String TEXT_62 = "." + NL + "\t\t * <pre>language: "; >+ protected final String TEXT_63 = "</pre>\t" + NL + "\t\t * <pre>body : "; >+ protected final String TEXT_64 = "</pre>" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate static final Matcher "; >+ protected final String TEXT_65 = " = new Matcher(\""; >+ protected final String TEXT_66 = "\");"; >+ protected final String TEXT_67 = NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate ElementSelectors() {" + NL + "\t\t}"; >+ protected final String TEXT_68 = "\t\t\t" + NL + "\t\t/**" + NL + "\t\t* @generated\t" + NL + "\t\t*/" + NL + "\t\tstatic class Matcher {" + NL + "\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t\t\t\t" + NL + "\t\t\tprivate EClass evalContext;" + NL + "\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t\t\t\t\t" + NL + "\t\t\tprivate "; >+ protected final String TEXT_69 = " condition;" + NL + "\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t\t\t\t\t" + NL + "\t\t\tprivate String body;\t\t" + NL + "\t\t\t\t\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t\t\t" + NL + "\t\t\tMatcher(String expressionBody) {\t\t\t" + NL + "\t\t\t\tbody = expressionBody;" + NL + "\t\t\t}" + NL + "\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t\t\t\t\t" + NL + "\t\t\tboolean matches(EObject object) {\t\t" + NL + "\t\t\t\ttry {" + NL + "\t\t\t\t\tBoolean result = (object != null) ? evaluate(object) : Boolean.FALSE;" + NL + "\t\t\t\t\treturn result.booleanValue();" + NL + "\t\t\t\t} catch(IllegalArgumentException e) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_70 = ".getInstance().logError(null, e);" + NL + "\t\t\t\t\treturn false;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t" + NL + "\t\t\tprivate Boolean evaluate(EObject context) {" + NL + "\t\t\t\tthis.evalContext = context.eClass();" + NL + "\t\t\t\tif(condition == null) {\t\t\t\t\t" + NL + "\t\t\t\t\tcondition = new "; >+ protected final String TEXT_71 = "(body, evalContext);" + NL + "\t\t\t\t}" + NL + "\t\t\t\tif(condition != null) {" + NL + "\t\t\t\t\treturn booleanCast(condition.evaluate(context));" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn Boolean.FALSE;" + NL + "\t\t\t}" + NL + "\t" + NL + "\t\t\t/**" + NL + "\t\t\t* @generated\t" + NL + "\t\t\t*/\t\t\t\t\t" + NL + "\t\t\tprivate static Boolean booleanCast(Object value) {" + NL + "\t\t\t\tif(value == null) {" + NL + "\t\t\t\t\treturn null;" + NL + "\t\t\t\t} else if(value instanceof Boolean) {" + NL + "\t\t\t\t\t return (Boolean)value;\t" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn Boolean.FALSE;" + NL + "\t\t\t}" + NL + "\t\t} // end of Matcher"; >+ protected final String TEXT_72 = "\t\t" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tstatic class AcceptAllMatcher {" + NL + "\t\t\t/**" + NL + "\t\t\t * @generated" + NL + "\t\t\t */\t\t" + NL + "\t\t\tstatic final AcceptAllMatcher INSTANCE = new AcceptAllMatcher();" + NL + "\t\t\t/**" + NL + "\t\t\t * @generated" + NL + "\t\t\t */\t\t\t\t\t" + NL + "\t\t\tboolean matches(Object element) {" + NL + "\t\t\t\treturn true;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */\t\t" + NL + "\t\tstatic AcceptAllMatcher acceptAllMatcher() {" + NL + "\t\t\treturn AcceptAllMatcher.INSTANCE;" + NL + "\t\t}" + NL + "\t} // end of ElementSelectors" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final String modelID = genDiagram.getEditorGen().getModelID(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.emf.ecore.EClass"); >+importManager.addImport("org.eclipse.emf.ecore.EObject"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Diagram"); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genDiagram.getVisualIDRegistryClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genDiagram.getVisualIDRegistryClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(genDiagram.getVisualIDRegistryClassName()); >+ stringBuffer.append(TEXT_7); >+ >+if (genDiagram.getDomainDiagramElement() != null) { /*we do not support diagrams without domain elements in other places, but keep this copy-pasted occurrence*/ >+ String classifierAccessorName = genDiagram.getDomainDiagramElement().getClassifierAccessorName(); >+ String interfaceName = importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName()); >+ >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(genDiagram.getMetaPackageName(importManager)); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(classifierAccessorName); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genDiagram.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(interfaceName); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(genDiagram.getVisualID()); >+ stringBuffer.append(TEXT_13); >+ } >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(modelID); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(modelID); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(genDiagram.getVisualID()); >+ stringBuffer.append(TEXT_17); >+ >+Collection nodeContainers = new ArrayList(genDiagram.getCompartments()); >+nodeContainers.add(genDiagram); >+for(Iterator it = nodeContainers.iterator(); it.hasNext(); ) { >+ GenContainerBase nextContainer = (GenContainerBase) it.next(); >+ >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(nextContainer.getVisualID()); >+ stringBuffer.append(TEXT_19); >+ >+ for (Iterator childNodes = nextContainer.getContainedNodes().iterator(); childNodes.hasNext(); ) { >+ GenNode childNode = (GenNode) childNodes.next(); >+ final String classifierAccessorName = childNode.getDomainMetaClass().getClassifierAccessorName(); >+ final String interfaceName = importManager.getImportedName(childNode.getDomainMetaClass().getQualifiedInterfaceName()); >+ final String semanticPackageInterfaceName = importManager.getImportedName(childNode.getDomainMetaClass().getGenPackage().getQualifiedPackageInterfaceName()); >+ >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(semanticPackageInterfaceName); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(classifierAccessorName); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(childNode.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(interfaceName); >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(childNode.getVisualID()); >+ stringBuffer.append(TEXT_25); >+ >+ } >+ >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(nextContainer.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_27); >+ >+} >+ >+ stringBuffer.append(TEXT_28); >+ >+for (Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink) it.next(); >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ final TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ final String semanticLinkInterfaceName = modelFacet.getMetaClass().getClassifierAccessorName(); >+ final String interfaceName = importManager.getImportedName(modelFacet.getMetaClass().getQualifiedInterfaceName()); >+ final String semanticPackageInterfaceName = importManager.getImportedName(modelFacet.getMetaClass().getGenPackage().getQualifiedPackageInterfaceName()); >+ >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(semanticPackageInterfaceName); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(semanticLinkInterfaceName); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(genLink.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(interfaceName); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(genLink.getVisualID()); >+ stringBuffer.append(TEXT_34); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_35); >+ if (genDiagram.getDomainDiagramElement() != null) { >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(genDiagram.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_38); >+ } >+ stringBuffer.append(TEXT_39); >+ >+String acceptAllMatcherAccessor = "acceptAllMatcher()"; //$NON-NLS-1$ >+for (Iterator nodes = genDiagram.getAllNodes().iterator(); nodes.hasNext();) { >+ GenNode nextNode = (GenNode) nodes.next(); >+ String qualifiedChildNodeInterfaceName = nextNode.getDomainMetaClass().getQualifiedInterfaceName(); >+ String childNodeSelector = nextNode.getModelFacet() != null && nextNode.getModelFacet().getModelElementSelector() != null ? nextNode.getUniqueIdentifier() : acceptAllMatcherAccessor; >+ >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(nextNode.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName(qualifiedChildNodeInterfaceName)); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(childNodeSelector); >+ stringBuffer.append(TEXT_43); >+ >+} >+for (Iterator containers = nodeContainers.iterator(); containers.hasNext();) { >+ GenContainerBase nextContainer = (GenContainerBase) containers.next(); >+ >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(nextContainer.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_45); >+ >+} >+ >+ stringBuffer.append(TEXT_46); >+ >+for (Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink) it.next(); >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ String interfaceName = importManager.getImportedName(modelFacet.getMetaClass().getQualifiedInterfaceName()); >+ String linkSelector = modelFacet.getModelElementSelector() != null ? genLink.getUniqueIdentifier() : acceptAllMatcherAccessor; >+ >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(genLink.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(interfaceName); >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(linkSelector); >+ stringBuffer.append(TEXT_50); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_51); >+ stringBuffer.append(TEXT_52); >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_60); >+ >+int selectorCounter = 0; >+for (Iterator it = genDiagram.eAllContents(); it.hasNext();) { >+ Object next = it.next(); >+ String id = null; >+ TypeModelFacet modelFacet = null; >+ if (next instanceof GenNode) { >+ id = ((GenNode) next).getUniqueIdentifier(); >+ modelFacet = ((GenNode) next).getModelFacet(); >+ } else if (next instanceof GenLink && ((GenLink) next).getModelFacet() instanceof TypeLinkModelFacet) { >+ id = ((GenLink) next).getUniqueIdentifier(); >+ modelFacet = (TypeLinkModelFacet) ((GenLink) next).getModelFacet(); >+ } >+ if (modelFacet == null || modelFacet.getModelElementSelector() == null) { >+ continue; >+ } >+ GenConstraint selector = modelFacet.getModelElementSelector(); >+ selectorCounter++; >+ >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(id); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(selector.getLanguage()); >+ stringBuffer.append(TEXT_63); >+ stringBuffer.append(selector.getBody()); >+ stringBuffer.append(TEXT_64); >+ stringBuffer.append(id); >+ stringBuffer.append(TEXT_65); >+ stringBuffer.append(selector.getBody()); >+ stringBuffer.append(TEXT_66); >+ } >+ stringBuffer.append(TEXT_67); >+ if(selectorCounter > 0) { >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.query.ocl.conditions.OCLConstraintCondition")); >+ stringBuffer.append(TEXT_69); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.query.ocl.conditions.OCLConstraintCondition")); >+ stringBuffer.append(TEXT_71); >+ } >+ stringBuffer.append(TEXT_72); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refreshers.javajetinc/bounds.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/bounds.javajetinc >diff -N templates/parts/refreshers.javajetinc/bounds.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/bounds.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,10 @@ >+ Refresher boundsRefresher = new Refresher() { >+ public void refresh() { >+ refreshBounds(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getNode_LayoutConstraint(), boundsRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getSize_Width(), boundsRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getSize_Height(), boundsRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getLocation_X(), boundsRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getLocation_Y(), boundsRefresher); >Index: templates/providers/LabelViewFactory.javajet >=================================================================== >RCS file: templates/providers/LabelViewFactory.javajet >diff -N templates/providers/LabelViewFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/LabelViewFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,38 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="LabelViewFactoryGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+GenCommonBase genElement = (GenCommonBase) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genElement.getNotationViewFactoryClassName()%> { >+ /** >+ * @generated >+ */ >+ public static void decorateView(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+<%@ include file="createVIDAnnotation.jetinc"%> >+<% >+if (genElement instanceof GenLabel) { >+%> >+ view.setType("<%=genElement.getUniqueIdentifier()%>SemanticHint"); >+<% >+}/*genElement is a pure label*/ >+if (genElement instanceof GenLinkLabel) { >+%> >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Location")%> location = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createLocation(); >+ ((<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%>)view).setLayoutConstraint(location); >+<% >+} >+%> >+ } >+} >+<%importManager.emitSortedImports();%> >Index: .cvsignore >=================================================================== >RCS file: .cvsignore >diff -N .cvsignore >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .cvsignore 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,1 @@ >+bin >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeLabelEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeLabelEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeLabelEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeLabelEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,767 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import java.util.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.emf.ecore.*; >+ >+public class NodeLabelEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized NodeLabelEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ NodeLabelEditPartGenerator result = new NodeLabelEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL; >+ protected final String TEXT_5 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_6 = " extends "; >+ protected final String TEXT_7 = " {"; >+ protected final String TEXT_8 = NL; >+ protected final String TEXT_9 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_10 = " manager;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate String defaultText;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_11 = "(View view) {" + NL + "\t\tsetModel(view);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {"; >+ protected final String TEXT_12 = NL; >+ protected final String TEXT_13 = "\t\tinstallEditPolicy("; >+ protected final String TEXT_14 = ".DIRECT_EDIT_ROLE," + NL + "\t\t\t\tnew "; >+ protected final String TEXT_15 = "() {" + NL + "\t\t\t\t\tprotected void showCurrentEditValue("; >+ protected final String TEXT_16 = " request) {" + NL + "\t\t\t\t\t\tString value = (String) request.getCellEditor().getValue();" + NL + "\t\t\t\t\t\tgetLabel().setText(value);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tprotected "; >+ protected final String TEXT_17 = " getDirectEditCommand("; >+ protected final String TEXT_18 = " request) {" + NL + "\t\t\t\t\t\tString value = (String) request.getCellEditor().getValue();" + NL + "\t\t\t\t\t\tif (value == null) {" + NL + "\t\t\t\t\t\t\t//Invalid value is transformed into a null by the validator." + NL + "\t\t\t\t\t\t\t//XXX: implement validator" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_19 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tfinal Object[] parseResult;" + NL + "\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\tparseResult = new "; >+ protected final String TEXT_20 = "(EDIT_PATTERN).parse(value);" + NL + "\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_21 = ".INSTANCE;" + NL + "\t\t\t\t\t\t} catch ("; >+ protected final String TEXT_22 = " e) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_23 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}"; >+ protected final String TEXT_24 = NL + "\t\t\t\t\t\tif (parseResult.length != 1) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_25 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn new "; >+ protected final String TEXT_26 = "() {" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_27 = " element = "; >+ protected final String TEXT_28 = ";" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_29 = " domainModelCommand = createDomainModelCommand();" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_30 = " createDomainModelCommand() {" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_31 = " domainModelEditDomain = "; >+ protected final String TEXT_32 = ".getEditingDomainFor("; >+ protected final String TEXT_33 = ".getDiagram().getElement());" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_34 = " feature = ("; >+ protected final String TEXT_35 = ") "; >+ protected final String TEXT_36 = ".eINSTANCE.get"; >+ protected final String TEXT_37 = "();" + NL + "\t\t\t\t\t\t\t\tObject valueToSet;" + NL + "\t\t\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\t\t\tvalueToSet = "; >+ protected final String TEXT_38 = ".parseValue(feature, parseResult[0]);" + NL + "\t\t\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_39 = ".INSTANCE;" + NL + "\t\t\t\t\t\t\t\t}"; >+ protected final String TEXT_40 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_41 = " result = new "; >+ protected final String TEXT_42 = "();" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_43 = " values = new "; >+ protected final String TEXT_44 = "();" + NL + "\t\t\t\t\t\t\t\tvalues.addAll(element.get"; >+ protected final String TEXT_45 = "());" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_46 = ".create(domainModelEditDomain, element, feature, values));" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_47 = ".create(domainModelEditDomain, element, feature, valueToSet));" + NL + "\t\t\t\t\t\t\t\treturn result;"; >+ protected final String TEXT_48 = NL + "\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_49 = ".create(domainModelEditDomain, element, feature, valueToSet);"; >+ protected final String TEXT_50 = NL + "\t\t\t\t\t\t\t}"; >+ protected final String TEXT_51 = NL + "\t\t\t\t\t\tif (parseResult.length != "; >+ protected final String TEXT_52 = ") {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_53 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn new "; >+ protected final String TEXT_54 = "() {" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_55 = " element = "; >+ protected final String TEXT_56 = ";" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_57 = " domainModelCommand = createDomainModelCommand();" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_58 = " createDomainModelCommand() {" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_59 = " domainModelEditDomain = "; >+ protected final String TEXT_60 = ".getEditingDomainFor("; >+ protected final String TEXT_61 = ".getDiagram().getElement());" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_62 = " result = new "; >+ protected final String TEXT_63 = "();" + NL + "\t\t\t\t\t\t\t\tObject valueToSet;"; >+ protected final String TEXT_64 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_65 = " "; >+ protected final String TEXT_66 = "feature = ("; >+ protected final String TEXT_67 = ") "; >+ protected final String TEXT_68 = ".eINSTANCE.get"; >+ protected final String TEXT_69 = "();" + NL + "\t\t\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\t\t\tvalueToSet = "; >+ protected final String TEXT_70 = ".parseValue(feature, parseResult["; >+ protected final String TEXT_71 = "]);" + NL + "\t\t\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_72 = ".INSTANCE;" + NL + "\t\t\t\t\t\t\t\t}"; >+ protected final String TEXT_73 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_74 = " "; >+ protected final String TEXT_75 = "values = new "; >+ protected final String TEXT_76 = "();" + NL + "\t\t\t\t\t\t\t\tvalues.addAll(element.get"; >+ protected final String TEXT_77 = "());" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_78 = ".create(domainModelEditDomain, element, feature, values));" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_79 = ".create(domainModelEditDomain, element, feature, valueToSet));"; >+ protected final String TEXT_80 = NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_81 = ".create(domainModelEditDomain, element, feature, valueToSet));"; >+ protected final String TEXT_82 = NL + "\t\t\t\t\t\t\t\treturn result;" + NL + "\t\t\t\t\t\t\t}"; >+ protected final String TEXT_83 = NL + "\t\t\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\t\t\tdomainModelCommand.undo();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\t\t\tdomainModelCommand.execute();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\t\t\treturn element != null && domainModelCommand != null && domainModelCommand.canUndo();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\t\t\treturn element != null && domainModelCommand != null && domainModelCommand.canExecute();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t};" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t});" + NL + "\t}" + NL; >+ protected final String TEXT_84 = NL; >+ protected final String TEXT_85 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void performRequest("; >+ protected final String TEXT_86 = " req) {" + NL + "\t\tif ("; >+ protected final String TEXT_87 = ".REQ_DIRECT_EDIT == req.getType()) {" + NL + "\t\t\tperformDirectEdit();" + NL + "\t\t} else {" + NL + "\t\t\tsuper.performRequest(req);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_88 = " getManager() {" + NL + "\t\tif (manager == null) {" + NL + "\t\t\tmanager = new "; >+ protected final String TEXT_89 = "(this, "; >+ protected final String TEXT_90 = ".class, new "; >+ protected final String TEXT_91 = "() {" + NL + "\t\t\t\tpublic void relocate("; >+ protected final String TEXT_92 = " celleditor) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_93 = " rect = getLabel().getTextBounds();" + NL + "\t\t\t\t\tgetLabel().translateToAbsolute(rect);" + NL + "\t\t\t\t\tcelleditor.getControl().setBounds(rect.x, rect.y, rect.width, rect.height);" + NL + "\t\t\t\t}" + NL + "\t\t\t}) {" + NL + "\t\t\t\tprotected void initCellEditor() {" + NL + "\t\t\t\t\tgetCellEditor().setValue(getLabelEditText());" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "\t\t}" + NL + "\t\treturn manager;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void performDirectEdit() {" + NL + "\t\tgetManager().show();" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisuals() {" + NL + "\t\tsuper.refreshVisuals();" + NL + "\t\trefreshLabel();" + NL + "\t\trefreshFont();" + NL + "\t\trefreshFontColor();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshLabel() {" + NL + "\t\tgetLabel().setText(getLabelText());" + NL + "\t\tgetLabel().setIcon(getLabelIcon());" + NL + "\t}" + NL; >+ protected final String TEXT_94 = NL; >+ protected final String TEXT_95 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final String VIEW_PATTERN = \""; >+ protected final String TEXT_96 = "\";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final String EDIT_PATTERN = \""; >+ protected final String TEXT_97 = "\";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getLabelText() {" + NL + "\t\t"; >+ protected final String TEXT_98 = " element = "; >+ protected final String TEXT_99 = ";" + NL + "\t\tif (element == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}" + NL + "\t\treturn buildTextByPattern(element, VIEW_PATTERN);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getLabelEditText() {" + NL + "\t\t"; >+ protected final String TEXT_100 = " element = "; >+ protected final String TEXT_101 = ";" + NL + "\t\tif (element == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}" + NL + "\t\treturn buildTextByPattern(element, EDIT_PATTERN);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String buildTextByPattern("; >+ protected final String TEXT_102 = " element, String pattern) {"; >+ protected final String TEXT_103 = NL + "\t\tif (element.get"; >+ protected final String TEXT_104 = "() == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}"; >+ protected final String TEXT_105 = NL + "\t\treturn "; >+ protected final String TEXT_106 = ".format(pattern, new Object[] {"; >+ protected final String TEXT_107 = NL + "\t\t\t"; >+ protected final String TEXT_108 = NL + "\t\t});"; >+ protected final String TEXT_109 = NL + "\t\treturn "; >+ protected final String TEXT_110 = ".format(pattern, new Object[] {"; >+ protected final String TEXT_111 = NL + "\t\t"; >+ protected final String TEXT_112 = ","; >+ protected final String TEXT_113 = NL + "\t\t});"; >+ protected final String TEXT_114 = NL + "\t\t//XXX: unexpected model facet." + NL + "\t\treturn defaultText;"; >+ protected final String TEXT_115 = NL + "\t}"; >+ protected final String TEXT_116 = NL; >+ protected final String TEXT_117 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFont() {" + NL + "\t\t"; >+ protected final String TEXT_118 = " style =" + NL + "\t\t\t("; >+ protected final String TEXT_119 = ") "; >+ protected final String TEXT_120 = ".getStyle(" + NL + "\t\t\t\t"; >+ protected final String TEXT_121 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_122 = " toDispose = createdFont;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tString fontName = style.getFontName();" + NL + "\t\t\tint fontHeight = style.getFontHeight();" + NL + "\t\t\tint fontStyle = "; >+ protected final String TEXT_123 = ".NORMAL;" + NL + "\t\t\tif (style.isBold()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_124 = ".BOLD;" + NL + "\t\t\t}" + NL + "\t\t\tif (style.isItalic()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_125 = ".ITALIC;" + NL + "\t\t\t}" + NL + "\t\t\t"; >+ protected final String TEXT_126 = " currentFont = getFigure().getFont();" + NL + "\t\t\tif (currentFont != null) {" + NL + "\t\t\t\t"; >+ protected final String TEXT_127 = " currentFontData = currentFont.getFontData()[0];" + NL + "\t\t\t\tif (currentFontData.getName().equals(fontName) && currentFontData.getHeight() == fontHeight && currentFontData.getStyle() == fontStyle) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFont = new "; >+ protected final String TEXT_128 = "(null, fontName, fontHeight, fontStyle);" + NL + "\t\t\tgetFigure().setFont(createdFont);" + NL + "\t\t} else {" + NL + "\t\t\t//revert to the default font" + NL + "\t\t\tgetFigure().setFont(getViewer().getControl().getFont());" + NL + "\t\t\tcreatedFont = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The font (created by {@link #refreshFont()}) currently assigned to the label (unless the default font is assigned)." + NL + "\t * Whenever another non-default font is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_129 = " createdFont;"; >+ protected final String TEXT_130 = NL; >+ protected final String TEXT_131 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFontColor() {" + NL + "\t\t"; >+ protected final String TEXT_132 = " style = ("; >+ protected final String TEXT_133 = ") "; >+ protected final String TEXT_134 = ".getStyle("; >+ protected final String TEXT_135 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_136 = " toDispose = createdFontColor;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tint fontColor = style.getFontColor();" + NL + "\t\t\tint red = fontColor & 0x000000FF;" + NL + "\t\t\tint green = (fontColor & 0x0000FF00) >> 8;" + NL + "\t\t\tint blue = (fontColor & 0x00FF0000) >> 16;" + NL + "\t\t\t"; >+ protected final String TEXT_137 = " currentColor = getLabel().getForegroundColor();" + NL + "\t\t\tif (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFontColor = new "; >+ protected final String TEXT_138 = "(null, red, green, blue);" + NL + "\t\t\tgetFigure().setForegroundColor(createdFontColor);" + NL + "\t\t} else {" + NL + "\t\t\tgetFigure().setForegroundColor(getViewer().getControl().getForeground());" + NL + "\t\t\tcreatedFontColor = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The color (created by {@link #refreshFontColor()}) currently assigned to the label." + NL + "\t * Whenever another color is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_139 = " createdFontColor;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_140 = " getLabelIcon() {" + NL + "\t\t"; >+ protected final String TEXT_141 = " element = resolveSemanticElement();" + NL + "\t\t"; >+ protected final String TEXT_142 = " imageDescriptor = "; >+ protected final String TEXT_143 = ".getInstance().getItemImageDescriptor(element);" + NL + "\t\tif (imageDescriptor != null) {" + NL + "\t\t\treturn imageDescriptor.createImage();" + NL + "\t\t}" + NL + "\t\treturn "; >+ protected final String TEXT_144 = ".getMissingImageDescriptor().createImage();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_145 = " resolveSemanticElement() {" + NL + "\t\tfor(EditPart editPart = this; editPart != null; editPart = editPart.getParent()) {" + NL + "\t\t\tView view = (View)editPart.getModel();" + NL + "\t\t\tif (view != null && view.getElement() != null) {" + NL + "\t\t\t\treturn ("; >+ protected final String TEXT_146 = ") view.getElement();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_147 = " getUpdatableParent() {" + NL + "\t\tfor(EditPart editPart = getParent(); editPart != null; editPart = editPart.getParent()) {" + NL + "\t\t\tif (editPart instanceof "; >+ protected final String TEXT_148 = ") {" + NL + "\t\t\t\treturn ("; >+ protected final String TEXT_149 = ") editPart;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void activate() {" + NL + "\t\tsuper.activate();" + NL + "\t\t"; >+ protected final String TEXT_150 = " updatableParent = getUpdatableParent();" + NL + "\t\tif (updatableParent != null) {" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_151 = ".eINSTANCE.getFontStyle_FontColor(), fontColorRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_152 = ".eINSTANCE.getFontStyle_FontHeight(), fontRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_153 = ".eINSTANCE.getFontStyle_FontName(), fontRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_154 = ".eINSTANCE.getFontStyle_Bold(), fontRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_155 = ".eINSTANCE.getFontStyle_Italic(), fontRefresher);"; >+ protected final String TEXT_156 = NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_157 = ".eINSTANCE.get"; >+ protected final String TEXT_158 = "(), labelRefresher);"; >+ protected final String TEXT_159 = NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_160 = ".eINSTANCE.get"; >+ protected final String TEXT_161 = "(), labelRefresher);"; >+ protected final String TEXT_162 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void deactivate() {" + NL + "\t\tsuper.deactivate();" + NL + "\t\t"; >+ protected final String TEXT_163 = " updatableParent = getUpdatableParent();" + NL + "\t\tif (updatableParent != null) {" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_164 = ".eINSTANCE.getFontStyle_FontColor(), fontColorRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_165 = ".eINSTANCE.getFontStyle_FontHeight(), fontRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_166 = ".eINSTANCE.getFontStyle_FontName(), fontRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_167 = ".eINSTANCE.getFontStyle_Bold(), fontRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_168 = ".eINSTANCE.getFontStyle_Italic(), fontRefresher);"; >+ protected final String TEXT_169 = NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_170 = ".eINSTANCE.get"; >+ protected final String TEXT_171 = "(), labelRefresher);"; >+ protected final String TEXT_172 = NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_173 = ".eINSTANCE.get"; >+ protected final String TEXT_174 = "(), labelRefresher);"; >+ protected final String TEXT_175 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IUpdatableEditPart.Refresher labelRefresher = new IUpdatableEditPart.Refresher() {" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\trefreshLabel();" + NL + "\t\t}" + NL + "\t};" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IUpdatableEditPart.Refresher fontColorRefresher = new IUpdatableEditPart.Refresher() {" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\trefreshFontColor();" + NL + "\t\t}" + NL + "\t};" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IUpdatableEditPart.Refresher fontRefresher = new IUpdatableEditPart.Refresher() {" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\trefreshFont();" + NL + "\t\t}" + NL + "\t};"; >+ protected final String TEXT_176 = NL; >+ protected final String TEXT_177 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_178 = " createFigure() {" + NL + "\t\t"; >+ protected final String TEXT_179 = " label = createLabel();" + NL + "\t\tdefaultText = label.getText();" + NL + "\t\treturn label;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_180 = " createLabel() {"; >+ protected final String TEXT_181 = NL + "\t\treturn new "; >+ protected final String TEXT_182 = "();"; >+ protected final String TEXT_183 = NL + "\t\treturn "; >+ protected final String TEXT_184 = ";"; >+ protected final String TEXT_185 = NL + "\t\treturn new "; >+ protected final String TEXT_186 = "();"; >+ protected final String TEXT_187 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_188 = " getLabel() {" + NL + "\t\treturn ("; >+ protected final String TEXT_189 = ") getFigure();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setLabel("; >+ protected final String TEXT_190 = " figure) {" + NL + "\t\tunregisterVisuals();" + NL + "\t\tsetFigure(figure);" + NL + "\t\tdefaultText = figure.getText();" + NL + "\t\tregisterVisuals();" + NL + "\t\trefreshVisuals();" + NL + "\t}" + NL; >+ protected final String TEXT_191 = NL; >+ protected final String TEXT_192 = NL; >+ protected final String TEXT_193 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class MapModeWorkaround {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int DPtoLP(int dp) {" + NL + "\t\t\treturn dp;" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static MapModeWorkaround INSTANCE = new MapModeWorkaround();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate MapModeWorkaround getMapMode() {" + NL + "\t\treturn MapModeWorkaround.INSTANCE;" + NL + "\t}"; >+ protected final String TEXT_194 = NL + "}"; >+ protected final String TEXT_195 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenNodeLabel genLabel = (GenNodeLabel) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+GenNode genHost = genLabel.getNode(); >+GenClass underlyingMetaClass = genHost.getDomainMetaClass(); >+GenDiagram genDiagram = genLabel.getDiagram(); >+LabelModelFacet labelModelFacet = genLabel.getModelFacet(); >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ stringBuffer.append(TEXT_4); >+ >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genLabel.getEditPartClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genLabel.getEditPartClassName()); >+ stringBuffer.append(TEXT_11); >+ >+ final String primaryView = "getUpdatableParent().getDiagramNode()"; >+ final String resolvedSemanticElement = "resolveSemanticElement()"; >+ >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.DirectEditPolicy")); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("java.text.ParseException")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_23); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet && !genLabel.isReadOnly()) { >+ GenFeature featureToSet = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ EStructuralFeature ecoreFeature = featureToSet.getEcoreFeature(); >+ >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName(featureToSet.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(featureToSet.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_39); >+ >+ if (ecoreFeature.isMany()) { >+ >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.EList")); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(featureToSet.getAccessorName()); >+ stringBuffer.append(TEXT_45); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")); >+ stringBuffer.append(TEXT_47); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_49); >+ >+ } >+ >+ stringBuffer.append(TEXT_50); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ List metaFeatures = compositeFeatureLabelModelFacet.getMetaFeatures(); >+ >+ stringBuffer.append(TEXT_51); >+ stringBuffer.append(metaFeatures.size()); >+ stringBuffer.append(TEXT_52); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_63); >+ >+ boolean haveDeclaredValues = false; >+ for(int i = 0; i < metaFeatures.size(); i++) { >+ GenFeature nextFeatureToSet = (GenFeature) metaFeatures.get(i); >+ EStructuralFeature nextEcoreFeature = nextFeatureToSet.getEcoreFeature(); >+ >+ stringBuffer.append(TEXT_64); >+ if (i == 0) { >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_65); >+ } >+ stringBuffer.append(TEXT_66); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_67); >+ stringBuffer.append(importManager.getImportedName(nextFeatureToSet.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(nextFeatureToSet.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_69); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())); >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(i); >+ stringBuffer.append(TEXT_71); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_72); >+ >+ if (nextEcoreFeature.isMany()) { >+ >+ stringBuffer.append(TEXT_73); >+ if (!haveDeclaredValues) { haveDeclaredValues = true; >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.EList")); >+ stringBuffer.append(TEXT_74); >+ } >+ stringBuffer.append(TEXT_75); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_76); >+ stringBuffer.append(nextFeatureToSet.getAccessorName()); >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_78); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")); >+ stringBuffer.append(TEXT_79); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_80); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_81); >+ >+ } >+ >+ >+ } >+ >+ stringBuffer.append(TEXT_82); >+ >+} >+ >+ stringBuffer.append(TEXT_83); >+ stringBuffer.append(TEXT_84); >+ stringBuffer.append(TEXT_85); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_88); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.viewers.TextCellEditor")); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.CellEditorLocator")); >+ stringBuffer.append(TEXT_91); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.viewers.CellEditor")); >+ stringBuffer.append(TEXT_92); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_93); >+ stringBuffer.append(TEXT_94); >+ >+/*genFeature.getObjectType() throws NPE on primitive types. This is a workaround. */ >+HashMap primitiveTypeToWrapperClassName = new HashMap(); >+primitiveTypeToWrapperClassName.put(Boolean.TYPE, "Boolean"); >+primitiveTypeToWrapperClassName.put(Byte.TYPE, "Byte"); >+primitiveTypeToWrapperClassName.put(Character.TYPE, "Character"); >+primitiveTypeToWrapperClassName.put(Double.TYPE, "Double"); >+primitiveTypeToWrapperClassName.put(Float.TYPE, "Float"); >+primitiveTypeToWrapperClassName.put(Integer.TYPE, "Integer"); >+primitiveTypeToWrapperClassName.put(Long.TYPE, "Long"); >+primitiveTypeToWrapperClassName.put(Short.TYPE, "Short"); >+String viewPattern = null; >+String editPattern = null; >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ viewPattern = featureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ viewPattern = "{0}"; >+ } >+ editPattern = featureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ editPattern = "{0}"; >+ } >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ viewPattern = compositeFeatureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ viewPattern = patternBuffer.toString().trim(); >+ } >+ editPattern = compositeFeatureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ editPattern = patternBuffer.toString().trim(); >+ } >+} >+ >+ stringBuffer.append(TEXT_95); >+ stringBuffer.append(viewPattern); >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(editPattern); >+ stringBuffer.append(TEXT_97); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_98); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_100); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_102); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ GenFeature feature = featureLabelModelFacet.getMetaFeature(); >+ if (!feature.isPrimitiveType()) { >+ >+ stringBuffer.append(TEXT_103); >+ stringBuffer.append(feature.getCapName()); >+ stringBuffer.append(TEXT_104); >+ >+ } >+ >+ stringBuffer.append(TEXT_105); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_106); >+ >+ String value = "element.get" + feature.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (feature.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(feature.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+ >+ stringBuffer.append(TEXT_107); >+ stringBuffer.append(value); >+ stringBuffer.append(TEXT_108); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ >+ stringBuffer.append(TEXT_109); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_110); >+ >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ String value = "element.get" + next.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (next.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(next.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+ >+ stringBuffer.append(TEXT_111); >+ stringBuffer.append(value); >+ if (it.hasNext()) { >+ stringBuffer.append(TEXT_112); >+ } >+ >+ } >+ >+ stringBuffer.append(TEXT_113); >+ >+} else { >+ >+ stringBuffer.append(TEXT_114); >+ >+} >+ >+ stringBuffer.append(TEXT_115); >+ stringBuffer.append(TEXT_116); >+ stringBuffer.append(TEXT_117); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_118); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_119); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_120); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_121); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_122); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_123); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_124); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_125); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_126); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.FontData")); >+ stringBuffer.append(TEXT_127); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_128); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_129); >+ stringBuffer.append(TEXT_130); >+ stringBuffer.append(TEXT_131); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_132); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_133); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_134); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_135); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_136); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_137); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_138); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_139); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Image")); >+ stringBuffer.append(TEXT_140); >+ stringBuffer.append(importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_141); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.resource.ImageDescriptor")); >+ stringBuffer.append(TEXT_142); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_143); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.resource.ImageDescriptor")); >+ stringBuffer.append(TEXT_144); >+ stringBuffer.append(importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_145); >+ stringBuffer.append(importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_146); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_147); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_148); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_149); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_150); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_151); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_152); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_153); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_154); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_155); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ >+ stringBuffer.append(TEXT_156); >+ stringBuffer.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_157); >+ stringBuffer.append(feature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_158); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ >+ stringBuffer.append(TEXT_159); >+ stringBuffer.append(importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_160); >+ stringBuffer.append(next.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_161); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_162); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_163); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_164); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_165); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_166); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_167); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_168); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ >+ stringBuffer.append(TEXT_169); >+ stringBuffer.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_170); >+ stringBuffer.append(feature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_171); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ >+ stringBuffer.append(TEXT_172); >+ stringBuffer.append(importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_173); >+ stringBuffer.append(next.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_174); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_175); >+ stringBuffer.append(TEXT_176); >+ stringBuffer.append(TEXT_177); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_178); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_179); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_180); >+ >+String figureQualifiedClassName = null; >+Viewmap viewmap = genLabel.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.draw2d.Label"; >+ } >+ >+ stringBuffer.append(TEXT_181); >+ stringBuffer.append(importManager.getImportedName(figureQualifiedClassName)); >+ stringBuffer.append(TEXT_182); >+ } // instanceof FigureViewmap >+ else if (viewmap instanceof SnippetViewmap) { >+ stringBuffer.append(TEXT_183); >+ stringBuffer.append(((SnippetViewmap) viewmap).getBody()); >+ stringBuffer.append(TEXT_184); >+ } // instanceof SnippetViewmap; FIXME : obtain figure class name to generate getter >+ else if (viewmap instanceof InnerClassViewmap) { >+ figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >+ >+ stringBuffer.append(TEXT_185); >+ stringBuffer.append(figureQualifiedClassName); >+ stringBuffer.append(TEXT_186); >+ } >+ stringBuffer.append(TEXT_187); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_188); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_189); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_190); >+ >+if (genLabel.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genLabel.getViewmap()).getClassBody(); >+ >+ stringBuffer.append(TEXT_191); >+ stringBuffer.append(classBody); >+ stringBuffer.append(TEXT_192); >+ >+if (classBody.indexOf("DPtoLP") != -1) { >+ >+ stringBuffer.append(TEXT_193); >+ >+} >+ >+ >+} >+ >+ stringBuffer.append(TEXT_194); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_195); >+ return stringBuffer.toString(); >+ } >+} >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,68 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class CreationWizardGenerator >+{ >+ protected static String nl; >+ public static synchronized CreationWizardGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ CreationWizardGenerator result = new CreationWizardGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_2 = " extends "; >+ protected final String TEXT_3 = " implements "; >+ protected final String TEXT_4 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\t private "; >+ protected final String TEXT_5 = " diagramFileURI;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\t private "; >+ protected final String TEXT_6 = " page;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void addPages() {" + NL + "\t\tsuper.addPages();" + NL + "\t\tif (page == null) {" + NL + "\t\t\tpage = new "; >+ protected final String TEXT_7 = "();" + NL + "\t\t}" + NL + "\t\taddPage(page);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void init(IWorkbench workbench, IStructuredSelection selection) {" + NL + "\t\tsetWindowTitle(\"New "; >+ protected final String TEXT_8 = " Diagram\"); //$NON-NLS-1$" + NL + "\t\tsetDefaultPageImageDescriptor("; >+ protected final String TEXT_9 = ".getBundledImageDescriptor(" + NL + "\t\t\t\"icons/full/wizban/New"; >+ protected final String TEXT_10 = ".gif\")); //$NON-NLS-1$" + NL + "\t\tsetNeedsProgressMonitor(true);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean performFinish() {" + NL + "\t\tboolean retVal = page.finish();" + NL + "\t\tdiagramFileURI = page.getCreatedDiagramFileURI();" + NL + "\t\treturn retVal;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * returns the diagram file " + NL + "\t * @return URI the diagram file" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic final URI getDiagramFileURI() {" + NL + "\t\treturn diagramFileURI;" + NL + "\t}" + NL + "}"; >+ protected final String TEXT_11 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final GenModel genModel = genDiagram.getEditorGen().getDomainGenModel(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+importManager.addImport("org.eclipse.jface.viewers.IStructuredSelection"); >+importManager.addImport("org.eclipse.ui.IWorkbench"); >+ >+ >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(genDiagram.getCreationWizardClassName()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.wizard.Wizard")); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.ui.INewWizard")); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.URI")); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getCreationWizardPageQualifiedClassName())); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getCreationWizardPageQualifiedClassName())); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(genModel.getModelName()); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName()); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genModel.getModelName()); >+ stringBuffer.append(TEXT_10); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_11); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refresher.javajetinc >=================================================================== >RCS file: templates/parts/refresher.javajetinc >diff -N templates/parts/refresher.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refresher.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,15 @@ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("java.util.HashMap")%> structuralFeatures2Refresher; >+ >+ /** >+ * @generated >+ */ >+ public Refresher getRefresher(<%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> feature, <%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> msg) { >+ if (structuralFeatures2Refresher == null) { >+ createRefreshers(); >+ } >+ return (Refresher) structuralFeatures2Refresher.get(feature); >+ } >+ >Index: templates/editor/VisualIDRegistry.javajet >=================================================================== >RCS file: templates/editor/VisualIDRegistry.javajet >diff -N templates/editor/VisualIDRegistry.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/VisualIDRegistry.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,370 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="VisualIDRegistryGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* java.util.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final String modelID = genDiagram.getEditorGen().getModelID(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.emf.ecore.EClass"); >+importManager.addImport("org.eclipse.emf.ecore.EObject"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Diagram"); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * This registry is used to determine which type of visual object should be >+ * created for the corresponding Diagram, Node, ChildNode or Link represented >+ * by a domain model object. Note that it only returns semantically complete objects (those who must have an element associated with them). >+ * >+ * @generated >+ */ >+public class <%=genDiagram.getVisualIDRegistryClassName()%> { >+ >+ public static final <%=genDiagram.getVisualIDRegistryClassName()%> INSTANCE = new <%=genDiagram.getVisualIDRegistryClassName()%>(); >+ >+ /** >+ * @generated >+ */ >+ public int getDiagramVisualID(EObject domainElement) { >+ if (domainElement == null) { >+ return -1; >+ } >+ EClass domainElementMetaclass = domainElement.eClass(); >+ return getDiagramVisualID(domainElement, domainElementMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ public int getDiagramVisualID(EObject domainElement, EClass domainElementMetaclass) { >+<% >+if (genDiagram.getDomainDiagramElement() != null) { /*we do not support diagrams without domain elements in other places, but keep this copy-pasted occurrence*/ >+ String classifierAccessorName = genDiagram.getDomainDiagramElement().getClassifierAccessorName(); >+ String interfaceName = importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName()); >+%> >+ if (<%=genDiagram.getMetaPackageName(importManager)%>.eINSTANCE.get<%=classifierAccessorName%>().equals(domainElementMetaclass) && isDiagram<%=genDiagram.getUniqueIdentifier()%>((<%=interfaceName%>) domainElement)) { >+ return <%=genDiagram.getVisualID()%>; >+ } >+<%}%> >+ return getUnrecognizedDiagramID(domainElement); >+ } >+ >+ /** >+ * @generated >+ */ >+ public int getNodeVisualID(View containerView, EObject domainElement) { >+ if (domainElement == null) { >+ return -1; >+ } >+ EClass domainElementMetaclass = domainElement.eClass(); >+ return getNodeVisualID(containerView, domainElement, domainElementMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ public int getNodeVisualID(View containerView, EObject domainElement, EClass domainElementMetaclass) { >+ String containerModelID = getModelID(containerView); >+ if (!"<%=modelID%>".equals(containerModelID)) { >+ return -1; >+ } >+ int containerVisualID; >+ if ("<%=modelID%>".equals(containerModelID)) { >+ containerVisualID = getVisualID(containerView); >+ } else { >+ if (containerView instanceof Diagram) { >+ containerVisualID = <%=genDiagram.getVisualID()%>; >+ } else { >+ return -1; >+ } >+ } >+ switch (containerVisualID) { >+<% >+Collection nodeContainers = new ArrayList(genDiagram.getCompartments()); >+nodeContainers.add(genDiagram); >+for(Iterator it = nodeContainers.iterator(); it.hasNext(); ) { >+ GenContainerBase nextContainer = (GenContainerBase) it.next(); >+%> >+ case <%=nextContainer.getVisualID()%>: >+<% >+ for (Iterator childNodes = nextContainer.getContainedNodes().iterator(); childNodes.hasNext(); ) { >+ GenNode childNode = (GenNode) childNodes.next(); >+ final String classifierAccessorName = childNode.getDomainMetaClass().getClassifierAccessorName(); >+ final String interfaceName = importManager.getImportedName(childNode.getDomainMetaClass().getQualifiedInterfaceName()); >+ final String semanticPackageInterfaceName = importManager.getImportedName(childNode.getDomainMetaClass().getGenPackage().getQualifiedPackageInterfaceName()); >+%> >+ if (<%=semanticPackageInterfaceName%>.eINSTANCE.get<%=classifierAccessorName%>().isSuperTypeOf(domainElementMetaclass) && isNode<%=childNode.getUniqueIdentifier()%>((<%=interfaceName%>) domainElement)) { >+ return <%=childNode.getVisualID()%>; >+ } >+<% >+ } >+%> >+ return getUnrecognized<%=nextContainer.getUniqueIdentifier()%>ChildNodeID(domainElement); >+<% >+} >+%> >+ } >+ return -1; >+ } >+ >+ /** >+ * @generated >+ */ >+ public int getLinkWithClassVisualID(EObject domainElement) { >+ EClass domainElementMetaclass = domainElement.eClass(); >+ return getLinkWithClassVisualID(domainElement, domainElementMetaclass); >+ } >+ >+ /** >+ * @generated >+ */ >+ public int getLinkWithClassVisualID(EObject domainElement, EClass domainElementMetaclass) { >+<% >+for (Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink) it.next(); >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ final TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ final String semanticLinkInterfaceName = modelFacet.getMetaClass().getClassifierAccessorName(); >+ final String interfaceName = importManager.getImportedName(modelFacet.getMetaClass().getQualifiedInterfaceName()); >+ final String semanticPackageInterfaceName = importManager.getImportedName(modelFacet.getMetaClass().getGenPackage().getQualifiedPackageInterfaceName()); >+%> >+ if (<%=semanticPackageInterfaceName%>.eINSTANCE.get<%=semanticLinkInterfaceName%>().isSuperTypeOf(domainElementMetaclass) && isLinkWithClass<%=genLink.getUniqueIdentifier()%>((<%=interfaceName%>) domainElement)) { >+ return <%=genLink.getVisualID()%>; >+ } >+<% >+ } >+} >+%> >+ return getUnrecognizedLinkWithClassID(domainElement); >+ } >+ >+<%if (genDiagram.getDomainDiagramElement() != null) {%> >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private boolean isDiagram<%=genDiagram.getUniqueIdentifier()%>(<%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())%> element) { >+ return true; >+ } >+<%}%> >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private int getUnrecognizedDiagramID(EObject domainElement) { >+ return -1; >+ } >+ >+<% >+String acceptAllMatcherAccessor = "acceptAllMatcher()"; //$NON-NLS-1$ >+for (Iterator nodes = genDiagram.getAllNodes().iterator(); nodes.hasNext();) { >+ GenNode nextNode = (GenNode) nodes.next(); >+ String qualifiedChildNodeInterfaceName = nextNode.getDomainMetaClass().getQualifiedInterfaceName(); >+ String childNodeSelector = nextNode.getModelFacet() != null && nextNode.getModelFacet().getModelElementSelector() != null ? nextNode.getUniqueIdentifier() : acceptAllMatcherAccessor; >+%> >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private boolean isNode<%=nextNode.getUniqueIdentifier()%>(<%=importManager.getImportedName(qualifiedChildNodeInterfaceName)%> element) { >+ return ElementSelectors.<%=childNodeSelector%>.matches(element); >+ } >+<% >+} >+for (Iterator containers = nodeContainers.iterator(); containers.hasNext();) { >+ GenContainerBase nextContainer = (GenContainerBase) containers.next(); >+%> >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private int getUnrecognized<%=nextContainer.getUniqueIdentifier()%>ChildNodeID(EObject domainElement) { >+ return -1; >+ } >+<% >+} >+%> >+ >+ /** >+ * User can change implementation of this method to handle some specific >+ * situations not covered by default logic. >+ * >+ * @generated >+ */ >+ private int getUnrecognizedLinkWithClassID(EObject domainElement) { >+ return -1; >+ } >+ >+<% >+for (Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink) it.next(); >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ String interfaceName = importManager.getImportedName(modelFacet.getMetaClass().getQualifiedInterfaceName()); >+ String linkSelector = modelFacet.getModelElementSelector() != null ? genLink.getUniqueIdentifier() : acceptAllMatcherAccessor; >+%> >+ >+ /** >+ * User can change implementation of this method to check some additional >+ * conditions here. >+ * >+ * @generated >+ */ >+ private boolean isLinkWithClass<%=genLink.getUniqueIdentifier()%>(<%=interfaceName%> element) { >+ return ElementSelectors.<%=linkSelector%>.matches(element); >+ } >+<% >+ } >+} >+%> >+ >+<%@ include file="getModelID.jetinc" %> >+ >+<%@ include file="getVisualID.jetinc" %> >+ >+ /** >+ * @generated >+ */ >+ private static class ElementSelectors { >+<% >+int selectorCounter = 0; >+for (Iterator it = genDiagram.eAllContents(); it.hasNext();) { >+ Object next = it.next(); >+ String id = null; >+ TypeModelFacet modelFacet = null; >+ if (next instanceof GenNode) { >+ id = ((GenNode) next).getUniqueIdentifier(); >+ modelFacet = ((GenNode) next).getModelFacet(); >+ } else if (next instanceof GenLink && ((GenLink) next).getModelFacet() instanceof TypeLinkModelFacet) { >+ id = ((GenLink) next).getUniqueIdentifier(); >+ modelFacet = (TypeLinkModelFacet) ((GenLink) next).getModelFacet(); >+ } >+ if (modelFacet == null || modelFacet.getModelElementSelector() == null) { >+ continue; >+ } >+ GenConstraint selector = modelFacet.getModelElementSelector(); >+ selectorCounter++; >+%> >+ >+ /** >+ * Element matching condition for <%=id%>. >+ * <pre>language: <%=selector.getLanguage()%></pre> >+ * <pre>body : <%=selector.getBody()%></pre> >+ * @generated >+ */ >+ private static final Matcher <%=id%> = new Matcher("<%=selector.getBody()%>"); >+<%}%> >+ >+ /** >+ * @generated >+ */ >+ private ElementSelectors() { >+ } >+<%if(selectorCounter > 0) { %> >+ /** >+ * @generated >+ */ >+ static class Matcher { >+ >+ /** >+ * @generated >+ */ >+ private EClass evalContext; >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.emf.query.ocl.conditions.OCLConstraintCondition")%> condition; >+ >+ /** >+ * @generated >+ */ >+ private String body; >+ >+ /** >+ * @generated >+ */ >+ Matcher(String expressionBody) { >+ body = expressionBody; >+ } >+ >+ /** >+ * @generated >+ */ >+ boolean matches(EObject object) { >+ try { >+ Boolean result = (object != null) ? evaluate(object) : Boolean.FALSE; >+ return result.booleanValue(); >+ } catch(IllegalArgumentException e) { >+ <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().logError(null, e); >+ return false; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private Boolean evaluate(EObject context) { >+ this.evalContext = context.eClass(); >+ if(condition == null) { >+ condition = new <%=importManager.getImportedName("org.eclipse.emf.query.ocl.conditions.OCLConstraintCondition")%>(body, evalContext); >+ } >+ if(condition != null) { >+ return booleanCast(condition.evaluate(context)); >+ } >+ return Boolean.FALSE; >+ } >+ >+ /** >+ * @generated >+ */ >+ private static Boolean booleanCast(Object value) { >+ if(value == null) { >+ return null; >+ } else if(value instanceof Boolean) { >+ return (Boolean)value; >+ } >+ return Boolean.FALSE; >+ } >+ } // end of Matcher >+<%}%> >+ /** >+ * @generated >+ */ >+ static class AcceptAllMatcher { >+ /** >+ * @generated >+ */ >+ static final AcceptAllMatcher INSTANCE = new AcceptAllMatcher(); >+ /** >+ * @generated >+ */ >+ boolean matches(Object element) { >+ return true; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ static AcceptAllMatcher acceptAllMatcher() { >+ return AcceptAllMatcher.INSTANCE; >+ } >+ } // end of ElementSelectors >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/NodeViewFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/NodeViewFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/NodeViewFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/NodeViewFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,153 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import java.util.*; >+ >+public class NodeViewFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized NodeViewFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ NodeViewFactoryGenerator result = new NodeViewFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void decorateView("; >+ protected final String TEXT_6 = " view) {"; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = " annotation = "; >+ protected final String TEXT_9 = ".eINSTANCE.createEAnnotation();" + NL + "annotation.setSource(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "view.getEAnnotations().add(annotation);" + NL + "annotation.getDetails().put(\"modelID\", \""; >+ protected final String TEXT_10 = "\"); //$NON-NLS-1$" + NL + "annotation.getDetails().put(\"visualID\", \""; >+ protected final String TEXT_11 = "\"); //$NON-NLS-1$" + NL + "\t\t"; >+ protected final String TEXT_12 = " style = "; >+ protected final String TEXT_13 = ".eINSTANCE.createShapeStyle();" + NL + "\t\tview.getStyles().add(style);" + NL + "\t\t//XXX: init styles from attributes!!!"; >+ protected final String TEXT_14 = NL + "\t\tcreate"; >+ protected final String TEXT_15 = "Label(view);"; >+ protected final String TEXT_16 = NL + "\t\tcreate"; >+ protected final String TEXT_17 = "Compartment(view);"; >+ protected final String TEXT_18 = NL + "\t}" + NL; >+ protected final String TEXT_19 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static void create"; >+ protected final String TEXT_20 = "Label("; >+ protected final String TEXT_21 = " view) {" + NL + "\t\t"; >+ protected final String TEXT_22 = " label = "; >+ protected final String TEXT_23 = ".eINSTANCE.createNode();" + NL + "\t\tview.getPersistedChildren().add(label);" + NL + "\t\tlabel.setElement(null);" + NL + "\t\t"; >+ protected final String TEXT_24 = ".decorateView(label);" + NL + "\t}"; >+ protected final String TEXT_25 = NL; >+ protected final String TEXT_26 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static void create"; >+ protected final String TEXT_27 = "Compartment("; >+ protected final String TEXT_28 = " view) {" + NL + "\t\t"; >+ protected final String TEXT_29 = " compartment = "; >+ protected final String TEXT_30 = ".eINSTANCE.createNode();" + NL + "\t\tview.getPersistedChildren().add(compartment);" + NL + "\t\tcompartment.setElement(null);" + NL + "\t\t"; >+ protected final String TEXT_31 = ".decorateView(compartment);" + NL + "\t}"; >+ protected final String TEXT_32 = NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenNode genElement = (GenNode) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genElement.getNotationViewFactoryClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EcoreFactory")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genDiagram.getEditorGen().getModelID()); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genElement.getVisualID()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.ShapeStyle")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_13); >+ >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenNodeLabel label = (GenNodeLabel) it.next(); >+ >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(label.getVisualID()); >+ stringBuffer.append(TEXT_15); >+ >+}/*iterate over labels*/ >+ >+ >+for (Iterator it = genElement.getCompartments().iterator(); it.hasNext(); ) { >+ GenCompartment compartment = (GenCompartment) it.next(); >+ >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(compartment.getVisualID()); >+ stringBuffer.append(TEXT_17); >+ >+}/*iterate over compartments*/ >+ >+ stringBuffer.append(TEXT_18); >+ >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenNodeLabel label = (GenNodeLabel) it.next(); >+ >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(label.getVisualID()); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(importManager.getImportedName(label.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_24); >+ >+}/*iterate over labels*/ >+ >+ stringBuffer.append(TEXT_25); >+ >+for (Iterator it = genElement.getCompartments().iterator(); it.hasNext(); ) { >+ GenCompartment compartment = (GenCompartment) it.next(); >+ >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(compartment.getVisualID()); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName(compartment.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_31); >+ >+}/*iterate over compartments*/ >+ >+ stringBuffer.append(TEXT_32); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/EditPartFactory.javajet >=================================================================== >RCS file: templates/parts/EditPartFactory.javajet >diff -N templates/parts/EditPartFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/EditPartFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,90 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="EditPartFactoryGenerator" >+ imports="java.util.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final String modelID = genDiagram.getEditorGen().getModelID(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer);%> >+ >+<% >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.EditPartFactory"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.markImportLocation(stringBuffer);%> >+ >+/** >+ * @generated >+ */ >+public class <%=genDiagram.getEditPartFactoryClassName()%> implements EditPartFactory { >+ >+ /** >+ * @generated >+ */ >+ public static final String EXTERNAL_NODE_LABELS_LAYER = "External Node Labels"; >+ >+<%@ include file="../editor/getModelID.jetinc" %> >+ >+<%@ include file="../editor/getVisualID.jetinc" %> >+ >+ /** >+ * @generated >+ */ >+ public EditPart createEditPart(EditPart context, Object model) { >+ if (model instanceof View) { >+ View view = (View) model; >+ if (!"<%=modelID%>".equals(getModelID(view))) { >+ return null; >+ } >+ >+ int viewVisualID = getVisualID(view); >+ switch (viewVisualID) { >+<% >+for (Iterator containers = genDiagram.getAllContainers().iterator(); containers.hasNext();) { >+ GenContainerBase container = (GenContainerBase) containers.next(); >+%> >+ case <%=container.getVisualID()%>: >+ return new <%=container.getEditPartClassName()%>(<%if(container instanceof GenDiagram) {%>(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")%>)<%}%>view); >+<% >+ if (container instanceof GenNode && !((GenNode) container).isListContainerEntry()) { >+ GenNode node = (GenNode) container; >+ for (Iterator labels = node.getLabels().iterator(); labels.hasNext();) { >+ GenNodeLabel label = (GenNodeLabel) labels.next(); >+%> >+ case <%=label.getVisualID()%>: >+ return new <%=label.getEditPartClassName()%>(view); >+<% >+ } >+ } >+} >+for (Iterator links = genDiagram.getLinks().iterator(); links.hasNext();) { >+ GenLink link = (GenLink) links.next(); >+%> >+ case <%=link.getVisualID()%>: >+ return new <%=link.getEditPartClassName()%>(view); >+<% >+ for (Iterator linkLabels = link.getLabels().iterator(); linkLabels.hasNext();) { >+ GenLinkLabel linkLabel = (GenLinkLabel) linkLabels.next(); >+%> >+ case <%=linkLabel.getVisualID()%>: >+ return new <%=linkLabel.getEditPartClassName()%>(view); >+<% >+ } >+} >+%> >+ } >+ } >+ return createUnrecognizedEditPart(context, model); >+ } >+ >+ /** >+ * @generated >+ */ >+ private EditPart createUnrecognizedEditPart(EditPart context, Object model) { >+ // Handle creation of unrecognized child node EditParts here >+ return null; >+ } >+ >+} >+<%importManager.emitSortedImports();%> >Index: templates/providers/PropertySourceProvider.javajet >=================================================================== >RCS file: templates/providers/PropertySourceProvider.javajet >diff -N templates/providers/PropertySourceProvider.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/PropertySourceProvider.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,66 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="PropertySourceProviderGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<% >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genDiagram.getPropertyProviderClassName()%> implements <%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySourceProvider")%> { >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider")%> adapterFactoryContentProvider; >+ >+ /** >+ * @generated >+ */ >+ public <%=genDiagram.getPropertyProviderClassName()%>(<%=importManager.getImportedName("org.eclipse.emf.common.notify.AdapterFactory")%> domainAdapterFactory) { >+ adapterFactoryContentProvider = new <%=importManager.getImportedName("org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider")%>(domainAdapterFactory); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")%> getPropertySource(Object object) { >+ if (object instanceof <%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")%>) { >+ return (<%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")%>) object; >+ } >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view = getNotationElement(object); >+ if (view == null) { >+ return adapterFactoryContentProvider.getPropertySource(object); >+ } >+ //XXX: compose with view properties >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> domainElement = view.getElement(); >+ return adapterFactoryContentProvider.getPropertySource(domainElement); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> getNotationElement(Object object) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view = null; >+ if (object instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) { >+ view = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) object; >+ } else if (object instanceof <%=importManager.getImportedName("org.eclipse.gef.EditPart")%>) { >+ <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> editPart = (<%=importManager.getImportedName("org.eclipse.gef.EditPart")%>) object; >+ if (editPart.getModel() instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) { >+ view = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) editPart.getModel(); >+ } >+ } >+ if (view != null && "<%=genDiagram.getEditorGen().getModelID()%>".equals(getModelID(view))) { >+ return view; >+ } >+ return null; >+ } >+ >+<%@ include file="../editor/getModelID.jetinc" %> >+} >+<%importManager.emitSortedImports();%> >Index: templates/providers/LinkViewFactory.javajet >=================================================================== >RCS file: templates/providers/LinkViewFactory.javajet >diff -N templates/providers/LinkViewFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/LinkViewFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,51 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="LinkViewFactoryGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* java.util.*"%> >+<% >+GenLink genElement = (GenLink) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genElement.getNotationViewFactoryClassName()%> { >+ /** >+ * @generated >+ */ >+ public static void decorateView(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+<%@ include file="createVIDAnnotation.jetinc"%> >+ //XXX: init styles from attributes!!! >+<% >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenLinkLabel label = (GenLinkLabel) it.next(); >+%> >+ create<%=label.getVisualID()%>Label(view); >+<% >+}/*iterate over labels*/ >+%> >+ } >+ >+<% >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenLinkLabel label = (GenLinkLabel) it.next(); >+%> >+ /** >+ * @generated >+ */ >+ private static void create<%=label.getVisualID()%>Label(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> label = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createNode(); >+ view.getPersistedChildren().add(label); >+ label.setElement(null); >+ <%=importManager.getImportedName(label.getNotationViewFactoryQualifiedClassName())%>.decorateView(label); >+ } >+<% >+}/*iterate over labels*/ >+%> >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/EditPartFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/EditPartFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/EditPartFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/EditPartFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,152 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import java.util.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class EditPartFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized EditPartFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ EditPartFactoryGenerator result = new EditPartFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL; >+ protected final String TEXT_5 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_6 = " implements EditPartFactory {" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static final String EXTERNAL_NODE_LABELS_LAYER = \"External Node Labels\";" + NL; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate String getModelID("; >+ protected final String TEXT_9 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_10 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn (String) annotation.getDetails().get(\"modelID\"); //$NON-NLS-1$" + NL + "\t}" + NL; >+ protected final String TEXT_11 = NL; >+ protected final String TEXT_12 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static int getVisualID("; >+ protected final String TEXT_13 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_14 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tString visualID = (String) annotation.getDetails().get(\"visualID\"); //$NON-NLS-1$" + NL + "\t\tif (visualID == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\ttry {" + NL + "\t\t\treturn Integer.parseInt(visualID);" + NL + "\t\t} catch (NumberFormatException e) {" + NL + "\t\t\t"; >+ protected final String TEXT_15 = ".getInstance().logError(\"Unable to parse \\\"visualID\\\" annotation: \" + visualID, e);" + NL + "\t\t}" + NL + "\t\treturn -1;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditPart createEditPart(EditPart context, Object model) {" + NL + "\t\tif (model instanceof View) {" + NL + "\t\t\tView view = (View) model;" + NL + "\t\t\tif (!\""; >+ protected final String TEXT_16 = "\".equals(getModelID(view))) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t\t" + NL + "\t\t\tint viewVisualID = getVisualID(view);" + NL + "\t\t\tswitch (viewVisualID) {"; >+ protected final String TEXT_17 = NL + "\t\t\tcase "; >+ protected final String TEXT_18 = ":" + NL + "\t\t\t\t return new "; >+ protected final String TEXT_19 = "("; >+ protected final String TEXT_20 = "("; >+ protected final String TEXT_21 = ")"; >+ protected final String TEXT_22 = "view);"; >+ protected final String TEXT_23 = NL + "\t\t\tcase "; >+ protected final String TEXT_24 = ":" + NL + "\t\t\t\treturn new "; >+ protected final String TEXT_25 = "(view);"; >+ protected final String TEXT_26 = "\t\t" + NL + "\t\t\tcase "; >+ protected final String TEXT_27 = ":" + NL + "\t\t\t\treturn new "; >+ protected final String TEXT_28 = "(view);"; >+ protected final String TEXT_29 = NL + "\t\t\tcase "; >+ protected final String TEXT_30 = ":" + NL + "\t\t\t\t\treturn new "; >+ protected final String TEXT_31 = "(view);"; >+ protected final String TEXT_32 = NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn createUnrecognizedEditPart(context, model);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\t private EditPart createUnrecognizedEditPart(EditPart context, Object model) {" + NL + "\t \t// Handle creation of unrecognized child node EditParts here" + NL + "\t \treturn null;" + NL + "\t }" + NL + "" + NL + "}"; >+ protected final String TEXT_33 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final String modelID = genDiagram.getEditorGen().getModelID(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ stringBuffer.append(TEXT_4); >+ >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.EditPartFactory"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.markImportLocation(stringBuffer); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genDiagram.getEditPartFactoryClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(modelID); >+ stringBuffer.append(TEXT_16); >+ >+for (Iterator containers = genDiagram.getAllContainers().iterator(); containers.hasNext();) { >+ GenContainerBase container = (GenContainerBase) containers.next(); >+ >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(container.getVisualID()); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(container.getEditPartClassName()); >+ stringBuffer.append(TEXT_19); >+ if(container instanceof GenDiagram) { >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")); >+ stringBuffer.append(TEXT_21); >+ } >+ stringBuffer.append(TEXT_22); >+ >+ if (container instanceof GenNode && !((GenNode) container).isListContainerEntry()) { >+ GenNode node = (GenNode) container; >+ for (Iterator labels = node.getLabels().iterator(); labels.hasNext();) { >+ GenNodeLabel label = (GenNodeLabel) labels.next(); >+ >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(label.getVisualID()); >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(label.getEditPartClassName()); >+ stringBuffer.append(TEXT_25); >+ >+ } >+ } >+} >+for (Iterator links = genDiagram.getLinks().iterator(); links.hasNext();) { >+ GenLink link = (GenLink) links.next(); >+ >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(link.getVisualID()); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(link.getEditPartClassName()); >+ stringBuffer.append(TEXT_28); >+ >+ for (Iterator linkLabels = link.getLabels().iterator(); linkLabels.hasNext();) { >+ GenLinkLabel linkLabel = (GenLinkLabel) linkLabels.next(); >+ >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(linkLabel.getVisualID()); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(linkLabel.getEditPartClassName()); >+ stringBuffer.append(TEXT_31); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_32); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_33); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/providers/AbstractParser.javajet >=================================================================== >RCS file: templates/providers/AbstractParser.javajet >diff -N templates/providers/AbstractParser.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/AbstractParser.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,179 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="AbstractParserGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<%GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0];%> >+<%ImportAssistant importManager = (ImportAssistant) ((Object[])argument)[1];%> >+<%@ include file="../copyright4java.jetinc"%> >+ >+<% >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public abstract class <%=genDiagram.getAbstractParserClassName()%> { >+ /** >+ * @generated >+ */ >+ public static Object parseValue(<%=importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")%> feature, Object value) throws IllegalArgumentException { >+ if (value == null) { >+ throw new IllegalArgumentException(); >+ } >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EDataType")%> type = feature.getEAttributeType(); >+ Class iClass = type.getInstanceClass(); >+ if (Boolean.TYPE.equals(iClass) || Boolean.class.equals(iClass)) { >+ if (value instanceof Boolean) { >+ // ok >+ } else if (value instanceof String) { >+ value = Boolean.valueOf((String) value); >+ } else { >+ throw new IllegalArgumentException("Value of type Boolean is expected"); >+ } >+ } else if (Character.TYPE.equals(iClass) || Character.class.equals(iClass)) { >+ if (value instanceof Character) { >+ // ok >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ throw new IllegalArgumentException(); //XXX: ? >+ } else { >+ value = new Character(s.charAt(0)); >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Character is expected"); >+ } >+ } else if (Byte.TYPE.equals(iClass) || Byte.class.equals(iClass)) { >+ if (value instanceof Byte) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Byte(((Number) value).byteValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Byte.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ throw new IllegalArgumentException("String value does not convert to Byte value"); >+ } >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Byte is expected"); >+ } >+ } else if (Short.TYPE.equals(iClass) || Short.class.equals(iClass)) { >+ if (value instanceof Short) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Short(((Number) value).shortValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Short.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ throw new IllegalArgumentException("String value does not convert to Short value"); >+ } >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Short is expected"); >+ } >+ } else if (Integer.TYPE.equals(iClass) || Integer.class.equals(iClass)) { >+ if (value instanceof Integer) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Integer(((Number) value).intValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Integer.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ throw new IllegalArgumentException("String value does not convert to Integer value"); >+ } >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Integer is expected"); >+ } >+ } else if (Long.TYPE.equals(iClass) || Long.class.equals(iClass)) { >+ if (value instanceof Long) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Long(((Number) value).longValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Long.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ throw new IllegalArgumentException("String value does not convert to Long value"); >+ } >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Long is expected"); >+ } >+ } else if (Float.TYPE.equals(iClass) || Float.class.equals(iClass)) { >+ if (value instanceof Float) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Float(((Number) value).floatValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Float.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ throw new IllegalArgumentException("String value does not convert to Float value"); >+ } >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Float is expected"); >+ } >+ } else if (Double.TYPE.equals(iClass) || Double.class.equals(iClass)) { >+ if (value instanceof Double) { >+ // ok >+ } else if (value instanceof Number) { >+ value = new Double(((Number) value).doubleValue()); >+ } else if (value instanceof String) { >+ String s = (String) value; >+ if (s.length() == 0) { >+ value = null; >+ } else { >+ try { >+ value = Double.valueOf(s); >+ } catch (NumberFormatException nfe) { >+ throw new IllegalArgumentException("String value does not convert to Double value"); >+ } >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type Double is expected"); >+ } >+ } else if (String.class.equals(iClass)) { >+ value = String.valueOf(value); >+ } else if (type instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EEnum")%>) { >+ if (value instanceof String) { >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EEnumLiteral")%> literal = ((<%=importManager.getImportedName("org.eclipse.emf.ecore.EEnum")%>) type).getEEnumLiteralByLiteral((String) value); >+ if (literal == null) { >+ throw new IllegalArgumentException("Unknown literal: " + value); >+ } else { >+ value = literal.getInstance(); >+ } >+ } else { >+ throw new IllegalArgumentException("Value of type String is expected"); >+ } >+ } else { >+ throw new IllegalArgumentException("Unsupported type"); >+ } >+ return value; >+ } >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PaletteFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PaletteFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PaletteFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/PaletteFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,305 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import java.util.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+ >+public class PaletteFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized PaletteFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ PaletteFactoryGenerator result = new PaletteFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_2 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate final AdapterFactory domainAdapterFactory;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_3 = "(AdapterFactory domainAdapterFactory) {" + NL + "\t\tthis.domainAdapterFactory = domainAdapterFactory;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void contributeToPalette(PaletteRoot paletteRoot) {" + NL + " PaletteGroup controls = new PaletteGroup(\"Controls\");" + NL + " paletteRoot.add(controls);" + NL + "" + NL + " ToolEntry tool = new SelectionToolEntry();" + NL + " controls.add(tool);" + NL + " paletteRoot.setDefaultEntry(tool);" + NL + "" + NL + " controls.add(new MarqueeToolEntry());"; >+ protected final String TEXT_4 = NL + "\t\tpaletteRoot.add("; >+ protected final String TEXT_5 = "());"; >+ protected final String TEXT_6 = NL + "\t}" + NL; >+ protected final String TEXT_7 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate PaletteContainer "; >+ protected final String TEXT_8 = "() {" + NL + "\t\tPaletteContainer paletteContainer = createContainer(\""; >+ protected final String TEXT_9 = "\");"; >+ protected final String TEXT_10 = NL + "\t\tpaletteContainer.add("; >+ protected final String TEXT_11 = "());"; >+ protected final String TEXT_12 = NL + "\t\tpaletteContainer.add(new "; >+ protected final String TEXT_13 = "());"; >+ protected final String TEXT_14 = NL + "\t\tpaletteContainer.add("; >+ protected final String TEXT_15 = "());"; >+ protected final String TEXT_16 = NL + "\t\treturn paletteContainer;" + NL + "\t}"; >+ protected final String TEXT_17 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ToolEntry "; >+ protected final String TEXT_18 = "() {" + NL + "\t\t"; >+ protected final String TEXT_19 = NL + "\t\tImageDescriptor smallImage = ImageDescriptor.createFromFile("; >+ protected final String TEXT_20 = ".class, \""; >+ protected final String TEXT_21 = "\");" + NL + "\t\t"; >+ protected final String TEXT_22 = NL + "\t\tImageDescriptor smallImage = getImage("; >+ protected final String TEXT_23 = ");" + NL + "\t\t"; >+ protected final String TEXT_24 = NL + "\t\t"; >+ protected final String TEXT_25 = NL + "\t\tImageDescriptor largeImage = ImageDescriptor.createFromFile("; >+ protected final String TEXT_26 = ".class, \""; >+ protected final String TEXT_27 = "\");" + NL + "\t\t"; >+ protected final String TEXT_28 = NL + "\t\tImageDescriptor largeImage = smallImage;" + NL + "\t\t"; >+ protected final String TEXT_29 = NL + "\t\tfinal int[] visualIds = new int[] {"; >+ protected final String TEXT_30 = NL + "\t\t\t"; >+ protected final String TEXT_31 = ","; >+ protected final String TEXT_32 = "\t\t" + NL + "\t\t};" + NL + "\t\treturn new "; >+ protected final String TEXT_33 = "(\""; >+ protected final String TEXT_34 = "\", " + NL + "\t\t\t\""; >+ protected final String TEXT_35 = "\", new ModelCreationFactory("; >+ protected final String TEXT_36 = ".class), smallImage, largeImage) {" + NL + "\t\t\tpublic Tool createTool() {" + NL + "\t\t\t\tTool result = new CreationTool() {" + NL + "\t\t\t\t\tprotected Request createTargetRequest() {" + NL + "\t\t\t\t\t\tCreateRequestEx request = new CreateRequestEx(visualIds);" + NL + "\t\t\t\t\t\trequest.setFactory(getFactory());" + NL + "\t\t\t\t\t\treturn request;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tprotected void performCreation(int button) {" + NL + "\t\t\t\t\t\tsuper.performCreation(button);" + NL + "\t\t\t\t\t\tfinal "; >+ protected final String TEXT_37 = " createdEditPart = ("; >+ protected final String TEXT_38 = ")getCurrentViewer().getEditPartRegistry().get(getCreateRequest().getNewObject());" + NL + "\t\t\t\t\t\tif (createdEditPart != null) {" + NL + "\t\t\t\t\t\t\tgetCurrentViewer().getControl().getDisplay().asyncExec(new Runnable() {" + NL + "\t\t\t\t\t\t\t\tpublic void run() {" + NL + "\t\t\t\t\t\t\t\t\tif (createdEditPart.isActive()) {" + NL + "\t\t\t\t\t\t\t\t\t\tcreatedEditPart.performRequest(new "; >+ protected final String TEXT_39 = "("; >+ protected final String TEXT_40 = ".REQ_DIRECT_EDIT));" + NL + "\t\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\t});" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t\tresult.setProperties(getToolProperties());" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t}"; >+ protected final String TEXT_41 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ToolEntry "; >+ protected final String TEXT_42 = "() {" + NL + "\t\t"; >+ protected final String TEXT_43 = NL + "\t\tImageDescriptor smallImage = ImageDescriptor.createFromFile("; >+ protected final String TEXT_44 = ".class, \""; >+ protected final String TEXT_45 = "\");" + NL + "\t\t"; >+ protected final String TEXT_46 = NL + "\t\tImageDescriptor smallImage = getImage("; >+ protected final String TEXT_47 = ");" + NL + "\t\t"; >+ protected final String TEXT_48 = NL + "\t\t"; >+ protected final String TEXT_49 = NL + "\t\tImageDescriptor largeImage = ImageDescriptor.createFromFile("; >+ protected final String TEXT_50 = ".class, \""; >+ protected final String TEXT_51 = "\");" + NL + "\t\t"; >+ protected final String TEXT_52 = NL + "\t\tImageDescriptor largeImage = smallImage;" + NL + "\t\t"; >+ protected final String TEXT_53 = NL + "\t\tfinal int[] visualIds = new int[] {"; >+ protected final String TEXT_54 = NL + "\t\t\t"; >+ protected final String TEXT_55 = ","; >+ protected final String TEXT_56 = "\t\t" + NL + "\t\t};" + NL + "\t\treturn new ConnectionCreationToolEntry(\""; >+ protected final String TEXT_57 = "\", \""; >+ protected final String TEXT_58 = "\", " + NL + "\t\t\tnew ModelCreationFactory("; >+ protected final String TEXT_59 = ".class), smallImage, largeImage) {" + NL + "\t\t\tpublic Tool createTool() {" + NL + "\t\t\t\tTool result = new ConnectionCreationTool() {" + NL + "\t\t\t\t\tprotected Request createTargetRequest() {" + NL + "\t\t\t\t\t\tCreateConnectionRequestEx request = new CreateConnectionRequestEx(visualIds);" + NL + "\t\t\t\t\t\trequest.setFactory(getFactory());" + NL + "\t\t\t\t\t\treturn request;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t\tresult.setProperties(getToolProperties());" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t}"; >+ protected final String TEXT_60 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate PaletteContainer createContainer(String title) {" + NL + "\t\treturn new PaletteDrawer(title);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ImageDescriptor getImage(Object o) {" + NL + "\t\tIItemLabelProvider labelProvider = (IItemLabelProvider) domainAdapterFactory.adapt(o, IItemLabelProvider.class);" + NL + "\t\tif (labelProvider != null) {" + NL + "\t\t\treturn ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(o));" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class CreateRequestEx extends "; >+ protected final String TEXT_61 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final int[] visualIds;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic CreateRequestEx(int[] visualIds) {" + NL + "\t\t\tthis.visualIds = visualIds;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int[] getVisualIds() {" + NL + "\t\t\treturn visualIds;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void setCreatedObject(Object createdObject) {" + NL + "\t\t\t((ModelCreationFactory)getFactory()).setCreatedObject(createdObject);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static class CreateConnectionRequestEx extends "; >+ protected final String TEXT_62 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final int[] visualIds;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic CreateConnectionRequestEx(int[] visualIds) {" + NL + "\t\t\tthis.visualIds = visualIds;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int[] getVisualIds() {" + NL + "\t\t\treturn visualIds;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void setCreatedObject(Object createdObject) {" + NL + "\t\t\t((ModelCreationFactory)getFactory()).setCreatedObject(createdObject);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class ModelCreationFactory implements CreationFactory {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate Object createdObject;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final Class createdObjectType;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic ModelCreationFactory(Class objectType) {" + NL + "\t\t\tcreatedObjectType = objectType;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic Object getNewObject() {" + NL + "\t\t\treturn createdObject;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic Object getObjectType() {" + NL + "\t\t\treturn createdObjectType;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void setCreatedObject(Object createdObject) {" + NL + "\t\t\tthis.createdObject = createdObject;" + NL + "\t\t}" + NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final Palette palette = genDiagram.getPalette(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+ >+importManager.addImport("org.eclipse.gef.Tool"); >+importManager.addImport("org.eclipse.gef.Request"); >+importManager.addImport("org.eclipse.gef.requests.CreationFactory"); >+importManager.addImport("org.eclipse.gef.tools.CreationTool"); >+importManager.addImport("org.eclipse.gef.tools.ConnectionCreationTool"); >+importManager.addImport("org.eclipse.gef.palette.PaletteContainer"); >+importManager.addImport("org.eclipse.gef.palette.PaletteDrawer"); >+importManager.addImport("org.eclipse.gef.palette.PaletteGroup"); >+importManager.addImport("org.eclipse.gef.palette.PaletteRoot"); >+importManager.addImport("org.eclipse.gef.palette.ConnectionCreationToolEntry"); >+importManager.addImport("org.eclipse.gef.palette.MarqueeToolEntry"); >+importManager.addImport("org.eclipse.gef.palette.SelectionToolEntry"); >+importManager.addImport("org.eclipse.gef.palette.ToolEntry"); >+importManager.addImport("org.eclipse.jface.resource.ImageDescriptor"); >+importManager.addImport("org.eclipse.emf.edit.provider.IItemLabelProvider"); >+importManager.addImport("org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry"); >+importManager.addImport("org.eclipse.emf.common.notify.AdapterFactory"); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(palette.getFactoryClassName()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(palette.getFactoryClassName()); >+ stringBuffer.append(TEXT_3); >+ >+List toolGroups = palette.getGroups(); >+for (int i = 0; i < toolGroups.size(); i++) { >+ ToolGroup toolGroup = (ToolGroup) toolGroups.get(i); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(toolGroup.getCreateMethodName()); >+ stringBuffer.append(TEXT_5); >+ } >+ stringBuffer.append(TEXT_6); >+ >+for (int i = 0; i < toolGroups.size(); i++) { >+ ToolGroup toolGroup = (ToolGroup) toolGroups.get(i); >+ >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(toolGroup.getCreateMethodName()); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(toolGroup.getTitleKey()); >+ stringBuffer.append(TEXT_9); >+ >+ List nodeCreationTools = toolGroup.getNodeTools(); >+ for (int j = 0; j < nodeCreationTools.size(); j++) { >+ NodeEntry nodeCreationTool = (NodeEntry) nodeCreationTools.get(j); >+ >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(nodeCreationTool.getCreateMethodName()); >+ stringBuffer.append(TEXT_11); >+ } >+ List linkCreationTools = toolGroup.getLinkTools(); >+ for (int j = 0; j < linkCreationTools.size(); j++) { >+ LinkEntry linkCreationTool = (LinkEntry) linkCreationTools.get(j); >+ if (j == 0) { >+ >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.palette.PaletteSeparator")); >+ stringBuffer.append(TEXT_13); >+ } >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(linkCreationTool.getCreateMethodName()); >+ stringBuffer.append(TEXT_15); >+ } >+ stringBuffer.append(TEXT_16); >+ >+} >+for (int i = 0; i < toolGroups.size(); i++) { >+ ToolGroup toolGroup = (ToolGroup) toolGroups.get(i); >+ List nodeCreationTools = toolGroup.getNodeTools(); >+ for (int j = 0; j < nodeCreationTools.size(); j++) { >+ NodeEntry nodeCreationTool = (NodeEntry) nodeCreationTools.get(j); >+ List genNodes = nodeCreationTool.getGenNode(); >+ GenNode firstGenNode = (GenNode) genNodes.get(0); >+ GenClass genClass = firstGenNode.getDomainMetaClass(); >+ final String domainElementInstanceCreationCode; >+ if (!genClass.isMapEntry()) { >+ domainElementInstanceCreationCode = importManager.getImportedName(genClass.getGenPackage().getQualifiedFactoryInterfaceName()) + ".eINSTANCE.create" + genClass.getName() + "()"; >+ } else { >+ domainElementInstanceCreationCode = importManager.getImportedName(genClass.getGenPackage().getQualifiedFactoryInterfaceName()) + ".eINSTANCE.create(" + >+ importManager.getImportedName(genClass.getGenPackage().getQualifiedPackageInterfaceName()) + ".eINSTANCE.get" + genClass.getClassifierAccessorName() + "())"; >+ } >+ >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(nodeCreationTool.getCreateMethodName()); >+ stringBuffer.append(TEXT_18); >+ if (nodeCreationTool.getSmallIconPath() != null) { >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(palette.getFactoryClassName()); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(nodeCreationTool.getSmallIconPath()); >+ stringBuffer.append(TEXT_21); >+ } else { >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(domainElementInstanceCreationCode); >+ stringBuffer.append(TEXT_23); >+ } >+ stringBuffer.append(TEXT_24); >+ if (nodeCreationTool.getLargeIconPath() != null) { >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(palette.getFactoryClassName()); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(nodeCreationTool.getLargeIconPath()); >+ stringBuffer.append(TEXT_27); >+ } else { >+ stringBuffer.append(TEXT_28); >+ } >+ stringBuffer.append(TEXT_29); >+ >+ for (Iterator genNodesIterator = genNodes.iterator(); genNodesIterator.hasNext();) { >+ GenNode nextNode = (GenNode) genNodesIterator.next(); >+ >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(nextNode.getVisualID()); >+ if (genNodesIterator.hasNext()) { >+ stringBuffer.append(TEXT_31); >+ } >+ >+ } >+ >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.palette.CombinedTemplateCreationEntry")); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(nodeCreationTool.getTitleKey()); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(nodeCreationTool.getDescriptionKey()); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_39); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_40); >+ >+ } >+ List linkCreationTools = toolGroup.getLinkTools(); >+ for (int j = 0; j < linkCreationTools.size(); j++) { >+ LinkEntry linkCreationTool = (LinkEntry) linkCreationTools.get(j); >+ List genLinks = linkCreationTool.getGenLink(); >+ GenLink firstGenLink = (GenLink) genLinks.get(0); >+ LinkModelFacet linkModelFacet = firstGenLink.getModelFacet(); >+ final String domainElementInstanceCreationCode; >+ if (linkModelFacet instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet typeLinkModelFacet = (TypeLinkModelFacet) linkModelFacet; >+ GenClass genClass = typeLinkModelFacet.getMetaClass(); >+ domainElementInstanceCreationCode = importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedFactoryInterfaceName()) + ".eINSTANCE.create" + genClass.getName() + "()"; >+ } else { >+ domainElementInstanceCreationCode = "null"; >+ } >+ >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(linkCreationTool.getCreateMethodName()); >+ stringBuffer.append(TEXT_42); >+ if (linkCreationTool.getSmallIconPath() != null) { >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(palette.getFactoryClassName()); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(linkCreationTool.getSmallIconPath()); >+ stringBuffer.append(TEXT_45); >+ } else { >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(domainElementInstanceCreationCode); >+ stringBuffer.append(TEXT_47); >+ } >+ stringBuffer.append(TEXT_48); >+ if (linkCreationTool.getLargeIconPath() != null) { >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(palette.getFactoryClassName()); >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(linkCreationTool.getLargeIconPath()); >+ stringBuffer.append(TEXT_51); >+ } else { >+ stringBuffer.append(TEXT_52); >+ } >+ stringBuffer.append(TEXT_53); >+ >+ for (Iterator genLinksIterator = genLinks.iterator(); genLinksIterator.hasNext();) { >+ GenLink nextLink = (GenLink) genLinksIterator.next(); >+ >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(nextLink.getVisualID()); >+ if (genLinksIterator.hasNext()) { >+ stringBuffer.append(TEXT_55); >+ } >+ >+ } >+ >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(linkCreationTool.getTitleKey()); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(linkCreationTool.getDescriptionKey()); >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")); >+ stringBuffer.append(TEXT_59); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateConnectionRequest")); >+ stringBuffer.append(TEXT_62); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/adapters/propertySource.javajetinc >=================================================================== >RCS file: templates/parts/adapters/propertySource.javajetinc >diff -N templates/parts/adapters/propertySource.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/adapters/propertySource.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,14 @@ >+/* >+ if (<%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertySource")%>.class == key) { >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> element = ((View)getModel()).getElement(); >+ if (element == null) { >+ return null; >+ } >+ <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertySource")%> itemPropertySource = (<%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertySource")%>) >+ <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().getItemProvidersAdapterFactory().adapt(element, <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertySource")%>.class); >+ if (itemPropertySource == null) { >+ return null; >+ } >+ return new <%=importManager.getImportedName("org.eclipse.emf.edit.ui.provider.PropertySource")%>(element, itemPropertySource); >+ } >+*/ >Index: templates/parts/directEdit.javajetinc >=================================================================== >RCS file: templates/parts/directEdit.javajetinc >diff -N templates/parts/directEdit.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/directEdit.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,38 @@ >+ /** >+ * @generated >+ */ >+ public void performRequest(<%=importManager.getImportedName("org.eclipse.gef.Request")%> req) { >+ if (<%=importManager.getImportedName("org.eclipse.gef.RequestConstants")%>.REQ_DIRECT_EDIT == req.getType()) { >+ performDirectEdit(); >+ } else { >+ super.performRequest(req); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")%> getManager() { >+ if (manager == null) { >+ manager = new <%=importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")%>(this, <%=importManager.getImportedName("org.eclipse.jface.viewers.TextCellEditor")%>.class, new <%=importManager.getImportedName("org.eclipse.gef.tools.CellEditorLocator")%>() { >+ public void relocate(<%=importManager.getImportedName("org.eclipse.jface.viewers.CellEditor")%> celleditor) { >+ <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%> rect = getLabel().getTextBounds(); >+ getLabel().translateToAbsolute(rect); >+ celleditor.getControl().setBounds(rect.x, rect.y, rect.width, rect.height); >+ } >+ }) { >+ protected void initCellEditor() { >+ getCellEditor().setValue(getLabelEditText()); >+ } >+ }; >+ } >+ return manager; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void performDirectEdit() { >+ getManager().show(); >+ } >+ >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LabelViewFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LabelViewFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LabelViewFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LabelViewFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,96 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class LabelViewFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized LabelViewFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ LabelViewFactoryGenerator result = new LabelViewFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void decorateView("; >+ protected final String TEXT_6 = " view) {"; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = " annotation = "; >+ protected final String TEXT_9 = ".eINSTANCE.createEAnnotation();" + NL + "annotation.setSource(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "view.getEAnnotations().add(annotation);" + NL + "annotation.getDetails().put(\"modelID\", \""; >+ protected final String TEXT_10 = "\"); //$NON-NLS-1$" + NL + "annotation.getDetails().put(\"visualID\", \""; >+ protected final String TEXT_11 = "\"); //$NON-NLS-1$"; >+ protected final String TEXT_12 = NL + "\t\tview.setType(\""; >+ protected final String TEXT_13 = "SemanticHint\");"; >+ protected final String TEXT_14 = NL + "\t\t"; >+ protected final String TEXT_15 = " location = "; >+ protected final String TEXT_16 = ".eINSTANCE.createLocation();" + NL + "\t\t(("; >+ protected final String TEXT_17 = ")view).setLayoutConstraint(location);"; >+ protected final String TEXT_18 = NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenCommonBase genElement = (GenCommonBase) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genElement.getNotationViewFactoryClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EcoreFactory")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genDiagram.getEditorGen().getModelID()); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genElement.getVisualID()); >+ stringBuffer.append(TEXT_11); >+ >+if (genElement instanceof GenLabel) { >+ >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(genElement.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_13); >+ >+}/*genElement is a pure label*/ >+if (genElement instanceof GenLinkLabel) { >+ >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Location")); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_17); >+ >+} >+ >+ stringBuffer.append(TEXT_18); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: src/org/eclipse/gmf/internal/codegen/lite/CodegenEmitters.java >=================================================================== >RCS file: src/org/eclipse/gmf/internal/codegen/lite/CodegenEmitters.java >diff -N src/org/eclipse/gmf/internal/codegen/lite/CodegenEmitters.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/internal/codegen/lite/CodegenEmitters.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,272 @@ >+/* >+ * Copyright (c) 2005 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: >+ * Artem Tikhomirov (Borland) - initial API and implementation >+ */ >+package org.eclipse.gmf.internal.codegen.lite; >+ >+import java.net.URL; >+ >+import org.eclipse.emf.codegen.jet.JETCompiler; >+import org.eclipse.emf.codegen.jet.JETEmitter; >+import org.eclipse.emf.codegen.jet.JETException; >+import org.eclipse.emf.common.util.URI; >+import org.eclipse.gmf.common.UnexpectedBehaviourException; >+import org.eclipse.gmf.common.codegen.GIFEmitter; >+import org.eclipse.gmf.internal.codegen.dispatch.EmitterFactory; >+import org.eclipse.gmf.internal.codegen.dispatch.NoSuchTemplateException; >+import org.eclipse.gmf.internal.codegen.dispatch.StaticTemplateRegistry; >+ >+import org.eclipse.gmf.codegen.templates.lite.editor.ActionBarContributorGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.BuildPropertiesGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.CreationWizardGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.CreationWizardPageGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.DiagramEditorUtilGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.EditorGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.ManifestGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.PaletteFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.PluginGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.PluginPropertiesGenerator; >+import org.eclipse.gmf.codegen.templates.lite.editor.PluginXML; >+import org.eclipse.gmf.codegen.templates.lite.editor.VisualIDRegistryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.ChildNodeEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.CompartmentEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.DiagramEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.EditPartFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.LinkEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.LinkLabelEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.NodeEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.NodeLabelEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.parts.UpdatableEditPartGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.AbstractParserGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.CompartmentViewFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.DiagramViewFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.DomainElementInitializerGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.LabelViewFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.LinkViewFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.NodeViewFactoryGenerator; >+import org.eclipse.gmf.codegen.templates.lite.providers.PropertySourceProviderGenerator; >+import org.osgi.framework.Bundle; >+ >+/** >+ * Provides JET templates. >+ * FIXME Merge with {@link org.eclipse.gmf.codegen.util.CodegenEmitters} >+ * >+ * @author artem >+ */ >+public class CodegenEmitters { >+ >+ private final EmitterFactory myFactory; >+ >+ private final String[] myTemplatePath; >+ >+ private static StaticTemplateRegistry myRegistry; >+ >+ public CodegenEmitters(boolean usePrecompiled, String templateDirectory) { >+ myRegistry = initRegistry(); >+ String[] variables = new String[] { "org.eclipse.emf.codegen", "org.eclipse.emf.codegen.ecore", "org.eclipse.emf.common", "org.eclipse.emf.ecore", "org.eclipse.gmf.common", >+ "org.eclipse.gmf.codegen" }; >+ myTemplatePath = new String[] { >+ usePrecompiled ? null : templateDirectory != null && templateDirectory.indexOf(":") == -1 ? URI.createPlatformResourceURI(templateDirectory).toString() : templateDirectory, >+ getTemplatesBundle().getEntry("/templates/").toString() }; >+ myFactory = new EmitterFactory(getTemplatePath(), myRegistry, usePrecompiled, variables, true); >+ } >+ >+ private static StaticTemplateRegistry initRegistry() { >+ final StaticTemplateRegistry tr = new StaticTemplateRegistry(CodegenEmitters.class.getClassLoader()); >+ put(tr, "/providers/CompartmentViewFactory.javajet", CompartmentViewFactoryGenerator.class); >+ put(tr, "/providers/DiagramViewFactory.javajet", DiagramViewFactoryGenerator.class); >+ put(tr, "/providers/LabelViewFactory.javajet", LabelViewFactoryGenerator.class); >+ put(tr, "/providers/LinkViewFactory.javajet", LinkViewFactoryGenerator.class); >+ put(tr, "/providers/NodeViewFactory.javajet", NodeViewFactoryGenerator.class); >+ put(tr, "/parts/CompartmentEditPart.javajet", CompartmentEditPartGenerator.class); >+ put(tr, "/editor/CreationWizard.javajet", CreationWizardGenerator.class); >+ put(tr, "/editor/CreationWizardPage.javajet", CreationWizardPageGenerator.class); >+ put(tr, "/editor/DiagramEditorUtil.javajet", DiagramEditorUtilGenerator.class); >+ // put(tr, "/editor/MatchingStrategy.javajet", >+ // MatchingStrategyGenerator.class); >+ put(tr, "/editor/PaletteFactory.javajet", PaletteFactoryGenerator.class); >+ put(tr, "/editor/VisualIDRegistry.javajet", VisualIDRegistryGenerator.class); >+ put(tr, "/parts/DiagramEditPart.javajet", DiagramEditPartGenerator.class); >+ put(tr, "/parts/EditPartFactory.javajet", EditPartFactoryGenerator.class); >+ put(tr, "/parts/IUpdatableEditPart.javajet", UpdatableEditPartGenerator.class); >+ put(tr, "/providers/AbstractParser.javajet", AbstractParserGenerator.class); >+ put(tr, "/providers/DomainElementInitializer.javajet", DomainElementInitializerGenerator.class); >+ put(tr, "/providers/PropertySourceProvider.javajet", PropertySourceProviderGenerator.class); >+ put(tr, "/editor/ActionBarContributor.javajet", ActionBarContributorGenerator.class); >+ put(tr, "/editor/Editor.javajet", EditorGenerator.class); >+ put(tr, "/parts/LinkEditPart.javajet", LinkEditPartGenerator.class); >+ put(tr, "/parts/LinkLabelEditPart.javajet", LinkLabelEditPartGenerator.class); >+ put(tr, "/parts/ChildNodeEditPart.javajet", ChildNodeEditPartGenerator.class); >+ put(tr, "/parts/NodeEditPart.javajet", NodeEditPartGenerator.class); >+ put(tr, "/parts/NodeLabelEditPart.javajet", NodeLabelEditPartGenerator.class); >+ put(tr, "/editor/Plugin.javajet", PluginGenerator.class); >+ // put(tr, "/editor/ModelCreationFactory.javajet", ModelCreationFactoryGenerator.class); >+ put(tr, "/editor/manifest.mfjet", ManifestGenerator.class); >+ put(tr, "/editor/build.propertiesjet", BuildPropertiesGenerator.class); >+ put(tr, "/editor/plugin.xmljet", PluginXML.class); >+ put(tr, "/editor/plugin.propertiesjet", PluginPropertiesGenerator.class); >+ return tr; >+ } >+ >+ public JETEmitter getCompartmentViewFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(CompartmentViewFactoryGenerator.class); >+ } >+ >+ public JETEmitter getDiagramViewFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(DiagramViewFactoryGenerator.class); >+ } >+ >+ public JETEmitter getLabelViewFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(LabelViewFactoryGenerator.class); >+ } >+ >+ public JETEmitter getLinkViewFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(LinkViewFactoryGenerator.class); >+ } >+ >+ public JETEmitter getNodeViewFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(NodeViewFactoryGenerator.class); >+ } >+ >+ public JETEmitter getAbstractParserGenerator() throws UnexpectedBehaviourException { >+ return retrieve(AbstractParserGenerator.class); >+ } >+ >+ public JETEmitter getDomainElementInitializerGenerator() throws UnexpectedBehaviourException { >+ return retrieve(DomainElementInitializerGenerator.class); >+ } >+ >+ public JETEmitter getPropertySourceProviderGenerator() throws UnexpectedBehaviourException { >+ return retrieve(PropertySourceProviderGenerator.class); >+ } >+ >+ public JETEmitter getCompartmentEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(CompartmentEditPartGenerator.class); >+ } >+ >+ public JETEmitter getDiagramEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(DiagramEditPartGenerator.class); >+ } >+ >+ public JETEmitter getEditPartFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(EditPartFactoryGenerator.class); >+ } >+ >+ public JETEmitter getUpdatableEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(UpdatableEditPartGenerator.class); >+ } >+ >+ public JETEmitter getLinkEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(LinkEditPartGenerator.class); >+ } >+ >+ public JETEmitter getLinkLabelEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(LinkLabelEditPartGenerator.class); >+ } >+ >+ public JETEmitter getChildNodeEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(ChildNodeEditPartGenerator.class); >+ } >+ >+ public JETEmitter getNodeEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(NodeEditPartGenerator.class); >+ } >+ >+ public JETEmitter getNodeLabelEditPartGenerator() throws UnexpectedBehaviourException { >+ return retrieve(NodeLabelEditPartGenerator.class); >+ } >+ >+ public JETEmitter getPluginGenerator() throws UnexpectedBehaviourException { >+ return retrieve(PluginGenerator.class); >+ } >+ >+ public JETEmitter getActionBarContributorGenerator() throws UnexpectedBehaviourException { >+ return retrieve(ActionBarContributorGenerator.class); >+ } >+ >+ public JETEmitter getEditorGenerator() throws UnexpectedBehaviourException { >+ return retrieve(EditorGenerator.class); >+ } >+ >+ public JETEmitter getCreationWizardGenerator() throws UnexpectedBehaviourException { >+ return retrieve(CreationWizardGenerator.class); >+ } >+ >+ public JETEmitter getCreationWizardPageGenerator() throws UnexpectedBehaviourException { >+ return retrieve(CreationWizardPageGenerator.class); >+ } >+ >+ public JETEmitter getDiagramEditorUtilGenerator() throws UnexpectedBehaviourException { >+ return retrieve(DiagramEditorUtilGenerator.class); >+ } >+ >+ public JETEmitter getPaletteFactoryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(PaletteFactoryGenerator.class); >+ } >+ >+ public JETEmitter getVisualIDRegistryGenerator() throws UnexpectedBehaviourException { >+ return retrieve(VisualIDRegistryGenerator.class); >+ } >+ >+ public JETEmitter getManifestGenerator() throws UnexpectedBehaviourException { >+ return retrieve(ManifestGenerator.class); >+ } >+ >+ public JETEmitter getBuildPropertiesGenerator() throws UnexpectedBehaviourException { >+ return retrieve(BuildPropertiesGenerator.class); >+ } >+ >+ public JETEmitter getPluginXML() throws UnexpectedBehaviourException { >+ return retrieve(PluginXML.class); >+ } >+ >+ public JETEmitter getPluginPropertiesGenerator() throws UnexpectedBehaviourException { >+ return retrieve(PluginPropertiesGenerator.class); >+ } >+ >+ /** >+ * @see #retrieve(Class) >+ */ >+ private static void put(StaticTemplateRegistry tr, String path, Class precompiledTemplate) { >+ tr.put(precompiledTemplate, path, precompiledTemplate); >+ } >+ >+ /** >+ * depends on {@link #put(StaticTemplateRegistry, String, Class) } impl - >+ * class object of precompiled template serves as a key >+ */ >+ private JETEmitter retrieve(Class key) throws UnexpectedBehaviourException { >+ try { >+ return myFactory.acquireEmitter(key); >+ } catch (NoSuchTemplateException ex) { >+ throw new UnexpectedBehaviourException(ex.getMessage(), ex); >+ } >+ } >+ >+ private String[] getTemplatePath() { >+ return myTemplatePath; >+ } >+ >+ private static Bundle getTemplatesBundle() { >+ return Activator.getDefault(); >+ } >+ >+ public URL getJMergeControlFile() { >+ return getTemplatesBundle().getEntry("/templates/emf-merge.xml"); >+ } >+ >+ public GIFEmitter getShortcutImageEmitter() throws JETException { >+ String templateLocation = JETCompiler.find(getTemplatePath(), "/editor/shortcut.gif"); >+ if (templateLocation == null) { >+ throw new JETException("shortcut image template not found"); >+ } >+ return new GIFEmitter(templateLocation); >+ } >+} >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkLabelEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkLabelEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkLabelEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/LinkLabelEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,807 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import java.util.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.emf.ecore.*; >+ >+public class LinkLabelEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized LinkLabelEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ LinkLabelEditPartGenerator result = new LinkLabelEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " extends "; >+ protected final String TEXT_6 = " {"; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_9 = " manager;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate String defaultText;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_10 = "(View view) {" + NL + "\t\tassert view instanceof Node;" + NL + "\t\tsetModel(view);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate Node getDiagramNode() {" + NL + "\t\treturn (Node)getModel();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {"; >+ protected final String TEXT_11 = NL + "\t\tinstallEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new "; >+ protected final String TEXT_12 = "() {" + NL + "\t\t\tpublic EditPart getHost() {" + NL + "\t\t\t\treturn getUpdatableParent();" + NL + "\t\t\t}" + NL + "\t\t});"; >+ protected final String TEXT_13 = NL; >+ protected final String TEXT_14 = "\t\tinstallEditPolicy("; >+ protected final String TEXT_15 = ".DIRECT_EDIT_ROLE," + NL + "\t\t\t\tnew "; >+ protected final String TEXT_16 = "() {" + NL + "\t\t\t\t\tprotected void showCurrentEditValue("; >+ protected final String TEXT_17 = " request) {" + NL + "\t\t\t\t\t\tString value = (String) request.getCellEditor().getValue();" + NL + "\t\t\t\t\t\tgetLabel().setText(value);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tprotected "; >+ protected final String TEXT_18 = " getDirectEditCommand("; >+ protected final String TEXT_19 = " request) {" + NL + "\t\t\t\t\t\tString value = (String) request.getCellEditor().getValue();" + NL + "\t\t\t\t\t\tif (value == null) {" + NL + "\t\t\t\t\t\t\t//Invalid value is transformed into a null by the validator." + NL + "\t\t\t\t\t\t\t//XXX: implement validator" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_20 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\tfinal Object[] parseResult;" + NL + "\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\tparseResult = new "; >+ protected final String TEXT_21 = "(EDIT_PATTERN).parse(value);" + NL + "\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_22 = ".INSTANCE;" + NL + "\t\t\t\t\t\t} catch ("; >+ protected final String TEXT_23 = " e) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_24 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}"; >+ protected final String TEXT_25 = NL + "\t\t\t\t\t\tif (parseResult.length != 1) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_26 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn new "; >+ protected final String TEXT_27 = "() {" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_28 = " element = "; >+ protected final String TEXT_29 = ";" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_30 = " domainModelCommand = createDomainModelCommand();" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_31 = " createDomainModelCommand() {" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_32 = " domainModelEditDomain = "; >+ protected final String TEXT_33 = ".getEditingDomainFor("; >+ protected final String TEXT_34 = ".getDiagram().getElement());" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_35 = " feature = ("; >+ protected final String TEXT_36 = ") "; >+ protected final String TEXT_37 = ".eINSTANCE.get"; >+ protected final String TEXT_38 = "();" + NL + "\t\t\t\t\t\t\t\tObject valueToSet;" + NL + "\t\t\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\t\t\tvalueToSet = "; >+ protected final String TEXT_39 = ".parseValue(feature, parseResult[0]);" + NL + "\t\t\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_40 = ".INSTANCE;" + NL + "\t\t\t\t\t\t\t\t}"; >+ protected final String TEXT_41 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_42 = " result = new "; >+ protected final String TEXT_43 = "();" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_44 = " values = new "; >+ protected final String TEXT_45 = "();" + NL + "\t\t\t\t\t\t\t\tvalues.addAll(element.get"; >+ protected final String TEXT_46 = "());" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_47 = ".create(domainModelEditDomain, element, feature, values));" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_48 = ".create(domainModelEditDomain, element, feature, valueToSet));" + NL + "\t\t\t\t\t\t\t\treturn result;"; >+ protected final String TEXT_49 = NL + "\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_50 = ".create(domainModelEditDomain, element, feature, valueToSet);"; >+ protected final String TEXT_51 = NL + "\t\t\t\t\t\t\t}"; >+ protected final String TEXT_52 = NL + "\t\t\t\t\t\tif (parseResult.length != "; >+ protected final String TEXT_53 = ") {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_54 = ".INSTANCE;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn new "; >+ protected final String TEXT_55 = "() {" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_56 = " element = "; >+ protected final String TEXT_57 = ";" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_58 = " domainModelCommand = createDomainModelCommand();" + NL + "\t\t\t\t\t\t\tprivate "; >+ protected final String TEXT_59 = " createDomainModelCommand() {" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_60 = " domainModelEditDomain = "; >+ protected final String TEXT_61 = ".getEditingDomainFor("; >+ protected final String TEXT_62 = ".getDiagram().getElement());" + NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_63 = " result = new "; >+ protected final String TEXT_64 = "();" + NL + "\t\t\t\t\t\t\t\tObject valueToSet;"; >+ protected final String TEXT_65 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_66 = " "; >+ protected final String TEXT_67 = "feature = ("; >+ protected final String TEXT_68 = ") "; >+ protected final String TEXT_69 = ".eINSTANCE.get"; >+ protected final String TEXT_70 = "();" + NL + "\t\t\t\t\t\t\t\ttry {" + NL + "\t\t\t\t\t\t\t\t\tvalueToSet = "; >+ protected final String TEXT_71 = ".parseValue(feature, parseResult["; >+ protected final String TEXT_72 = "]);" + NL + "\t\t\t\t\t\t\t\t} catch (IllegalArgumentException e) {" + NL + "\t\t\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_73 = ".INSTANCE;" + NL + "\t\t\t\t\t\t\t\t}"; >+ protected final String TEXT_74 = NL + "\t\t\t\t\t\t\t\t"; >+ protected final String TEXT_75 = " "; >+ protected final String TEXT_76 = "values = new "; >+ protected final String TEXT_77 = "();" + NL + "\t\t\t\t\t\t\t\tvalues.addAll(element.get"; >+ protected final String TEXT_78 = "());" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_79 = ".create(domainModelEditDomain, element, feature, values));" + NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_80 = ".create(domainModelEditDomain, element, feature, valueToSet));"; >+ protected final String TEXT_81 = NL + "\t\t\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_82 = ".create(domainModelEditDomain, element, feature, valueToSet));"; >+ protected final String TEXT_83 = NL + "\t\t\t\t\t\t\t\treturn result;" + NL + "\t\t\t\t\t\t\t}"; >+ protected final String TEXT_84 = NL + "\t\t\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\t\t\tdomainModelCommand.undo();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\t\t\tdomainModelCommand.execute();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\t\t\treturn element != null && domainModelCommand != null && domainModelCommand.canUndo();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\t\t\treturn element != null && domainModelCommand != null && domainModelCommand.canExecute();" + NL + "\t\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\t};" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t});"; >+ protected final String TEXT_85 = NL + "\t}" + NL; >+ protected final String TEXT_86 = NL; >+ protected final String TEXT_87 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void performRequest("; >+ protected final String TEXT_88 = " req) {" + NL + "\t\tif ("; >+ protected final String TEXT_89 = ".REQ_DIRECT_EDIT == req.getType()) {" + NL + "\t\t\tperformDirectEdit();" + NL + "\t\t} else {" + NL + "\t\t\tsuper.performRequest(req);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_90 = " getManager() {" + NL + "\t\tif (manager == null) {" + NL + "\t\t\tmanager = new "; >+ protected final String TEXT_91 = "(this, "; >+ protected final String TEXT_92 = ".class, new "; >+ protected final String TEXT_93 = "() {" + NL + "\t\t\t\tpublic void relocate("; >+ protected final String TEXT_94 = " celleditor) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_95 = " rect = getLabel().getTextBounds();" + NL + "\t\t\t\t\tgetLabel().translateToAbsolute(rect);" + NL + "\t\t\t\t\tcelleditor.getControl().setBounds(rect.x, rect.y, rect.width, rect.height);" + NL + "\t\t\t\t}" + NL + "\t\t\t}) {" + NL + "\t\t\t\tprotected void initCellEditor() {" + NL + "\t\t\t\t\tgetCellEditor().setValue(getLabelEditText());" + NL + "\t\t\t\t}" + NL + "\t\t\t};" + NL + "\t\t}" + NL + "\t\treturn manager;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void performDirectEdit() {" + NL + "\t\tgetManager().show();" + NL + "\t}" + NL; >+ protected final String TEXT_96 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisuals() {" + NL + "\t\tsuper.refreshVisuals();" + NL + "\t\trefreshLabel();" + NL + "\t\trefreshFont();" + NL + "\t\trefreshFontColor();" + NL + "\t\trefreshBounds();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshBounds() {" + NL + "\t\tNode node = getDiagramNode();" + NL + "\t\tassert node.getLayoutConstraint() instanceof Location;" + NL + "\t\tfinal Location location = (Location) node.getLayoutConstraint();" + NL + "\t\t(("; >+ protected final String TEXT_97 = ") getParent()).setLayoutConstraint(this," + NL + "\t\t\t\tgetFigure(), new "; >+ protected final String TEXT_98 = "() {" + NL + "\t\t\t\t\tprotected "; >+ protected final String TEXT_99 = " getReferencePoint() {" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_100 = " parent = getUpdatableParent();" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_101 = " connection = ("; >+ protected final String TEXT_102 = ") parent.getFigure();" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_103 = " midPoint = connection.getPoints().getMidpoint().getCopy();" + NL + "\t\t\t\t\t\tconnection.translateToAbsolute(midPoint);" + NL + "\t\t\t\t\t\treturn midPoint.translate(new "; >+ protected final String TEXT_104 = "(location.getX(), location.getY()));" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t});" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshLabel() {" + NL + "\t\tgetLabel().setText(getLabelText());" + NL + "\t}" + NL; >+ protected final String TEXT_105 = NL; >+ protected final String TEXT_106 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final String VIEW_PATTERN = \""; >+ protected final String TEXT_107 = "\";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final String EDIT_PATTERN = \""; >+ protected final String TEXT_108 = "\";" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getLabelText() {" + NL + "\t\t"; >+ protected final String TEXT_109 = " element = "; >+ protected final String TEXT_110 = ";" + NL + "\t\tif (element == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}" + NL + "\t\treturn buildTextByPattern(element, VIEW_PATTERN);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String getLabelEditText() {" + NL + "\t\t"; >+ protected final String TEXT_111 = " element = "; >+ protected final String TEXT_112 = ";" + NL + "\t\tif (element == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}" + NL + "\t\treturn buildTextByPattern(element, EDIT_PATTERN);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected String buildTextByPattern("; >+ protected final String TEXT_113 = " element, String pattern) {"; >+ protected final String TEXT_114 = NL + "\t\tif (element.get"; >+ protected final String TEXT_115 = "() == null) {" + NL + "\t\t\treturn defaultText;" + NL + "\t\t}"; >+ protected final String TEXT_116 = NL + "\t\treturn "; >+ protected final String TEXT_117 = ".format(pattern, new Object[] {"; >+ protected final String TEXT_118 = NL + "\t\t\t"; >+ protected final String TEXT_119 = NL + "\t\t});"; >+ protected final String TEXT_120 = NL + "\t\treturn "; >+ protected final String TEXT_121 = ".format(pattern, new Object[] {"; >+ protected final String TEXT_122 = NL + "\t\t"; >+ protected final String TEXT_123 = ","; >+ protected final String TEXT_124 = NL + "\t\t});"; >+ protected final String TEXT_125 = NL + "\t\t//XXX: unexpected model facet." + NL + "\t\treturn defaultText;"; >+ protected final String TEXT_126 = NL + "\t}"; >+ protected final String TEXT_127 = NL; >+ protected final String TEXT_128 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFont() {" + NL + "\t\t"; >+ protected final String TEXT_129 = " style =" + NL + "\t\t\t("; >+ protected final String TEXT_130 = ") "; >+ protected final String TEXT_131 = ".getStyle(" + NL + "\t\t\t\t"; >+ protected final String TEXT_132 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_133 = " toDispose = createdFont;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tString fontName = style.getFontName();" + NL + "\t\t\tint fontHeight = style.getFontHeight();" + NL + "\t\t\tint fontStyle = "; >+ protected final String TEXT_134 = ".NORMAL;" + NL + "\t\t\tif (style.isBold()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_135 = ".BOLD;" + NL + "\t\t\t}" + NL + "\t\t\tif (style.isItalic()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_136 = ".ITALIC;" + NL + "\t\t\t}" + NL + "\t\t\t"; >+ protected final String TEXT_137 = " currentFont = getFigure().getFont();" + NL + "\t\t\tif (currentFont != null) {" + NL + "\t\t\t\t"; >+ protected final String TEXT_138 = " currentFontData = currentFont.getFontData()[0];" + NL + "\t\t\t\tif (currentFontData.getName().equals(fontName) && currentFontData.getHeight() == fontHeight && currentFontData.getStyle() == fontStyle) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFont = new "; >+ protected final String TEXT_139 = "(null, fontName, fontHeight, fontStyle);" + NL + "\t\t\tgetFigure().setFont(createdFont);" + NL + "\t\t} else {" + NL + "\t\t\t//revert to the default font" + NL + "\t\t\tgetFigure().setFont(getViewer().getControl().getFont());" + NL + "\t\t\tcreatedFont = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The font (created by {@link #refreshFont()}) currently assigned to the label (unless the default font is assigned)." + NL + "\t * Whenever another non-default font is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_140 = " createdFont;"; >+ protected final String TEXT_141 = NL; >+ protected final String TEXT_142 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFontColor() {" + NL + "\t\t"; >+ protected final String TEXT_143 = " style = ("; >+ protected final String TEXT_144 = ") "; >+ protected final String TEXT_145 = ".getStyle("; >+ protected final String TEXT_146 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_147 = " toDispose = createdFontColor;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tint fontColor = style.getFontColor();" + NL + "\t\t\tint red = fontColor & 0x000000FF;" + NL + "\t\t\tint green = (fontColor & 0x0000FF00) >> 8;" + NL + "\t\t\tint blue = (fontColor & 0x00FF0000) >> 16;" + NL + "\t\t\t"; >+ protected final String TEXT_148 = " currentColor = getLabel().getForegroundColor();" + NL + "\t\t\tif (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFontColor = new "; >+ protected final String TEXT_149 = "(null, red, green, blue);" + NL + "\t\t\tgetFigure().setForegroundColor(createdFontColor);" + NL + "\t\t} else {" + NL + "\t\t\tgetFigure().setForegroundColor(getViewer().getControl().getForeground());" + NL + "\t\t\tcreatedFontColor = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The color (created by {@link #refreshFontColor()}) currently assigned to the label." + NL + "\t * Whenever another color is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_150 = " createdFontColor;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_151 = " resolveSemanticElement() {" + NL + "\t\tfor(EditPart editPart = this; editPart != null; editPart = editPart.getParent()) {" + NL + "\t\t\tView view = (View)editPart.getModel();" + NL + "\t\t\tif (view != null && view.getElement() != null) {" + NL + "\t\t\t\treturn ("; >+ protected final String TEXT_152 = ") view.getElement();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_153 = " getUpdatableParent() {" + NL + "\t\tfor(EditPart editPart = getParent(); editPart != null; editPart = editPart.getParent()) {" + NL + "\t\t\tif (editPart instanceof "; >+ protected final String TEXT_154 = ") {" + NL + "\t\t\t\treturn ("; >+ protected final String TEXT_155 = ") editPart;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void activate() {" + NL + "\t\tsuper.activate();" + NL + "\t\t"; >+ protected final String TEXT_156 = " updatableParent = getUpdatableParent();" + NL + "\t\tif (updatableParent != null) {" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_157 = ".eINSTANCE.getFontStyle_FontColor(), fontColorRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_158 = ".eINSTANCE.getFontStyle_FontHeight(), fontRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_159 = ".eINSTANCE.getFontStyle_FontName(), fontRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_160 = ".eINSTANCE.getFontStyle_Bold(), fontRefresher);" + NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_161 = ".eINSTANCE.getFontStyle_Italic(), fontRefresher);"; >+ protected final String TEXT_162 = NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_163 = ".eINSTANCE.get"; >+ protected final String TEXT_164 = "(), labelRefresher);"; >+ protected final String TEXT_165 = NL + "\t\t\tupdatableParent.addRefresher("; >+ protected final String TEXT_166 = ".eINSTANCE.get"; >+ protected final String TEXT_167 = "(), labelRefresher);"; >+ protected final String TEXT_168 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void deactivate() {" + NL + "\t\tsuper.deactivate();" + NL + "\t\t"; >+ protected final String TEXT_169 = " updatableParent = getUpdatableParent();" + NL + "\t\tif (updatableParent != null) {" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_170 = ".eINSTANCE.getFontStyle_FontColor(), fontColorRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_171 = ".eINSTANCE.getFontStyle_FontHeight(), fontRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_172 = ".eINSTANCE.getFontStyle_FontName(), fontRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_173 = ".eINSTANCE.getFontStyle_Bold(), fontRefresher);" + NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_174 = ".eINSTANCE.getFontStyle_Italic(), fontRefresher);"; >+ protected final String TEXT_175 = NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_176 = ".eINSTANCE.get"; >+ protected final String TEXT_177 = "(), labelRefresher);"; >+ protected final String TEXT_178 = NL + "\t\t\tupdatableParent.removeRefresher("; >+ protected final String TEXT_179 = ".eINSTANCE.get"; >+ protected final String TEXT_180 = "(), labelRefresher);"; >+ protected final String TEXT_181 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IUpdatableEditPart.Refresher labelRefresher = new IUpdatableEditPart.Refresher() {" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\trefreshLabel();" + NL + "\t\t}" + NL + "\t};" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IUpdatableEditPart.Refresher fontColorRefresher = new IUpdatableEditPart.Refresher() {" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\trefreshFontColor();" + NL + "\t\t}" + NL + "\t};" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate IUpdatableEditPart.Refresher fontRefresher = new IUpdatableEditPart.Refresher() {" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\trefreshFont();" + NL + "\t\t}" + NL + "\t};" + NL; >+ protected final String TEXT_182 = NL; >+ protected final String TEXT_183 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_184 = " createFigure() {" + NL + "\t\t"; >+ protected final String TEXT_185 = " label = createLabel();" + NL + "\t\tdefaultText = label.getText();" + NL + "\t\treturn label;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_186 = " createLabel() {"; >+ protected final String TEXT_187 = NL + "\t\treturn new "; >+ protected final String TEXT_188 = "();"; >+ protected final String TEXT_189 = NL + "\t\treturn "; >+ protected final String TEXT_190 = ";"; >+ protected final String TEXT_191 = NL + "\t\treturn new "; >+ protected final String TEXT_192 = "();"; >+ protected final String TEXT_193 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_194 = " getLabel() {" + NL + "\t\treturn ("; >+ protected final String TEXT_195 = ") getFigure();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setLabel("; >+ protected final String TEXT_196 = " figure) {" + NL + "\t\tunregisterVisuals();" + NL + "\t\tsetFigure(figure);" + NL + "\t\tdefaultText = figure.getText();" + NL + "\t\tregisterVisuals();" + NL + "\t\trefreshVisuals();" + NL + "\t}" + NL; >+ protected final String TEXT_197 = NL; >+ protected final String TEXT_198 = NL; >+ protected final String TEXT_199 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class MapModeWorkaround {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int DPtoLP(int dp) {" + NL + "\t\t\treturn dp;" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static MapModeWorkaround INSTANCE = new MapModeWorkaround();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate MapModeWorkaround getMapMode() {" + NL + "\t\treturn MapModeWorkaround.INSTANCE;" + NL + "\t}"; >+ protected final String TEXT_200 = NL + "}"; >+ protected final String TEXT_201 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenLinkLabel genLabel = (GenLinkLabel) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+GenLink genHost = genLabel.getLink(); >+GenDiagram genDiagram = genLabel.getDiagram(); >+LabelModelFacet labelModelFacet = genLabel.getModelFacet(); >+GenClass underlyingMetaClass; >+if (genHost.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet typeLinkModelFacet = (TypeLinkModelFacet) genHost.getModelFacet(); >+ underlyingMetaClass = typeLinkModelFacet.getMetaClass(); >+} else if (genHost.getModelFacet() instanceof FeatureLinkModelFacet) { >+ FeatureLinkModelFacet featureLinkModelFacet = (FeatureLinkModelFacet) genHost.getModelFacet(); >+ underlyingMetaClass = featureLinkModelFacet.getMetaFeature().getTypeGenClass(); >+} else { >+ underlyingMetaClass = null; >+} >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.draw2d.geometry.Point"); >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Location"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Node"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genLabel.getEditPartClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genLabel.getEditPartClassName()); >+ stringBuffer.append(TEXT_10); >+ >+final String primaryView = "getUpdatableParent().getDiagramEdge()"; >+final String resolvedSemanticElement = "resolveSemanticElement()"; >+ >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy")); >+ stringBuffer.append(TEXT_12); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet == true || labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.DirectEditPolicy")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("java.text.ParseException")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_24); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet && !genLabel.isReadOnly()) { >+ GenFeature featureToSet = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ EStructuralFeature ecoreFeature = featureToSet.getEcoreFeature(); >+ >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName(featureToSet.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(featureToSet.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())); >+ stringBuffer.append(TEXT_39); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_40); >+ >+ if (ecoreFeature.isMany()) { >+ >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.EList")); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_45); >+ stringBuffer.append(featureToSet.getAccessorName()); >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")); >+ stringBuffer.append(TEXT_48); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_50); >+ >+ } >+ >+ stringBuffer.append(TEXT_51); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ List metaFeatures = compositeFeatureLabelModelFacet.getMetaFeatures(); >+ >+ stringBuffer.append(TEXT_52); >+ stringBuffer.append(metaFeatures.size()); >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.Command")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_63); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_64); >+ >+ boolean haveDeclaredValues = false; >+ for(int i = 0; i < metaFeatures.size(); i++) { >+ GenFeature nextFeatureToSet = (GenFeature) metaFeatures.get(i); >+ EStructuralFeature nextEcoreFeature = nextFeatureToSet.getEcoreFeature(); >+ >+ stringBuffer.append(TEXT_65); >+ if (i == 0) { >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_66); >+ } >+ stringBuffer.append(TEXT_67); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")); >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(importManager.getImportedName(nextFeatureToSet.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_69); >+ stringBuffer.append(nextFeatureToSet.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())); >+ stringBuffer.append(TEXT_71); >+ stringBuffer.append(i); >+ stringBuffer.append(TEXT_72); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")); >+ stringBuffer.append(TEXT_73); >+ >+ if (nextEcoreFeature.isMany()) { >+ >+ stringBuffer.append(TEXT_74); >+ if (!haveDeclaredValues) { haveDeclaredValues = true; >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.EList")); >+ stringBuffer.append(TEXT_75); >+ } >+ stringBuffer.append(TEXT_76); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")); >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(nextFeatureToSet.getAccessorName()); >+ stringBuffer.append(TEXT_78); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_79); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")); >+ stringBuffer.append(TEXT_80); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_81); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_82); >+ >+ } >+ >+ >+ } >+ >+ stringBuffer.append(TEXT_83); >+ >+} >+ >+ stringBuffer.append(TEXT_84); >+ >+} >+ >+ stringBuffer.append(TEXT_85); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet == true || labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_88); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")); >+ stringBuffer.append(TEXT_91); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.viewers.TextCellEditor")); >+ stringBuffer.append(TEXT_92); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.tools.CellEditorLocator")); >+ stringBuffer.append(TEXT_93); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.viewers.CellEditor")); >+ stringBuffer.append(TEXT_94); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_95); >+ >+} >+ >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); >+ stringBuffer.append(TEXT_97); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.AbstractLocator")); >+ stringBuffer.append(TEXT_98); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_100); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Connection")); >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Connection")); >+ stringBuffer.append(TEXT_102); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_103); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_104); >+ stringBuffer.append(TEXT_105); >+ >+/*genFeature.getObjectType() throws NPE on primitive types. This is a workaround. */ >+HashMap primitiveTypeToWrapperClassName = new HashMap(); >+primitiveTypeToWrapperClassName.put(Boolean.TYPE, "Boolean"); >+primitiveTypeToWrapperClassName.put(Byte.TYPE, "Byte"); >+primitiveTypeToWrapperClassName.put(Character.TYPE, "Character"); >+primitiveTypeToWrapperClassName.put(Double.TYPE, "Double"); >+primitiveTypeToWrapperClassName.put(Float.TYPE, "Float"); >+primitiveTypeToWrapperClassName.put(Integer.TYPE, "Integer"); >+primitiveTypeToWrapperClassName.put(Long.TYPE, "Long"); >+primitiveTypeToWrapperClassName.put(Short.TYPE, "Short"); >+String viewPattern = null; >+String editPattern = null; >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ viewPattern = featureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ viewPattern = "{0}"; >+ } >+ editPattern = featureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ editPattern = "{0}"; >+ } >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ viewPattern = compositeFeatureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ viewPattern = patternBuffer.toString().trim(); >+ } >+ editPattern = compositeFeatureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ editPattern = patternBuffer.toString().trim(); >+ } >+} >+ >+ stringBuffer.append(TEXT_106); >+ stringBuffer.append(viewPattern); >+ stringBuffer.append(TEXT_107); >+ stringBuffer.append(editPattern); >+ stringBuffer.append(TEXT_108); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_109); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_110); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_111); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_112); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_113); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ GenFeature feature = featureLabelModelFacet.getMetaFeature(); >+ if (!feature.isPrimitiveType()) { >+ >+ stringBuffer.append(TEXT_114); >+ stringBuffer.append(feature.getCapName()); >+ stringBuffer.append(TEXT_115); >+ >+ } >+ >+ stringBuffer.append(TEXT_116); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_117); >+ >+ String value = "element.get" + feature.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (feature.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(feature.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+ >+ stringBuffer.append(TEXT_118); >+ stringBuffer.append(value); >+ stringBuffer.append(TEXT_119); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ >+ stringBuffer.append(TEXT_120); >+ stringBuffer.append(importManager.getImportedName("java.text.MessageFormat")); >+ stringBuffer.append(TEXT_121); >+ >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ String value = "element.get" + next.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (next.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(next.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+ >+ stringBuffer.append(TEXT_122); >+ stringBuffer.append(value); >+ if (it.hasNext()) { >+ stringBuffer.append(TEXT_123); >+ } >+ >+ } >+ >+ stringBuffer.append(TEXT_124); >+ >+} else { >+ >+ stringBuffer.append(TEXT_125); >+ >+} >+ >+ stringBuffer.append(TEXT_126); >+ stringBuffer.append(TEXT_127); >+ stringBuffer.append(TEXT_128); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_129); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_130); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_131); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_132); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_133); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_134); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_135); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_136); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_137); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.FontData")); >+ stringBuffer.append(TEXT_138); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_139); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_140); >+ stringBuffer.append(TEXT_141); >+ stringBuffer.append(TEXT_142); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_143); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_144); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_145); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_146); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_147); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_148); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_149); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_150); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_151); >+ stringBuffer.append(importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_152); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_153); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_154); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_155); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_156); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_157); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_158); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_159); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_160); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_161); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ >+ stringBuffer.append(TEXT_162); >+ stringBuffer.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_163); >+ stringBuffer.append(feature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_164); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ >+ stringBuffer.append(TEXT_165); >+ stringBuffer.append(importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_166); >+ stringBuffer.append(next.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_167); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_168); >+ stringBuffer.append(importManager.getImportedName(genHost.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_169); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_170); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_171); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_172); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_173); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_174); >+ >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ >+ stringBuffer.append(TEXT_175); >+ stringBuffer.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_176); >+ stringBuffer.append(feature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_177); >+ >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ >+ stringBuffer.append(TEXT_178); >+ stringBuffer.append(importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_179); >+ stringBuffer.append(next.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_180); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_181); >+ stringBuffer.append(TEXT_182); >+ stringBuffer.append(TEXT_183); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_184); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_185); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_186); >+ >+String figureQualifiedClassName = null; >+Viewmap viewmap = genLabel.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.draw2d.Label"; >+ } >+ >+ stringBuffer.append(TEXT_187); >+ stringBuffer.append(importManager.getImportedName(figureQualifiedClassName)); >+ stringBuffer.append(TEXT_188); >+ } // instanceof FigureViewmap >+ else if (viewmap instanceof SnippetViewmap) { >+ stringBuffer.append(TEXT_189); >+ stringBuffer.append(((SnippetViewmap) viewmap).getBody()); >+ stringBuffer.append(TEXT_190); >+ } // instanceof SnippetViewmap; FIXME : obtain figure class name to generate getter >+ else if (viewmap instanceof InnerClassViewmap) { >+ figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >+ >+ stringBuffer.append(TEXT_191); >+ stringBuffer.append(figureQualifiedClassName); >+ stringBuffer.append(TEXT_192); >+ } >+ stringBuffer.append(TEXT_193); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_194); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_195); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Label")); >+ stringBuffer.append(TEXT_196); >+ >+if (genLabel.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genLabel.getViewmap()).getClassBody(); >+ >+ stringBuffer.append(TEXT_197); >+ stringBuffer.append(classBody); >+ stringBuffer.append(TEXT_198); >+ >+if (classBody.indexOf("DPtoLP") != -1) { >+ >+ stringBuffer.append(TEXT_199); >+ >+} >+ >+ >+} >+ >+ stringBuffer.append(TEXT_200); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_201); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refreshMethods/fontColor.javajetinc >=================================================================== >RCS file: templates/parts/refreshMethods/fontColor.javajetinc >diff -N templates/parts/refreshMethods/fontColor.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshMethods/fontColor.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,32 @@ >+ /** >+ * @generated >+ */ >+ protected void refreshFontColor() { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")%> style = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")%>) <%=primaryView%>.getStyle(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle()); >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> toDispose = createdFontColor; >+ if (style != null) { >+ int fontColor = style.getFontColor(); >+ int red = fontColor & 0x000000FF; >+ int green = (fontColor & 0x0000FF00) >> 8; >+ int blue = (fontColor & 0x00FF0000) >> 16; >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> currentColor = getLabel().getForegroundColor(); >+ if (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) { >+ return; >+ } >+ createdFontColor = new <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%>(null, red, green, blue); >+ getFigure().setForegroundColor(createdFontColor); >+ } else { >+ getFigure().setForegroundColor(getViewer().getControl().getForeground()); >+ createdFontColor = null; >+ } >+ if (toDispose != null) { >+ toDispose.dispose(); >+ } >+ } >+ >+ /** >+ * The color (created by {@link #refreshFontColor()}) currently assigned to the label. >+ * Whenever another color is assigned to it, it is safe to dispose the previous one. >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> createdFontColor; >Index: templates/copyright4java.jetinc >=================================================================== >RCS file: templates/copyright4java.jetinc >diff -N templates/copyright4java.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/copyright4java.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,8 @@ >+<% >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+%> >+/* >+ * <%=copyrightText.replaceAll("\n", "\n * ")%> >+ */ >+<%}%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ActionBarContributorGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ActionBarContributorGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ActionBarContributorGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ActionBarContributorGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,43 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+ >+public class ActionBarContributorGenerator >+{ >+ protected static String nl; >+ public static synchronized ActionBarContributorGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ ActionBarContributorGenerator result = new ActionBarContributorGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = NL + "import org.eclipse.gef.ui.actions.ActionBarContributor;" + NL + "import org.eclipse.gef.ui.actions.DeleteRetargetAction;" + NL + "import org.eclipse.gef.ui.actions.GEFActionConstants;" + NL + "import org.eclipse.gef.ui.actions.RedoRetargetAction;" + NL + "import org.eclipse.gef.ui.actions.UndoRetargetAction;" + NL + "import org.eclipse.gef.ui.actions.ZoomComboContributionItem;" + NL + "import org.eclipse.gef.ui.actions.ZoomInRetargetAction;" + NL + "import org.eclipse.gef.ui.actions.ZoomOutRetargetAction;" + NL + "import org.eclipse.jface.action.IMenuManager;" + NL + "import org.eclipse.jface.action.IToolBarManager;" + NL + "import org.eclipse.jface.action.MenuManager;" + NL + "import org.eclipse.jface.action.Separator;" + NL + "import org.eclipse.ui.IWorkbenchActionConstants;" + NL + "import org.eclipse.ui.actions.ActionFactory;" + NL + "" + NL + "/**" + NL + " * The action bar contributor for the "; >+ protected final String TEXT_2 = " editor." + NL + " *" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_3 = " extends ActionBarContributor {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + " protected void buildActions() {" + NL + " addRetargetAction(new UndoRetargetAction());" + NL + " addRetargetAction(new RedoRetargetAction());" + NL + " addRetargetAction(new DeleteRetargetAction());" + NL + " " + NL + " addRetargetAction(new ZoomInRetargetAction());" + NL + " addRetargetAction(new ZoomOutRetargetAction());" + NL + " }" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + " protected void declareGlobalActionKeys() {" + NL + " addGlobalActionKey(ActionFactory.PRINT.getId());" + NL + "\t\taddGlobalActionKey(ActionFactory.DELETE.getId());" + NL + " }" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + " public void contributeToMenu(IMenuManager menuManager) {" + NL + " super.contributeToMenu(menuManager);" + NL + "" + NL + " // add a \"View\" menu after \"Edit\"" + NL + " MenuManager viewMenu = new MenuManager(\"View\");" + NL + " viewMenu.add(getAction(GEFActionConstants.ZOOM_IN));" + NL + " viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT));" + NL + " " + NL + " menuManager.insertAfter(IWorkbenchActionConstants.M_EDIT, viewMenu);" + NL + " }" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + " public void contributeToToolBar(IToolBarManager toolBarManager) {" + NL + " super.contributeToToolBar(toolBarManager);" + NL + "" + NL + " toolBarManager.add(getAction(ActionFactory.UNDO.getId()));" + NL + " toolBarManager.add(getAction(ActionFactory.REDO.getId()));" + NL + " " + NL + " toolBarManager.add(new Separator());" + NL + " toolBarManager.add(new ZoomComboContributionItem(getPage()));" + NL + " }" + NL + "}"; >+ protected final String TEXT_4 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenEditorView editorView = (GenEditorView) ((Object[]) argument)[0]; >+final GenModel genModel = editorView.getEditorGen().getDomainGenModel(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(genModel.getModelName()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(editorView.getActionBarContributorClassName()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(TEXT_4); >+ return stringBuffer.toString(); >+ } >+} >Index: src/org/eclipse/gmf/internal/codegen/lite/Activator.java >=================================================================== >RCS file: src/org/eclipse/gmf/internal/codegen/lite/Activator.java >diff -N src/org/eclipse/gmf/internal/codegen/lite/Activator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/internal/codegen/lite/Activator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,42 @@ >+/* >+ * Copyright (c) 2006 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: >+ * Artem Tikhomirov (Borland) - initial API and implementation >+ */ >+package org.eclipse.gmf.internal.codegen.lite; >+ >+import org.eclipse.core.runtime.Plugin; >+import org.osgi.framework.Bundle; >+import org.osgi.framework.BundleContext; >+ >+public class Activator extends Plugin { >+ private static Activator anInstance; >+ >+ public Activator() { >+ super(); >+ } >+ >+ public void start(BundleContext context) throws Exception { >+ super.start(context); >+ anInstance = this; >+ } >+ >+ public void stop(BundleContext context) throws Exception { >+ anInstance = null; >+ super.stop(context); >+ } >+ >+ public static String getPluginID() { >+ return getDefault().getSymbolicName(); >+ } >+ >+ public static Bundle getDefault() { >+ return anInstance.getBundle(); >+ } >+} >Index: build.properties >=================================================================== >RCS file: build.properties >diff -N build.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ build.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+source.. = src/,\ >+ src-templates/ >+output.. = bin/ >+bin.includes = META-INF/,\ >+ .,\ >+ plugin.properties,\ >+ templates/ >Index: templates/parts/linkComponentEditPolicy.javajetinc >=================================================================== >RCS file: templates/parts/linkComponentEditPolicy.javajetinc >diff -N templates/parts/linkComponentEditPolicy.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/linkComponentEditPolicy.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,146 @@ >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.COMPONENT_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ComponentEditPolicy")%>() { >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> createDeleteCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.GroupRequest")%> deleteRequest) { >+ return new <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%>() { >+ private final Edge edgeToRemove = getDiagramEdge(); >+ private final View source = edgeToRemove.getSource(); >+ private final View target = edgeToRemove.getTarget(); >+ private final org.eclipse.emf.common.command.Command domainModelRemoveCommand = createDomainModelRemoveCommand(); >+ private org.eclipse.emf.common.command.Command createDomainModelRemoveCommand() { >+<% >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ GenFeature sourceFeature = modelFacet.getSourceMetaFeature(); >+ GenFeature containmentFeature = modelFacet.getContainmentMetaFeature(); >+ GenFeature childFeature = modelFacet.getChildMetaFeature(); >+ GenFeature targetFeature = modelFacet.getTargetMetaFeature(); >+ //See creation of links in NodeEditPart >+ >+ boolean removeSource = sourceFeature != null; >+ boolean removeTarget = targetFeature != null; >+ boolean removeChild = childFeature != null && childFeature != containmentFeature && !childFeature.isDerived(); >+ if (containmentFeature != null) { >+ if (sourceFeature != null && sourceFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference sourceEcoreFeature = (EReference)sourceFeature.getEcoreFeature(); >+ if (sourceEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ removeSource = false; >+ } >+ } >+ if (targetFeature != null && targetFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference targetEcoreFeature = (EReference)targetFeature.getEcoreFeature(); >+ if (targetEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ removeTarget = false; >+ } >+ } >+%> >+ <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%> result = new <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%>(); >+<% >+ if (containmentFeature.getEcoreFeature().isMany()) { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement().eContainer(), edgeToRemove.getElement().eContainmentFeature(), edgeToRemove.getElement())); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement().eContainer(), edgeToRemove.getElement().eContainmentFeature(), <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE)); >+<% >+ } >+ } else { >+%> >+ return <%=importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")%>.INSTANCE; >+<% >+ } >+ if (removeChild) { >+ if (childFeature.getEcoreFeature().isMany()) { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement().eContainer(), <%=importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=childFeature.getFeatureAccessorName()%>(), >+ edgeToRemove.getElement())); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement().eContainer(), <%=importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=childFeature.getFeatureAccessorName()%>(), >+ <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE)); >+<% >+ } >+ } >+ if (removeSource) { >+ if (sourceFeature.getEcoreFeature().isMany()) { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement(), <%=importManager.getImportedName(sourceFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=sourceFeature.getFeatureAccessorName()%>(), source.getElement())); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement(), <%=importManager.getImportedName(sourceFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=sourceFeature.getFeatureAccessorName()%>(), <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE)); >+<% >+ } >+ } >+ if (removeTarget) { >+ if (targetFeature.getEcoreFeature().isMany()) { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement(), <%=importManager.getImportedName(targetFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=targetFeature.getFeatureAccessorName()%>(), target.getElement())); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ edgeToRemove.getElement(), <%=importManager.getImportedName(targetFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=targetFeature.getFeatureAccessorName()%>(), <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE)); >+<% >+ } >+ } >+%> >+ return result; >+<% >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ if (metaFeature.getEcoreFeature().isMany()) { >+%> >+ return <%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ source.getElement(), <%=importManager.getImportedName(metaFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=metaFeature.getFeatureAccessorName()%>(), target.getElement()); >+<% >+ } else { >+%> >+ return <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create( >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(edgeToRemove.getDiagram().getElement()), >+ source.getElement(), <%=importManager.getImportedName(metaFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=metaFeature.getFeatureAccessorName()%>(), <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.UNSET_VALUE); >+<% >+ } >+%> >+<% >+ } >+%> >+ } >+ >+ public boolean canExecute() { >+ return domainModelRemoveCommand != null && domainModelRemoveCommand.canExecute(); >+ } >+ public void execute() { >+ domainModelRemoveCommand.execute(); >+ source.getDiagram().removeEdge(edgeToRemove); >+ edgeToRemove.setSource(null); >+ edgeToRemove.setTarget(null); >+ } >+ public boolean canUndo() { >+ return domainModelRemoveCommand != null && domainModelRemoveCommand.canUndo(); >+ } >+ public void undo() { >+ domainModelRemoveCommand.undo(); >+ source.getDiagram().insertEdge(edgeToRemove); >+ edgeToRemove.setSource(source); >+ edgeToRemove.setTarget(target); >+ } >+ }; >+ } >+ }); >Index: templates/parts/labelText.javajetinc >=================================================================== >RCS file: templates/parts/labelText.javajetinc >diff -N templates/parts/labelText.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/labelText.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,127 @@ >+<% >+/*genFeature.getObjectType() throws NPE on primitive types. This is a workaround. */ >+HashMap primitiveTypeToWrapperClassName = new HashMap(); >+primitiveTypeToWrapperClassName.put(Boolean.TYPE, "Boolean"); >+primitiveTypeToWrapperClassName.put(Byte.TYPE, "Byte"); >+primitiveTypeToWrapperClassName.put(Character.TYPE, "Character"); >+primitiveTypeToWrapperClassName.put(Double.TYPE, "Double"); >+primitiveTypeToWrapperClassName.put(Float.TYPE, "Float"); >+primitiveTypeToWrapperClassName.put(Integer.TYPE, "Integer"); >+primitiveTypeToWrapperClassName.put(Long.TYPE, "Long"); >+primitiveTypeToWrapperClassName.put(Short.TYPE, "Short"); >+String viewPattern = null; >+String editPattern = null; >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ viewPattern = featureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ viewPattern = "{0}"; >+ } >+ editPattern = featureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ editPattern = "{0}"; >+ } >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ viewPattern = compositeFeatureLabelModelFacet.getViewPattern(); >+ if (viewPattern == null || viewPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ viewPattern = patternBuffer.toString().trim(); >+ } >+ editPattern = compositeFeatureLabelModelFacet.getEditPattern(); >+ if (editPattern == null || editPattern.length() == 0) { >+ StringBuffer patternBuffer = new StringBuffer(); >+ for(int i = 0; i < compositeFeatureLabelModelFacet.getMetaFeatures().size(); i++) { >+ patternBuffer.append("{").append(i).append("} "); >+ } >+ editPattern = patternBuffer.toString().trim(); >+ } >+} >+%> >+ /** >+ * @generated >+ */ >+ private static final String VIEW_PATTERN = "<%=viewPattern%>"; >+ >+ /** >+ * @generated >+ */ >+ private static final String EDIT_PATTERN = "<%=editPattern%>"; >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelText() { >+ <%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%> element = <%=resolvedSemanticElement%>; >+ if (element == null) { >+ return defaultText; >+ } >+ return buildTextByPattern(element, VIEW_PATTERN); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String getLabelEditText() { >+ <%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%> element = <%=resolvedSemanticElement%>; >+ if (element == null) { >+ return defaultText; >+ } >+ return buildTextByPattern(element, EDIT_PATTERN); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected String buildTextByPattern(<%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%> element, String pattern) { >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ FeatureLabelModelFacet featureLabelModelFacet = (FeatureLabelModelFacet) labelModelFacet; >+ GenFeature feature = featureLabelModelFacet.getMetaFeature(); >+ if (!feature.isPrimitiveType()) { >+%> >+ if (element.get<%=feature.getCapName()%>() == null) { >+ return defaultText; >+ } >+<% >+ } >+%> >+ return <%=importManager.getImportedName("java.text.MessageFormat")%>.format(pattern, new Object[] { >+<% >+ String value = "element.get" + feature.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (feature.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(feature.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+%> >+ <%=value%> >+ }); >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+%> >+ return <%=importManager.getImportedName("java.text.MessageFormat")%>.format(pattern, new Object[] { >+<% >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+ String value = "element.get" + next.getCapName() + "()"; /*XXX: getTypedKey is not a part of public API!*/ >+ if (next.isPrimitiveType()) { >+ value = "new " + primitiveTypeToWrapperClassName.get(next.getTypeGenClassifier().getEcoreClassifier().getInstanceClass()) + "(" + value + ")"; >+ } >+%> >+ <%=value%><%if (it.hasNext()) {%>,<%}%> >+<% >+ } >+%> >+ }); >+<% >+} else { >+%> >+ //XXX: unexpected model facet. >+ return defaultText; >+<% >+} >+%> >+ } >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/UpdatableEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/UpdatableEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/UpdatableEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/UpdatableEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,35 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import org.eclipse.gmf.common.codegen.*; >+ >+public class UpdatableEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized UpdatableEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ UpdatableEditPartGenerator result = new UpdatableEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + NL + "import java.util.ArrayList;" + NL + "import java.util.Collection;" + NL + "import java.util.Iterator;" + NL + "" + NL + "import org.eclipse.emf.common.notify.Notification;" + NL + "import org.eclipse.emf.ecore.EStructuralFeature;" + NL + "" + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public interface IUpdatableEditPart {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Refresher getRefresher(EStructuralFeature feature, Notification msg);" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic interface Refresher {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void refresh();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic class CompositeRefresher implements Refresher {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void addRefresher(Refresher refresher) {" + NL + "\t\t\trefreshers.add(refresher);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void removeRefresher(Refresher refresher) {" + NL + "\t\t\trefreshers.remove(refresher);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void refresh() {" + NL + "\t\t\tfor(Iterator it = refreshers.iterator(); it.hasNext(); ) {" + NL + "\t\t\t\tRefresher next = (Refresher) it.next();" + NL + "\t\t\t\tnext.refresh();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\tprivate Collection/*<Refresher>*/ refreshers = new ArrayList();" + NL + "\t}" + NL + "}"; >+ protected final String TEXT_3 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+importManager.emitPackageStatement(stringBuffer); >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(TEXT_3); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/createNodeCommand.javajetinc >=================================================================== >RCS file: templates/parts/createNodeCommand.javajetinc >diff -N templates/parts/createNodeCommand.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/createNodeCommand.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,115 @@ >+ /** >+ * @generated >+ */ >+ private <%if (isStatic) {%>static <%}%>class Create<%=next.getDomainMetaClass().getName()%><%=next.getVisualID()%>Command extends <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> { >+ /** >+ * @generated >+ */ >+ private final <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> parent; >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> createdNode; >+ /** >+ * @generated >+ */ >+ public Create<%=next.getDomainMetaClass().getName()%><%=next.getVisualID()%>Command(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> parent, <%=importManager.getImportedName(genDiagram.getPalette().getFactoryQualifiedClassName())%>.CreateRequestEx request<%if (!isListLayout) {%>, <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%> constraint<%}%>) { >+ this.parent = parent; >+ createdNode = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createNode(); >+<% >+if (next.getDomainMetaClass().isMapEntry()) { >+/*Workaround for Ecore example: map entries cannot be created using factory, only using reflective EFactory.create() method*/ >+%> >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> createdDomainElement = <%=importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedFactoryInterfaceName())%>.eINSTANCE.create( >+ <%=importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=next.getDomainMetaClass().getClassifierAccessorName()%>()); >+<% >+} else { >+%> >+ <%=importManager.getImportedName(next.getDomainMetaClass().getQualifiedInterfaceName())%> createdDomainElement = <%=importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedFactoryInterfaceName())%>.eINSTANCE.create<%=next.getDomainMetaClass().getClassifierAccessorName()%>(); >+<% >+} >+%> createdNode.setElement(createdDomainElement); >+ <%/*XXX: Class name DomainElementInitializer should be user-customizable*/%> >+ <%=importManager.getImportedName(genDiagram.getNotationViewFactoriesPackageName() + ".DomainElementInitializer")%>.<%=next.getUniqueIdentifier()%>.initializeElement(createdDomainElement); >+ <%=importManager.getImportedName(next.getNotationViewFactoryQualifiedClassName())%>.decorateView(createdNode); >+<% >+ if (!isListLayout) { >+%> >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%> bounds = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createBounds(); >+ createdNode.setLayoutConstraint(bounds); >+ bounds.setX(constraint.x); >+ bounds.setY(constraint.y); >+<% >+ int defaultWidth = 40; >+ int defaultHeight = 40; >+ DefaultSizeAttributes defSizeAttrs = (DefaultSizeAttributes) next.getViewmap().find(DefaultSizeAttributes.class); >+ if (defSizeAttrs != null) { >+ defaultWidth = defSizeAttrs.getWidth(); >+ defaultHeight = defSizeAttrs.getHeight(); >+ } >+%> >+ bounds.setWidth(Math.max(constraint.width, <%=defaultWidth%>)); >+ bounds.setHeight(Math.max(constraint.height, <%=defaultHeight%>)); >+<% >+ } >+%> >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> domainModelEditDomain = <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(parent.getDiagram().getElement()); >+<% >+ TypeModelFacet facet = next.getModelFacet(); >+ GenFeature childFeature = facet.getChildMetaFeature(); >+ GenFeature containmentFeature = facet.getContainmentMetaFeature(); >+ if (childFeature != null && childFeature != containmentFeature && !childFeature.isDerived()) { >+%> >+ <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%> compoundCommand = new <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%>(); >+ compoundCommand.append(<%=importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, <%=resolvedSemanticElement%>, >+ <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), createdNode.getElement())); >+ compoundCommand.append(<%=importManager.getImportedName(childFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, <%=resolvedSemanticElement%>, >+ <%=importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=childFeature.getFeatureAccessorName()%>(), createdNode.getElement())); >+ this.domainModelAddCommand = compoundCommand; >+<% >+ } else { >+%> >+ this.domainModelAddCommand = <%=importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, <%=resolvedSemanticElement%>, >+ <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), createdNode.getElement()); >+<% >+ } >+%> >+ request.setCreatedObject(createdNode); >+ } >+ >+ /** >+ * @generated >+ */ >+ private final org.eclipse.emf.common.command.Command domainModelAddCommand; >+ >+ /** >+ * @generated >+ */ >+ public boolean canExecute() { >+ return domainModelAddCommand != null && domainModelAddCommand.canExecute(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean canUndo() { >+ return domainModelAddCommand != null && domainModelAddCommand.canUndo(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void execute() { >+ parent.insertChild(createdNode); >+ domainModelAddCommand.execute(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void undo() { >+ parent.getPersistedChildren().remove(createdNode); >+ domainModelAddCommand.undo(); >+ } >+ } >Index: templates/copyright4xml.jetinc >=================================================================== >RCS file: templates/copyright4xml.jetinc >diff -N templates/copyright4xml.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/copyright4xml.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,8 @@ >+<% >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+%> >+<!-- >+<%=copyrightText%> >+--> >+<%}%> >Index: templates/parts/refreshers.javajetinc/domainModelRefresher.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/domainModelRefresher.javajetinc >diff -N templates/parts/refreshers.javajetinc/domainModelRefresher.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/domainModelRefresher.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,23 @@ >+ /** >+ * @generated >+ */ >+ private DomainModelRefresher domainModelRefresher = new DomainModelRefresher(); >+ >+ /** >+ * @generated >+ */ >+ private class DomainModelRefresher extends <%=importManager.getImportedName("org.eclipse.emf.common.notify.impl.AdapterImpl")%> { >+ /** >+ * @generated >+ */ >+ public void notifyChanged(<%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> msg) { >+ super.notifyChanged(msg); >+ if (msg.isTouch()) { >+ return; >+ } >+ Refresher refresher = getRefresher((<%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>) msg.getFeature(), msg); >+ if (refresher != null) { >+ refresher.refresh(); >+ } >+ } >+ } >Index: templates/editor/Plugin.javajet >=================================================================== >RCS file: templates/editor/Plugin.javajet >diff -N templates/editor/Plugin.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/Plugin.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,208 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="PluginGenerator" >+ imports="org.eclipse.emf.common.util.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenPlugin genPlugin = (GenPlugin) ((Object[]) argument)[0]; >+final EList genPackages = genPlugin.getEditorGen().getAllDomainGenPackages(true); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer);%> >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+ >+import org.eclipse.emf.common.notify.AdapterFactory; >+import org.eclipse.emf.edit.provider.ComposedAdapterFactory; >+import org.eclipse.emf.edit.provider.IItemLabelProvider; >+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; >+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; >+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; >+import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.swt.graphics.Image; >+import org.eclipse.ui.plugin.AbstractUIPlugin; >+import org.osgi.framework.BundleContext; >+<%importManager.markImportLocation(stringBuffer);%> >+ >+/** >+ * @generated >+ */ >+public class <%=genPlugin.getActivatorClassName()%> extends AbstractUIPlugin { >+ >+ /** >+ * @generated >+ */ >+ public static final String ID = "<%=genPlugin.getID()%>"; //$NON-NLS-1$ >+ >+ /** >+ * @generated >+ */ >+ private static <%=genPlugin.getActivatorClassName()%> instance; >+ >+ /** >+ * @generated >+ */ >+ private ComposedAdapterFactory adapterFactory; >+ >+ /** >+ * @generated >+ */ >+ public <%=genPlugin.getActivatorClassName()%>() { >+ } >+ >+ /** >+ * @generated >+ */ >+ public void start(BundleContext context) throws Exception { >+ super.start(context); >+ instance = this; >+ adapterFactory = createAdapterFactory(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void stop(BundleContext context) throws Exception { >+ adapterFactory.dispose(); >+ adapterFactory = null; >+ instance = null; >+ super.stop(context); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static <%=genPlugin.getActivatorClassName()%> getInstance() { >+ return instance; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ComposedAdapterFactory createAdapterFactory() { >+ List factories = new ArrayList(); >+ fillItemProviderFactories(factories); >+ return new ComposedAdapterFactory(factories); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void fillItemProviderFactories(List factories) { >+<% >+for (int i = 0; i < genPackages.size(); i++) { >+ GenPackage genPackage = (GenPackage) genPackages.get(i); >+%> >+ factories.add(new <%=importManager.getImportedName(genPackage.getQualifiedItemProviderAdapterFactoryClassName())%>()); >+<%}%> >+ factories.add(new ResourceItemProviderAdapterFactory()); >+ factories.add(new ReflectiveItemProviderAdapterFactory()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public AdapterFactory getItemProvidersAdapterFactory() { >+ return adapterFactory; >+ } >+ >+ /** >+ * @generated >+ */ >+ public ImageDescriptor getItemImageDescriptor(Object item) { >+ IItemLabelProvider labelProvider = (IItemLabelProvider) adapterFactory.adapt(item, IItemLabelProvider.class); >+ if (labelProvider != null) { >+<% >+ // XXX dependency org.eclipse.emf.edit.ui is for ExtendedImageRegistry only. >+ // FIXME move image registry to plugin class code >+%> >+ return ExtendedImageRegistry.getInstance().getImageDescriptor(labelProvider.getImage(item)); >+ } >+ return null; >+ } >+ >+ /** >+ * Returns an image descriptor for the image file at the given >+ * plug-in relative path. >+ * >+ * @generated >+ * @param path the path >+ * @return the image descriptor >+ */ >+ public static ImageDescriptor getBundledImageDescriptor(String path) { >+ return AbstractUIPlugin.imageDescriptorFromPlugin(ID, path); >+ } >+ >+ /** >+ * Returns an image for the image file at the given plug-in relative path. >+ * Client do not need to dispose this image. Images will be disposed automatically. >+ * >+ * @generated >+ * @param path the path >+ * @return image instance >+ */ >+ public Image getBundledImage(String path) { >+ Image image = getImageRegistry().get(path); >+ if (image == null) { >+ getImageRegistry().put(path, getBundledImageDescriptor(path)); >+ image = getImageRegistry().get(path); >+ } >+ return image; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void logError(String error) { >+ logError(error, null); >+ } >+ >+ /** >+ * @param throwable actual error or null could be passed >+ * @generated >+ */ >+ public void logError(String error, Throwable throwable) { >+ if (error == null && throwable != null) { >+ error = throwable.getMessage(); >+ } >+ getLog().log(new Status(IStatus.ERROR, <%=genPlugin.getActivatorClassName()%>.ID, IStatus.OK, error, throwable)); >+ debug(error, throwable); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void logInfo(String message) { >+ logInfo(message, null); >+ } >+ >+ /** >+ * @param throwable actual error or null could be passed >+ * @generated >+ */ >+ public void logInfo(String message, Throwable throwable) { >+ if (message == null && message != null) { >+ message = throwable.getMessage(); >+ } >+ getLog().log(new Status(IStatus.INFO, <%=genPlugin.getActivatorClassName()%>.ID, IStatus.OK, message, throwable)); >+ debug(message, throwable); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void debug(String message, Throwable throwable) { >+ if (!isDebugging()) { >+ return; >+ } >+ if (message != null) { >+ System.err.println(message); >+ } >+ if (throwable != null) { >+ throwable.printStackTrace(); >+ } >+ } >+ >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardPageGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardPageGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardPageGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/CreationWizardPageGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,192 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class CreationWizardPageGenerator >+{ >+ protected static String nl; >+ public static synchronized CreationWizardPageGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ CreationWizardPageGenerator result = new CreationWizardPageGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_2 = " extends "; >+ protected final String TEXT_3 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate Text fileField;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate URI createdDiagramFileURI;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_4 = "() {" + NL + "\t\tsuper(\"CreationWizardPage\"); //$NON-NLS-1$" + NL + "\t\tsetTitle(\"Create "; >+ protected final String TEXT_5 = " Diagram\"); //$NON-NLS-1$" + NL + "\t\tsetDescription(\"Create a new "; >+ protected final String TEXT_6 = " diagram.\"); //$NON-NLS-1$" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void createControl(Composite parent)" + NL + "\t{" + NL + "\t\tComposite composite = new Composite(parent, SWT.NONE);" + NL + "\t\t{" + NL + "\t\t\tGridLayout layout = new GridLayout();" + NL + "\t\t\tlayout.numColumns = 1;" + NL + "\t\t\tlayout.verticalSpacing = 12;" + NL + "\t\t\tcomposite.setLayout(layout);" + NL + "" + NL + "\t\t\tGridData data = new GridData();" + NL + "\t\t\tdata.verticalAlignment = GridData.FILL;" + NL + "\t\t\tdata.grabExcessVerticalSpace = true;" + NL + "\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\tcomposite.setLayoutData(data);" + NL + "\t\t}" + NL + "\t\tLabel resourceURILabel = new Label(composite, SWT.LEFT);" + NL + "\t\t{" + NL + "\t\t\tresourceURILabel.setText(\"&File\");" + NL + "" + NL + "\t\t\tGridData data = new GridData();" + NL + "\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\tresourceURILabel.setLayoutData(data);" + NL + "\t\t}" + NL + "" + NL + "\t\tComposite fileComposite = new Composite(composite, SWT.NONE);" + NL + "\t\t{" + NL + "\t\t\tGridData data = new GridData();" + NL + "\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\tfileComposite.setLayoutData(data);" + NL + "" + NL + "\t\t\tGridLayout layout = new GridLayout();" + NL + "\t\t\tlayout.marginHeight = 0;" + NL + "\t\t\tlayout.marginWidth = 0;" + NL + "\t\t\tlayout.numColumns = 2;" + NL + "\t\t\tfileComposite.setLayout(layout);" + NL + "\t\t}" + NL + "" + NL + "\t\tfileField = new "; >+ protected final String TEXT_7 = "(fileComposite, SWT.BORDER);" + NL + "\t\t{" + NL + "\t\t\tGridData data = new GridData();" + NL + "\t\t\tdata.horizontalAlignment = GridData.FILL;" + NL + "\t\t\tdata.grabExcessHorizontalSpace = true;" + NL + "\t\t\tdata.horizontalSpan = 1;" + NL + "\t\t\tfileField.setLayoutData(data);" + NL + "\t\t}" + NL + "" + NL + "\t\tfileField.addModifyListener(validator);" + NL + "\t\t"; >+ protected final String TEXT_8 = " resourceURIBrowseFileSystemButton = new "; >+ protected final String TEXT_9 = "(fileComposite, SWT.PUSH);" + NL + "\t\tresourceURIBrowseFileSystemButton.setText(\"&Browse\");" + NL + " " + NL + "\t\tresourceURIBrowseFileSystemButton.addSelectionListener" + NL + "\t\t\t(new "; >+ protected final String TEXT_10 = "() {" + NL + "\t\t\t\t public void widgetSelected("; >+ protected final String TEXT_11 = " event) {" + NL + "\t\t\t\t\t String fileExtension = \""; >+ protected final String TEXT_12 = "\";" + NL + "\t\t\t\t\t String filePath = "; >+ protected final String TEXT_13 = ".openFilePathDialog(getShell(), \"*.\" + fileExtension, "; >+ protected final String TEXT_14 = ".OPEN);" + NL + "\t\t\t\t\t if (filePath != null) {" + NL + "\t\t\t\t\t\t if (!filePath.endsWith(\".\" + fileExtension)) {" + NL + "\t\t\t\t\t\t\t filePath = filePath + \".\" + fileExtension;" + NL + "\t\t\t\t\t\t }" + NL + "\t\t\t\t\t\t fileField.setText(filePath);" + NL + "\t\t\t\t\t }" + NL + "\t\t\t\t }" + NL + "\t\t\t }); " + NL + "\t\tsetPageComplete(validatePage());" + NL + "\t\tsetControl(composite);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ModifyListener validator =" + NL + "\t\tnew ModifyListener() {" + NL + "\t\t\tpublic void modifyText(ModifyEvent e) {" + NL + "\t\t\t\tsetPageComplete(validatePage());" + NL + "\t\t\t}" + NL + "\t\t};" + NL + " " + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\t protected boolean validatePage() {" + NL + "\t\tURI diagramFileURI = getDiagramFileURI();" + NL + "\t\tif (diagramFileURI == null || diagramFileURI.isEmpty()) {" + NL + "\t\t\tsetErrorMessage(null);" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\tString requiredExt = \""; >+ protected final String TEXT_15 = "\";" + NL + "\t\tString enteredExt = diagramFileURI.fileExtension();" + NL + "\t\tif (enteredExt == null || !enteredExt.equals(requiredExt)) {" + NL + "\t\t\tsetErrorMessage(\"The file name must end in \" + requiredExt); " + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "" + NL + "\t\tif (diagramFileURI.isFile()) {" + NL + "\t\t\tFile diagramFile = new File(diagramFileURI.toFileString());" + NL + "\t\t\tif (diagramFile.exists()) {" + NL + "\t\t\t\tsetErrorMessage(\"Diagram File already exists: \" + diagramFile);" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}"; >+ protected final String TEXT_16 = NL + "\t\t\tURI modelFileURI = getModelFileURI();" + NL + "\t\t\tFile modelFile = new File(modelFileURI.toFileString());" + NL + "\t\t\tif (modelFile.exists()) {" + NL + "\t\t\t\tsetErrorMessage(\"Model File already exists: \" + modelFile);" + NL + "\t\t\t\treturn false;" + NL + "\t\t\t}"; >+ protected final String TEXT_17 = NL + "\t\t}" + NL + "\t\tsetErrorMessage(null); " + NL + "\t\treturn true;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic URI getCreatedDiagramFileURI() {" + NL + "\t\treturn createdDiagramFileURI;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate URI getDiagramFileURI() {" + NL + "\t\ttry {" + NL + "\t\t\treturn URI.createFileURI(fileField.getText());" + NL + "\t\t} catch (Exception exception) {" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL; >+ protected final String TEXT_18 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate URI getModelFileURI() {" + NL + "\t\tURI diagramFileURI = getDiagramFileURI();" + NL + "\t\tif (diagramFileURI == null) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn diagramFileURI.trimFileExtension().appendFileExtension(\""; >+ protected final String TEXT_19 = "\");" + NL + "\t}"; >+ protected final String TEXT_20 = NL + NL + "\t/**" + NL + "\t * Performs the operations necessary to create and open the diagram" + NL + "\t * @return boolean indicating whether the creation and opening the Diagram was successful " + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean finish() {" + NL + "\t\tfinal boolean[] result = new boolean[1];" + NL + "\t\t"; >+ protected final String TEXT_21 = " op = new IRunnableWithProgress() {" + NL + "\t\t\tpublic void run(IProgressMonitor monitor) {" + NL + "\t\t\t\tresult[0] = doFinish(monitor);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "" + NL + "\t\ttry {" + NL + "\t\t\tgetContainer().run(false, true, op);" + NL + "\t\t} catch (InterruptedException e) {" + NL + "\t\t\treturn false;" + NL + "\t\t} catch ("; >+ protected final String TEXT_22 = " e) {" + NL + "\t\t\tif (e.getTargetException() instanceof CoreException) {" + NL + "\t\t\t\t"; >+ protected final String TEXT_23 = ".openError(" + NL + "\t\t\t\t\tgetContainer().getShell()," + NL + "\t\t\t\t\t\"Creation Problems\"," + NL + "\t\t\t\t\tnull,\t// no special message" + NL + "\t\t\t\t\t((CoreException) e.getTargetException()).getStatus());" + NL + "\t\t\t}" + NL + "\t\t\telse {" + NL + "\t\t\t\t// CoreExceptions are handled above, but unexpected runtime exceptions and errors may still occur." + NL + "\t\t\t\t"; >+ protected final String TEXT_24 = ".getInstance().getLog().log(new "; >+ protected final String TEXT_25 = "("; >+ protected final String TEXT_26 = ".ERROR, "; >+ protected final String TEXT_27 = ".ID, 0, \"Creation failed\", e.getTargetException()));" + NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\treturn result[0];" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @param monitor the <code>IProgressMonitor</code> to use to indicate progress and check for cancellation" + NL + "\t * @return boolean indicating whether the diagram was created and opened successfully" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean doFinish(IProgressMonitor monitor) {" + NL + "\t\tcreatedDiagramFileURI = createDiagramFile(monitor);" + NL + "\t\treturn createdDiagramFileURI != null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate URI createDiagramFile(IProgressMonitor monitor) {" + NL + "\t\t//TODO: Editing domain!" + NL + "\t\t"; >+ protected final String TEXT_28 = " resourceSet = new "; >+ protected final String TEXT_29 = "();" + NL + "\t\tfinal "; >+ protected final String TEXT_30 = " diagramResource = resourceSet.createResource(getDiagramFileURI());"; >+ protected final String TEXT_31 = NL + "\t\tfinal Resource modelResource = resourceSet.createResource(getModelFileURI());"; >+ protected final String TEXT_32 = NL + NL + "\t\tif (diagramResource != null"; >+ protected final String TEXT_33 = " && modelResource != null"; >+ protected final String TEXT_34 = ") {" + NL + "\t\t\t//TODO: Editing domain!" + NL + "\t\t\t"; >+ protected final String TEXT_35 = " model = "; >+ protected final String TEXT_36 = ".eINSTANCE.create"; >+ protected final String TEXT_37 = "();"; >+ protected final String TEXT_38 = NL + "\t\t\tmodelResource.getContents().add(model);" + NL + "\t\t\ttry {" + NL + "\t\t\t\tmodelResource.save("; >+ protected final String TEXT_39 = ".EMPTY_MAP);" + NL + "\t\t\t} catch (IOException e) {" + NL + "\t\t\t\thandleSaveException(e);" + NL + "\t\t\t}"; >+ protected final String TEXT_40 = NL + "\t\t\tdiagramResource.getContents().add(model);"; >+ protected final String TEXT_41 = NL + "\t\t\t"; >+ protected final String TEXT_42 = " diagram = "; >+ protected final String TEXT_43 = ".eINSTANCE.createDiagram();" + NL + "\t\t\tdiagram.setElement(model);" + NL + "\t\t\t"; >+ protected final String TEXT_44 = ".decorateView(diagram);" + NL + "\t\t\tdiagramResource.getContents().add(diagram);" + NL + "\t\t\ttry {" + NL + "\t\t\t\tdiagramResource.save(Collections.EMPTY_MAP);" + NL + "\t\t\t} catch (IOException e) {" + NL + "\t\t\t\thandleSaveException(e);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tboolean result = "; >+ protected final String TEXT_45 = ".openEditor(getDiagramFileURI());" + NL + "\t\tif (!result) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\treturn getDiagramFileURI();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void handleSaveException(IOException e) {" + NL + "\t\tthrow new RuntimeException(e);" + NL + "\t}" + NL + "}"; >+ protected final String TEXT_46 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final GenEditorGenerator editorGen = genDiagram.getEditorGen(); >+final GenPlugin genPlugin = editorGen.getPlugin(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+ >+importManager.addImport("java.io.File"); >+importManager.addImport("org.eclipse.core.runtime.IProgressMonitor"); >+importManager.addImport("org.eclipse.core.runtime.CoreException"); >+importManager.addImport("java.io.IOException"); >+importManager.addImport("org.eclipse.swt.widgets.Text"); >+importManager.addImport("org.eclipse.emf.common.util.URI"); >+importManager.addImport("org.eclipse.swt.widgets.Composite"); >+importManager.addImport("org.eclipse.swt.widgets.Label"); >+importManager.addImport("org.eclipse.swt.events.ModifyListener"); >+importManager.addImport("org.eclipse.swt.events.ModifyEvent"); >+importManager.addImport("org.eclipse.swt.layout.GridLayout"); >+importManager.addImport("org.eclipse.swt.layout.GridData"); >+ >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(genDiagram.getCreationWizardPageClassName()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.wizard.WizardPage")); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(genDiagram.getCreationWizardPageClassName()); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(editorGen.getDomainGenModel().getModelName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(editorGen.getDomainGenModel().getModelName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.widgets.Text")); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.widgets.Button")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.widgets.Button")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.events.SelectionAdapter")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.events.SelectionEvent")); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(editorGen.getDiagramFileExtension()); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(genDiagram.getDiagramEditorUtilClassName()); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(editorGen.getDiagramFileExtension()); >+ stringBuffer.append(TEXT_15); >+ if (!editorGen.isSameFileForDiagramAndModel()) { >+ stringBuffer.append(TEXT_16); >+ } >+ stringBuffer.append(TEXT_17); >+ if (!editorGen.isSameFileForDiagramAndModel()) { >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(editorGen.getDomainFileExtension()); >+ stringBuffer.append(TEXT_19); >+ } >+ stringBuffer.append(TEXT_20); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress")); >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("java.lang.reflect.InvocationTargetException")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.jface.dialogs.ErrorDialog")); >+ stringBuffer.append(TEXT_23); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.core.runtime.Status")); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.core.runtime.IStatus")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(genPlugin.getActivatorClassName()); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.resource.ResourceSet")); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.resource.impl.ResourceSetImpl")); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.resource.Resource")); >+ stringBuffer.append(TEXT_30); >+ >+final boolean standaloneDomainModel = !editorGen.isSameFileForDiagramAndModel() && genDiagram.getDomainDiagramElement() != null; >+if (standaloneDomainModel) { >+ >+ stringBuffer.append(TEXT_31); >+ } >+ stringBuffer.append(TEXT_32); >+ if (standaloneDomainModel) { >+ stringBuffer.append(TEXT_33); >+ } >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedFactoryClassName())); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(genDiagram.getDomainDiagramElement().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_37); >+ >+if (standaloneDomainModel) { >+ >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName("java.util.Collections")); >+ stringBuffer.append(TEXT_39); >+ >+} else { >+ >+ stringBuffer.append(TEXT_40); >+ >+} >+ >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(genDiagram.getDiagramEditorUtilClassName()); >+ stringBuffer.append(TEXT_45); >+ importManager.emitSortedImports(); >+ stringBuffer.append(TEXT_46); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refreshMethods/shapeColor.javajetinc >=================================================================== >RCS file: templates/parts/refreshMethods/shapeColor.javajetinc >diff -N templates/parts/refreshMethods/shapeColor.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshMethods/shapeColor.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,64 @@ >+ /** >+ * @generated >+ */ >+ protected void refreshForegroundColor() { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.LineStyle")%> style = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.LineStyle")%>) <%=primaryView%>.getStyle(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getLineStyle()); >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> toDispose = createdForegroundColor; >+ if (style != null) { >+ int foregroundColor = style.getLineColor(); >+ int red = foregroundColor & 0x000000FF; >+ int green = (foregroundColor & 0x0000FF00) >> 8; >+ int blue = (foregroundColor & 0x00FF0000) >> 16; >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> currentColor = getFigure().getForegroundColor(); >+ if (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) { >+ return; >+ } >+ createdForegroundColor = new <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%>(null, red, green, blue); >+ getFigure().setForegroundColor(createdForegroundColor); >+ } else { >+ getFigure().setForegroundColor(getViewer().getControl().getForeground()); >+ createdForegroundColor = null; >+ } >+ if (toDispose != null) { >+ toDispose.dispose(); >+ } >+ } >+ >+ /** >+ * The color (created by {@link #refreshForegroundColor()}) currently assigned to the figure. >+ * Whenever another color is assigned to it, it is safe to dispose the previous one. >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> createdForegroundColor; >+ >+ /** >+ * @generated >+ */ >+ protected void refreshBackgroundColor() { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.FillStyle")%> style = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.FillStyle")%>) <%=primaryView%>.getStyle(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFillStyle()); >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> toDispose = createdBackgroundColor; >+ if (style != null) { >+ int backgroundColor = style.getFillColor(); >+ int red = backgroundColor & 0x000000FF; >+ int green = (backgroundColor & 0x0000FF00) >> 8; >+ int blue = (backgroundColor & 0x00FF0000) >> 16; >+ <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> currentColor = getFigure().getBackgroundColor(); >+ if (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) { >+ return; >+ } >+ createdBackgroundColor = new <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%>(null, red, green, blue); >+ getFigure().setBackgroundColor(createdBackgroundColor); >+ } else { >+ getFigure().setBackgroundColor(getViewer().getControl().getBackground()); >+ } >+ if (toDispose != null) { >+ toDispose.dispose(); >+ } >+ } >+ >+ /** >+ * The color (created by {@link #refreshBackgroundColor()}) currently assigned to the figure. >+ * Whenever another color is assigned to it, it is safe to dispose the previous one. >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.swt.graphics.Color")%> createdBackgroundColor; >Index: templates/parts/ChildNodeEditPart.javajet >=================================================================== >RCS file: templates/parts/ChildNodeEditPart.javajet >diff -N templates/parts/ChildNodeEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/ChildNodeEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,190 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="ChildNodeEditPartGenerator" >+ imports="java.util.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.emf.ecore.*"%> >+<% >+GenNode genChildNode = (GenNode) ((Object[]) argument)[0]; >+GenNodeLabel genLabel = (GenNodeLabel) genChildNode.getLabels().get(0); >+GenNode genHost = genChildNode; >+GenNode genNode = genChildNode; /*var used by componentEditPolicy.javajetinc*/ >+GenClass underlyingMetaClass = genHost.getDomainMetaClass(); >+GenDiagram genDiagram = genChildNode.getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+LabelModelFacet labelModelFacet = genLabel.getModelFacet(); >+%> >+<%@ include file="../copyright4java.jetinc"%> >+ >+<%importManager.emitPackageStatement(stringBuffer); >+ >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.gef.Request"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.NotationPackage"); >+importManager.addImport("java.util.List"); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genChildNode.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")%> implements IUpdatableEditPart { >+<%@ include file="textAwareFields.jetinc"%> >+ >+ /** >+ * @generated >+ */ >+ public <%=genChildNode.getEditPartClassName()%>(View view) { >+ setModel(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> getDiagramNode() { >+ return (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%>) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+ //XXX: install correct edit policies! >+<% >+ String resolvedSemanticElement = "(" + importManager.getImportedName(genHost.getDomainMetaClass().getQualifiedInterfaceName()) + ") getDiagramNode().getElement()"; >+ final String primaryView = "getDiagramNode()"; >+%> >+<%@ include file="directEditPolicy.javajetinc"%> >+<%@ include file="componentEditPolicy.javajetinc"%> >+ } >+ >+<%@ include file="directEdit.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return ((View)getModel()).getVisibleChildren(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelSourceConnections() { >+ return ((View)getModel()).getSourceEdges(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected List getModelTargetConnections() { >+ return ((View)getModel()).getTargetEdges(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshVisibility(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ getLabel().setText(getLabelText()); >+ getLabel().setIcon(getLabelIcon()); >+ } >+<%@ include file="labelText.javajetinc"%> >+<%@ include file="refreshMethods/font.javajetinc"%> >+<%@ include file="refreshMethods/fontColor.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.swt.graphics.Image")%> getLabelIcon() { >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisibility() { >+ boolean isVisible = getDiagramNode().isVisible(); >+ boolean wasVisible = getFigure().isVisible(); >+ if (isVisible == wasVisible) { >+ return; >+ } >+ if (!isVisible && (getSelected() != SELECTED_NONE)) { >+ getViewer().deselect(this); >+ } >+ >+ getFigure().setVisible(isVisible); >+ getFigure().revalidate(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getAdapter(Class key) { >+<%/*@ include file="adapters/propertySource.javajetinc"*/%> >+ return super.getAdapter(key); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ getDiagramNode().getElement().eAdapters().add(domainModelRefresher); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ getDiagramNode().getElement().eAdapters().remove(domainModelRefresher); >+ super.deactivate(); >+ } >+ >+<%@ include file="refreshers.javajetinc/domainModelRefresher.javajetinc"%> >+ >+<%@ include file="refresher.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private void createRefreshers() { >+ structuralFeatures2Refresher = new HashMap(); >+<%@ include file="refreshers.javajetinc/children.javajetinc"%> >+<%@ include file="refreshers.javajetinc/visibility.javajetinc"%> >+ Refresher labelRefresher = new Refresher() { >+ public void refresh() { >+ refreshLabel(); >+ } >+ }; >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+%> >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=feature.getFeatureAccessorName()%>(), labelRefresher); >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+%> >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=next.getFeatureAccessorName()%>(), labelRefresher); >+<% >+ } >+} >+%> >+<%@ include file="refreshers.javajetinc/font.javajetinc"%> >+<%@ include file="refreshers.javajetinc/fontColor.javajetinc"%> >+ } >+ >+<%@ include file="labelFigure.jetinc"%> >+} >+<%importManager.emitSortedImports();%> >Index: templates/editor/CreationWizardPage.javajet >=================================================================== >RCS file: templates/editor/CreationWizardPage.javajet >diff -N templates/editor/CreationWizardPage.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/CreationWizardPage.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,297 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="CreationWizardPageGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final GenEditorGenerator editorGen = genDiagram.getEditorGen(); >+final GenPlugin genPlugin = editorGen.getPlugin(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+ >+importManager.addImport("java.io.File"); >+importManager.addImport("org.eclipse.core.runtime.IProgressMonitor"); >+importManager.addImport("org.eclipse.core.runtime.CoreException"); >+importManager.addImport("java.io.IOException"); >+importManager.addImport("org.eclipse.swt.widgets.Text"); >+importManager.addImport("org.eclipse.emf.common.util.URI"); >+importManager.addImport("org.eclipse.swt.widgets.Composite"); >+importManager.addImport("org.eclipse.swt.widgets.Label"); >+importManager.addImport("org.eclipse.swt.events.ModifyListener"); >+importManager.addImport("org.eclipse.swt.events.ModifyEvent"); >+importManager.addImport("org.eclipse.swt.layout.GridLayout"); >+importManager.addImport("org.eclipse.swt.layout.GridData"); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genDiagram.getCreationWizardPageClassName()%> extends <%=importManager.getImportedName("org.eclipse.jface.wizard.WizardPage")%> { >+ /** >+ * @generated >+ */ >+ private Text fileField; >+ >+ /** >+ * @generated >+ */ >+ private URI createdDiagramFileURI; >+ >+ /** >+ * @generated >+ */ >+ public <%=genDiagram.getCreationWizardPageClassName()%>() { >+ super("CreationWizardPage"); //$NON-NLS-1$ >+ setTitle("Create <%=editorGen.getDomainGenModel().getModelName()%> Diagram"); //$NON-NLS-1$ >+ setDescription("Create a new <%=editorGen.getDomainGenModel().getModelName()%> diagram."); //$NON-NLS-1$ >+ } >+ >+ /** >+ * @generated >+ */ >+ public void createControl(Composite parent) >+ { >+ Composite composite = new Composite(parent, SWT.NONE); >+ { >+ GridLayout layout = new GridLayout(); >+ layout.numColumns = 1; >+ layout.verticalSpacing = 12; >+ composite.setLayout(layout); >+ >+ GridData data = new GridData(); >+ data.verticalAlignment = GridData.FILL; >+ data.grabExcessVerticalSpace = true; >+ data.horizontalAlignment = GridData.FILL; >+ composite.setLayoutData(data); >+ } >+ Label resourceURILabel = new Label(composite, SWT.LEFT); >+ { >+ resourceURILabel.setText("&File"); >+ >+ GridData data = new GridData(); >+ data.horizontalAlignment = GridData.FILL; >+ resourceURILabel.setLayoutData(data); >+ } >+ >+ Composite fileComposite = new Composite(composite, SWT.NONE); >+ { >+ GridData data = new GridData(); >+ data.horizontalAlignment = GridData.FILL; >+ data.grabExcessHorizontalSpace = true; >+ fileComposite.setLayoutData(data); >+ >+ GridLayout layout = new GridLayout(); >+ layout.marginHeight = 0; >+ layout.marginWidth = 0; >+ layout.numColumns = 2; >+ fileComposite.setLayout(layout); >+ } >+ >+ fileField = new <%=importManager.getImportedName("org.eclipse.swt.widgets.Text")%>(fileComposite, SWT.BORDER); >+ { >+ GridData data = new GridData(); >+ data.horizontalAlignment = GridData.FILL; >+ data.grabExcessHorizontalSpace = true; >+ data.horizontalSpan = 1; >+ fileField.setLayoutData(data); >+ } >+ >+ fileField.addModifyListener(validator); >+ <%=importManager.getImportedName("org.eclipse.swt.widgets.Button")%> resourceURIBrowseFileSystemButton = new <%=importManager.getImportedName("org.eclipse.swt.widgets.Button")%>(fileComposite, SWT.PUSH); >+ resourceURIBrowseFileSystemButton.setText("&Browse"); >+ >+ resourceURIBrowseFileSystemButton.addSelectionListener >+ (new <%=importManager.getImportedName("org.eclipse.swt.events.SelectionAdapter")%>() { >+ public void widgetSelected(<%=importManager.getImportedName("org.eclipse.swt.events.SelectionEvent")%> event) { >+ String fileExtension = "<%=editorGen.getDiagramFileExtension()%>"; >+ String filePath = <%=genDiagram.getDiagramEditorUtilClassName()%>.openFilePathDialog(getShell(), "*." + fileExtension, <%=importManager.getImportedName("org.eclipse.swt.SWT")%>.OPEN); >+ if (filePath != null) { >+ if (!filePath.endsWith("." + fileExtension)) { >+ filePath = filePath + "." + fileExtension; >+ } >+ fileField.setText(filePath); >+ } >+ } >+ }); >+ setPageComplete(validatePage()); >+ setControl(composite); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected ModifyListener validator = >+ new ModifyListener() { >+ public void modifyText(ModifyEvent e) { >+ setPageComplete(validatePage()); >+ } >+ }; >+ >+ /** >+ * @generated >+ */ >+ protected boolean validatePage() { >+ URI diagramFileURI = getDiagramFileURI(); >+ if (diagramFileURI == null || diagramFileURI.isEmpty()) { >+ setErrorMessage(null); >+ return false; >+ } >+ String requiredExt = "<%=editorGen.getDiagramFileExtension()%>"; >+ String enteredExt = diagramFileURI.fileExtension(); >+ if (enteredExt == null || !enteredExt.equals(requiredExt)) { >+ setErrorMessage("The file name must end in " + requiredExt); >+ return false; >+ } >+ >+ if (diagramFileURI.isFile()) { >+ File diagramFile = new File(diagramFileURI.toFileString()); >+ if (diagramFile.exists()) { >+ setErrorMessage("Diagram File already exists: " + diagramFile); >+ return false; >+ } >+<%if (!editorGen.isSameFileForDiagramAndModel()) {%> >+ URI modelFileURI = getModelFileURI(); >+ File modelFile = new File(modelFileURI.toFileString()); >+ if (modelFile.exists()) { >+ setErrorMessage("Model File already exists: " + modelFile); >+ return false; >+ } >+<%}%> >+ } >+ setErrorMessage(null); >+ return true; >+ } >+ >+ /** >+ * @generated >+ */ >+ public URI getCreatedDiagramFileURI() { >+ return createdDiagramFileURI; >+ } >+ >+ /** >+ * @generated >+ */ >+ private URI getDiagramFileURI() { >+ try { >+ return URI.createFileURI(fileField.getText()); >+ } catch (Exception exception) { >+ } >+ return null; >+ } >+ >+<%if (!editorGen.isSameFileForDiagramAndModel()) {%> >+ /** >+ * @generated >+ */ >+ private URI getModelFileURI() { >+ URI diagramFileURI = getDiagramFileURI(); >+ if (diagramFileURI == null) { >+ return null; >+ } >+ return diagramFileURI.trimFileExtension().appendFileExtension("<%=editorGen.getDomainFileExtension()%>"); >+ } >+<%}%> >+ >+ /** >+ * Performs the operations necessary to create and open the diagram >+ * @return boolean indicating whether the creation and opening the Diagram was successful >+ * @generated >+ */ >+ public boolean finish() { >+ final boolean[] result = new boolean[1]; >+ <%=importManager.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress")%> op = new IRunnableWithProgress() { >+ public void run(IProgressMonitor monitor) { >+ result[0] = doFinish(monitor); >+ } >+ }; >+ >+ try { >+ getContainer().run(false, true, op); >+ } catch (InterruptedException e) { >+ return false; >+ } catch (<%=importManager.getImportedName("java.lang.reflect.InvocationTargetException")%> e) { >+ if (e.getTargetException() instanceof CoreException) { >+ <%=importManager.getImportedName("org.eclipse.jface.dialogs.ErrorDialog")%>.openError( >+ getContainer().getShell(), >+ "Creation Problems", >+ null, // no special message >+ ((CoreException) e.getTargetException()).getStatus()); >+ } >+ else { >+ // CoreExceptions are handled above, but unexpected runtime exceptions and errors may still occur. >+ <%=genPlugin.getActivatorClassName()%>.getInstance().getLog().log(new <%=importManager.getImportedName("org.eclipse.core.runtime.Status")%>(<%=importManager.getImportedName("org.eclipse.core.runtime.IStatus")%>.ERROR, <%=genPlugin.getActivatorClassName()%>.ID, 0, "Creation failed", e.getTargetException())); >+ } >+ return false; >+ } >+ return result[0]; >+ } >+ >+ /** >+ * @param monitor the <code>IProgressMonitor</code> to use to indicate progress and check for cancellation >+ * @return boolean indicating whether the diagram was created and opened successfully >+ * @generated >+ */ >+ public boolean doFinish(IProgressMonitor monitor) { >+ createdDiagramFileURI = createDiagramFile(monitor); >+ return createdDiagramFileURI != null; >+ } >+ >+ /** >+ * @generated >+ */ >+ private URI createDiagramFile(IProgressMonitor monitor) { >+ //TODO: Editing domain! >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.resource.ResourceSet")%> resourceSet = new <%=importManager.getImportedName("org.eclipse.emf.ecore.resource.impl.ResourceSetImpl")%>(); >+ final <%=importManager.getImportedName("org.eclipse.emf.ecore.resource.Resource")%> diagramResource = resourceSet.createResource(getDiagramFileURI()); >+<% >+final boolean standaloneDomainModel = !editorGen.isSameFileForDiagramAndModel() && genDiagram.getDomainDiagramElement() != null; >+if (standaloneDomainModel) { >+%> >+ final Resource modelResource = resourceSet.createResource(getModelFileURI()); >+<%}%> >+ >+ if (diagramResource != null<%if (standaloneDomainModel) {%> && modelResource != null<%}%>) { >+ //TODO: Editing domain! >+ <%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getQualifiedInterfaceName())%> model = <%=importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedFactoryClassName())%>.eINSTANCE.create<%=genDiagram.getDomainDiagramElement().getClassifierAccessorName()%>(); >+<% >+if (standaloneDomainModel) { >+%> >+ modelResource.getContents().add(model); >+ try { >+ modelResource.save(<%=importManager.getImportedName("java.util.Collections")%>.EMPTY_MAP); >+ } catch (IOException e) { >+ handleSaveException(e); >+ } >+<% >+} else { >+%> >+ diagramResource.getContents().add(model); >+<% >+} >+%> >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")%> diagram = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createDiagram(); >+ diagram.setElement(model); >+ <%=importManager.getImportedName(genDiagram.getNotationViewFactoryQualifiedClassName())%>.decorateView(diagram); >+ diagramResource.getContents().add(diagram); >+ try { >+ diagramResource.save(Collections.EMPTY_MAP); >+ } catch (IOException e) { >+ handleSaveException(e); >+ } >+ } >+ boolean result = <%=genDiagram.getDiagramEditorUtilClassName()%>.openEditor(getDiagramFileURI()); >+ if (!result) { >+ return null; >+ } >+ return getDiagramFileURI(); >+ } >+ >+ /** >+ * @generated >+ */ >+ private void handleSaveException(IOException e) { >+ throw new RuntimeException(e); >+ } >+} >+<%importManager.emitSortedImports();%> >Index: templates/parts/LinkLabelEditPart.javajet >=================================================================== >RCS file: templates/parts/LinkLabelEditPart.javajet >diff -N templates/parts/LinkLabelEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/LinkLabelEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,241 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="LinkLabelEditPartGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* java.util.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.emf.ecore.*"%> >+<% >+GenLinkLabel genLabel = (GenLinkLabel) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+GenLink genHost = genLabel.getLink(); >+GenDiagram genDiagram = genLabel.getDiagram(); >+LabelModelFacet labelModelFacet = genLabel.getModelFacet(); >+GenClass underlyingMetaClass; >+if (genHost.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet typeLinkModelFacet = (TypeLinkModelFacet) genHost.getModelFacet(); >+ underlyingMetaClass = typeLinkModelFacet.getMetaClass(); >+} else if (genHost.getModelFacet() instanceof FeatureLinkModelFacet) { >+ FeatureLinkModelFacet featureLinkModelFacet = (FeatureLinkModelFacet) genHost.getModelFacet(); >+ underlyingMetaClass = featureLinkModelFacet.getMetaFeature().getTypeGenClass(); >+} else { >+ underlyingMetaClass = null; >+} >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.draw2d.geometry.Point"); >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Location"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Node"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genLabel.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")%> { >+<%@ include file="textAwareFields.jetinc"%> >+ >+ /** >+ * @generated >+ */ >+ public <%=genLabel.getEditPartClassName()%>(View view) { >+ assert view instanceof Node; >+ setModel(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ private Node getDiagramNode() { >+ return (Node)getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+<% >+final String primaryView = "getUpdatableParent().getDiagramEdge()"; >+final String resolvedSemanticElement = "resolveSemanticElement()"; >+%> >+ installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy")%>() { >+ public EditPart getHost() { >+ return getUpdatableParent(); >+ } >+ }); >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet == true || labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+%> >+<%@ include file="directEditPolicy.javajetinc"%> >+<% >+} >+%> >+ } >+ >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet == true || labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+%> >+<%@ include file="directEdit.javajetinc"%> >+<% >+} >+%> >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshLabel(); >+ refreshFont(); >+ refreshFontColor(); >+ refreshBounds(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshBounds() { >+ Node node = getDiagramNode(); >+ assert node.getLayoutConstraint() instanceof Location; >+ final Location location = (Location) node.getLayoutConstraint(); >+ ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) getParent()).setLayoutConstraint(this, >+ getFigure(), new <%=importManager.getImportedName("org.eclipse.draw2d.AbstractLocator")%>() { >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> getReferencePoint() { >+ <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> parent = getUpdatableParent(); >+ <%=importManager.getImportedName("org.eclipse.draw2d.Connection")%> connection = (<%=importManager.getImportedName("org.eclipse.draw2d.Connection")%>) parent.getFigure(); >+ <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> midPoint = connection.getPoints().getMidpoint().getCopy(); >+ connection.translateToAbsolute(midPoint); >+ return midPoint.translate(new <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%>(location.getX(), location.getY())); >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshLabel() { >+ getLabel().setText(getLabelText()); >+ } >+ >+<%@ include file="labelText.javajetinc"%> >+<%@ include file="refreshMethods/font.javajetinc"%> >+<%@ include file="refreshMethods/fontColor.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%> resolveSemanticElement() { >+ for(EditPart editPart = this; editPart != null; editPart = editPart.getParent()) { >+ View view = (View)editPart.getModel(); >+ if (view != null && view.getElement() != null) { >+ return (<%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%>) view.getElement(); >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> getUpdatableParent() { >+ for(EditPart editPart = getParent(); editPart != null; editPart = editPart.getParent()) { >+ if (editPart instanceof <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%>) { >+ return (<%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%>) editPart; >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> updatableParent = getUpdatableParent(); >+ if (updatableParent != null) { >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontColor(), fontColorRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontHeight(), fontRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontName(), fontRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Bold(), fontRefresher); >+ updatableParent.addRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Italic(), fontRefresher); >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+%> >+ updatableParent.addRefresher(<%=importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=feature.getFeatureAccessorName()%>(), labelRefresher); >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+%> >+ updatableParent.addRefresher(<%=importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=next.getFeatureAccessorName()%>(), labelRefresher); >+<% >+ } >+} >+%> >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ super.deactivate(); >+ <%=importManager.getImportedName(genHost.getEditPartQualifiedClassName())%> updatableParent = getUpdatableParent(); >+ if (updatableParent != null) { >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontColor(), fontColorRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontHeight(), fontRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_FontName(), fontRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Bold(), fontRefresher); >+ updatableParent.removeRefresher(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFontStyle_Italic(), fontRefresher); >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet) { >+ GenFeature feature = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+%> >+ updatableParent.removeRefresher(<%=importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=feature.getFeatureAccessorName()%>(), labelRefresher); >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ for(Iterator it = compositeFeatureLabelModelFacet.getMetaFeatures().iterator(); it.hasNext(); ) { >+ GenFeature next = (GenFeature) it.next(); >+%> >+ updatableParent.removeRefresher(<%=importManager.getImportedName(next.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=next.getFeatureAccessorName()%>(), labelRefresher); >+<% >+ } >+} >+%> >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ private IUpdatableEditPart.Refresher labelRefresher = new IUpdatableEditPart.Refresher() { >+ public void refresh() { >+ refreshLabel(); >+ } >+ }; >+ >+ >+ /** >+ * @generated >+ */ >+ private IUpdatableEditPart.Refresher fontColorRefresher = new IUpdatableEditPart.Refresher() { >+ public void refresh() { >+ refreshFontColor(); >+ } >+ }; >+ >+ /** >+ * @generated >+ */ >+ private IUpdatableEditPart.Refresher fontRefresher = new IUpdatableEditPart.Refresher() { >+ public void refresh() { >+ refreshFont(); >+ } >+ }; >+ >+<%@ include file="labelFigure.jetinc"%> >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ManifestGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ManifestGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ManifestGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/ManifestGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,70 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import java.util.*; >+ >+public class ManifestGenerator >+{ >+ protected static String nl; >+ public static synchronized ManifestGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ ManifestGenerator result = new ManifestGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = "Manifest-Version: 1.0" + NL + "Bundle-ManifestVersion: 2" + NL + "Bundle-Name: %pluginName" + NL + "Bundle-SymbolicName: "; >+ protected final String TEXT_2 = "; singleton:=true" + NL + "Bundle-Version: "; >+ protected final String TEXT_3 = NL + "Bundle-ClassPath: ." + NL + "Bundle-Activator: "; >+ protected final String TEXT_4 = NL + "Bundle-Vendor: %providerName" + NL + "Bundle-Localization: plugin" + NL + "Export-Package: "; >+ protected final String TEXT_5 = NL + "Require-Bundle: org.eclipse.core.runtime," + NL + " org.eclipse.jface," + NL + " org.eclipse.ui.views," + NL + " org.eclipse.ui.workbench," + NL + " org.eclipse.emf.ecore," + NL + " org.eclipse.emf.edit.ui," + NL + " org.eclipse.gef;visibility:=reexport," + NL + " org.eclipse.gmf.runtime.notation," + NL + " org.eclipse.gmf.runtime.notation.edit"; >+ protected final String TEXT_6 = ","; >+ protected final String TEXT_7 = NL + " "; >+ protected final String TEXT_8 = ";visibility:=reexport"; >+ protected final String TEXT_9 = NL + "Eclipse-LazyStart: true"; >+ protected final String TEXT_10 = NL; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+final GenPlugin genPlugin = (GenPlugin) argument; >+final GenModel genModel = genPlugin.getEditorGen().getDomainGenModel(); >+final Set requiredPluginIDs = new LinkedHashSet(); >+requiredPluginIDs.add(genModel.getModelPluginID()); >+requiredPluginIDs.add(genModel.getEditPluginID()); >+ >+for (Iterator it = genModel.getAllUsedGenPackagesWithClassifiers().iterator(); it.hasNext();) { >+ GenModel nextGenModel = ((GenPackage) it.next()).getGenModel(); >+ if (nextGenModel.hasEditSupport()) { >+ requiredPluginIDs.add(nextGenModel.getModelPluginID()); >+ requiredPluginIDs.add(nextGenModel.getEditPluginID()); >+ } >+} >+ >+requiredPluginIDs.addAll(genPlugin.getRequiredPluginIDs()); >+Iterator requiredBundleIterator = requiredPluginIDs.iterator(); >+ >+ stringBuffer.append(TEXT_1); >+ stringBuffer.append(genPlugin.getID()); >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(genPlugin.getVersion()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(genPlugin.getActivatorQualifiedClassName()); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genPlugin.getEditorGen().getEditor().getPackageName()); >+ stringBuffer.append(TEXT_5); >+ while(requiredBundleIterator.hasNext()) { >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(requiredBundleIterator.next()); >+ stringBuffer.append(TEXT_8); >+ } >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(TEXT_10); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/editor/plugin.xmljet >=================================================================== >RCS file: templates/editor/plugin.xmljet >diff -N templates/editor/plugin.xmljet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/plugin.xmljet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,44 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="PluginXML" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.emf.codegen.ecore.genmodel.*"%> >+<% >+final GenPlugin genPlugin = (GenPlugin) argument; >+final GenEditorGenerator editorGen = genPlugin.getEditorGen(); >+final GenDiagram genDiagram = editorGen.getDiagram(); >+final GenModel genModel = editorGen.getDomainGenModel(); >+%> >+<?xml version="1.0" encoding="UTF-8"?> >+<?eclipse version="3.0"?> >+<plugin> >+ <extension point="org.eclipse.team.core.fileTypes"> >+ <fileTypes >+ type="text" >+ extension="<%=editorGen.getDiagramFileExtension()%>"> >+ </fileTypes> >+ </extension> >+ >+ <extension point="org.eclipse.ui.editors"> >+ <editor >+ id="<%=editorGen.getEditor().getID()%>" >+ name="<%=genModel.getModelName()%> Diagram Editor" >+ icon="<%=editorGen.getEditor().getIconPath()%>" >+ extensions="<%=editorGen.getDiagramFileExtension()%>" >+ default="true" >+ class="<%=editorGen.getEditor().getQualifiedClassName()%>" >+ contributorClass="<%=editorGen.getEditor().getActionBarContributorQualifiedClassName()%>"> >+ </editor> >+ </extension> >+ >+ <extension point="org.eclipse.ui.newWizards"> >+ <wizard >+ name="<%=genModel.getModelName()%> Diagram" >+ icon="<%=genDiagram.getCreationWizardIconPath()%>" >+ category="org.eclipse.ui.Examples" >+ class="<%=genDiagram.getCreationWizardQualifiedClassName()%>" >+ id="<%=genDiagram.getCreationWizardQualifiedClassName()%>ID"> >+ <description> >+ Creates <%=genModel.getModelName()%> diagram. >+ </description> >+ </wizard> >+ </extension> >+ >+</plugin> >Index: .classpath >=================================================================== >RCS file: .classpath >diff -N .classpath >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .classpath 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,8 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<classpath> >+ <classpathentry kind="src" path="src"/> >+ <classpathentry kind="src" path="src-templates"/> >+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> >+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> >+ <classpathentry kind="output" path="bin"/> >+</classpath> >Index: templates/parts/labelFigure.jetinc >=================================================================== >RCS file: templates/parts/labelFigure.jetinc >diff -N templates/parts/labelFigure.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/labelFigure.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,62 @@ >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> createFigure() { >+ <%=importManager.getImportedName("org.eclipse.draw2d.Label")%> label = createLabel(); >+ defaultText = label.getText(); >+ return label; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.Label")%> createLabel() { >+<% >+String figureQualifiedClassName = null; >+Viewmap viewmap = genLabel.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.draw2d.Label"; >+ } >+%> >+ return new <%=importManager.getImportedName(figureQualifiedClassName)%>(); >+<%} // instanceof FigureViewmap >+ else if (viewmap instanceof SnippetViewmap) {%> >+ return <%=((SnippetViewmap) viewmap).getBody()%>; >+<%} // instanceof SnippetViewmap; FIXME : obtain figure class name to generate getter >+ else if (viewmap instanceof InnerClassViewmap) { >+ figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >+%> >+ return new <%=figureQualifiedClassName%>(); >+<%}%> >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.Label")%> getLabel() { >+ return (<%=importManager.getImportedName("org.eclipse.draw2d.Label")%>) getFigure(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void setLabel(<%=importManager.getImportedName("org.eclipse.draw2d.Label")%> figure) { >+ unregisterVisuals(); >+ setFigure(figure); >+ defaultText = figure.getText(); >+ registerVisuals(); >+ refreshVisuals(); >+ } >+ >+<% >+if (genLabel.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genLabel.getViewmap()).getClassBody(); >+%> >+<%=classBody%> >+<%@ include file="mapmodeWorkaround.javajetinc"%> >+<% >+} >+%> >Index: plugin.properties >=================================================================== >RCS file: plugin.properties >diff -N plugin.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ plugin.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,2 @@ >+pluginName=GMF Pure-GEF Code Generation Plug-in >+providerName=Eclipse.org >Index: templates/parts/refreshers.javajetinc/targetEdges.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/targetEdges.javajetinc >diff -N templates/parts/refreshers.javajetinc/targetEdges.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/targetEdges.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+ Refresher targetEdgesRefresher = new Refresher() { >+ public void refresh() { >+ refreshTargetConnections(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getView_TargetEdges(), targetEdgesRefresher); >Index: templates/parts/directEditPolicy.javajetinc >=================================================================== >RCS file: templates/parts/directEditPolicy.javajetinc >diff -N templates/parts/directEditPolicy.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/directEditPolicy.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,122 @@ >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.DIRECT_EDIT_ROLE, >+ new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.DirectEditPolicy")%>() { >+ protected void showCurrentEditValue(<%=importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")%> request) { >+ String value = (String) request.getCellEditor().getValue(); >+ getLabel().setText(value); >+ } >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getDirectEditCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.DirectEditRequest")%> request) { >+ String value = (String) request.getCellEditor().getValue(); >+ if (value == null) { >+ //Invalid value is transformed into a null by the validator. >+ //XXX: implement validator >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ final Object[] parseResult; >+ try { >+ parseResult = new <%=importManager.getImportedName("java.text.MessageFormat")%>(EDIT_PATTERN).parse(value); >+ } catch (IllegalArgumentException e) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } catch (<%=importManager.getImportedName("java.text.ParseException")%> e) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+<% >+if (labelModelFacet instanceof FeatureLabelModelFacet && !genLabel.isReadOnly()) { >+ GenFeature featureToSet = ((FeatureLabelModelFacet)labelModelFacet).getMetaFeature(); >+ EStructuralFeature ecoreFeature = featureToSet.getEcoreFeature(); >+%> >+ if (parseResult.length != 1) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ return new <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%>() { >+ private <%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%> element = <%=resolvedSemanticElement%>; >+ private <%=importManager.getImportedName("org.eclipse.emf.common.command.Command")%> domainModelCommand = createDomainModelCommand(); >+ private <%=importManager.getImportedName("org.eclipse.emf.common.command.Command")%> createDomainModelCommand() { >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> domainModelEditDomain = <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(<%=primaryView%>.getDiagram().getElement()); >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")%> feature = (<%=importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")%>) <%=importManager.getImportedName(featureToSet.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=featureToSet.getFeatureAccessorName()%>(); >+ Object valueToSet; >+ try { >+ valueToSet = <%=importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())%>.parseValue(feature, parseResult[0]); >+ } catch (IllegalArgumentException e) { >+ return <%=importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")%>.INSTANCE; >+ } >+<% >+ if (ecoreFeature.isMany()) { >+%> >+ <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%> result = new <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%>(); >+ <%=importManager.getImportedName("org.eclipse.emf.common.util.EList")%> values = new <%=importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")%>(); >+ values.addAll(element.get<%=featureToSet.getAccessorName()%>()); >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create(domainModelEditDomain, element, feature, values)); >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")%>.create(domainModelEditDomain, element, feature, valueToSet)); >+ return result; >+<% >+ } else { >+%> >+ return <%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, element, feature, valueToSet); >+<% >+ } >+%> >+ } >+<% >+} else if (labelModelFacet instanceof CompositeFeatureLabelModelFacet) { >+ CompositeFeatureLabelModelFacet compositeFeatureLabelModelFacet = (CompositeFeatureLabelModelFacet) labelModelFacet; >+ List metaFeatures = compositeFeatureLabelModelFacet.getMetaFeatures(); >+%> >+ if (parseResult.length != <%=metaFeatures.size()%>) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ return new <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%>() { >+ private <%=importManager.getImportedName(underlyingMetaClass.getQualifiedInterfaceName())%> element = <%=resolvedSemanticElement%>; >+ private <%=importManager.getImportedName("org.eclipse.emf.common.command.Command")%> domainModelCommand = createDomainModelCommand(); >+ private <%=importManager.getImportedName("org.eclipse.emf.common.command.Command")%> createDomainModelCommand() { >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> domainModelEditDomain = <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(<%=primaryView%>.getDiagram().getElement()); >+ <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%> result = new <%=importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")%>(); >+ Object valueToSet; >+<% >+ boolean haveDeclaredValues = false; >+ for(int i = 0; i < metaFeatures.size(); i++) { >+ GenFeature nextFeatureToSet = (GenFeature) metaFeatures.get(i); >+ EStructuralFeature nextEcoreFeature = nextFeatureToSet.getEcoreFeature(); >+%> >+ <%if (i == 0) {%><%=importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")%> <%}%>feature = (<%=importManager.getImportedName("org.eclipse.emf.ecore.EAttribute")%>) <%=importManager.getImportedName(nextFeatureToSet.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=nextFeatureToSet.getFeatureAccessorName()%>(); >+ try { >+ valueToSet = <%=importManager.getImportedName(genDiagram.getAbstractParserQualifiedClassName())%>.parseValue(feature, parseResult[<%=i%>]); >+ } catch (IllegalArgumentException e) { >+ return <%=importManager.getImportedName("org.eclipse.emf.common.command.UnexecutableCommand")%>.INSTANCE; >+ } >+<% >+ if (nextEcoreFeature.isMany()) { >+%> >+ <%if (!haveDeclaredValues) { haveDeclaredValues = true;%><%=importManager.getImportedName("org.eclipse.emf.common.util.EList")%> <%}%>values = new <%=importManager.getImportedName("org.eclipse.emf.common.util.BasicEList")%>(); >+ values.addAll(element.get<%=nextFeatureToSet.getAccessorName()%>()); >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")%>.create(domainModelEditDomain, element, feature, values)); >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.AddCommand")%>.create(domainModelEditDomain, element, feature, valueToSet)); >+<% >+ } else { >+%> >+ result.append(<%=importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, element, feature, valueToSet)); >+<% >+ } >+%> >+<% >+ } >+%> >+ return result; >+ } >+<% >+} >+%> >+ public void undo() { >+ domainModelCommand.undo(); >+ } >+ public void execute() { >+ domainModelCommand.execute(); >+ } >+ public boolean canUndo() { >+ return element != null && domainModelCommand != null && domainModelCommand.canUndo(); >+ } >+ public boolean canExecute() { >+ return element != null && domainModelCommand != null && domainModelCommand.canExecute(); >+ } >+ }; >+ } >+ }); >Index: templates/emf-merge.xml >=================================================================== >RCS file: templates/emf-merge.xml >diff -N templates/emf-merge.xml >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/emf-merge.xml 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,171 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<merge:options >+ indent=" " >+ braceStyle="matching" >+ redirect="Gen" >+ block="\s*@\s*generated\s*NOT\s*\n" >+ noImport="\s*//\s*import\s+([\w.*]*)\s*;\s*\n" >+ xmlns:merge="http://www.eclipse.org/org/eclipse/emf/codegen/jmerge/Options"> >+ >+<!-- Tabbed Standard >+ >+ indent="	" >+ braceStyle="standard" >+ >+--> >+ >+ <!-- this accepts both new and old style markup. --> >+ >+ <merge:dictionaryPattern >+ name="modelMembers" >+ select="Member/getComment" >+ match="\s*@\s*(model)"/> >+ >+ <merge:dictionaryPattern >+ name="generatedUnmodifiableMembers" >+ select="Member/getComment" >+ match="\s*@\s*(gen)erated\s*(This field/method[^\n]*)*\n"/> >+ >+ <merge:dictionaryPattern >+ name="generatedModifiableMembers" >+ select="Member/getComment" >+ match="\s*@\s*generated\s*(modifiable)\s*\n"/> >+ >+ <!-- This is like the above, but for backward compatibility --> >+ <merge:dictionaryPattern >+ name="generatedLastGenMembers" >+ select="Member/getComment" >+ match="\s*@\s*(lastgen).*\n"/> >+ >+ <merge:dictionaryPattern >+ name="orderedMembers" >+ select="Member/getComment" >+ match="\s*@\s*(ordered)\s*\n"/> >+ >+ <merge:pull >+ sourceGet="Member/getFlags" >+ targetMarkup="^gen$" >+ targetPut="Member/setFlags"/> >+ >+<!-- >+ <merge:pull >+ sourceMarkup="^modifiable$" >+ sourceGet="Member/getComment" >+ targetMarkup="^gen$" >+ targetPut="Member/setComment"/> >+--> >+ >+ <merge:pull >+ sourceMarkup="^modifiable$" >+ sourceGet="Member/getComment" >+ sourceTransfer="(\s*<!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)\n" >+ targetMarkup="^modifiable$" >+ targetPut="Member/setComment"/> >+ >+ <merge:pull >+ sourceMarkup="^gen$" >+ sourceGet="Member/getComment" >+ sourceTransfer="(\s*<!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)\n" >+ targetMarkup="^gen$" >+ targetPut="Member/setComment"/> >+ >+ <merge:pull >+ sourceMarkup="^gen$" >+ sourceGet="Type/getComment" >+ sourceTransfer="(\s*<!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)\n" >+ targetMarkup="^modifiable$" >+ targetPut="Type/setComment"/> >+ >+ <merge:pull >+ sourceGet="Initializer/getBody" >+ targetMarkup="^gen$" >+ targetPut="Initializer/setBody"/> >+ >+ <merge:pull >+ sourceGet="Type/getSuperclass" >+ targetMarkup="^lastgen$|^gen$|^modifiable$|^model$" >+ targetPut="Type/setSuperclass"/> >+ >+ <merge:pull >+ sourceGet="Type/getSuperInterfaces" >+ sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)\n" >+ targetMarkup="^lastgen$|^gen$|^modifiable$|^model$" >+ targetPut="Type/addSuperInterface"/> >+ >+ <merge:pull >+ sourceGet="Field/getType" >+ targetMarkup="^gen$" >+ targetPut="Field/setType"/> >+ <merge:pull >+ sourceGet="Field/getInitializer" >+ targetMarkup="^gen$" >+ targetPut="Field/setInitializer"/> >+ >+ <merge:pull >+ sourceGet="Method/getBody" >+ targetMarkup="^gen$" >+ targetPut="Method/setBody"/> >+ <merge:pull >+ sourceGet="Method/getReturnType" >+ targetMarkup="^gen$|^model$" >+ targetPut="Method/setReturnType"/> >+ <merge:pull >+ sourceGet="Method/getExceptions" >+ targetMarkup="^gen$" >+ targetPut="Method/addException"/> >+ >+ <merge:sweep markup="^gen$" select="Member"/> >+ <merge:sweep markup="^org.eclipse.emf.ecore.EMetaObject$" select="Import"/> >+ <merge:sweep markup="^org.eclipse.emf.ecore.impl.EMetaObjectImpl$" select="Import"/> >+ <merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeEList$" select="Import"/> >+ <merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeWithInverseEList$" select="Import"/> >+ >+ <merge:sort markup="^ordered$" select="Member"/> >+ >+<!-- Basic Rules >+ >+ <merge:pull >+ sourceGet="CompilationUnit/getHeader" >+ targetPut="CompilationUnit/setHeader"/> >+ >+ <merge:pull >+ sourceGet="Package/getName" >+ targetPut="Package/setName"/> >+ >+ <merge:pull >+ sourceGet="Member/getFlags" >+ targetPut="Member/setFlags"/> >+ <merge:pull >+ sourceGet="Member/getComment" >+ targetPut="Member/setComment"/> >+ >+ <merge:pull >+ sourceGet="Type/getSuperclass" >+ targetPut="Type/setSuperclass"/> >+ <merge:pull >+ sourceGet="Type/getSuperInterfaces" >+ targetPut="Type/addSuperInterface"/> >+ >+ <merge:pull >+ sourceGet="Initializer/getBody" >+ targetPut="Initializer/setBody"/> >+ >+ <merge:pull >+ sourceGet="Field/getType" >+ targetPut="Field/setType"/> >+ <merge:pull >+ sourceGet="Field/getInitializer" >+ targetPut="Field/setInitializer"/> >+ >+ <merge:pull >+ sourceGet="Method/getBody" >+ targetPut="Method/setBody"/> >+ <merge:pull >+ sourceGet="Method/getReturnType" >+ targetPut="Method/setReturnType"/> >+ <merge:pull >+ sourceGet="Method/getExceptions" >+ targetPut="Method/addException"/> >+--> >+ >+</merge:options> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/CompartmentViewFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/CompartmentViewFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/CompartmentViewFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/CompartmentViewFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,80 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+ >+public class CompartmentViewFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized CompartmentViewFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ CompartmentViewFactoryGenerator result = new CompartmentViewFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void decorateView("; >+ protected final String TEXT_6 = " view) {"; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = " annotation = "; >+ protected final String TEXT_9 = ".eINSTANCE.createEAnnotation();" + NL + "annotation.setSource(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "view.getEAnnotations().add(annotation);" + NL + "annotation.getDetails().put(\"modelID\", \""; >+ protected final String TEXT_10 = "\"); //$NON-NLS-1$" + NL + "annotation.getDetails().put(\"visualID\", \""; >+ protected final String TEXT_11 = "\"); //$NON-NLS-1$" + NL + "\t\t"; >+ protected final String TEXT_12 = " drawerStyle = "; >+ protected final String TEXT_13 = ".eINSTANCE.createDrawerStyle();" + NL + "\t\tview.getStyles().add(drawerStyle);" + NL + "\t\t//XXX: init styles from attributes!!!" + NL + "\t\t"; >+ protected final String TEXT_14 = " titleStyle = "; >+ protected final String TEXT_15 = ".eINSTANCE.createTitleStyle();" + NL + "\t\tview.getStyles().add(titleStyle);" + NL + "\t}" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenCompartment genElement = (GenCompartment) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genElement.getNotationViewFactoryClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EcoreFactory")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genDiagram.getEditorGen().getModelID()); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genElement.getVisualID()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.DrawerStyle")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.TitleStyle")); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_15); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/refreshers.javajetinc/shapeColor.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/shapeColor.javajetinc >diff -N templates/parts/refreshers.javajetinc/shapeColor.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/shapeColor.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,12 @@ >+ Refresher backgroundColorRefresher = new Refresher() { >+ public void refresh() { >+ refreshBackgroundColor(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getFillStyle_FillColor(), backgroundColorRefresher); >+ Refresher foregroundColorRefresher = new Refresher() { >+ public void refresh() { >+ refreshForegroundColor(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getLineStyle_LineColor(), foregroundColorRefresher); >Index: templates/providers/CompartmentViewFactory.javajet >=================================================================== >RCS file: templates/providers/CompartmentViewFactory.javajet >diff -N templates/providers/CompartmentViewFactory.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/CompartmentViewFactory.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,30 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.providers" class="CompartmentViewFactoryGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+GenCompartment genElement = (GenCompartment) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<%importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genElement.getNotationViewFactoryClassName()%> { >+ /** >+ * @generated >+ */ >+ public static void decorateView(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+<%@ include file="createVIDAnnotation.jetinc"%> >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.DrawerStyle")%> drawerStyle = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createDrawerStyle(); >+ view.getStyles().add(drawerStyle); >+ //XXX: init styles from attributes!!! >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.TitleStyle")%> titleStyle = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createTitleStyle(); >+ view.getStyles().add(titleStyle); >+ } >+} >+<%importManager.emitSortedImports();%> >Index: templates/editor/CreationWizard.javajet >=================================================================== >RCS file: templates/editor/CreationWizard.javajet >diff -N templates/editor/CreationWizard.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/CreationWizard.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,68 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="CreationWizardGenerator" >+ imports="org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final GenModel genModel = genDiagram.getEditorGen().getDomainGenModel(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+importManager.addImport("org.eclipse.jface.viewers.IStructuredSelection"); >+importManager.addImport("org.eclipse.ui.IWorkbench"); >+ >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genDiagram.getCreationWizardClassName()%> extends <%=importManager.getImportedName("org.eclipse.jface.wizard.Wizard")%> implements <%=importManager.getImportedName("org.eclipse.ui.INewWizard")%> { >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.emf.common.util.URI")%> diagramFileURI; >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName(genDiagram.getCreationWizardPageQualifiedClassName())%> page; >+ >+ /** >+ * @generated >+ */ >+ public void addPages() { >+ super.addPages(); >+ if (page == null) { >+ page = new <%=importManager.getImportedName(genDiagram.getCreationWizardPageQualifiedClassName())%>(); >+ } >+ addPage(page); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void init(IWorkbench workbench, IStructuredSelection selection) { >+ setWindowTitle("New <%=genModel.getModelName()%> Diagram"); //$NON-NLS-1$ >+ setDefaultPageImageDescriptor(<%=genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName()%>.getBundledImageDescriptor( >+ "icons/full/wizban/New<%=genModel.getModelName()%>.gif")); //$NON-NLS-1$ >+ setNeedsProgressMonitor(true); >+ } >+ >+ /** >+ * @generated >+ */ >+ public boolean performFinish() { >+ boolean retVal = page.finish(); >+ diagramFileURI = page.getCreatedDiagramFileURI(); >+ return retVal; >+ } >+ >+ /** >+ * returns the diagram file >+ * @return URI the diagram file >+ * @generated >+ */ >+ public final URI getDiagramFileURI() { >+ return diagramFileURI; >+ } >+} >+<%importManager.emitSortedImports();%> >Index: .project >=================================================================== >RCS file: .project >diff -N .project >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .project 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,34 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<projectDescription> >+ <name>org.eclipse.gmf.codegen.lite</name> >+ <comment></comment> >+ <projects> >+ </projects> >+ <buildSpec> >+ <buildCommand> >+ <name>org.eclipse.emf.codegen.JETBuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ <buildCommand> >+ <name>org.eclipse.jdt.core.javabuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ <buildCommand> >+ <name>org.eclipse.pde.ManifestBuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ <buildCommand> >+ <name>org.eclipse.pde.SchemaBuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ </buildSpec> >+ <natures> >+ <nature>org.eclipse.emf.codegen.jet.IJETNature</nature> >+ <nature>org.eclipse.pde.PluginNature</nature> >+ <nature>org.eclipse.jdt.core.javanature</nature> >+ </natures> >+</projectDescription> >Index: templates/parts/IUpdatableEditPart.javajet >=================================================================== >RCS file: templates/parts/IUpdatableEditPart.javajet >diff -N templates/parts/IUpdatableEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/IUpdatableEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,66 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="UpdatableEditPartGenerator" >+ imports="org.eclipse.gmf.common.codegen.* "%> >+<% >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+ >+<% >+importManager.emitPackageStatement(stringBuffer); >+%> >+ >+import java.util.ArrayList; >+import java.util.Collection; >+import java.util.Iterator; >+ >+import org.eclipse.emf.common.notify.Notification; >+import org.eclipse.emf.ecore.EStructuralFeature; >+ >+/** >+ * @generated >+ */ >+public interface IUpdatableEditPart { >+ /** >+ * @generated >+ */ >+ public Refresher getRefresher(EStructuralFeature feature, Notification msg); >+ /** >+ * @generated >+ */ >+ public interface Refresher { >+ /** >+ * @generated >+ */ >+ public void refresh(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public class CompositeRefresher implements Refresher { >+ /** >+ * @generated >+ */ >+ public void addRefresher(Refresher refresher) { >+ refreshers.add(refresher); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void removeRefresher(Refresher refresher) { >+ refreshers.remove(refresher); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void refresh() { >+ for(Iterator it = refreshers.iterator(); it.hasNext(); ) { >+ Refresher next = (Refresher) it.next(); >+ next.refresh(); >+ } >+ } >+ >+ private Collection/*<Refresher>*/ refreshers = new ArrayList(); >+ } >+} >Index: templates/editor/DiagramEditorUtil.javajet >=================================================================== >RCS file: templates/editor/DiagramEditorUtil.javajet >diff -N templates/editor/DiagramEditorUtil.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/DiagramEditorUtil.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,96 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="DiagramEditorUtilGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >+<% >+final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+final GenEditorGenerator editorGen = genDiagram.getEditorGen(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer);%> >+ >+<%importManager.markImportLocation(stringBuffer); >+importManager.addImport("java.io.File"); >+importManager.addImport("org.eclipse.ui.IWorkbench"); >+importManager.addImport("org.eclipse.ui.IWorkbenchPage"); >+importManager.addImport("org.eclipse.ui.IWorkbenchWindow"); >+importManager.addImport("org.eclipse.ui.PlatformUI"); >+importManager.addImport("org.eclipse.ui.PartInitException"); >+importManager.addImport("org.eclipse.ui.IEditorDescriptor"); >+importManager.addImport("org.eclipse.swt.widgets.Shell"); >+importManager.addImport("org.eclipse.swt.widgets.FileDialog"); >+importManager.addImport("org.eclipse.jface.dialogs.MessageDialog"); >+importManager.addImport("org.eclipse.emf.common.util.URI"); >+importManager.addImport("org.eclipse.emf.common.ui.URIEditorInput"); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genDiagram.getDiagramEditorUtilClassName()%> { >+ /** >+ * @generated >+ */ >+ public static String openFilePathDialog(Shell shell, String fileExtensionFilter, int style) { >+ FileDialog fileDialog = new FileDialog(shell, style); >+ fileDialog.setFilterExtensions(new String[]{fileExtensionFilter}); >+ >+ fileDialog.open(); >+ if (fileDialog.getFileName() != null && fileDialog.getFileName().length() > 0) { >+ return fileDialog.getFilterPath() + File.separator + fileDialog.getFileName(); >+ } >+ else >+ { >+ return null; >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ public static boolean openEditor(URI fileURI) { >+ IWorkbench workbench = PlatformUI.getWorkbench(); >+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); >+ IWorkbenchPage page = workbenchWindow.getActivePage(); >+ >+ IEditorDescriptor editorDescriptor = workbench.getEditorRegistry().getDefaultEditor(fileURI.toFileString()); >+ if (editorDescriptor == null) { >+ MessageDialog.openError( >+ workbenchWindow.getShell(), >+ "Error", >+ "There is no editor registered for the file " + fileURI.toFileString()); >+ return false; >+ } else { >+ try { >+ page.openEditor(new URIEditorInput(fileURI), editorDescriptor.getId()); >+ } catch (PartInitException exception) { >+ MessageDialog.openError( >+ workbenchWindow.getShell(), >+ "Error Opening Editor", >+ exception.getMessage()); >+ return false; >+ } >+ } >+ >+ return true; >+ } >+ >+ /** >+ * @generated >+ */ >+ public static URI getDiagramFileURI(URI modelFileURI) { >+ if (modelFileURI == null || !modelFileURI.isFile()) { >+ return null; >+ } >+ return modelFileURI.trimFileExtension().appendFileExtension("<%=editorGen.getDiagramFileExtension()%>"); >+ } >+ >+ /** >+ * @generated >+ */ >+ public static URI getModelFileURI(URI diagramFileURI) { >+ if (diagramFileURI == null || !diagramFileURI.isFile()) { >+ return null; >+ } >+ return diagramFileURI.trimFileExtension().appendFileExtension("<%=editorGen.getDomainFileExtension()%>"); >+ } >+ } >+<%importManager.emitSortedImports();%> >Index: templates/editor/ActionBarContributor.javajet >=================================================================== >RCS file: templates/editor/ActionBarContributor.javajet >diff -N templates/editor/ActionBarContributor.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/ActionBarContributor.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,79 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="ActionBarContributorGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.emf.codegen.ecore.genmodel.*"%> >+<% >+final GenEditorView editorView = (GenEditorView) ((Object[]) argument)[0]; >+final GenModel genModel = editorView.getEditorGen().getDomainGenModel(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.markImportLocation(stringBuffer); >+%> >+ >+import org.eclipse.gef.ui.actions.ActionBarContributor; >+import org.eclipse.gef.ui.actions.DeleteRetargetAction; >+import org.eclipse.gef.ui.actions.GEFActionConstants; >+import org.eclipse.gef.ui.actions.RedoRetargetAction; >+import org.eclipse.gef.ui.actions.UndoRetargetAction; >+import org.eclipse.gef.ui.actions.ZoomComboContributionItem; >+import org.eclipse.gef.ui.actions.ZoomInRetargetAction; >+import org.eclipse.gef.ui.actions.ZoomOutRetargetAction; >+import org.eclipse.jface.action.IMenuManager; >+import org.eclipse.jface.action.IToolBarManager; >+import org.eclipse.jface.action.MenuManager; >+import org.eclipse.jface.action.Separator; >+import org.eclipse.ui.IWorkbenchActionConstants; >+import org.eclipse.ui.actions.ActionFactory; >+ >+/** >+ * The action bar contributor for the <%=genModel.getModelName()%> editor. >+ * >+ * @generated >+ */ >+public class <%=editorView.getActionBarContributorClassName()%> extends ActionBarContributor { >+ /** >+ * @generated >+ */ >+ protected void buildActions() { >+ addRetargetAction(new UndoRetargetAction()); >+ addRetargetAction(new RedoRetargetAction()); >+ addRetargetAction(new DeleteRetargetAction()); >+ >+ addRetargetAction(new ZoomInRetargetAction()); >+ addRetargetAction(new ZoomOutRetargetAction()); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void declareGlobalActionKeys() { >+ addGlobalActionKey(ActionFactory.PRINT.getId()); >+ addGlobalActionKey(ActionFactory.DELETE.getId()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void contributeToMenu(IMenuManager menuManager) { >+ super.contributeToMenu(menuManager); >+ >+ // add a "View" menu after "Edit" >+ MenuManager viewMenu = new MenuManager("View"); >+ viewMenu.add(getAction(GEFActionConstants.ZOOM_IN)); >+ viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT)); >+ >+ menuManager.insertAfter(IWorkbenchActionConstants.M_EDIT, viewMenu); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void contributeToToolBar(IToolBarManager toolBarManager) { >+ super.contributeToToolBar(toolBarManager); >+ >+ toolBarManager.add(getAction(ActionFactory.UNDO.getId())); >+ toolBarManager.add(getAction(ActionFactory.REDO.getId())); >+ >+ toolBarManager.add(new Separator()); >+ toolBarManager.add(new ZoomComboContributionItem(getPage())); >+ } >+} >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/DiagramEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/DiagramEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/DiagramEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/DiagramEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,406 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import java.util.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+ >+public class DiagramEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized DiagramEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ DiagramEditPartGenerator result = new DiagramEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_3 = " extends AbstractGraphicalEditPart implements IUpdatableEditPart {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_4 = "("; >+ protected final String TEXT_5 = " model) {" + NL + "\t\tsetModel(model);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_6 = " getDiagram() {" + NL + "\t\treturn ("; >+ protected final String TEXT_7 = ") getModel();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {" + NL + "\t\tinstallEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy());" + NL + "\t\tinstallEditPolicy(EditPolicy.LAYOUT_ROLE, new XYLayoutEditPolicy() {" + NL + "\t\t\tprotected Command getCreateCommand(CreateRequest request) {"; >+ protected final String TEXT_8 = NL + "\t\t\t\tif (request instanceof "; >+ protected final String TEXT_9 = ".CreateRequestEx) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_10 = ".CreateRequestEx requestEx = ("; >+ protected final String TEXT_11 = ".CreateRequestEx) request;" + NL + "\t\t\t\t\tint[] visualIds = requestEx.getVisualIds();" + NL + "\t\t\t\t\tCompoundCommand result = new CompoundCommand();" + NL + "\t\t\t\t\tfor(int i = 0; i < visualIds.length; i++) {" + NL + "\t\t\t\t\t\tint nextVisualId = visualIds[i];" + NL + "\t\t\t\t\t\tswitch (nextVisualId) {"; >+ protected final String TEXT_12 = NL + "\t\t\t\t\t\tcase "; >+ protected final String TEXT_13 = ":" + NL + "\t\t\t\t\t\t\tresult.add(new Create"; >+ protected final String TEXT_14 = "Command(getDiagram(), requestEx, ("; >+ protected final String TEXT_15 = ")getConstraintFor(request)));" + NL + "\t\t\t\t\t\t\tbreak;"; >+ protected final String TEXT_16 = NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\treturn result.unwrap();" + NL + "\t\t\t\t}"; >+ protected final String TEXT_17 = NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t\tprotected Command createChangeConstraintCommand(final ChangeBoundsRequest request, EditPart child, Object constraint) {" + NL + "\t\t\t\tfinal Node node = (Node) child.getModel();" + NL + "\t\t\t\treturn new Command(\"Change node position/size\") {" + NL + "\t\t\t\t\tprivate Point moveDelta = request.getMoveDelta();" + NL + "\t\t\t\t\tprivate Dimension resizeDelta = request.getSizeDelta();" + NL + "" + NL + "\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\treturn canExecute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\treturn node.getLayoutConstraint() instanceof Bounds;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\texecute(moveDelta.getNegated(), resizeDelta.getNegated());" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\texecute(moveDelta, resizeDelta);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tprivate void execute(Point move, Dimension resize) {" + NL + "\t\t\t\t\t\tBounds bounds = (Bounds) node.getLayoutConstraint();" + NL + "\t\t\t\t\t\tbounds.setX(bounds.getX() + move.x);" + NL + "\t\t\t\t\t\tbounds.setY(bounds.getY() + move.y);" + NL + "\t\t\t\t\t\tbounds.setWidth(bounds.getWidth() + resize.width);" + NL + "\t\t\t\t\t\tbounds.setHeight(bounds.getHeight() + resize.height);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t}" + NL + "\t\t\tprotected Command createChangeConstraintCommand(EditPart child, Object constraint) {" + NL + "\t\t\t\tassert false;" + NL + "\t\t\t\treturn UnexecutableCommand.INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t});" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure createFigure() {" + NL + "\t\tIFigure f = new FreeformLayer();" + NL + "\t\tf.setBorder(new MarginBorder(5));" + NL + "\t\tf.setLayoutManager(new FreeformLayout());" + NL + "\t\treturn f;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object getAdapter(Class key) {" + NL + "\t\tif ("; >+ protected final String TEXT_18 = ".class == key) {" + NL + "\t\t\treturn new "; >+ protected final String TEXT_19 = "(this);" + NL + "\t\t}"; >+ protected final String TEXT_20 = NL + "\t\treturn super.getAdapter(key);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected List getModelChildren() {" + NL + "\t\treturn getDiagram().getVisibleChildren();" + NL + "\t}" + NL; >+ protected final String TEXT_21 = NL; >+ protected final String TEXT_22 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_23 = "static "; >+ protected final String TEXT_24 = "class Create"; >+ protected final String TEXT_25 = "Command extends "; >+ protected final String TEXT_26 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final "; >+ protected final String TEXT_27 = " parent;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_28 = " createdNode;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic Create"; >+ protected final String TEXT_29 = "Command("; >+ protected final String TEXT_30 = " parent, "; >+ protected final String TEXT_31 = ".CreateRequestEx request"; >+ protected final String TEXT_32 = ", "; >+ protected final String TEXT_33 = " constraint"; >+ protected final String TEXT_34 = ") {" + NL + "\t\t\tthis.parent = parent;" + NL + "\t\t\tcreatedNode = "; >+ protected final String TEXT_35 = ".eINSTANCE.createNode();"; >+ protected final String TEXT_36 = NL + "\t\t\t"; >+ protected final String TEXT_37 = " createdDomainElement = "; >+ protected final String TEXT_38 = ".eINSTANCE.create(" + NL + "\t\t\t\t"; >+ protected final String TEXT_39 = ".eINSTANCE.get"; >+ protected final String TEXT_40 = "());"; >+ protected final String TEXT_41 = NL + "\t\t\t"; >+ protected final String TEXT_42 = " createdDomainElement = "; >+ protected final String TEXT_43 = ".eINSTANCE.create"; >+ protected final String TEXT_44 = "();"; >+ protected final String TEXT_45 = "\t\t\tcreatedNode.setElement(createdDomainElement);" + NL + "\t\t\t"; >+ protected final String TEXT_46 = NL + "\t\t\t"; >+ protected final String TEXT_47 = "."; >+ protected final String TEXT_48 = ".initializeElement(createdDomainElement);" + NL + "\t\t\t"; >+ protected final String TEXT_49 = ".decorateView(createdNode);"; >+ protected final String TEXT_50 = NL + "\t\t\t"; >+ protected final String TEXT_51 = " bounds = "; >+ protected final String TEXT_52 = ".eINSTANCE.createBounds();" + NL + "\t\t\tcreatedNode.setLayoutConstraint(bounds);" + NL + "\t\t\tbounds.setX(constraint.x);" + NL + "\t\t\tbounds.setY(constraint.y);"; >+ protected final String TEXT_53 = NL + "\t\t\tbounds.setWidth(Math.max(constraint.width, "; >+ protected final String TEXT_54 = "));" + NL + "\t\t\tbounds.setHeight(Math.max(constraint.height, "; >+ protected final String TEXT_55 = "));"; >+ protected final String TEXT_56 = NL + "\t\t\t"; >+ protected final String TEXT_57 = " domainModelEditDomain = "; >+ protected final String TEXT_58 = ".getEditingDomainFor(parent.getDiagram().getElement());"; >+ protected final String TEXT_59 = NL + "\t\t\t"; >+ protected final String TEXT_60 = " compoundCommand = new "; >+ protected final String TEXT_61 = "();" + NL + "\t\t\tcompoundCommand.append("; >+ protected final String TEXT_62 = ".create(domainModelEditDomain, "; >+ protected final String TEXT_63 = ", " + NL + "\t\t\t\t"; >+ protected final String TEXT_64 = ".eINSTANCE.get"; >+ protected final String TEXT_65 = "(), createdNode.getElement()));" + NL + "\t\t\tcompoundCommand.append("; >+ protected final String TEXT_66 = ".create(domainModelEditDomain, "; >+ protected final String TEXT_67 = ", " + NL + "\t\t\t\t"; >+ protected final String TEXT_68 = ".eINSTANCE.get"; >+ protected final String TEXT_69 = "(), createdNode.getElement()));" + NL + "\t\t\tthis.domainModelAddCommand = compoundCommand;"; >+ protected final String TEXT_70 = NL + "\t\t\tthis.domainModelAddCommand = "; >+ protected final String TEXT_71 = ".create(domainModelEditDomain, "; >+ protected final String TEXT_72 = ", " + NL + "\t\t\t\t"; >+ protected final String TEXT_73 = ".eINSTANCE.get"; >+ protected final String TEXT_74 = "(), createdNode.getElement());"; >+ protected final String TEXT_75 = NL + "\t\t\trequest.setCreatedObject(createdNode);" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final org.eclipse.emf.common.command.Command domainModelAddCommand;" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic boolean canExecute() {" + NL + "\t\t\treturn domainModelAddCommand != null && domainModelAddCommand.canExecute();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic boolean canUndo() {" + NL + "\t\t\treturn domainModelAddCommand != null && domainModelAddCommand.canUndo();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void execute() {" + NL + "\t\t\tparent.insertChild(createdNode);" + NL + "\t\t\tdomainModelAddCommand.execute();" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void undo() {" + NL + "\t\t\tparent.getPersistedChildren().remove(createdNode);" + NL + "\t\t\tdomainModelAddCommand.undo();" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_76 = NL; >+ protected final String TEXT_77 = NL; >+ protected final String TEXT_78 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_79 = " structuralFeatures2Refresher;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Refresher getRefresher("; >+ protected final String TEXT_80 = " feature, "; >+ protected final String TEXT_81 = " msg) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\treturn (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void createRefreshers() {" + NL + "\t\tstructuralFeatures2Refresher = new HashMap();"; >+ protected final String TEXT_82 = NL; >+ protected final String TEXT_83 = "\t\tRefresher childrenRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshChildren();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_84 = ".eINSTANCE.getView_PersistedChildren(), childrenRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_85 = ".eINSTANCE.getView_TransientChildren(), childrenRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate class UpdateManager extends "; >+ protected final String TEXT_86 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void notifyChanged("; >+ protected final String TEXT_87 = " msg) {" + NL + "\t\t\tsuper.notifyChanged(msg);" + NL + "\t\t\tif (msg.isTouch()) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\t"; >+ protected final String TEXT_88 = " affectedEditParts = findAffectedParts(msg);" + NL + "\t\t\tfor("; >+ protected final String TEXT_89 = " it = affectedEditParts.iterator(); it.hasNext(); ) {" + NL + "\t\t\t\tIUpdatableEditPart next = (IUpdatableEditPart) it.next();" + NL + "\t\t\t\tIUpdatableEditPart.Refresher refresher = next.getRefresher(("; >+ protected final String TEXT_90 = ")msg.getFeature(), msg);" + NL + "\t\t\t\tif (refresher != null) {" + NL + "\t\t\t\t\trefresher.refresh();" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_91 = "/*<IUpdatableEditPart>*/ findAffectedParts("; >+ protected final String TEXT_92 = " msg) {" + NL + "\t\t\tObject notifier = msg.getNotifier();" + NL + "\t\t\tif (notifier instanceof "; >+ protected final String TEXT_93 = ") {" + NL + "\t\t\t\t"; >+ protected final String TEXT_94 = " view = getView((EObject) notifier);" + NL + "\t\t\t\tif (view != null) {" + NL + "\t\t\t\t\tEditPart affectedEditPart = (EditPart) getViewer().getEditPartRegistry().get(view);" + NL + "\t\t\t\t\tif (affectedEditPart != null) {" + NL + "\t\t\t\t\t\treturn "; >+ protected final String TEXT_95 = ".singleton(affectedEditPart);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\treturn "; >+ protected final String TEXT_96 = ".EMPTY_LIST;" + NL + "\t\t}" + NL + "" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate "; >+ protected final String TEXT_97 = " getView(EObject offspring) {" + NL + "\t\t\twhile (offspring != null && offspring instanceof View == false) {" + NL + "\t\t\t\toffspring = offspring.eContainer();" + NL + "\t\t\t}" + NL + "\t\t\treturn ("; >+ protected final String TEXT_98 = ") offspring;" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void activate() {" + NL + "\t\tsuper.activate();" + NL + "\t\tgetDiagram().eAdapters().add(updateManager);" + NL + "\t\tgetDiagram().getElement().eAdapters().add(domainModelRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void deactivate() {" + NL + "\t\tgetDiagram().getElement().eAdapters().remove(domainModelRefresher);" + NL + "\t\tgetDiagram().eAdapters().remove(updateManager);" + NL + "\t\tsuper.deactivate();" + NL + "\t}" + NL; >+ protected final String TEXT_99 = NL; >+ protected final String TEXT_100 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate DomainModelRefresher domainModelRefresher = new DomainModelRefresher();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate class DomainModelRefresher extends "; >+ protected final String TEXT_101 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void notifyChanged("; >+ protected final String TEXT_102 = " msg) {" + NL + "\t\t\tsuper.notifyChanged(msg);" + NL + "\t\t\tif (msg.isTouch()) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tRefresher refresher = getRefresher(("; >+ protected final String TEXT_103 = ") msg.getFeature(), msg);" + NL + "\t\t\tif (refresher != null) {" + NL + "\t\t\t\trefresher.refresh();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate UpdateManager updateManager = new UpdateManager();" + NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("org.eclipse.gef.editparts.AbstractGraphicalEditPart"); >+importManager.addImport("org.eclipse.draw2d.IFigure"); >+importManager.addImport("org.eclipse.draw2d.FreeformLayer"); >+importManager.addImport("org.eclipse.draw2d.FreeformLayout"); >+importManager.addImport("org.eclipse.draw2d.MarginBorder"); >+importManager.addImport("org.eclipse.gef.commands.Command"); >+importManager.addImport("org.eclipse.gef.commands.CompoundCommand"); >+importManager.addImport("org.eclipse.gef.EditPolicy"); >+importManager.addImport("org.eclipse.draw2d.geometry.Dimension"); >+importManager.addImport("org.eclipse.draw2d.geometry.Point"); >+importManager.addImport("org.eclipse.gef.EditPart"); >+importManager.addImport("org.eclipse.gef.SnapToGrid"); >+importManager.addImport("org.eclipse.gef.SnapToHelper"); >+importManager.addImport("org.eclipse.gef.editpolicies.RootComponentEditPolicy"); >+importManager.addImport("org.eclipse.gef.commands.UnexecutableCommand"); >+importManager.addImport("org.eclipse.gef.editpolicies.RootComponentEditPolicy"); >+importManager.addImport("org.eclipse.gef.editpolicies.XYLayoutEditPolicy"); >+importManager.addImport("org.eclipse.gef.requests.ChangeBoundsRequest"); >+importManager.addImport("org.eclipse.gef.requests.CreateRequest"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Bounds"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Diagram"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.Node"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.NotationPackage"); >+importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >+importManager.addImport("java.util.List"); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(genDiagram.getEditPartClassName()); >+ stringBuffer.append(TEXT_3); >+ stringBuffer.append(genDiagram.getEditPartClassName()); >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Diagram")); >+ stringBuffer.append(TEXT_7); >+ if (null != genDiagram.getPalette()) { >+final Palette palette = genDiagram.getPalette(); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_11); >+ >+for(Iterator it = genDiagram.getTopLevelNodes().iterator(); it.hasNext(); ) { >+ GenTopLevelNode next = (GenTopLevelNode)it.next(); >+ >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(next.getDomainMetaClass().getName()); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_15); >+ >+} >+ >+ stringBuffer.append(TEXT_16); >+ }/*when there's palette*/ >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.SnapToHelper")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.SnapToGrid")); >+ stringBuffer.append(TEXT_19); >+ /*@ include file="adapters/propertySource.javajetinc"*/ >+ stringBuffer.append(TEXT_20); >+ >+for(Iterator it = genDiagram.getTopLevelNodes().iterator(); genDiagram.getPalette() != null && it.hasNext(); ) { >+ GenTopLevelNode next = (GenTopLevelNode)it.next(); >+ boolean isStatic = true; >+ boolean isListLayout = false; >+ String resolvedSemanticElement = "parent.getElement()"; >+ >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(TEXT_22); >+ if (isStatic) { >+ stringBuffer.append(TEXT_23); >+ } >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(next.getDomainMetaClass().getName()); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_28); >+ stringBuffer.append(next.getDomainMetaClass().getName()); >+ stringBuffer.append(next.getVisualID()); >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getPalette().getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_31); >+ if (!isListLayout) { >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_33); >+ } >+ stringBuffer.append(TEXT_34); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_35); >+ >+if (next.getDomainMetaClass().isMapEntry()) { >+/*Workaround for Ecore example: map entries cannot be created using factory, only using reflective EFactory.create() method*/ >+ >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedFactoryInterfaceName())); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_39); >+ stringBuffer.append(next.getDomainMetaClass().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_40); >+ >+} else { >+ >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getQualifiedInterfaceName())); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName(next.getDomainMetaClass().getGenPackage().getQualifiedFactoryInterfaceName())); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(next.getDomainMetaClass().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_44); >+ >+} >+ >+ stringBuffer.append(TEXT_45); >+ /*XXX: Class name DomainElementInitializer should be user-customizable*/ >+ stringBuffer.append(TEXT_46); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getNotationViewFactoriesPackageName() + ".DomainElementInitializer")); >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(next.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(importManager.getImportedName(next.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_49); >+ >+ if (!isListLayout) { >+ >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")); >+ stringBuffer.append(TEXT_51); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_52); >+ >+ int defaultWidth = 40; >+ int defaultHeight = 40; >+ DefaultSizeAttributes defSizeAttrs = (DefaultSizeAttributes) next.getViewmap().find(DefaultSizeAttributes.class); >+ if (defSizeAttrs != null) { >+ defaultWidth = defSizeAttrs.getWidth(); >+ defaultHeight = defSizeAttrs.getHeight(); >+ } >+ >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(defaultWidth); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(defaultHeight); >+ stringBuffer.append(TEXT_55); >+ >+ } >+ >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_57); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_58); >+ >+ TypeModelFacet facet = next.getModelFacet(); >+ GenFeature childFeature = facet.getChildMetaFeature(); >+ GenFeature containmentFeature = facet.getContainmentMetaFeature(); >+ if (childFeature != null && childFeature != containmentFeature && !childFeature.isDerived()) { >+ >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_60); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_63); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_64); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_65); >+ stringBuffer.append(importManager.getImportedName(childFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_66); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_67); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_69); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_71); >+ stringBuffer.append(resolvedSemanticElement); >+ stringBuffer.append(TEXT_72); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_73); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_74); >+ >+ } >+ >+ stringBuffer.append(TEXT_75); >+ >+} >+ >+ stringBuffer.append(TEXT_76); >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(TEXT_78); >+ stringBuffer.append(importManager.getImportedName("java.util.HashMap")); >+ stringBuffer.append(TEXT_79); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_80); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_81); >+ stringBuffer.append(TEXT_82); >+ stringBuffer.append(TEXT_83); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_84); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_85); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.util.EContentAdapter")); >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(importManager.getImportedName("java.util.Collection")); >+ stringBuffer.append(TEXT_88); >+ stringBuffer.append(importManager.getImportedName("java.util.Iterator")); >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName("java.util.Collection")); >+ stringBuffer.append(TEXT_91); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_92); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_93); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_94); >+ stringBuffer.append(importManager.getImportedName("java.util.Collections")); >+ stringBuffer.append(TEXT_95); >+ stringBuffer.append(importManager.getImportedName("java.util.Collections")); >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_97); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_98); >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(TEXT_100); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.impl.AdapterImpl")); >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_102); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_103); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/editor/getVisualID.jetinc >=================================================================== >RCS file: templates/editor/getVisualID.jetinc >diff -N templates/editor/getVisualID.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/getVisualID.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,19 @@ >+ /** >+ * @generated >+ */ >+ private static int getVisualID(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> containerView) { >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")%> annotation = containerView.getEAnnotation("ViewIdentifier"); //$NON-NLS-1$ >+ if (annotation == null) { >+ return -1; >+ } >+ String visualID = (String) annotation.getDetails().get("visualID"); //$NON-NLS-1$ >+ if (visualID == null) { >+ return -1; >+ } >+ try { >+ return Integer.parseInt(visualID); >+ } catch (NumberFormatException e) { >+ <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().logError("Unable to parse \"visualID\" annotation: " + visualID, e); >+ } >+ return -1; >+ } >Index: templates/parts/refreshers.javajetinc/children.javajetinc >=================================================================== >RCS file: templates/parts/refreshers.javajetinc/children.javajetinc >diff -N templates/parts/refreshers.javajetinc/children.javajetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/refreshers.javajetinc/children.javajetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+ Refresher childrenRefresher = new Refresher() { >+ public void refresh() { >+ refreshChildren(); >+ } >+ }; >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getView_PersistedChildren(), childrenRefresher); >+ structuralFeatures2Refresher.put(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getView_TransientChildren(), childrenRefresher); >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LinkViewFactoryGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LinkViewFactoryGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LinkViewFactoryGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/providers/LinkViewFactoryGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,109 @@ >+package org.eclipse.gmf.codegen.templates.lite.providers; >+ >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import java.util.*; >+ >+public class LinkViewFactoryGenerator >+{ >+ protected static String nl; >+ public static synchronized LinkViewFactoryGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ LinkViewFactoryGenerator result = new LinkViewFactoryGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_5 = " {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static void decorateView("; >+ protected final String TEXT_6 = " view) {"; >+ protected final String TEXT_7 = NL; >+ protected final String TEXT_8 = " annotation = "; >+ protected final String TEXT_9 = ".eINSTANCE.createEAnnotation();" + NL + "annotation.setSource(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "view.getEAnnotations().add(annotation);" + NL + "annotation.getDetails().put(\"modelID\", \""; >+ protected final String TEXT_10 = "\"); //$NON-NLS-1$" + NL + "annotation.getDetails().put(\"visualID\", \""; >+ protected final String TEXT_11 = "\"); //$NON-NLS-1$" + NL + "\t\t//XXX: init styles from attributes!!!"; >+ protected final String TEXT_12 = NL + "\t\tcreate"; >+ protected final String TEXT_13 = "Label(view);"; >+ protected final String TEXT_14 = NL + "\t}" + NL; >+ protected final String TEXT_15 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static void create"; >+ protected final String TEXT_16 = "Label("; >+ protected final String TEXT_17 = " view) {" + NL + "\t\t"; >+ protected final String TEXT_18 = " label = "; >+ protected final String TEXT_19 = ".eINSTANCE.createNode();" + NL + "\t\tview.getPersistedChildren().add(label);" + NL + "\t\tlabel.setElement(null);" + NL + "\t\t"; >+ protected final String TEXT_20 = ".decorateView(label);" + NL + "\t}"; >+ protected final String TEXT_21 = NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenLink genElement = (GenLink) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genElement.getDiagram(); >+ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ importManager.emitPackageStatement(stringBuffer); >+ >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_4); >+ stringBuffer.append(genElement.getNotationViewFactoryClassName()); >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EcoreFactory")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(genDiagram.getEditorGen().getModelID()); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genElement.getVisualID()); >+ stringBuffer.append(TEXT_11); >+ >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenLinkLabel label = (GenLinkLabel) it.next(); >+ >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(label.getVisualID()); >+ stringBuffer.append(TEXT_13); >+ >+}/*iterate over labels*/ >+ >+ stringBuffer.append(TEXT_14); >+ >+for (Iterator it = genElement.getLabels().iterator(); it.hasNext(); ) { >+ GenLinkLabel label = (GenLinkLabel) it.next(); >+ >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(label.getVisualID()); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName(label.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_20); >+ >+}/*iterate over labels*/ >+ >+ stringBuffer.append(TEXT_21); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/LinkEditPart.javajet >=================================================================== >RCS file: templates/parts/LinkEditPart.javajet >diff -N templates/parts/LinkEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/LinkEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,181 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="LinkEditPartGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.emf.ecore.*"%> >+<% >+GenLink genLink = (GenLink) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genLink.getDiagram(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+<% >+importManager.emitPackageStatement(stringBuffer); >+importManager.addImport("java.util.List"); >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genLink.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gef.editparts.AbstractConnectionEditPart")%> implements IUpdatableEditPart { >+ /** >+ * @generated >+ */ >+ public <%=genLink.getEditPartClassName()%>(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view) { >+ assert view instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")%>; >+ setModel(view); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")%> getDiagramEdge() { >+ return (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")%>) getModel(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+ //XXX: install correct edit policies! >+<%@ include file="linkComponentEditPolicy.javajetinc"%> >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.CONNECTION_ENDPOINTS_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy")%>()); >+ } >+ >+<% >+if (genLink.getLabels().size() > 0) { >+ GenLinkLabel primaryLabel = (GenLinkLabel)genLink.getLabels().get(0); >+%> >+<%@ include file="../editor/getVisualID.jetinc" %> >+ >+ /** >+ * Returns the label which should be direct-edited by default. >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> getPrimaryLabelEditPart() { >+ for(<%=importManager.getImportedName("java.util.Iterator")%> it = getDiagramEdge().getChildren().iterator(); it.hasNext(); ) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> nextChild = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>)it.next(); >+ if (getVisualID(nextChild) == <%=primaryLabel.getVisualID()%>) { >+ return (EditPart) getViewer().getEditPartRegistry().get(nextChild); >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void performRequest(<%=importManager.getImportedName("org.eclipse.gef.Request")%> req) { >+ if (<%=importManager.getImportedName("org.eclipse.gef.RequestConstants")%>.REQ_DIRECT_EDIT == req.getType()) { >+ <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> primaryLabel = getPrimaryLabelEditPart(); >+ if (primaryLabel != null) { >+ primaryLabel.performRequest(req); >+ } >+ } >+ } >+<% >+} //if (genLink.getLabels().size() > 0) >+%> >+ >+ /** >+ * @generated >+ */ >+ protected List getModelChildren() { >+ return ((Edge)getModel()).getChildren(); >+ } >+ >+<%@ include file="refresher.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ getDiagramEdge().getElement().eAdapters().add(domainModelRefresher); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ getDiagramEdge().getElement().eAdapters().remove(domainModelRefresher); >+ super.deactivate(); >+ } >+ >+<%@ include file="refreshers.javajetinc/domainModelRefresher.javajetinc"%> >+ >+<%@ include file="refreshers.javajetinc/externalRefreshers.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private void createRefreshers() { >+ structuralFeatures2Refresher = new HashMap(); >+<%@ include file="refreshers.javajetinc/children.javajetinc"%> >+<%@ include file="refreshers.javajetinc/visibility.javajetinc"%> >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+//XXX: refreshBackgroundColor(); >+//XXX: refreshForegroundColor(); >+//XXX: refreshFont(); >+ refreshVisibility(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisibility() { >+ boolean isVisible = ((View)getModel()).isVisible(); >+ boolean wasVisible = getFigure().isVisible(); >+ if (isVisible == wasVisible) { >+ return; >+ } >+ if (!isVisible && (getSelected() != SELECTED_NONE)) { >+ getViewer().deselect(this); >+ } >+ >+ getFigure().setVisible(isVisible); >+ getFigure().revalidate(); >+ } >+ >+ /** >+ * 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 <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> createFigure() {<% >+Viewmap viewmap = genLink.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ String figureQualifiedClassName = null; >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.gmf.runtime.draw2d.PolylineConnection"; >+ } >+%> >+ return new <%=importManager.getImportedName(figureQualifiedClassName)%>(); >+<%} // instanceof FigureViewmap >+ else if (viewmap instanceof SnippetViewmap) {%> >+ return <%=((SnippetViewmap) viewmap).getBody()%>; >+<%} // instanceof SnippetViewmap >+ else if (viewmap instanceof InnerClassViewmap) {%> >+ return new <%=((InnerClassViewmap) viewmap).getClassName()%>(); >+<%}%> >+ } >+ >+<% >+if (genLink.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genLink.getViewmap()).getClassBody(); >+%> >+<%=classBody%> >+<%@ include file="mapmodeWorkaround.javajetinc"%> >+<% >+} >+%> >+} >+<%importManager.emitSortedImports();%> >Index: templates/providers/createVIDAnnotation.jetinc >=================================================================== >RCS file: templates/providers/createVIDAnnotation.jetinc >diff -N templates/providers/createVIDAnnotation.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/providers/createVIDAnnotation.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+<%=importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")%> annotation = <%=importManager.getImportedName("org.eclipse.emf.ecore.EcoreFactory")%>.eINSTANCE.createEAnnotation(); >+annotation.setSource("ViewIdentifier"); //$NON-NLS-1$ >+view.getEAnnotations().add(annotation); >+annotation.getDetails().put("modelID", "<%=genDiagram.getEditorGen().getModelID()%>"); //$NON-NLS-1$ >+annotation.getDetails().put("visualID", "<%=genElement.getVisualID()%>"); //$NON-NLS-1$ >Index: templates/parts/NodeEditPart.javajet >=================================================================== >RCS file: templates/parts/NodeEditPart.javajet >diff -N templates/parts/NodeEditPart.javajet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/NodeEditPart.javajet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,819 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.parts" class="NodeEditPartGenerator" >+ imports="java.util.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.emf.ecore.*" >+%> >+<% >+GenNode genNode = (GenNode) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genNode.getDiagram(); >+Palette palette = genDiagram.getPalette(); >+boolean useFlowLayout = !genNode.isListLayout(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+%> >+<%@ include file="../copyright4java.jetinc"%> >+ >+<%importManager.emitPackageStatement(stringBuffer);%> >+<% >+/*XXX: temporary hack to generate compilable code in tests (where class NodeEditPart extends NodeEditPart is generated otherwise)*/ >+importManager.registerInnerClass(genNode.getEditPartClassName()); >+importManager.markImportLocation(stringBuffer); >+%> >+ >+/** >+ * @generated >+ */ >+public class <%=genNode.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")%> implements <%=importManager.getImportedName("org.eclipse.gef.NodeEditPart")%>, IUpdatableEditPart { >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> contentPane; >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> primaryShape; >+ >+ /** >+ * @generated >+ */ >+ public <%=genNode.getEditPartClassName()%>(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> model) { >+ assert model instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%>; >+ setModel(model); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void createEditPolicies() { >+<%@ include file="componentEditPolicy.javajetinc"%> >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.LAYOUT_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy")%>() { >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getCreateCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")%> request) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ protected Object getConstraintFor(<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%> rect) { >+ return null; >+ } >+ protected Object getConstraintFor(<%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> point) { >+ return null; >+ } >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> createChangeConstraintCommand(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> child, Object constraint) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ protected <%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%> createChildEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> child) { >+ return new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy")%>() { >+ public <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> getTargetEditPart(<%=importManager.getImportedName("org.eclipse.gef.Request")%> request) { >+ if (<%=importManager.getImportedName("org.eclipse.gef.RequestConstants")%>.REQ_SELECTION.equals(request.getType())) { >+ return <%=genNode.getEditPartClassName()%>.this; >+ } >+ return super.getTargetEditPart(request); >+ } >+ }; >+ } >+ }); >+ installEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPolicy")%>.GRAPHICAL_NODE_ROLE, new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy")%>() { >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getReconnectTargetCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.ReconnectRequest")%> request) { >+ //XXX: reconnect command >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getReconnectSourceCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.ReconnectRequest")%> request) { >+ //XXX: reconnect command >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getConnectionCreateCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.CreateConnectionRequest")%> request) { >+<%if (palette != null) {%> >+ if (request instanceof <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx) { >+ <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx requestEx = (<%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx) request; >+ int[] visualIds = requestEx.getVisualIds(); >+ int matchingVisualIdsCount = 0; >+ for (int i = 0; i < visualIds.length; i++) { >+ int nextVisualId = visualIds[i]; >+ switch (nextVisualId) { >+<% >+for(Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink)it.next(); >+ if (!genLink.isViewDirectionAlignedWithModel() || genLink.getModelFacet() == null) { >+ continue; >+ } >+ GenClass outgoingClass; >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ outgoingClass = modelFacet.getSourceMetaFeature() == null >+ ? modelFacet.getContainmentMetaFeature().getGenClass() >+ : modelFacet.getSourceMetaFeature().getTypeGenClass(); >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ outgoingClass = metaFeature.getGenClass(); >+ } else { >+ continue; >+ } >+ if (!outgoingClass.getEcoreClass().isSuperTypeOf(genNode.getModelFacet().getMetaClass().getEcoreClass())) { >+ continue; >+ } >+%> >+ case <%=genLink.getVisualID()%>: >+ matchingVisualIdsCount++; >+ break; >+<% >+} >+%> >+ } >+ } >+ if (matchingVisualIdsCount != 1) { >+ //Cannot create several connections at once. >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> result = new <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%>() { >+ //XXX: check multiplicity requirements etc. >+ }; >+ request.setStartCommand(result); >+ return result; >+ } >+<%}/*when there's palette*/%> >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getConnectionCompleteCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.CreateConnectionRequest")%> request) { >+<%if (palette != null) {%> >+ if (request.getStartCommand() == null || !request.getStartCommand().canExecute()) { >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ if (request instanceof <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx) { >+ <%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx requestEx = (<%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx) request; >+ int[] visualIds = requestEx.getVisualIds(); >+ <%=importManager.getImportedName("org.eclipse.gef.commands.CompoundCommand")%> result = new <%=importManager.getImportedName("org.eclipse.gef.commands.CompoundCommand")%>(); >+ for (int i = 0; i < visualIds.length; i++) { >+ int nextVisualId = visualIds[i]; >+ switch (nextVisualId) { >+<% >+for(Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink)it.next(); >+ if (!genLink.isViewDirectionAlignedWithModel() || genLink.getModelFacet() == null) { >+ continue; >+ } >+ GenClass incomingClass; >+ String createCommandNameInfix; >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ incomingClass = modelFacet.getTargetMetaFeature().getTypeGenClass(); >+ createCommandNameInfix = modelFacet.getMetaClass().getName(); >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ incomingClass = metaFeature.getTypeGenClass(); >+ createCommandNameInfix = metaFeature.getFeatureAccessorName(); >+ } else { >+ continue; >+ } >+ if (!incomingClass.getEcoreClass().isSuperTypeOf(genNode.getModelFacet().getMetaClass().getEcoreClass())) { >+ continue; >+ } >+%> >+ case <%=genLink.getVisualID()%>: >+ result.add(new Create<%=createCommandNameInfix%><%=genLink.getVisualID()%>Command(requestEx)); >+ break; >+<% >+} >+%> >+ } >+ } >+ if (result.getChildren().length != 1) { >+ //Cannot create several connections at once. >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ return result.unwrap(); >+ } >+<%}/*when there's palette*/%> >+ return <%=importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")%>.INSTANCE; >+ } >+ }); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> createFigure() { >+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> invisibleRectangle = new <%=importManager.getImportedName("org.eclipse.draw2d.Figure")%>(); >+ invisibleRectangle.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.StackLayout")%>()); >+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> shape = createNodeShape(); >+ invisibleRectangle.add(shape); >+ contentPane = setupContentPane(shape); >+ >+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> decorationShape = createDecorationPane(); >+ if (decorationShape != null) { >+ invisibleRectangle.add(decorationShape); >+ } >+ >+ return invisibleRectangle; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> createNodeShape() { >+<% >+String figureQualifiedClassName = null; >+Viewmap viewmap = genNode.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.draw2d.RectangleFigure"; >+ } >+%> >+ primaryShape = new <%=importManager.getImportedName(figureQualifiedClassName)%>()<%if (useFlowLayout) {%> { >+ protected boolean useLocalCoordinates() { >+ return true; >+ } >+ }<%} /* use flow layout*/ %>; >+<%} else if (viewmap instanceof SnippetViewmap) {%> >+ primaryShape = <%=((SnippetViewmap) viewmap).getBody()%>; >+<%} else if (viewmap instanceof InnerClassViewmap) { >+ figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >+%> >+ <%=figureQualifiedClassName%> figure = new <%=figureQualifiedClassName%>(); >+ figure.setUseLocalCoordinates(<%=useFlowLayout ? "true" : "false"%>); >+ primaryShape = figure; >+<%}%> >+ return primaryShape; >+ } >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> createDecorationPane() { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> view = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) getModel(); >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")%> annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$ >+ if (annotation == null) { >+ return null; >+ } >+ >+ <%=importManager.getImportedName("org.eclipse.draw2d.Figure")%> decorationPane = new <%=importManager.getImportedName("org.eclipse.draw2d.Figure")%>(); >+ decorationPane.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.BorderLayout")%>()); >+ >+ <%=importManager.getImportedName("org.eclipse.draw2d.ImageFigure")%> imageFigure = new <%=importManager.getImportedName("org.eclipse.draw2d.ImageFigure")%>(<%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().getBundledImage("icons/shortcut.gif"), <%=importManager.getImportedName("org.eclipse.draw2d.PositionConstants")%>.EAST); >+ decorationPane.add(imageFigure, <%=importManager.getImportedName("org.eclipse.draw2d.BorderLayout")%>.BOTTOM); >+ return decorationPane; >+ } >+ >+ /** >+ * 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 <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> setupContentPane(<%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> nodeShape) { >+ if (nodeShape.getLayoutManager() == null) { >+<% >+if (!useFlowLayout) { >+ String layoutClassName = importManager.getImportedName("org.eclipse.draw2d.ToolbarLayout"); >+%> >+ <%=layoutClassName%> layout = new <%=layoutClassName%>(); >+ layout.setSpacing(5); >+ nodeShape.setLayoutManager(layout); >+<%} else {%> >+ nodeShape.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.FreeformLayout")%>() { >+ >+ public Object getConstraint(<%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> figure) { >+ Object result = constraints.get(figure); >+ if (result == null) { >+ result = new <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%>(0, 0, -1, -1); >+ } >+ return result; >+ } >+ }); >+<%}%> >+ } >+ return nodeShape; // use nodeShape itself as contentPane >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> getContentPane() { >+ if (contentPane == null) { >+ return super.getContentPane(); >+ } >+ return contentPane; >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> getDiagramNode() { >+ return (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%>) getModel(); >+ } >+ >+<% >+ boolean hasFixedChildren = false; >+ List innerLabels = new ArrayList(genNode.getLabels().size()); >+ for (Iterator it = genNode.getLabels().iterator(); it.hasNext(); ) { >+ GenNodeLabel genLabel = (GenNodeLabel) it.next(); >+ if (!(genLabel instanceof GenExternalNodeLabel)) { >+ innerLabels.add(genLabel); >+ } >+ } >+ if (!innerLabels.isEmpty()) { >+ hasFixedChildren = true; >+%> >+ /** >+ * @generated >+ */ >+ protected boolean addFixedChild(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) { >+<% >+ for (Iterator it = innerLabels.iterator(); it.hasNext(); ) { >+ GenNodeLabel genLabel = (GenNodeLabel) it.next(); >+ String labelEditPart = importManager.getImportedName(genLabel.getEditPartQualifiedClassName()); >+ String labelFigureClassName = null; >+ boolean isAccessor; >+ if (genLabel.getViewmap() instanceof InnerClassViewmap) { >+ labelFigureClassName = ((InnerClassViewmap) genLabel.getViewmap()).getClassName(); >+ isAccessor = true; >+ } else if (genLabel.getViewmap() instanceof FigureViewmap) { >+ labelFigureClassName = ((FigureViewmap) genLabel.getViewmap()).getFigureQualifiedClassName(); >+ isAccessor = false; >+ } else { >+ // temp hack to make tests pass >+ labelFigureClassName = "org.eclipse.draw2d.Label"; >+ isAccessor = false; >+ } >+%> >+ if (childEditPart instanceof <%=labelEditPart%>) { >+<% if (isAccessor) {%> >+ ((<%=labelEditPart%>) childEditPart).setLabel(((<%=figureQualifiedClassName%>) primaryShape).getFigure<%=labelFigureClassName%>()); >+<% } else {%> >+ ((<%=labelEditPart%>) childEditPart).setLabel(new <%=labelFigureClassName%>()); >+<% }%> >+ return true; >+ } >+<% }%> >+ return false; >+ } >+ >+<%@ include file="../editor/getVisualID.jetinc" %> >+ >+ /** >+ * Returns the label which should be direct-edited by default. >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> getPrimaryLabelEditPart() { >+ for(<%=importManager.getImportedName("java.util.Iterator")%> it = getDiagramNode().getChildren().iterator(); it.hasNext(); ) { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> nextChild = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>)it.next(); >+ if (getVisualID(nextChild) == <%=((GenNodeLabel)innerLabels.get(0)).getVisualID()%>) { >+ return (<%=importManager.getImportedName("org.eclipse.gef.EditPart")%>) getViewer().getEditPartRegistry().get(nextChild); >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * @generated >+ */ >+ public void performRequest(<%=importManager.getImportedName("org.eclipse.gef.Request")%> req) { >+ if (<%=importManager.getImportedName("org.eclipse.gef.RequestConstants")%>.REQ_DIRECT_EDIT == req.getType()) { >+ <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> primaryLabel = getPrimaryLabelEditPart(); >+ if (primaryLabel != null) { >+ primaryLabel.performRequest(req); >+ } >+ } >+ } >+ >+<% >+ } >+%> >+<% >+boolean hasExternalLabels = false; >+for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) { >+ GenNodeLabel label = (GenNodeLabel) labels.next(); >+ if (label instanceof GenExternalNodeLabel) { >+ hasExternalLabels = true; >+ break; >+ } >+} >+if (hasExternalLabels) { >+%> >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart, int index) { >+ if (isExternalLabel(childEditPart)) { >+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure(); >+ getExternalLabelsContainer().add(labelFigure); >+ } else { >+<% if (hasFixedChildren) {%> >+ if (!addFixedChild(childEditPart)) { >+ super.addChildVisual(childEditPart, -1); >+ } >+<% } else {%> >+ super.addChildVisual(childEditPart, -1); >+<% }%> >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void removeChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) { >+ if (isExternalLabel(childEditPart)) { >+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure(); >+ getExternalLabelsContainer().remove(labelFigure); >+ } else { >+ super.removeChildVisual(childEditPart); >+ } >+ } >+ >+ /** >+ * @generated >+ */ >+ protected boolean isExternalLabel(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) { >+<% >+ for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) { >+ GenNodeLabel label = (GenNodeLabel) labels.next(); >+ if (label instanceof GenExternalNodeLabel) { >+%> >+ if (childEditPart instanceof <%=importManager.getImportedName(label.getEditPartQualifiedClassName())%>) { >+ return true; >+ } >+<% >+ } >+ } >+%> >+ return false; >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> getExternalLabelsContainer() { >+ <%=importManager.getImportedName("org.eclipse.gef.editparts.ScalableFreeformRootEditPart")%> root = (<%=importManager.getImportedName("org.eclipse.gef.editparts.ScalableFreeformRootEditPart")%>) getRoot(); >+ return root.getLayer(<%=importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())%>.EXTERNAL_NODE_LABELS_LAYER); >+ } >+ >+<% >+} else { >+ if (hasFixedChildren) {%> >+ >+ /** >+ * @generated >+ */ >+ protected void addChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart, int index) { >+ if (!addFixedChild(childEditPart)) { >+ super.addChildVisual(childEditPart, -1); >+ } >+ } >+<% >+ } >+} >+%> >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisuals() { >+ super.refreshVisuals(); >+ refreshBounds(); >+ refreshBackgroundColor(); >+ refreshForegroundColor(); >+ refreshFont(); >+ refreshVisibility(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshVisibility() { >+ boolean isVisible = getDiagramNode().isVisible(); >+ boolean wasVisible = getFigure().isVisible(); >+ if (isVisible == wasVisible) { >+ return; >+ } >+ if (!isVisible && (getSelected() != SELECTED_NONE)) { >+ getViewer().deselect(this); >+ } >+ >+ getFigure().setVisible(isVisible); >+ getFigure().revalidate(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected void refreshBounds() { >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%> node = getDiagramNode(); >+ assert node.getLayoutConstraint() instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%>; >+ <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%> bounds = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%>) node.getLayoutConstraint(); >+ ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) getParent()).setLayoutConstraint(this, getFigure(), >+ new <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%>(bounds.getX(), bounds.getY(), bounds.getWidth(), bounds.getHeight())); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("java.util.List")%> getModelChildren() { >+ return getDiagramNode().getVisibleChildren(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("java.util.List")%> getModelSourceConnections() { >+ return getDiagramNode().getSourceEdges(); >+ } >+ >+ /** >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("java.util.List")%> getModelTargetConnections() { >+ return getDiagramNode().getTargetEdges(); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")%> getSourceConnectionAnchor(<%=importManager.getImportedName("org.eclipse.gef.ConnectionEditPart")%> connection) { >+ return new <%=importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")%>(getFigure()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")%> getSourceConnectionAnchor(<%=importManager.getImportedName("org.eclipse.gef.Request")%> request) { >+ return new <%=importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")%>(getFigure()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")%> getTargetConnectionAnchor(<%=importManager.getImportedName("org.eclipse.gef.ConnectionEditPart")%> connection) { >+ return new <%=importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")%>(getFigure()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public <%=importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")%> getTargetConnectionAnchor(<%=importManager.getImportedName("org.eclipse.gef.Request")%> request) { >+ return new <%=importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")%>(getFigure()); >+ } >+ >+ /** >+ * @generated >+ */ >+ public Object getAdapter(Class key) { >+<%/*@ include file="adapters/propertySource.javajetinc"*/%> >+ return super.getAdapter(key); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void activate() { >+ super.activate(); >+ getDiagramNode().getElement().eAdapters().add(domainModelRefresher); >+ } >+ >+ /** >+ * @generated >+ */ >+ public void deactivate() { >+ getDiagramNode().getElement().eAdapters().remove(domainModelRefresher); >+ super.deactivate(); >+ } >+ >+<%@ include file="refreshers.javajetinc/domainModelRefresher.javajetinc"%> >+ >+<%@ include file="refreshers.javajetinc/externalRefreshers.javajetinc"%> >+ >+<% >+ final String primaryView = "getDiagramNode()"; >+%> >+<%@ include file="refreshMethods/font.javajetinc"%> >+ >+<%@ include file="refreshMethods/shapeColor.javajetinc"%> >+ >+<%@ include file="refresher.javajetinc"%> >+ >+ /** >+ * @generated >+ */ >+ private void createRefreshers() { >+ structuralFeatures2Refresher = new <%=importManager.getImportedName("java.util.HashMap")%>(); >+<%@ include file="refreshers.javajetinc/children.javajetinc"%> >+<%@ include file="refreshers.javajetinc/bounds.javajetinc"%> >+<%@ include file="refreshers.javajetinc/visibility.javajetinc"%> >+<%@ include file="refreshers.javajetinc/sourceEdges.javajetinc"%> >+<%@ include file="refreshers.javajetinc/targetEdges.javajetinc"%> >+<%@ include file="refreshers.javajetinc/font.javajetinc"%> >+<%@ include file="refreshers.javajetinc/shapeColor.javajetinc"%> >+ } >+ >+<%/*XXX: probably, this should go to a separate jet-template along with GraphicalNodeEditPolicy*/%> >+<% >+for(Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink)it.next(); >+ if (!genLink.isViewDirectionAlignedWithModel() || genLink.getModelFacet() == null) { >+ continue; >+ } >+ GenClass incomingClass; >+ String createCommandNameInfix; >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ incomingClass = modelFacet.getTargetMetaFeature().getTypeGenClass(); >+ createCommandNameInfix = modelFacet.getMetaClass().getName(); >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ incomingClass = metaFeature.getTypeGenClass(); >+ createCommandNameInfix = metaFeature.getFeatureAccessorName(); >+ } else { >+ continue; >+ } >+ if (!incomingClass.getEcoreClass().isSuperTypeOf(genNode.getModelFacet().getMetaClass().getEcoreClass())) { >+ continue; >+ } >+%> >+<%if (palette != null) {%> >+ /** >+ * @generated >+ */ >+ private static class Create<%=createCommandNameInfix%><%=genLink.getVisualID()%>Command extends <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> { >+ /** >+ * @generated >+ */ >+ private final <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> source; >+ /** >+ * @generated >+ */ >+ private final <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%> target; >+ /** >+ * @generated >+ */ >+ private final <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")%> createdEdge; >+ /** >+ * @generated >+ */ >+ private final org.eclipse.emf.common.command.Command domainModelAddCommand; >+ /** >+ * @generated >+ */ >+ public Create<%=createCommandNameInfix%><%=genLink.getVisualID()%>Command(<%=importManager.getImportedName(palette.getFactoryQualifiedClassName())%>.CreateConnectionRequestEx requestEx) { >+ if (requestEx.getSourceEditPart().getModel() instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) { >+ source = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>)requestEx.getSourceEditPart().getModel(); >+ } else { >+ source = null; >+ } >+ if (requestEx.getTargetEditPart().getModel() instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) { >+ target = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>)requestEx.getTargetEditPart().getModel(); >+ } else { >+ target = null; >+ } >+ createdEdge = <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")%>.eINSTANCE.createEdge(); >+<% >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ GenClass linkClass = modelFacet.getMetaClass(); >+%> >+ <%=importManager.getImportedName(importManager.getImportedName(linkClass.getQualifiedInterfaceName()))%> createdDomainElement = <%=importManager.getImportedName(linkClass.getGenPackage().getQualifiedFactoryInterfaceName())%>.eINSTANCE.create<%=linkClass.getClassifierAccessorName()%>(); >+ createdEdge.setElement(createdDomainElement); >+ <%/*XXX: Class name DomainElementInitializer should be user-customizable*/%> >+ <%=importManager.getImportedName(genDiagram.getNotationViewFactoriesPackageName() + ".DomainElementInitializer")%>.<%=genLink.getUniqueIdentifier()%>.initializeElement(createdDomainElement); >+<% >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+%> >+ createdEdge.setElement(target.getElement()); //XXX: is this correct? >+<% >+ } >+%> >+ <%=importManager.getImportedName(genLink.getNotationViewFactoryQualifiedClassName())%>.decorateView(createdEdge); >+ <%=importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> domainModelEditDomain = <%=importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")%>.getEditingDomainFor(source.getDiagram().getElement()); >+<% >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+%> >+ org.eclipse.emf.common.command.CompoundCommand addLinkEndsCommand = new org.eclipse.emf.common.command.CompoundCommand(); >+<% >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ GenFeature sourceFeature = modelFacet.getSourceMetaFeature(); >+ GenFeature containmentFeature = modelFacet.getContainmentMetaFeature(); >+ GenFeature childFeature = modelFacet.getChildMetaFeature(); >+ GenFeature targetFeature = modelFacet.getTargetMetaFeature(); >+ //source/link features seem to be pointing from link to its ends, not vice versa. >+ //Anyway, if there is containment feature and it is not opposite to either the source/target, we should add containment, >+ //otherwise we will have problems with saving uncontained EObjects. >+ boolean addSource = sourceFeature != null; >+ boolean addTarget = targetFeature != null; >+ boolean addChild = childFeature != null && childFeature != containmentFeature && !childFeature.isDerived(); >+ if (containmentFeature != null) { >+ if (sourceFeature != null && sourceFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference sourceEcoreFeature = (EReference)sourceFeature.getEcoreFeature(); >+ if (sourceEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ addSource = false; >+ } >+ } >+ if (targetFeature != null && targetFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference targetEcoreFeature = (EReference)targetFeature.getEcoreFeature(); >+ if (targetEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ addTarget = false; >+ } >+ } >+%> >+ <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> container = getRelationshipContainer(source.getElement(), <%=importManager.getImportedName(containmentFeature.getGenClass().getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getGenClass().getClassifierAccessorName()%>()); >+ if (container == null) { >+ domainModelAddCommand = null; >+ return; >+ } >+ addLinkEndsCommand.append(<%=importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, >+ container, <%=importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=containmentFeature.getFeatureAccessorName()%>(), createdDomainElement)); >+<% >+ } >+ if (addChild) { >+%> >+ addLinkEndsCommand.append(<%=importManager.getImportedName(childFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, >+ container, <%=importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=childFeature.getFeatureAccessorName()%>(), createdDomainElement)); >+<% >+ } >+ if (addSource) { >+%> >+ addLinkEndsCommand.append(<%=importManager.getImportedName(sourceFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, >+ createdDomainElement, <%=importManager.getImportedName(sourceFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=sourceFeature.getFeatureAccessorName()%>(), source.getElement())); >+<% >+ } >+ if (addTarget) { >+%> >+ addLinkEndsCommand.append(<%=importManager.getImportedName(targetFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, >+ createdDomainElement, <%=importManager.getImportedName(targetFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=targetFeature.getFeatureAccessorName()%>(), target.getElement())); >+<% >+ } >+%> >+ domainModelAddCommand = addLinkEndsCommand; >+<% >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+%> >+ domainModelAddCommand = <%=importManager.getImportedName(metaFeature.getEcoreFeature().isMany()? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")%>.create(domainModelEditDomain, source.getElement(), >+ <%=importManager.getImportedName(metaFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=metaFeature.getFeatureAccessorName()%>(), target.getElement()); >+<% >+ } >+%> >+ } >+ >+<% >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+%> >+ /** >+ * Finds container element for the new relationship of the specified type. >+ * Default implementation goes up by containment hierarchy starting from >+ * the specified element and returns the first element that is instance of >+ * the specified container class. >+ * >+ * @generated >+ */ >+ protected <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> getRelationshipContainer(<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> element, <%=importManager.getImportedName("org.eclipse.emf.ecore.EClass")%> containerClass) { >+ for (; element != null; element = element.eContainer()) { >+ if (containerClass.isSuperTypeOf(element.eClass())) { >+ return element; >+ } >+ } >+ return null; >+ } >+<% >+ } >+%> >+ >+ /** >+ * @generated >+ */ >+ public boolean canExecute() { >+ return source != null && target != null && createdEdge != null && domainModelAddCommand != null && domainModelAddCommand.canExecute(); >+ } >+ /** >+ * @generated >+ */ >+ public boolean canUndo() { >+ return source != null && target != null && createdEdge != null && domainModelAddCommand != null && domainModelAddCommand.canUndo(); >+ } >+ /** >+ * @generated >+ */ >+ public void execute() { >+ domainModelAddCommand.execute(); >+ source.getDiagram().insertEdge(createdEdge); >+ createdEdge.setSource(source); >+ createdEdge.setTarget(target); >+ } >+ /** >+ * @generated >+ */ >+ public void undo() { >+ domainModelAddCommand.undo(); >+ source.getDiagram().removeEdge(createdEdge); >+ createdEdge.setSource(null); >+ createdEdge.setTarget(null); >+ } >+ } >+<% >+} >+%> >+<%}/*when there's palette*/%> >+<% >+if (genNode.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genNode.getViewmap()).getClassBody(); >+%> >+<%=classBody%> >+<%@ include file="mapmodeWorkaround.javajetinc"%> >+<% >+} >+%> >+} >+<%importManager.emitSortedImports();%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/BuildPropertiesGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/editor/BuildPropertiesGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/editor/BuildPropertiesGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/editor/BuildPropertiesGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,23 @@ >+package org.eclipse.gmf.codegen.templates.lite.editor; >+ >+public class BuildPropertiesGenerator >+{ >+ protected static String nl; >+ public static synchronized BuildPropertiesGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ BuildPropertiesGenerator result = new BuildPropertiesGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = "bin.includes = .,\\" + NL + " META-INF/,\\" + NL + " plugin.xml,\\" + NL + " plugin.properties" + NL + "jars.compile.order = ." + NL + "source.. = src/" + NL + "output.. = bin/"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ stringBuffer.append(TEXT_1); >+ return stringBuffer.toString(); >+ } >+} >Index: templates/parts/textAwareFields.jetinc >=================================================================== >RCS file: templates/parts/textAwareFields.jetinc >diff -N templates/parts/textAwareFields.jetinc >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/parts/textAwareFields.jetinc 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,10 @@ >+ >+ /** >+ * @generated >+ */ >+ private <%=importManager.getImportedName("org.eclipse.gef.tools.DirectEditManager")%> manager; >+ >+ /** >+ * @generated >+ */ >+ private String defaultText; >Index: templates/editor/manifest.mfjet >=================================================================== >RCS file: templates/editor/manifest.mfjet >diff -N templates/editor/manifest.mfjet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/manifest.mfjet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,41 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="ManifestGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.emf.codegen.ecore.genmodel.* java.util.*"%> >+<% >+final GenPlugin genPlugin = (GenPlugin) argument; >+final GenModel genModel = genPlugin.getEditorGen().getDomainGenModel(); >+final Set requiredPluginIDs = new LinkedHashSet(); >+requiredPluginIDs.add(genModel.getModelPluginID()); >+requiredPluginIDs.add(genModel.getEditPluginID()); >+ >+for (Iterator it = genModel.getAllUsedGenPackagesWithClassifiers().iterator(); it.hasNext();) { >+ GenModel nextGenModel = ((GenPackage) it.next()).getGenModel(); >+ if (nextGenModel.hasEditSupport()) { >+ requiredPluginIDs.add(nextGenModel.getModelPluginID()); >+ requiredPluginIDs.add(nextGenModel.getEditPluginID()); >+ } >+} >+ >+requiredPluginIDs.addAll(genPlugin.getRequiredPluginIDs()); >+Iterator requiredBundleIterator = requiredPluginIDs.iterator(); >+%> >+Manifest-Version: 1.0 >+Bundle-ManifestVersion: 2 >+Bundle-Name: %pluginName >+Bundle-SymbolicName: <%=genPlugin.getID()%>; singleton:=true >+Bundle-Version: <%=genPlugin.getVersion()%> >+Bundle-ClassPath: . >+Bundle-Activator: <%=genPlugin.getActivatorQualifiedClassName()%> >+Bundle-Vendor: %providerName >+Bundle-Localization: plugin >+Export-Package: <%=genPlugin.getEditorGen().getEditor().getPackageName()%> >+Require-Bundle: org.eclipse.core.runtime, >+ org.eclipse.jface, >+ org.eclipse.ui.views, >+ org.eclipse.ui.workbench, >+ org.eclipse.emf.ecore, >+ org.eclipse.emf.edit.ui, >+ org.eclipse.gef;visibility:=reexport, >+ org.eclipse.gmf.runtime.notation, >+ org.eclipse.gmf.runtime.notation.edit<%while(requiredBundleIterator.hasNext()) {%>, >+ <%=requiredBundleIterator.next()%>;visibility:=reexport<%}%> >+Eclipse-LazyStart: true >Index: templates/editor/build.propertiesjet >=================================================================== >RCS file: templates/editor/build.propertiesjet >diff -N templates/editor/build.propertiesjet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/build.propertiesjet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,8 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="BuildPropertiesGenerator"%> >+bin.includes = .,\ >+ META-INF/,\ >+ plugin.xml,\ >+ plugin.properties >+jars.compile.order = . >+source.. = src/ >+output.. = bin/ >Index: templates/editor/plugin.propertiesjet >=================================================================== >RCS file: templates/editor/plugin.propertiesjet >diff -N templates/editor/plugin.propertiesjet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/plugin.propertiesjet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.lite.editor" class="PluginPropertiesGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.*"%> >+<%GenPlugin genPlugin = (GenPlugin) argument;%> >+pluginName=<%=genPlugin.getName()%> >+providerName=<%=genPlugin.getProvider()%> >Index: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeEditPartGenerator.java >=================================================================== >RCS file: src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeEditPartGenerator.java >diff -N src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeEditPartGenerator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-templates/org/eclipse/gmf/codegen/templates/lite/parts/NodeEditPartGenerator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,1356 @@ >+package org.eclipse.gmf.codegen.templates.lite.parts; >+ >+import java.util.*; >+import org.eclipse.emf.codegen.ecore.genmodel.*; >+import org.eclipse.gmf.codegen.gmfgen.*; >+import org.eclipse.gmf.common.codegen.*; >+import org.eclipse.emf.ecore.*; >+ >+public class NodeEditPartGenerator >+{ >+ protected static String nl; >+ public static synchronized NodeEditPartGenerator create(String lineSeparator) >+ { >+ nl = lineSeparator; >+ NodeEditPartGenerator result = new NodeEditPartGenerator(); >+ nl = null; >+ return result; >+ } >+ >+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; >+ protected final String TEXT_1 = ""; >+ protected final String TEXT_2 = NL + "/*" + NL + " * "; >+ protected final String TEXT_3 = NL + " */"; >+ protected final String TEXT_4 = NL; >+ protected final String TEXT_5 = NL + NL + "/**" + NL + " * @generated" + NL + " */" + NL + "public class "; >+ protected final String TEXT_6 = " extends "; >+ protected final String TEXT_7 = " implements "; >+ protected final String TEXT_8 = ", IUpdatableEditPart {" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_9 = " contentPane;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_10 = " primaryShape;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_11 = "("; >+ protected final String TEXT_12 = " model) {" + NL + "\t\tassert model instanceof "; >+ protected final String TEXT_13 = ";" + NL + "\t\tsetModel(model);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void createEditPolicies() {"; >+ protected final String TEXT_14 = NL; >+ protected final String TEXT_15 = "\t\tinstallEditPolicy("; >+ protected final String TEXT_16 = ".COMPONENT_ROLE, new "; >+ protected final String TEXT_17 = "() {" + NL + "\t\t\tprotected "; >+ protected final String TEXT_18 = " createDeleteCommand("; >+ protected final String TEXT_19 = " deleteRequest) {" + NL + "\t\t\t\treturn new "; >+ protected final String TEXT_20 = "() {"; >+ protected final String TEXT_21 = NL + "\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = getDomainModelRemoveCommand();" + NL + "\t\t\t\t\tprivate org.eclipse.emf.common.command.Command getDomainModelRemoveCommand() {" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_22 = " result = new "; >+ protected final String TEXT_23 = "();"; >+ protected final String TEXT_24 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_25 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_26 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_27 = ".eINSTANCE.get"; >+ protected final String TEXT_28 = "()," + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement()));"; >+ protected final String TEXT_29 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_30 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_31 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_32 = ".eINSTANCE.get"; >+ protected final String TEXT_33 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_34 = ".UNSET_VALUE));"; >+ protected final String TEXT_35 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_36 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_37 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_38 = ".eINSTANCE.get"; >+ protected final String TEXT_39 = "()," + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement()));"; >+ protected final String TEXT_40 = NL + "\t\t\t\t\t\tresult.append("; >+ protected final String TEXT_41 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_42 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_43 = ".eINSTANCE.get"; >+ protected final String TEXT_44 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_45 = ".UNSET_VALUE));"; >+ protected final String TEXT_46 = NL + "\t\t\t\t\t\treturn result;" + NL + "\t\t\t\t\t}"; >+ protected final String TEXT_47 = NL + "\t\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = "; >+ protected final String TEXT_48 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_49 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_50 = ".eINSTANCE.get"; >+ protected final String TEXT_51 = "()," + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement());"; >+ protected final String TEXT_52 = NL + "\t\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command domainModelRemoveCommand = "; >+ protected final String TEXT_53 = ".create(" + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_54 = ".getEditingDomainFor(getDiagramNode().getDiagram().getElement()), " + NL + "\t\t\t\t\t\t\tgetDiagramNode().getElement().eContainer(), "; >+ protected final String TEXT_55 = ".eINSTANCE.get"; >+ protected final String TEXT_56 = "()," + NL + "\t\t\t\t\t\t\t"; >+ protected final String TEXT_57 = ".UNSET_VALUE);"; >+ protected final String TEXT_58 = NL + "\t\t\t\t\tprivate final org.eclipse.emf.common.command.Command viewRemoveCommand = "; >+ protected final String TEXT_59 = ".create(" + NL + "\t\t\t\t\t\t"; >+ protected final String TEXT_60 = ".getEditingDomainFor(getDiagramNode().getDiagram()), " + NL + "\t\t\t\t\t\tgetDiagramNode());" + NL + "\t\t\t\t\tpublic boolean canExecute() {" + NL + "\t\t\t\t\t\treturn domainModelRemoveCommand != null && domainModelRemoveCommand.canExecute() && viewRemoveCommand != null && viewRemoveCommand.canExecute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void execute() {" + NL + "\t\t\t\t\t\tdomainModelRemoveCommand.execute();" + NL + "\t\t\t\t\t\tviewRemoveCommand.execute();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic boolean canUndo() {" + NL + "\t\t\t\t\t\treturn domainModelRemoveCommand != null && domainModelRemoveCommand.canUndo() && viewRemoveCommand != null && viewRemoveCommand.canUndo();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tpublic void undo() {" + NL + "\t\t\t\t\t\tdomainModelRemoveCommand.undo();" + NL + "\t\t\t\t\t\tviewRemoveCommand.undo();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t}" + NL + "\t\t});"; >+ protected final String TEXT_61 = NL + "\t\tinstallEditPolicy("; >+ protected final String TEXT_62 = ".LAYOUT_ROLE, new "; >+ protected final String TEXT_63 = "() {" + NL + "\t\t\tprotected "; >+ protected final String TEXT_64 = " getCreateCommand("; >+ protected final String TEXT_65 = " request) {" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_66 = ".INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t\tprotected Object getConstraintFor("; >+ protected final String TEXT_67 = " rect) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t\tprotected Object getConstraintFor("; >+ protected final String TEXT_68 = " point) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t\tprotected "; >+ protected final String TEXT_69 = " createChangeConstraintCommand("; >+ protected final String TEXT_70 = " child, Object constraint) {" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_71 = ".INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t\tprotected "; >+ protected final String TEXT_72 = " createChildEditPolicy("; >+ protected final String TEXT_73 = " child) {" + NL + "\t\t\t\treturn new "; >+ protected final String TEXT_74 = "() {" + NL + "\t\t\t\t\tpublic "; >+ protected final String TEXT_75 = " getTargetEditPart("; >+ protected final String TEXT_76 = " request) {" + NL + "\t\t\t\t\t\tif ("; >+ protected final String TEXT_77 = ".REQ_SELECTION.equals(request.getType())) {" + NL + "\t\t\t\t\t\t\treturn "; >+ protected final String TEXT_78 = ".this;" + NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t\treturn super.getTargetEditPart(request);" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t};" + NL + "\t\t\t}" + NL + "\t\t});" + NL + "\t\tinstallEditPolicy("; >+ protected final String TEXT_79 = ".GRAPHICAL_NODE_ROLE, new "; >+ protected final String TEXT_80 = "() {" + NL + "\t\t\tprotected "; >+ protected final String TEXT_81 = " getReconnectTargetCommand("; >+ protected final String TEXT_82 = " request) {" + NL + "\t\t\t\t//XXX: reconnect command" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_83 = ".INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t\tprotected "; >+ protected final String TEXT_84 = " getReconnectSourceCommand("; >+ protected final String TEXT_85 = " request) {" + NL + "\t\t\t\t//XXX: reconnect command" + NL + "\t\t\t\treturn "; >+ protected final String TEXT_86 = ".INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t\tprotected "; >+ protected final String TEXT_87 = " getConnectionCreateCommand("; >+ protected final String TEXT_88 = " request) {"; >+ protected final String TEXT_89 = NL + "\t\t\t\tif (request instanceof "; >+ protected final String TEXT_90 = ".CreateConnectionRequestEx) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_91 = ".CreateConnectionRequestEx requestEx = ("; >+ protected final String TEXT_92 = ".CreateConnectionRequestEx) request;" + NL + "\t\t\t\t\tint[] visualIds = requestEx.getVisualIds();" + NL + "\t\t\t\t\tint matchingVisualIdsCount = 0;" + NL + "\t\t\t\t\tfor (int i = 0; i < visualIds.length; i++) {" + NL + "\t\t\t\t\t\tint nextVisualId = visualIds[i];" + NL + "\t\t\t\t\t\tswitch (nextVisualId) {"; >+ protected final String TEXT_93 = NL + "\t\t\t\t\t\tcase "; >+ protected final String TEXT_94 = ":" + NL + "\t\t\t\t\t\t\tmatchingVisualIdsCount++;" + NL + "\t\t\t\t\t\t\tbreak;"; >+ protected final String TEXT_95 = NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tif (matchingVisualIdsCount != 1) {" + NL + "\t\t\t\t\t\t//Cannot create several connections at once." + NL + "\t\t\t\t\t\treturn "; >+ protected final String TEXT_96 = ".INSTANCE;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_97 = " result = new "; >+ protected final String TEXT_98 = "() {" + NL + "\t\t\t\t\t\t//XXX: check multiplicity requirements etc." + NL + "\t\t\t\t\t};" + NL + "\t\t\t\t\trequest.setStartCommand(result);" + NL + "\t\t\t\t\treturn result;" + NL + "\t\t\t\t}"; >+ protected final String TEXT_99 = NL + "\t\t\t\treturn "; >+ protected final String TEXT_100 = ".INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t\tprotected "; >+ protected final String TEXT_101 = " getConnectionCompleteCommand("; >+ protected final String TEXT_102 = " request) {"; >+ protected final String TEXT_103 = NL + "\t\t\t\tif (request.getStartCommand() == null || !request.getStartCommand().canExecute()) {" + NL + "\t\t\t\t\treturn "; >+ protected final String TEXT_104 = ".INSTANCE;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tif (request instanceof "; >+ protected final String TEXT_105 = ".CreateConnectionRequestEx) {" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_106 = ".CreateConnectionRequestEx requestEx = ("; >+ protected final String TEXT_107 = ".CreateConnectionRequestEx) request;" + NL + "\t\t\t\t\tint[] visualIds = requestEx.getVisualIds();" + NL + "\t\t\t\t\t"; >+ protected final String TEXT_108 = " result = new "; >+ protected final String TEXT_109 = "();" + NL + "\t\t\t\t\tfor (int i = 0; i < visualIds.length; i++) {" + NL + "\t\t\t\t\t\tint nextVisualId = visualIds[i];" + NL + "\t\t\t\t\t\tswitch (nextVisualId) {"; >+ protected final String TEXT_110 = NL + "\t\t\t\t\t\tcase "; >+ protected final String TEXT_111 = ":" + NL + "\t\t\t\t\t\t\tresult.add(new Create"; >+ protected final String TEXT_112 = "Command(requestEx));" + NL + "\t\t\t\t\t\t\tbreak;"; >+ protected final String TEXT_113 = NL + "\t\t\t\t\t\t}" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\tif (result.getChildren().length != 1) {" + NL + "\t\t\t\t\t\t//Cannot create several connections at once." + NL + "\t\t\t\t\t\treturn "; >+ protected final String TEXT_114 = ".INSTANCE;" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\treturn result.unwrap();" + NL + "\t\t\t\t}"; >+ protected final String TEXT_115 = NL + "\t\t\t\treturn "; >+ protected final String TEXT_116 = ".INSTANCE;" + NL + "\t\t\t}" + NL + "\t\t});" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_117 = " createFigure() {" + NL + "\t\t"; >+ protected final String TEXT_118 = " invisibleRectangle = new "; >+ protected final String TEXT_119 = "();" + NL + "\t\tinvisibleRectangle.setLayoutManager(new "; >+ protected final String TEXT_120 = "());" + NL + "\t\t"; >+ protected final String TEXT_121 = " shape = createNodeShape();" + NL + "\t\tinvisibleRectangle.add(shape);" + NL + "\t\tcontentPane = setupContentPane(shape);" + NL + "\t\t" + NL + "\t\t"; >+ protected final String TEXT_122 = " decorationShape = createDecorationPane();" + NL + "\t\tif (decorationShape != null) {" + NL + "\t\t\tinvisibleRectangle.add(decorationShape);" + NL + "\t\t}" + NL + "" + NL + "\t\treturn invisibleRectangle;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_123 = " createNodeShape() {"; >+ protected final String TEXT_124 = NL + "\t\tprimaryShape = new "; >+ protected final String TEXT_125 = "()"; >+ protected final String TEXT_126 = " {" + NL + "\t\t\tprotected boolean useLocalCoordinates() {" + NL + "\t\t\t\treturn true;" + NL + "\t\t\t}" + NL + "\t\t}"; >+ protected final String TEXT_127 = ";"; >+ protected final String TEXT_128 = NL + "\t\tprimaryShape = "; >+ protected final String TEXT_129 = ";"; >+ protected final String TEXT_130 = NL + "\t\t"; >+ protected final String TEXT_131 = " figure = new "; >+ protected final String TEXT_132 = "();" + NL + " \t\tfigure.setUseLocalCoordinates("; >+ protected final String TEXT_133 = ");" + NL + " \t\tprimaryShape = figure;"; >+ protected final String TEXT_134 = NL + "\t\treturn primaryShape;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_135 = " createDecorationPane() {" + NL + "\t\t"; >+ protected final String TEXT_136 = " view = ("; >+ protected final String TEXT_137 = ") getModel();" + NL + "\t\t"; >+ protected final String TEXT_138 = " annotation = view.getEAnnotation(\"Shortcut\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn null;" + NL + "\t\t}" + NL + "\t\t" + NL + "\t\t"; >+ protected final String TEXT_139 = " decorationPane = new "; >+ protected final String TEXT_140 = "();" + NL + "\t\tdecorationPane.setLayoutManager(new "; >+ protected final String TEXT_141 = "());" + NL + "" + NL + "\t\t"; >+ protected final String TEXT_142 = " imageFigure = new "; >+ protected final String TEXT_143 = "("; >+ protected final String TEXT_144 = ".getInstance().getBundledImage(\"icons/shortcut.gif\"), "; >+ protected final String TEXT_145 = ".EAST);" + NL + "\t\tdecorationPane.add(imageFigure, "; >+ protected final String TEXT_146 = ".BOTTOM);" + NL + " \t\treturn decorationPane;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Default implementation treats passed figure as content pane." + NL + "\t * Respects layout one may have set for generated figure." + NL + "\t * @param nodeShape instance of generated figure class" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_147 = " setupContentPane("; >+ protected final String TEXT_148 = " nodeShape) {" + NL + "\t\tif (nodeShape.getLayoutManager() == null) {"; >+ protected final String TEXT_149 = NL + "\t\t\t"; >+ protected final String TEXT_150 = " layout = new "; >+ protected final String TEXT_151 = "();" + NL + "\t\t\tlayout.setSpacing(5);" + NL + "\t\t\tnodeShape.setLayoutManager(layout);"; >+ protected final String TEXT_152 = NL + "\t\tnodeShape.setLayoutManager(new "; >+ protected final String TEXT_153 = "() {" + NL + "" + NL + "\t\t\tpublic Object getConstraint("; >+ protected final String TEXT_154 = " figure) {" + NL + "\t\t\t\tObject result = constraints.get(figure);" + NL + "\t\t\t\tif (result == null) {" + NL + "\t\t\t\t\tresult = new "; >+ protected final String TEXT_155 = "(0, 0, -1, -1);" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t});"; >+ protected final String TEXT_156 = NL + "\t\t}" + NL + "\t\treturn nodeShape; // use nodeShape itself as contentPane" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_157 = " getContentPane() {" + NL + "\t\tif (contentPane == null) {" + NL + "\t\t\treturn super.getContentPane();" + NL + "\t\t}" + NL + "\t\treturn contentPane;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_158 = " getDiagramNode() {" + NL + "\t\treturn ("; >+ protected final String TEXT_159 = ") getModel();" + NL + "\t}" + NL; >+ protected final String TEXT_160 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean addFixedChild("; >+ protected final String TEXT_161 = " childEditPart) {"; >+ protected final String TEXT_162 = NL + "\t\tif (childEditPart instanceof "; >+ protected final String TEXT_163 = ") {"; >+ protected final String TEXT_164 = NL + "\t\t\t(("; >+ protected final String TEXT_165 = ") childEditPart).setLabel((("; >+ protected final String TEXT_166 = ") primaryShape).getFigure"; >+ protected final String TEXT_167 = "());"; >+ protected final String TEXT_168 = NL + "\t\t\t(("; >+ protected final String TEXT_169 = ") childEditPart).setLabel(new "; >+ protected final String TEXT_170 = "());"; >+ protected final String TEXT_171 = NL + "\t\t\treturn true;" + NL + "\t\t}"; >+ protected final String TEXT_172 = NL + "\t\treturn false;" + NL + "\t}" + NL; >+ protected final String TEXT_173 = NL; >+ protected final String TEXT_174 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static int getVisualID("; >+ protected final String TEXT_175 = " containerView) {" + NL + "\t\t"; >+ protected final String TEXT_176 = " annotation = containerView.getEAnnotation(\"ViewIdentifier\"); //$NON-NLS-1$" + NL + "\t\tif (annotation == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\tString visualID = (String) annotation.getDetails().get(\"visualID\"); //$NON-NLS-1$" + NL + "\t\tif (visualID == null) {" + NL + "\t\t\treturn -1;" + NL + "\t\t}" + NL + "\t\ttry {" + NL + "\t\t\treturn Integer.parseInt(visualID);" + NL + "\t\t} catch (NumberFormatException e) {" + NL + "\t\t\t"; >+ protected final String TEXT_177 = ".getInstance().logError(\"Unable to parse \\\"visualID\\\" annotation: \" + visualID, e);" + NL + "\t\t}" + NL + "\t\treturn -1;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Returns the label which should be direct-edited by default." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_178 = " getPrimaryLabelEditPart() {" + NL + "\t\tfor("; >+ protected final String TEXT_179 = " it = getDiagramNode().getChildren().iterator(); it.hasNext(); ) {" + NL + "\t\t\t"; >+ protected final String TEXT_180 = " nextChild = ("; >+ protected final String TEXT_181 = ")it.next();" + NL + "\t\t\tif (getVisualID(nextChild) == "; >+ protected final String TEXT_182 = ") {" + NL + "\t\t\t\treturn ("; >+ protected final String TEXT_183 = ") getViewer().getEditPartRegistry().get(nextChild);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\treturn null;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void performRequest("; >+ protected final String TEXT_184 = " req) {" + NL + "\t\tif ("; >+ protected final String TEXT_185 = ".REQ_DIRECT_EDIT == req.getType()) {" + NL + "\t\t\t"; >+ protected final String TEXT_186 = " primaryLabel = getPrimaryLabelEditPart();" + NL + "\t\t\tif (primaryLabel != null) {" + NL + "\t\t\t\tprimaryLabel.performRequest(req);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL; >+ protected final String TEXT_187 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual("; >+ protected final String TEXT_188 = " childEditPart, int index) {" + NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\t"; >+ protected final String TEXT_189 = " labelFigure = (("; >+ protected final String TEXT_190 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().add(labelFigure);" + NL + "\t\t} else {"; >+ protected final String TEXT_191 = NL + "\t\t\tif (!addFixedChild(childEditPart)) {" + NL + "\t\t\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t\t\t}"; >+ protected final String TEXT_192 = NL + "\t\t\tsuper.addChildVisual(childEditPart, -1);"; >+ protected final String TEXT_193 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void removeChildVisual("; >+ protected final String TEXT_194 = " childEditPart) {" + NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\t"; >+ protected final String TEXT_195 = " labelFigure = (("; >+ protected final String TEXT_196 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t} else {" + NL + "\t\t\tsuper.removeChildVisual(childEditPart);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isExternalLabel("; >+ protected final String TEXT_197 = " childEditPart) {"; >+ protected final String TEXT_198 = NL + "\t\tif (childEditPart instanceof "; >+ protected final String TEXT_199 = ") {" + NL + "\t\t\treturn true;" + NL + "\t\t}"; >+ protected final String TEXT_200 = NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_201 = " getExternalLabelsContainer() {" + NL + "\t\t"; >+ protected final String TEXT_202 = " root = ("; >+ protected final String TEXT_203 = ") getRoot();" + NL + "\t\treturn root.getLayer("; >+ protected final String TEXT_204 = ".EXTERNAL_NODE_LABELS_LAYER);" + NL + "\t}" + NL; >+ protected final String TEXT_205 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual("; >+ protected final String TEXT_206 = " childEditPart, int index) {" + NL + "\t\tif (!addFixedChild(childEditPart)) {" + NL + "\t\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_207 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisuals() {" + NL + "\t\tsuper.refreshVisuals();" + NL + "\t\trefreshBounds();" + NL + "\t\trefreshBackgroundColor();" + NL + "\t\trefreshForegroundColor();" + NL + "\t\trefreshFont();" + NL + "\t\trefreshVisibility();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshVisibility() {" + NL + "\t\tboolean isVisible = getDiagramNode().isVisible();" + NL + "\t\tboolean wasVisible = getFigure().isVisible();" + NL + "\t\tif (isVisible == wasVisible) {" + NL + "\t\t\treturn;" + NL + "\t\t}" + NL + "\t\tif (!isVisible && (getSelected() != SELECTED_NONE)) {" + NL + "\t\t\tgetViewer().deselect(this);" + NL + "\t\t}" + NL + "" + NL + "\t\tgetFigure().setVisible(isVisible);" + NL + "\t\tgetFigure().revalidate();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshBounds() {" + NL + "\t\t"; >+ protected final String TEXT_208 = " node = getDiagramNode();" + NL + "\t\tassert node.getLayoutConstraint() instanceof "; >+ protected final String TEXT_209 = ";" + NL + "\t\t"; >+ protected final String TEXT_210 = " bounds = ("; >+ protected final String TEXT_211 = ") node.getLayoutConstraint();" + NL + "\t\t(("; >+ protected final String TEXT_212 = ") getParent()).setLayoutConstraint(this, getFigure(), " + NL + "\t\t\tnew "; >+ protected final String TEXT_213 = "(bounds.getX(), bounds.getY(), bounds.getWidth(), bounds.getHeight()));" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_214 = " getModelChildren() {" + NL + "\t\treturn getDiagramNode().getVisibleChildren();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_215 = " getModelSourceConnections() {" + NL + "\t\treturn getDiagramNode().getSourceEdges();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; >+ protected final String TEXT_216 = " getModelTargetConnections() {" + NL + "\t\treturn getDiagramNode().getTargetEdges();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_217 = " getSourceConnectionAnchor("; >+ protected final String TEXT_218 = " connection) {" + NL + "\t\treturn new "; >+ protected final String TEXT_219 = "(getFigure());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_220 = " getSourceConnectionAnchor("; >+ protected final String TEXT_221 = " request) {" + NL + "\t\treturn new "; >+ protected final String TEXT_222 = "(getFigure());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_223 = " getTargetConnectionAnchor("; >+ protected final String TEXT_224 = " connection) {" + NL + "\t\treturn new "; >+ protected final String TEXT_225 = "(getFigure());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; >+ protected final String TEXT_226 = " getTargetConnectionAnchor("; >+ protected final String TEXT_227 = " request) {" + NL + "\t\treturn new "; >+ protected final String TEXT_228 = "(getFigure());" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object getAdapter(Class key) {"; >+ protected final String TEXT_229 = NL + "\t\treturn super.getAdapter(key);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void activate() {" + NL + "\t\tsuper.activate();" + NL + "\t\tgetDiagramNode().getElement().eAdapters().add(domainModelRefresher);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void deactivate() {" + NL + "\t\tgetDiagramNode().getElement().eAdapters().remove(domainModelRefresher);" + NL + "\t\tsuper.deactivate();" + NL + "\t}" + NL; >+ protected final String TEXT_230 = NL; >+ protected final String TEXT_231 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate DomainModelRefresher domainModelRefresher = new DomainModelRefresher();" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate class DomainModelRefresher extends "; >+ protected final String TEXT_232 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void notifyChanged("; >+ protected final String TEXT_233 = " msg) {" + NL + "\t\t\tsuper.notifyChanged(msg);" + NL + "\t\t\tif (msg.isTouch()) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tRefresher refresher = getRefresher(("; >+ protected final String TEXT_234 = ") msg.getFeature(), msg);" + NL + "\t\t\tif (refresher != null) {" + NL + "\t\t\t\trefresher.refresh();" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t}" + NL; >+ protected final String TEXT_235 = NL; >+ protected final String TEXT_236 = "\tpublic void addRefresher("; >+ protected final String TEXT_237 = " feature, Refresher refresher) {" + NL + "\t\tCompositeRefresher compositeRefresher = getCompositeRefresher(feature);" + NL + "\t\tcompositeRefresher.addRefresher(refresher);" + NL + "\t}" + NL + "" + NL + "\tpublic void removeRefresher("; >+ protected final String TEXT_238 = " feature, Refresher refresher) {" + NL + "\t\tCompositeRefresher compositeRefresher = getCompositeRefresher(feature);" + NL + "\t\tcompositeRefresher.removeRefresher(refresher);" + NL + "\t}" + NL + "" + NL + "\tprivate CompositeRefresher getCompositeRefresher("; >+ protected final String TEXT_239 = " feature) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\tRefresher refresher = (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t\tif (refresher instanceof CompositeRefresher) {" + NL + "\t\t\treturn (CompositeRefresher) refresher;" + NL + "\t\t}" + NL + "\t\tCompositeRefresher result = new CompositeRefresher();" + NL + "\t\tif (refresher != null) {" + NL + "\t\t\tresult.addRefresher(refresher);" + NL + "\t\t}" + NL + "\t\tstructuralFeatures2Refresher.put(feature, result);" + NL + "\t\treturn result;" + NL + "\t}" + NL; >+ protected final String TEXT_240 = NL; >+ protected final String TEXT_241 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshFont() {" + NL + "\t\t"; >+ protected final String TEXT_242 = " style =" + NL + "\t\t\t("; >+ protected final String TEXT_243 = ") "; >+ protected final String TEXT_244 = ".getStyle(" + NL + "\t\t\t\t"; >+ protected final String TEXT_245 = ".eINSTANCE.getFontStyle());" + NL + "\t\t"; >+ protected final String TEXT_246 = " toDispose = createdFont;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tString fontName = style.getFontName();" + NL + "\t\t\tint fontHeight = style.getFontHeight();" + NL + "\t\t\tint fontStyle = "; >+ protected final String TEXT_247 = ".NORMAL;" + NL + "\t\t\tif (style.isBold()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_248 = ".BOLD;" + NL + "\t\t\t}" + NL + "\t\t\tif (style.isItalic()) {" + NL + "\t\t\t\tfontStyle |= "; >+ protected final String TEXT_249 = ".ITALIC;" + NL + "\t\t\t}" + NL + "\t\t\t"; >+ protected final String TEXT_250 = " currentFont = getFigure().getFont();" + NL + "\t\t\tif (currentFont != null) {" + NL + "\t\t\t\t"; >+ protected final String TEXT_251 = " currentFontData = currentFont.getFontData()[0];" + NL + "\t\t\t\tif (currentFontData.getName().equals(fontName) && currentFontData.getHeight() == fontHeight && currentFontData.getStyle() == fontStyle) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\tcreatedFont = new "; >+ protected final String TEXT_252 = "(null, fontName, fontHeight, fontStyle);" + NL + "\t\t\tgetFigure().setFont(createdFont);" + NL + "\t\t} else {" + NL + "\t\t\t//revert to the default font" + NL + "\t\t\tgetFigure().setFont(getViewer().getControl().getFont());" + NL + "\t\t\tcreatedFont = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The font (created by {@link #refreshFont()}) currently assigned to the label (unless the default font is assigned)." + NL + "\t * Whenever another non-default font is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_253 = " createdFont;" + NL; >+ protected final String TEXT_254 = NL; >+ protected final String TEXT_255 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshForegroundColor() {" + NL + "\t\t"; >+ protected final String TEXT_256 = " style = ("; >+ protected final String TEXT_257 = ") "; >+ protected final String TEXT_258 = ".getStyle("; >+ protected final String TEXT_259 = ".eINSTANCE.getLineStyle());" + NL + "\t\t"; >+ protected final String TEXT_260 = " toDispose = createdForegroundColor;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tint foregroundColor = style.getLineColor();" + NL + "\t\t\tint red = foregroundColor & 0x000000FF;" + NL + "\t\t\tint green = (foregroundColor & 0x0000FF00) >> 8;" + NL + "\t\t\tint blue = (foregroundColor & 0x00FF0000) >> 16;" + NL + "\t\t\t"; >+ protected final String TEXT_261 = " currentColor = getFigure().getForegroundColor();" + NL + "\t\t\tif (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tcreatedForegroundColor = new "; >+ protected final String TEXT_262 = "(null, red, green, blue);" + NL + "\t\t\tgetFigure().setForegroundColor(createdForegroundColor);" + NL + "\t\t} else {" + NL + "\t\t\tgetFigure().setForegroundColor(getViewer().getControl().getForeground());" + NL + "\t\t\tcreatedForegroundColor = null;" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The color (created by {@link #refreshForegroundColor()}) currently assigned to the figure." + NL + "\t * Whenever another color is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_263 = " createdForegroundColor;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void refreshBackgroundColor() {" + NL + "\t\t"; >+ protected final String TEXT_264 = " style = ("; >+ protected final String TEXT_265 = ") "; >+ protected final String TEXT_266 = ".getStyle("; >+ protected final String TEXT_267 = ".eINSTANCE.getFillStyle());" + NL + "\t\t"; >+ protected final String TEXT_268 = " toDispose = createdBackgroundColor;" + NL + "\t\tif (style != null) {" + NL + "\t\t\tint backgroundColor = style.getFillColor();" + NL + "\t\t\tint red = backgroundColor & 0x000000FF;" + NL + "\t\t\tint green = (backgroundColor & 0x0000FF00) >> 8;" + NL + "\t\t\tint blue = (backgroundColor & 0x00FF0000) >> 16;" + NL + "\t\t\t"; >+ protected final String TEXT_269 = " currentColor = getFigure().getBackgroundColor();" + NL + "\t\t\tif (currentColor != null && currentColor.getRed() == red && currentColor.getGreen() == green && currentColor.getBlue() == blue) {" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\tcreatedBackgroundColor = new "; >+ protected final String TEXT_270 = "(null, red, green, blue);" + NL + "\t\t\tgetFigure().setBackgroundColor(createdBackgroundColor);" + NL + "\t\t} else {" + NL + "\t\t\tgetFigure().setBackgroundColor(getViewer().getControl().getBackground());" + NL + "\t\t}" + NL + "\t\tif (toDispose != null) {" + NL + "\t\t\ttoDispose.dispose();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * The color (created by {@link #refreshBackgroundColor()}) currently assigned to the figure." + NL + "\t * Whenever another color is assigned to it, it is safe to dispose the previous one." + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_271 = " createdBackgroundColor;" + NL; >+ protected final String TEXT_272 = NL; >+ protected final String TEXT_273 = "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate "; >+ protected final String TEXT_274 = " structuralFeatures2Refresher;" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Refresher getRefresher("; >+ protected final String TEXT_275 = " feature, "; >+ protected final String TEXT_276 = " msg) {" + NL + "\t\tif (structuralFeatures2Refresher == null) {" + NL + "\t\t\tcreateRefreshers();" + NL + "\t\t}" + NL + "\t\treturn (Refresher) structuralFeatures2Refresher.get(feature);" + NL + "\t}" + NL + "" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void createRefreshers() {" + NL + "\t\tstructuralFeatures2Refresher = new "; >+ protected final String TEXT_277 = "();"; >+ protected final String TEXT_278 = NL; >+ protected final String TEXT_279 = "\t\tRefresher childrenRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshChildren();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_280 = ".eINSTANCE.getView_PersistedChildren(), childrenRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_281 = ".eINSTANCE.getView_TransientChildren(), childrenRefresher);"; >+ protected final String TEXT_282 = NL; >+ protected final String TEXT_283 = "\t\tRefresher boundsRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshBounds();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_284 = ".eINSTANCE.getNode_LayoutConstraint(), boundsRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_285 = ".eINSTANCE.getSize_Width(), boundsRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_286 = ".eINSTANCE.getSize_Height(), boundsRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_287 = ".eINSTANCE.getLocation_X(), boundsRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_288 = ".eINSTANCE.getLocation_Y(), boundsRefresher);"; >+ protected final String TEXT_289 = NL; >+ protected final String TEXT_290 = "\t\tRefresher visibilityRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshVisibility();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_291 = ".eINSTANCE.getView_Visible(), visibilityRefresher);"; >+ protected final String TEXT_292 = NL; >+ protected final String TEXT_293 = "\t\tRefresher sourceEdgesRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshSourceConnections();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_294 = ".eINSTANCE.getView_SourceEdges(), sourceEdgesRefresher);"; >+ protected final String TEXT_295 = NL; >+ protected final String TEXT_296 = "\t\tRefresher targetEdgesRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshTargetConnections();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_297 = ".eINSTANCE.getView_TargetEdges(), targetEdgesRefresher);"; >+ protected final String TEXT_298 = NL; >+ protected final String TEXT_299 = "\t\tRefresher fontRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshFont();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_300 = ".eINSTANCE.getFontStyle_FontHeight(), fontRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_301 = ".eINSTANCE.getFontStyle_FontName(), fontRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_302 = ".eINSTANCE.getFontStyle_Bold(), fontRefresher);" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_303 = ".eINSTANCE.getFontStyle_Italic(), fontRefresher);" + NL + "\t\t"; >+ protected final String TEXT_304 = NL; >+ protected final String TEXT_305 = "\t\tRefresher backgroundColorRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshBackgroundColor();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_306 = ".eINSTANCE.getFillStyle_FillColor(), backgroundColorRefresher);" + NL + "\t\tRefresher foregroundColorRefresher = new Refresher() {" + NL + "\t\t\tpublic void refresh() {" + NL + "\t\t\t\trefreshForegroundColor();" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\tstructuralFeatures2Refresher.put("; >+ protected final String TEXT_307 = ".eINSTANCE.getLineStyle_LineColor(), foregroundColorRefresher);" + NL + "\t}" + NL; >+ protected final String TEXT_308 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class Create"; >+ protected final String TEXT_309 = "Command extends "; >+ protected final String TEXT_310 = " {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final "; >+ protected final String TEXT_311 = " source;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final "; >+ protected final String TEXT_312 = " target;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final "; >+ protected final String TEXT_313 = " createdEdge;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprivate final org.eclipse.emf.common.command.Command domainModelAddCommand;" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic Create"; >+ protected final String TEXT_314 = "Command("; >+ protected final String TEXT_315 = ".CreateConnectionRequestEx requestEx) {" + NL + "\t\t\tif (requestEx.getSourceEditPart().getModel() instanceof "; >+ protected final String TEXT_316 = ") {" + NL + "\t\t\t\tsource = ("; >+ protected final String TEXT_317 = ")requestEx.getSourceEditPart().getModel();" + NL + "\t\t\t} else {" + NL + "\t\t\t\tsource = null;" + NL + "\t\t\t}" + NL + "\t\t\tif (requestEx.getTargetEditPart().getModel() instanceof "; >+ protected final String TEXT_318 = ") {" + NL + "\t\t\t\ttarget = ("; >+ protected final String TEXT_319 = ")requestEx.getTargetEditPart().getModel();" + NL + "\t\t\t} else {" + NL + "\t\t\t\ttarget = null;" + NL + "\t\t\t}" + NL + "\t\t\tcreatedEdge = "; >+ protected final String TEXT_320 = ".eINSTANCE.createEdge();"; >+ protected final String TEXT_321 = NL + "\t\t\t"; >+ protected final String TEXT_322 = " createdDomainElement = "; >+ protected final String TEXT_323 = ".eINSTANCE.create"; >+ protected final String TEXT_324 = "();" + NL + "\t\t\tcreatedEdge.setElement(createdDomainElement);" + NL + "\t\t\t"; >+ protected final String TEXT_325 = NL + "\t\t\t"; >+ protected final String TEXT_326 = "."; >+ protected final String TEXT_327 = ".initializeElement(createdDomainElement);"; >+ protected final String TEXT_328 = NL + "\t\t\tcreatedEdge.setElement(target.getElement());\t\t//XXX: is this correct?"; >+ protected final String TEXT_329 = NL + "\t\t\t"; >+ protected final String TEXT_330 = ".decorateView(createdEdge);" + NL + "\t\t\t"; >+ protected final String TEXT_331 = " domainModelEditDomain = "; >+ protected final String TEXT_332 = ".getEditingDomainFor(source.getDiagram().getElement());"; >+ protected final String TEXT_333 = NL + "\t\t\torg.eclipse.emf.common.command.CompoundCommand addLinkEndsCommand = new org.eclipse.emf.common.command.CompoundCommand();"; >+ protected final String TEXT_334 = NL + "\t\t\t"; >+ protected final String TEXT_335 = " container = getRelationshipContainer(source.getElement(), "; >+ protected final String TEXT_336 = ".eINSTANCE.get"; >+ protected final String TEXT_337 = "());" + NL + "\t\t\tif (container == null) {" + NL + "\t\t\t\tdomainModelAddCommand = null;" + NL + "\t\t\t\treturn;" + NL + "\t\t\t}" + NL + "\t\t\taddLinkEndsCommand.append("; >+ protected final String TEXT_338 = ".create(domainModelEditDomain, " + NL + "\t\t\t\tcontainer, "; >+ protected final String TEXT_339 = ".eINSTANCE.get"; >+ protected final String TEXT_340 = "(), createdDomainElement));"; >+ protected final String TEXT_341 = NL + "\t\t\taddLinkEndsCommand.append("; >+ protected final String TEXT_342 = ".create(domainModelEditDomain," + NL + "\t\t\t\tcontainer, "; >+ protected final String TEXT_343 = ".eINSTANCE.get"; >+ protected final String TEXT_344 = "(), createdDomainElement));"; >+ protected final String TEXT_345 = NL + "\t\t\taddLinkEndsCommand.append("; >+ protected final String TEXT_346 = ".create(domainModelEditDomain, " + NL + "\t\t\t\tcreatedDomainElement, "; >+ protected final String TEXT_347 = ".eINSTANCE.get"; >+ protected final String TEXT_348 = "(), source.getElement()));"; >+ protected final String TEXT_349 = NL + "\t\t\taddLinkEndsCommand.append("; >+ protected final String TEXT_350 = ".create(domainModelEditDomain, " + NL + "\t\t\t\tcreatedDomainElement, "; >+ protected final String TEXT_351 = ".eINSTANCE.get"; >+ protected final String TEXT_352 = "(), target.getElement()));"; >+ protected final String TEXT_353 = NL + "\t\tdomainModelAddCommand = addLinkEndsCommand;"; >+ protected final String TEXT_354 = NL + "\t\t\tdomainModelAddCommand = "; >+ protected final String TEXT_355 = ".create(domainModelEditDomain, source.getElement(), " + NL + "\t\t\t\t"; >+ protected final String TEXT_356 = ".eINSTANCE.get"; >+ protected final String TEXT_357 = "(), target.getElement());"; >+ protected final String TEXT_358 = NL + "\t\t}" + NL; >+ protected final String TEXT_359 = NL + "\t\t/**" + NL + "\t\t * Finds container element for the new relationship of the specified type." + NL + "\t\t * Default implementation goes up by containment hierarchy starting from" + NL + "\t\t * the specified element and returns the first element that is instance of" + NL + "\t\t * the specified container class." + NL + "\t\t * " + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tprotected "; >+ protected final String TEXT_360 = " getRelationshipContainer("; >+ protected final String TEXT_361 = " element, "; >+ protected final String TEXT_362 = " containerClass) {" + NL + "\t\t\tfor (; element != null; element = element.eContainer()) {" + NL + "\t\t\t\tif (containerClass.isSuperTypeOf(element.eClass())) {" + NL + "\t\t\t\t\treturn element;" + NL + "\t\t\t\t}" + NL + "\t\t\t}" + NL + "\t\t\treturn null;" + NL + "\t\t}"; >+ protected final String TEXT_363 = NL + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic boolean canExecute() {" + NL + "\t\t\treturn source != null && target != null && createdEdge != null && domainModelAddCommand != null && domainModelAddCommand.canExecute();" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic boolean canUndo() {" + NL + "\t\t\treturn source != null && target != null && createdEdge != null && domainModelAddCommand != null && domainModelAddCommand.canUndo();" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void execute() {" + NL + "\t\t\tdomainModelAddCommand.execute();" + NL + "\t\t\tsource.getDiagram().insertEdge(createdEdge);" + NL + "\t\t\tcreatedEdge.setSource(source);" + NL + "\t\t\tcreatedEdge.setTarget(target);" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic void undo() {" + NL + "\t\t\tdomainModelAddCommand.undo();" + NL + "\t\t\tsource.getDiagram().removeEdge(createdEdge);" + NL + "\t\t\tcreatedEdge.setSource(null);" + NL + "\t\t\tcreatedEdge.setTarget(null);" + NL + "\t\t}" + NL + "\t}"; >+ protected final String TEXT_364 = NL; >+ protected final String TEXT_365 = NL; >+ protected final String TEXT_366 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static class MapModeWorkaround {" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic int DPtoLP(int dp) {" + NL + "\t\t\treturn dp;" + NL + "\t\t}" + NL + "\t\t/**" + NL + "\t\t * @generated" + NL + "\t\t */" + NL + "\t\tpublic static MapModeWorkaround INSTANCE = new MapModeWorkaround();" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate MapModeWorkaround getMapMode() {" + NL + "\t\treturn MapModeWorkaround.INSTANCE;" + NL + "\t}"; >+ protected final String TEXT_367 = NL + "}"; >+ >+ public String generate(Object argument) >+ { >+ final StringBuffer stringBuffer = new StringBuffer(); >+ >+GenNode genNode = (GenNode) ((Object[]) argument)[0]; >+GenDiagram genDiagram = genNode.getDiagram(); >+Palette palette = genDiagram.getPalette(); >+boolean useFlowLayout = !genNode.isListLayout(); >+final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >+ >+ stringBuffer.append(TEXT_1); >+ >+String copyrightText = genDiagram.getEditorGen().getCopyrightText(); >+if (copyrightText != null && copyrightText.trim().length() > 0) { >+ >+ stringBuffer.append(TEXT_2); >+ stringBuffer.append(copyrightText.replaceAll("\n", "\n * ")); >+ stringBuffer.append(TEXT_3); >+ } >+ stringBuffer.append(TEXT_4); >+ importManager.emitPackageStatement(stringBuffer); >+ >+/*XXX: temporary hack to generate compilable code in tests (where class NodeEditPart extends NodeEditPart is generated otherwise)*/ >+importManager.registerInnerClass(genNode.getEditPartClassName()); >+importManager.markImportLocation(stringBuffer); >+ >+ stringBuffer.append(TEXT_5); >+ stringBuffer.append(genNode.getEditPartClassName()); >+ stringBuffer.append(TEXT_6); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.AbstractGraphicalEditPart")); >+ stringBuffer.append(TEXT_7); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.NodeEditPart")); >+ stringBuffer.append(TEXT_8); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_9); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_10); >+ stringBuffer.append(genNode.getEditPartClassName()); >+ stringBuffer.append(TEXT_11); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_12); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_13); >+ stringBuffer.append(TEXT_14); >+ stringBuffer.append(TEXT_15); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_16); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ComponentEditPolicy")); >+ stringBuffer.append(TEXT_17); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_18); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.GroupRequest")); >+ stringBuffer.append(TEXT_19); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_20); >+ >+{ >+TypeModelFacet facet = genNode.getModelFacet(); >+GenFeature childFeature = facet.getChildMetaFeature(); >+GenFeature containmentFeature = facet.getContainmentMetaFeature(); >+if (childFeature != null && childFeature != containmentFeature && !childFeature.isDerived()) { >+ >+ stringBuffer.append(TEXT_21); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_22); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.command.CompoundCommand")); >+ stringBuffer.append(TEXT_23); >+ >+ if (containmentFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_24); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_25); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_26); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_27); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_28); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_29); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_30); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_31); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_32); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_33); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_34); >+ >+ } >+ >+ >+ if (childFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_35); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_36); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_37); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_38); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_39); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_40); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_41); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_42); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_43); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_44); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_45); >+ >+ } >+ >+ stringBuffer.append(TEXT_46); >+ >+} else { >+ if (containmentFeature.getEcoreFeature().isMany()) { >+ >+ stringBuffer.append(TEXT_47); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_48); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_49); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_50); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_51); >+ >+ } else { >+ >+ stringBuffer.append(TEXT_52); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_53); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_54); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_55); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_56); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_57); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_58); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.command.RemoveCommand")); >+ stringBuffer.append(TEXT_59); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_60); >+ >+} /*restrict local vars used in component edit policy*/ >+ >+ stringBuffer.append(TEXT_61); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_62); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy")); >+ stringBuffer.append(TEXT_63); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_64); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")); >+ stringBuffer.append(TEXT_65); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_66); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_67); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Point")); >+ stringBuffer.append(TEXT_68); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_69); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_70); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_71); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_72); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_73); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy")); >+ stringBuffer.append(TEXT_74); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_75); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_76); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_77); >+ stringBuffer.append(genNode.getEditPartClassName()); >+ stringBuffer.append(TEXT_78); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPolicy")); >+ stringBuffer.append(TEXT_79); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy")); >+ stringBuffer.append(TEXT_80); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_81); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.ReconnectRequest")); >+ stringBuffer.append(TEXT_82); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_83); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_84); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.ReconnectRequest")); >+ stringBuffer.append(TEXT_85); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_86); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_87); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateConnectionRequest")); >+ stringBuffer.append(TEXT_88); >+ if (palette != null) { >+ stringBuffer.append(TEXT_89); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_90); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_91); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_92); >+ >+for(Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink)it.next(); >+ if (!genLink.isViewDirectionAlignedWithModel() || genLink.getModelFacet() == null) { >+ continue; >+ } >+ GenClass outgoingClass; >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ outgoingClass = modelFacet.getSourceMetaFeature() == null >+ ? modelFacet.getContainmentMetaFeature().getGenClass() >+ : modelFacet.getSourceMetaFeature().getTypeGenClass(); >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ outgoingClass = metaFeature.getGenClass(); >+ } else { >+ continue; >+ } >+ if (!outgoingClass.getEcoreClass().isSuperTypeOf(genNode.getModelFacet().getMetaClass().getEcoreClass())) { >+ continue; >+ } >+ >+ stringBuffer.append(TEXT_93); >+ stringBuffer.append(genLink.getVisualID()); >+ stringBuffer.append(TEXT_94); >+ >+} >+ >+ stringBuffer.append(TEXT_95); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_96); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_97); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_98); >+ }/*when there's palette*/ >+ stringBuffer.append(TEXT_99); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_100); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_101); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateConnectionRequest")); >+ stringBuffer.append(TEXT_102); >+ if (palette != null) { >+ stringBuffer.append(TEXT_103); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_104); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_105); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_106); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_107); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.CompoundCommand")); >+ stringBuffer.append(TEXT_108); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.CompoundCommand")); >+ stringBuffer.append(TEXT_109); >+ >+for(Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink)it.next(); >+ if (!genLink.isViewDirectionAlignedWithModel() || genLink.getModelFacet() == null) { >+ continue; >+ } >+ GenClass incomingClass; >+ String createCommandNameInfix; >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ incomingClass = modelFacet.getTargetMetaFeature().getTypeGenClass(); >+ createCommandNameInfix = modelFacet.getMetaClass().getName(); >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ incomingClass = metaFeature.getTypeGenClass(); >+ createCommandNameInfix = metaFeature.getFeatureAccessorName(); >+ } else { >+ continue; >+ } >+ if (!incomingClass.getEcoreClass().isSuperTypeOf(genNode.getModelFacet().getMetaClass().getEcoreClass())) { >+ continue; >+ } >+ >+ stringBuffer.append(TEXT_110); >+ stringBuffer.append(genLink.getVisualID()); >+ stringBuffer.append(TEXT_111); >+ stringBuffer.append(createCommandNameInfix); >+ stringBuffer.append(genLink.getVisualID()); >+ stringBuffer.append(TEXT_112); >+ >+} >+ >+ stringBuffer.append(TEXT_113); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_114); >+ }/*when there's palette*/ >+ stringBuffer.append(TEXT_115); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.UnexecutableCommand")); >+ stringBuffer.append(TEXT_116); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_117); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_118); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Figure")); >+ stringBuffer.append(TEXT_119); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.StackLayout")); >+ stringBuffer.append(TEXT_120); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_121); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_122); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_123); >+ >+String figureQualifiedClassName = null; >+Viewmap viewmap = genNode.getViewmap(); >+if (viewmap instanceof FigureViewmap) { >+ figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >+ if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >+ figureQualifiedClassName = "org.eclipse.draw2d.RectangleFigure"; >+ } >+ >+ stringBuffer.append(TEXT_124); >+ stringBuffer.append(importManager.getImportedName(figureQualifiedClassName)); >+ stringBuffer.append(TEXT_125); >+ if (useFlowLayout) { >+ stringBuffer.append(TEXT_126); >+ } /* use flow layout*/ >+ stringBuffer.append(TEXT_127); >+ } else if (viewmap instanceof SnippetViewmap) { >+ stringBuffer.append(TEXT_128); >+ stringBuffer.append(((SnippetViewmap) viewmap).getBody()); >+ stringBuffer.append(TEXT_129); >+ } else if (viewmap instanceof InnerClassViewmap) { >+ figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >+ >+ stringBuffer.append(TEXT_130); >+ stringBuffer.append(figureQualifiedClassName); >+ stringBuffer.append(TEXT_131); >+ stringBuffer.append(figureQualifiedClassName); >+ stringBuffer.append(TEXT_132); >+ stringBuffer.append(useFlowLayout ? "true" : "false"); >+ stringBuffer.append(TEXT_133); >+ } >+ stringBuffer.append(TEXT_134); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_135); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_136); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_137); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_138); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Figure")); >+ stringBuffer.append(TEXT_139); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.Figure")); >+ stringBuffer.append(TEXT_140); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.BorderLayout")); >+ stringBuffer.append(TEXT_141); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ImageFigure")); >+ stringBuffer.append(TEXT_142); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ImageFigure")); >+ stringBuffer.append(TEXT_143); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_144); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.PositionConstants")); >+ stringBuffer.append(TEXT_145); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.BorderLayout")); >+ stringBuffer.append(TEXT_146); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_147); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_148); >+ >+if (!useFlowLayout) { >+ String layoutClassName = importManager.getImportedName("org.eclipse.draw2d.ToolbarLayout"); >+ >+ stringBuffer.append(TEXT_149); >+ stringBuffer.append(layoutClassName); >+ stringBuffer.append(TEXT_150); >+ stringBuffer.append(layoutClassName); >+ stringBuffer.append(TEXT_151); >+ } else { >+ stringBuffer.append(TEXT_152); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayout")); >+ stringBuffer.append(TEXT_153); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_154); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_155); >+ } >+ stringBuffer.append(TEXT_156); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_157); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_158); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_159); >+ >+ boolean hasFixedChildren = false; >+ List innerLabels = new ArrayList(genNode.getLabels().size()); >+ for (Iterator it = genNode.getLabels().iterator(); it.hasNext(); ) { >+ GenNodeLabel genLabel = (GenNodeLabel) it.next(); >+ if (!(genLabel instanceof GenExternalNodeLabel)) { >+ innerLabels.add(genLabel); >+ } >+ } >+ if (!innerLabels.isEmpty()) { >+ hasFixedChildren = true; >+ >+ stringBuffer.append(TEXT_160); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_161); >+ >+ for (Iterator it = innerLabels.iterator(); it.hasNext(); ) { >+ GenNodeLabel genLabel = (GenNodeLabel) it.next(); >+ String labelEditPart = importManager.getImportedName(genLabel.getEditPartQualifiedClassName()); >+ String labelFigureClassName = null; >+ boolean isAccessor; >+ if (genLabel.getViewmap() instanceof InnerClassViewmap) { >+ labelFigureClassName = ((InnerClassViewmap) genLabel.getViewmap()).getClassName(); >+ isAccessor = true; >+ } else if (genLabel.getViewmap() instanceof FigureViewmap) { >+ labelFigureClassName = ((FigureViewmap) genLabel.getViewmap()).getFigureQualifiedClassName(); >+ isAccessor = false; >+ } else { >+ // temp hack to make tests pass >+ labelFigureClassName = "org.eclipse.draw2d.Label"; >+ isAccessor = false; >+ } >+ >+ stringBuffer.append(TEXT_162); >+ stringBuffer.append(labelEditPart); >+ stringBuffer.append(TEXT_163); >+ if (isAccessor) { >+ stringBuffer.append(TEXT_164); >+ stringBuffer.append(labelEditPart); >+ stringBuffer.append(TEXT_165); >+ stringBuffer.append(figureQualifiedClassName); >+ stringBuffer.append(TEXT_166); >+ stringBuffer.append(labelFigureClassName); >+ stringBuffer.append(TEXT_167); >+ } else { >+ stringBuffer.append(TEXT_168); >+ stringBuffer.append(labelEditPart); >+ stringBuffer.append(TEXT_169); >+ stringBuffer.append(labelFigureClassName); >+ stringBuffer.append(TEXT_170); >+ } >+ stringBuffer.append(TEXT_171); >+ } >+ stringBuffer.append(TEXT_172); >+ stringBuffer.append(TEXT_173); >+ stringBuffer.append(TEXT_174); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_175); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EAnnotation")); >+ stringBuffer.append(TEXT_176); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())); >+ stringBuffer.append(TEXT_177); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_178); >+ stringBuffer.append(importManager.getImportedName("java.util.Iterator")); >+ stringBuffer.append(TEXT_179); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_180); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_181); >+ stringBuffer.append(((GenNodeLabel)innerLabels.get(0)).getVisualID()); >+ stringBuffer.append(TEXT_182); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_183); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_184); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.RequestConstants")); >+ stringBuffer.append(TEXT_185); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_186); >+ >+ } >+ >+ >+boolean hasExternalLabels = false; >+for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) { >+ GenNodeLabel label = (GenNodeLabel) labels.next(); >+ if (label instanceof GenExternalNodeLabel) { >+ hasExternalLabels = true; >+ break; >+ } >+} >+if (hasExternalLabels) { >+ >+ stringBuffer.append(TEXT_187); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_188); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_189); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); >+ stringBuffer.append(TEXT_190); >+ if (hasFixedChildren) { >+ stringBuffer.append(TEXT_191); >+ } else { >+ stringBuffer.append(TEXT_192); >+ } >+ stringBuffer.append(TEXT_193); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_194); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_195); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); >+ stringBuffer.append(TEXT_196); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_197); >+ >+ for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) { >+ GenNodeLabel label = (GenNodeLabel) labels.next(); >+ if (label instanceof GenExternalNodeLabel) { >+ >+ stringBuffer.append(TEXT_198); >+ stringBuffer.append(importManager.getImportedName(label.getEditPartQualifiedClassName())); >+ stringBuffer.append(TEXT_199); >+ >+ } >+ } >+ >+ stringBuffer.append(TEXT_200); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); >+ stringBuffer.append(TEXT_201); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.ScalableFreeformRootEditPart")); >+ stringBuffer.append(TEXT_202); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.ScalableFreeformRootEditPart")); >+ stringBuffer.append(TEXT_203); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_204); >+ >+} else { >+ if (hasFixedChildren) { >+ stringBuffer.append(TEXT_205); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); >+ stringBuffer.append(TEXT_206); >+ >+ } >+} >+ >+ stringBuffer.append(TEXT_207); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")); >+ stringBuffer.append(TEXT_208); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")); >+ stringBuffer.append(TEXT_209); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")); >+ stringBuffer.append(TEXT_210); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")); >+ stringBuffer.append(TEXT_211); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); >+ stringBuffer.append(TEXT_212); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); >+ stringBuffer.append(TEXT_213); >+ stringBuffer.append(importManager.getImportedName("java.util.List")); >+ stringBuffer.append(TEXT_214); >+ stringBuffer.append(importManager.getImportedName("java.util.List")); >+ stringBuffer.append(TEXT_215); >+ stringBuffer.append(importManager.getImportedName("java.util.List")); >+ stringBuffer.append(TEXT_216); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")); >+ stringBuffer.append(TEXT_217); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.ConnectionEditPart")); >+ stringBuffer.append(TEXT_218); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")); >+ stringBuffer.append(TEXT_219); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")); >+ stringBuffer.append(TEXT_220); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_221); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")); >+ stringBuffer.append(TEXT_222); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")); >+ stringBuffer.append(TEXT_223); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.ConnectionEditPart")); >+ stringBuffer.append(TEXT_224); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")); >+ stringBuffer.append(TEXT_225); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ConnectionAnchor")); >+ stringBuffer.append(TEXT_226); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); >+ stringBuffer.append(TEXT_227); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.ChopboxAnchor")); >+ stringBuffer.append(TEXT_228); >+ /*@ include file="adapters/propertySource.javajetinc"*/ >+ stringBuffer.append(TEXT_229); >+ stringBuffer.append(TEXT_230); >+ stringBuffer.append(TEXT_231); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.impl.AdapterImpl")); >+ stringBuffer.append(TEXT_232); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_233); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_234); >+ stringBuffer.append(TEXT_235); >+ stringBuffer.append(TEXT_236); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_237); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_238); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_239); >+ >+ final String primaryView = "getDiagramNode()"; >+ >+ stringBuffer.append(TEXT_240); >+ stringBuffer.append(TEXT_241); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_242); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FontStyle")); >+ stringBuffer.append(TEXT_243); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_244); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_245); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_246); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_247); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_248); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.SWT")); >+ stringBuffer.append(TEXT_249); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_250); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.FontData")); >+ stringBuffer.append(TEXT_251); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_252); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Font")); >+ stringBuffer.append(TEXT_253); >+ stringBuffer.append(TEXT_254); >+ stringBuffer.append(TEXT_255); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.LineStyle")); >+ stringBuffer.append(TEXT_256); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.LineStyle")); >+ stringBuffer.append(TEXT_257); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_258); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_259); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_260); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_261); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_262); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_263); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FillStyle")); >+ stringBuffer.append(TEXT_264); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.FillStyle")); >+ stringBuffer.append(TEXT_265); >+ stringBuffer.append(primaryView); >+ stringBuffer.append(TEXT_266); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_267); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_268); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_269); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_270); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.swt.graphics.Color")); >+ stringBuffer.append(TEXT_271); >+ stringBuffer.append(TEXT_272); >+ stringBuffer.append(TEXT_273); >+ stringBuffer.append(importManager.getImportedName("java.util.HashMap")); >+ stringBuffer.append(TEXT_274); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")); >+ stringBuffer.append(TEXT_275); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.common.notify.Notification")); >+ stringBuffer.append(TEXT_276); >+ stringBuffer.append(importManager.getImportedName("java.util.HashMap")); >+ stringBuffer.append(TEXT_277); >+ stringBuffer.append(TEXT_278); >+ stringBuffer.append(TEXT_279); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_280); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_281); >+ stringBuffer.append(TEXT_282); >+ stringBuffer.append(TEXT_283); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_284); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_285); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_286); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_287); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_288); >+ stringBuffer.append(TEXT_289); >+ stringBuffer.append(TEXT_290); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_291); >+ stringBuffer.append(TEXT_292); >+ stringBuffer.append(TEXT_293); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_294); >+ stringBuffer.append(TEXT_295); >+ stringBuffer.append(TEXT_296); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_297); >+ stringBuffer.append(TEXT_298); >+ stringBuffer.append(TEXT_299); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_300); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_301); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_302); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_303); >+ stringBuffer.append(TEXT_304); >+ stringBuffer.append(TEXT_305); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_306); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")); >+ stringBuffer.append(TEXT_307); >+ /*XXX: probably, this should go to a separate jet-template along with GraphicalNodeEditPolicy*/ >+ >+for(Iterator it = genDiagram.getLinks().iterator(); it.hasNext(); ) { >+ GenLink genLink = (GenLink)it.next(); >+ if (!genLink.isViewDirectionAlignedWithModel() || genLink.getModelFacet() == null) { >+ continue; >+ } >+ GenClass incomingClass; >+ String createCommandNameInfix; >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ incomingClass = modelFacet.getTargetMetaFeature().getTypeGenClass(); >+ createCommandNameInfix = modelFacet.getMetaClass().getName(); >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ incomingClass = metaFeature.getTypeGenClass(); >+ createCommandNameInfix = metaFeature.getFeatureAccessorName(); >+ } else { >+ continue; >+ } >+ if (!incomingClass.getEcoreClass().isSuperTypeOf(genNode.getModelFacet().getMetaClass().getEcoreClass())) { >+ continue; >+ } >+ >+ if (palette != null) { >+ stringBuffer.append(TEXT_308); >+ stringBuffer.append(createCommandNameInfix); >+ stringBuffer.append(genLink.getVisualID()); >+ stringBuffer.append(TEXT_309); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); >+ stringBuffer.append(TEXT_310); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_311); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_312); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.Edge")); >+ stringBuffer.append(TEXT_313); >+ stringBuffer.append(createCommandNameInfix); >+ stringBuffer.append(genLink.getVisualID()); >+ stringBuffer.append(TEXT_314); >+ stringBuffer.append(importManager.getImportedName(palette.getFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_315); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_316); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_317); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_318); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")); >+ stringBuffer.append(TEXT_319); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationFactory")); >+ stringBuffer.append(TEXT_320); >+ >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ GenClass linkClass = modelFacet.getMetaClass(); >+ >+ stringBuffer.append(TEXT_321); >+ stringBuffer.append(importManager.getImportedName(importManager.getImportedName(linkClass.getQualifiedInterfaceName()))); >+ stringBuffer.append(TEXT_322); >+ stringBuffer.append(importManager.getImportedName(linkClass.getGenPackage().getQualifiedFactoryInterfaceName())); >+ stringBuffer.append(TEXT_323); >+ stringBuffer.append(linkClass.getClassifierAccessorName()); >+ stringBuffer.append(TEXT_324); >+ /*XXX: Class name DomainElementInitializer should be user-customizable*/ >+ stringBuffer.append(TEXT_325); >+ stringBuffer.append(importManager.getImportedName(genDiagram.getNotationViewFactoriesPackageName() + ".DomainElementInitializer")); >+ stringBuffer.append(TEXT_326); >+ stringBuffer.append(genLink.getUniqueIdentifier()); >+ stringBuffer.append(TEXT_327); >+ >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ >+ stringBuffer.append(TEXT_328); >+ >+ } >+ >+ stringBuffer.append(TEXT_329); >+ stringBuffer.append(importManager.getImportedName(genLink.getNotationViewFactoryQualifiedClassName())); >+ stringBuffer.append(TEXT_330); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")); >+ stringBuffer.append(TEXT_331); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain")); >+ stringBuffer.append(TEXT_332); >+ >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ >+ stringBuffer.append(TEXT_333); >+ >+ TypeLinkModelFacet modelFacet = (TypeLinkModelFacet) genLink.getModelFacet(); >+ GenFeature sourceFeature = modelFacet.getSourceMetaFeature(); >+ GenFeature containmentFeature = modelFacet.getContainmentMetaFeature(); >+ GenFeature childFeature = modelFacet.getChildMetaFeature(); >+ GenFeature targetFeature = modelFacet.getTargetMetaFeature(); >+ //source/link features seem to be pointing from link to its ends, not vice versa. >+ //Anyway, if there is containment feature and it is not opposite to either the source/target, we should add containment, >+ //otherwise we will have problems with saving uncontained EObjects. >+ boolean addSource = sourceFeature != null; >+ boolean addTarget = targetFeature != null; >+ boolean addChild = childFeature != null && childFeature != containmentFeature && !childFeature.isDerived(); >+ if (containmentFeature != null) { >+ if (sourceFeature != null && sourceFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference sourceEcoreFeature = (EReference)sourceFeature.getEcoreFeature(); >+ if (sourceEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ addSource = false; >+ } >+ } >+ if (targetFeature != null && targetFeature.getEcoreFeature() instanceof EReference == true) { >+ EReference targetEcoreFeature = (EReference)targetFeature.getEcoreFeature(); >+ if (targetEcoreFeature.getEOpposite() == containmentFeature.getEcoreFeature()) { >+ addTarget = false; >+ } >+ } >+ >+ stringBuffer.append(TEXT_334); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_335); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenClass().getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_336); >+ stringBuffer.append(containmentFeature.getGenClass().getClassifierAccessorName()); >+ stringBuffer.append(TEXT_337); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_338); >+ stringBuffer.append(importManager.getImportedName(containmentFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_339); >+ stringBuffer.append(containmentFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_340); >+ >+ } >+ if (addChild) { >+ >+ stringBuffer.append(TEXT_341); >+ stringBuffer.append(importManager.getImportedName(childFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_342); >+ stringBuffer.append(importManager.getImportedName(childFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_343); >+ stringBuffer.append(childFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_344); >+ >+ } >+ if (addSource) { >+ >+ stringBuffer.append(TEXT_345); >+ stringBuffer.append(importManager.getImportedName(sourceFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_346); >+ stringBuffer.append(importManager.getImportedName(sourceFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_347); >+ stringBuffer.append(sourceFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_348); >+ >+ } >+ if (addTarget) { >+ >+ stringBuffer.append(TEXT_349); >+ stringBuffer.append(importManager.getImportedName(targetFeature.getEcoreFeature().isMany() ? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_350); >+ stringBuffer.append(importManager.getImportedName(targetFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_351); >+ stringBuffer.append(targetFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_352); >+ >+ } >+ >+ stringBuffer.append(TEXT_353); >+ >+ } else if (genLink.getModelFacet() instanceof FeatureModelFacet) { >+ GenFeature metaFeature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature(); >+ >+ stringBuffer.append(TEXT_354); >+ stringBuffer.append(importManager.getImportedName(metaFeature.getEcoreFeature().isMany()? "org.eclipse.emf.edit.command.AddCommand" : "org.eclipse.emf.edit.command.SetCommand")); >+ stringBuffer.append(TEXT_355); >+ stringBuffer.append(importManager.getImportedName(metaFeature.getGenPackage().getQualifiedPackageInterfaceName())); >+ stringBuffer.append(TEXT_356); >+ stringBuffer.append(metaFeature.getFeatureAccessorName()); >+ stringBuffer.append(TEXT_357); >+ >+ } >+ >+ stringBuffer.append(TEXT_358); >+ >+ if (genLink.getModelFacet() instanceof TypeLinkModelFacet) { >+ >+ stringBuffer.append(TEXT_359); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_360); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >+ stringBuffer.append(TEXT_361); >+ stringBuffer.append(importManager.getImportedName("org.eclipse.emf.ecore.EClass")); >+ stringBuffer.append(TEXT_362); >+ >+ } >+ >+ stringBuffer.append(TEXT_363); >+ >+} >+ >+ }/*when there's palette*/ >+ >+if (genNode.getViewmap() instanceof InnerClassViewmap) { >+ String classBody = ((InnerClassViewmap) genNode.getViewmap()).getClassBody(); >+ >+ stringBuffer.append(TEXT_364); >+ stringBuffer.append(classBody); >+ stringBuffer.append(TEXT_365); >+ >+if (classBody.indexOf("DPtoLP") != -1) { >+ >+ stringBuffer.append(TEXT_366); >+ >+} >+ >+ >+} >+ >+ stringBuffer.append(TEXT_367); >+ importManager.emitSortedImports(); >+ return stringBuffer.toString(); >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 136702
: 38538 |
38545