diff options
author | Florian Noyrit | 2014-03-03 18:35:01 +0000 |
---|---|---|
committer | Florian Noyrit | 2014-03-03 18:35:01 +0000 |
commit | 3724d11f5e8c95b39c35a1895ca977515d2fe392 (patch) | |
tree | 6df809ceee75ad07c1ff5e87fea7c2f0a6ebe3aa /plugins/developer | |
parent | e6640915c57d431d04bd85d42bf6da5fa4434dda (diff) | |
download | org.eclipse.papyrus-3724d11f5e8c95b39c35a1895ca977515d2fe392.tar.gz org.eclipse.papyrus-3724d11f5e8c95b39c35a1895ca977515d2fe392.tar.xz org.eclipse.papyrus-3724d11f5e8c95b39c35a1895ca977515d2fe392.zip |
Updated generation templates
Regenerated class diagram with many refactorings
Diffstat (limited to 'plugins/developer')
37 files changed, 2762 insertions, 200 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/utils/PapyrusGenConstants.java b/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/utils/PapyrusGenConstants.java deleted file mode 100644 index 173437c3f87..00000000000 --- a/plugins/developer/org.eclipse.papyrus.codegen/src/org/eclipse/papyrus/codegen/utils/PapyrusGenConstants.java +++ /dev/null @@ -1,62 +0,0 @@ -/****************************************************************************
- * Copyright (c) 2008 Atos Origin.
- *
- * 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:
- * Thibault Landre (Atos Origin) - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.codegen.utils;
-
-
-/**
- * Defined constants are used in the dynamic-template and in the java code.
- *
- * @author tlandre
- */
-public class PapyrusGenConstants {
-
- public final static String IDiagramPreferenceConstantJavaClassName = "IPapyrusPreferencesConstant";
-
- public final static String DiagramPreferencePageJavaClassName = "DiagramPreferencePage";
-
- public final static String DiagramPreferencePageCategory = "org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams";
-
- /**
- * Get the name of the papyrus preference constant class used to defined the preference
- * constants of a diagram
- *
- * @return the name of the class
- */
-
- public static final String getIDiagramPreferenceConstantJavaClassName() {
- return IDiagramPreferenceConstantJavaClassName;
- }
-
- /**
- * Get the name of the diagram preference page class.
- * <p>
- * the name is composed of the name of the diagram + "DiagramPreferencePage"
- * </p>
- *
- * @param diagramName
- * the name of the Diagram
- * @return the name of the java class used for the diagram preference page
- */
-
- public static final String getDiagramPreferencePageJavaClassName(String diagramName) {
- return diagramName + DiagramPreferencePageJavaClassName;
- }
-
- /**
- * @return the Papyrus diagram category on which preference pages will appear
- */
-
- public static final String getDiagramPreferencePageCategory() {
- return DiagramPreferencePageCategory;
- }
-}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java new file mode 100644 index 00000000000..06c7f0f99b0 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java @@ -0,0 +1,413 @@ +/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Artem Tikhomirov - refactoring of containerBaseCanonicalMethods.xpt; extraction of API/non-API of CEP templates
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.update;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Set;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenContainerBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import xpt.Common;
+import xpt.diagram.updater.DiagramUpdater;
+import xpt.diagram.updater.LinkDescriptor;
+import xpt.diagram.updater.NodeDescriptor;
+import xpt.diagram.updater.Utils_qvto;
+import xpt.editor.VisualIDRegistry;
+
+@Singleton
+@SuppressWarnings("all")
+public class CanonicalUpdate extends impl.diagram.update.CanonicalUpdate {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private NodeDescriptor nodeDescriptor;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ @Inject
+ private DiagramUpdater xptDiagramUpdater;
+
+ @Inject
+ private LinkDescriptor linkDescriptor;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ public CharSequence getFeaturesToSynchronizeMethod(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Set<GenFeature> _semanticChildrenChildFeatures = this._utils_qvto.getSemanticChildrenChildFeatures(it);
+ int _size = _semanticChildrenChildFeatures.size();
+ boolean _equals = (_size == 1);
+ if (_equals) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.emf.ecore.EStructuralFeature getFeatureToSynchronize() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ Set<GenFeature> _semanticChildrenContainmentFeatures = this._utils_qvto.getSemanticChildrenContainmentFeatures(it);
+ GenFeature _head = IterableExtensions.<GenFeature>head(_semanticChildrenContainmentFeatures);
+ CharSequence _MetaFeature = this.xptMetaModel.MetaFeature(_head);
+ _builder.append(_MetaFeature, "\t\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ Set<GenFeature> _semanticChildrenChildFeatures_1 = this._utils_qvto.getSemanticChildrenChildFeatures(it);
+ int _size_1 = _semanticChildrenChildFeatures_1.size();
+ boolean _greaterThan = (_size_1 > 1);
+ if (_greaterThan) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected java.util.Set<org.eclipse.emf.ecore.EStructuralFeature> getFeaturesToSynchronize() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (myFeaturesToSynchronize == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("myFeaturesToSynchronize = new java.util.HashSet<org.eclipse.emf.ecore.EStructuralFeature>();");
+ _builder.newLine();
+ {
+ Set<GenFeature> _semanticChildrenContainmentFeatures_1 = this._utils_qvto.getSemanticChildrenContainmentFeatures(it);
+ for(final GenFeature f : _semanticChildrenContainmentFeatures_1) {
+ _builder.append("\t\t\t");
+ CharSequence _addContainmentFeature = this.addContainmentFeature(f);
+ _builder.append(_addContainmentFeature, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return myFeaturesToSynchronize;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence getSemanticChildrenListMethod(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected java.util.List<org.eclipse.emf.ecore.EObject> getSemanticChildrenList() {");
+ _builder.newLine();
+ {
+ boolean _hasSemanticChildren = this._utils_qvto.hasSemanticChildren(it);
+ if (_hasSemanticChildren) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View viewObject = (org.eclipse.gmf.runtime.notation.View) getHost().getModel();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.LinkedList<org.eclipse.emf.ecore.EObject> result = new java.util.LinkedList<org.eclipse.emf.ecore.EObject>();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<");
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen.getDiagramUpdater();
+ CharSequence _qualifiedClassName = this.nodeDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> childDescriptors = ");
+ CharSequence _semanticChildrenMethodCall = this.xptDiagramUpdater.getSemanticChildrenMethodCall(it);
+ _builder.append(_semanticChildrenMethodCall, "\t");
+ _builder.append("(viewObject);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("for (");
+ GenDiagram _diagram_1 = it.getDiagram();
+ GenEditorGenerator _editorGen_1 = _diagram_1.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_1 = _editorGen_1.getDiagramUpdater();
+ CharSequence _qualifiedClassName_1 = this.nodeDescriptor.qualifiedClassName(_diagramUpdater_1);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(" d : childDescriptors) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("result.add(d.getModelElement());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return java.util.Collections.EMPTY_LIST;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshConnectionsBody(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _Domain2Notation = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation, "");
+ _builder.append(" domain2NotationMap = new ");
+ CharSequence _Domain2Notation_1 = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation_1, "");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("java.util.Collection<");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen.getDiagramUpdater();
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.notation.View> edges = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.View>();");
+ _builder.newLine();
+ _builder.append("for (Object edge : getDiagram().getEdges())");
+ _builder.newLine();
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (edge instanceof org.eclipse.gmf.runtime.notation.View)");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("edges.add((org.eclipse.gmf.runtime.notation.View) edge);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("java.util.Collection<org.eclipse.gmf.runtime.notation.View> existingLinks = new java.util.LinkedList<org.eclipse.gmf.runtime.notation.View>(edges);");
+ _builder.newLine();
+ _builder.append("for (java.util.Iterator<org.eclipse.gmf.runtime.notation.View> linksIterator = existingLinks.iterator(); linksIterator.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge nextDiagramLink = (org.eclipse.gmf.runtime.notation.Edge) linksIterator.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("int diagramLinkVisualID = ");
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(nextDiagramLink);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (diagramLinkVisualID == -1");
+ {
+ EList<GenLink> _links = it.getLinks();
+ final Function1<GenLink,Boolean> _function = new Function1<GenLink,Boolean>() {
+ public Boolean apply(final GenLink gl) {
+ LinkModelFacet _modelFacet = gl.getModelFacet();
+ return Boolean.valueOf(Objects.equal(_modelFacet, null));
+ }
+ };
+ Iterable<GenLink> _filter = IterableExtensions.<GenLink>filter(_links, _function);
+ for(final GenLink link : _filter) {
+ CharSequence _compareLinkVisualID = this.compareLinkVisualID(link);
+ _builder.append(_compareLinkVisualID, "\t");
+ }
+ }
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("linksIterator.remove();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("continue;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramLinkObject = nextDiagramLink.getElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramLinkSrc = nextDiagramLink.getSource().getElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramLinkDst = nextDiagramLink.getTarget().getElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_1 = _editorGen_1.getDiagramUpdater();
+ String _linkDescriptorQualifiedClassName = _diagramUpdater_1.getLinkDescriptorQualifiedClassName();
+ _builder.append(_linkDescriptorQualifiedClassName, "\t");
+ _builder.append("> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_2 = _editorGen_2.getDiagramUpdater();
+ CharSequence _qualifiedClassName_1 = this.linkDescriptor.qualifiedClassName(_diagramUpdater_2);
+ _builder.append(_qualifiedClassName_1, "\t\t");
+ _builder.append(" nextLinkDescriptor = linkDescriptorsIterator.next();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (diagramLinkObject == nextLinkDescriptor.getModelElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination() && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("linksIterator.remove();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("linkDescriptorsIterator.remove();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("deleteViews(existingLinks.iterator());");
+ _builder.newLine();
+ _builder.append("return createConnections(linkDescriptors, domain2NotationMap);");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence collectAllLinksMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection<");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen.getDiagramUpdater();
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("> collectAllLinks(org.eclipse.gmf.runtime.notation.View view, ");
+ CharSequence _Domain2Notation = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation, "");
+ _builder.append(" domain2NotationMap) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (!");
+ CharSequence _modelID = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID, "\t");
+ _builder.append(".equals(");
+ CharSequence _modelIDMethodCall = this.xptVisualIDRegistry.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall, "\t");
+ _builder.append("(view))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return java.util.Collections.emptyList();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.LinkedList<");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_1 = _editorGen_1.getDiagramUpdater();
+ CharSequence _qualifiedClassName_1 = this.linkDescriptor.qualifiedClassName(_diagramUpdater_1);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append("> result = new java.util.LinkedList<");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_2 = _editorGen_2.getDiagramUpdater();
+ CharSequence _qualifiedClassName_2 = this.linkDescriptor.qualifiedClassName(_diagramUpdater_2);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(">();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("switch (");
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(view)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Iterable<GenCommonBase> _allSemanticElements = this._utils_qvto.getAllSemanticElements(it);
+ for(final GenCommonBase se : _allSemanticElements) {
+ _builder.append("\t\t");
+ CharSequence _caseSemanticElement = this.caseSemanticElement(se);
+ _builder.append(_caseSemanticElement, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> children = view.getChildren().iterator(); children.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(collectAllLinks((org.eclipse.gmf.runtime.notation.View) children.next(), domain2NotationMap));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> edges = view.getSourceEdges().iterator(); edges.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(collectAllLinks((org.eclipse.gmf.runtime.notation.View) edges.next(), domain2NotationMap));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java new file mode 100644 index 00000000000..db10e268b1b --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java @@ -0,0 +1,154 @@ +/**
+ * Copyright (c) 2007-2013 Borland Software Corporation and others
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - [235113] alternative parser access
+ * [244419] custom parsers
+ * [138179] expression-backed labels
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.parsers;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import impl.parsers.expression_qvto;
+import metamodel.MetaModel;
+import org.eclipse.gmf.codegen.gmfgen.GenParsers;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import parsers.ExpressionLabelParser;
+import parsers.PredefinedParser;
+import plugin.Activator;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.editor.VisualIDRegistry;
+import xpt.expressions.OclTracker_qvto;
+import xpt.expressions.getExpression;
+import xpt.providers.ElementTypes;
+import xpt.providers.ParserUtils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class ParserProvider extends impl.parsers.ParserProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private OclTracker_qvto _oclTracker_qvto;
+
+ @Inject
+ @Extension
+ private ParserUtils_qvto _parserUtils_qvto;
+
+ @Inject
+ @Extension
+ private expression_qvto _expression_qvto;
+
+ @Inject
+ @Extension
+ private ExpressionLabelParser _expressionLabelParser;
+
+ @Inject
+ @Extension
+ private PredefinedParser _predefinedParser;
+
+ @Inject
+ private getExpression xptGetExpression;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ @Inject
+ private ElementTypes xptElementTypes;
+
+ @Inject
+ private parsers.ParserProvider xptParsers;
+
+ @Inject
+ private Activator xptActivator;
+
+ public CharSequence HintAdapterClass(final GenParsers it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private static class HintAdapter extends org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("private final org.eclipse.gmf.runtime.emf.type.core.IElementType elementType;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public HintAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType type,");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject object, String parserHint) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("super(object, parserHint);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence __assert = this._common._assert("type != null");
+ _builder.append(__assert, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("elementType = type;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(@SuppressWarnings(\"rawtypes\") Class adapter) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (org.eclipse.gmf.runtime.emf.type.core.IElementType.class.equals(adapter)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return elementType;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return super.getAdapter(adapter);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java new file mode 100644 index 00000000000..e742137b9bc --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java @@ -0,0 +1,46 @@ +package aspects.xpt.diagram.editpolicies;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+/**
+ * FIXME: [MG] - reverse the calls? call common code from here and TextelectionEP and not vice versa
+ */
+@Singleton
+@SuppressWarnings("all")
+public class TextNonResizableEditPolicy extends xpt.diagram.editpolicies.TextNonResizableEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence TextNonResizableEditPolicy_createSelectionHandles(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected java.util.List<?> createSelectionHandles() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gef.handles.MoveHandle moveHandle =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("new org.eclipse.gef.handles.MoveHandle((org.eclipse.gef.GraphicalEditPart) getHost());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("moveHandle.setBorder(null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("moveHandle.setDragTracker(new org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx(getHost()));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return java.util.Collections.singletonList(moveHandle);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java new file mode 100644 index 00000000000..91b44e77ab8 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java @@ -0,0 +1,44 @@ +/**
+ * Copyright (c) 2007-2013 Borland Software Corporation && others
+ *
+ * All rights reserved. This program && the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, && is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Shatalin (Borland) - initial API && implementation
+ * Michael Golubev (Borland) - [243151] explicit source/target for links
+ * - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd;
+
+@Singleton
+@SuppressWarnings("all")
+public class Utils_qvto extends xpt.diagram.editpolicies.Utils_qvto {
+ public Boolean containsCreateStartLinkCommand(final GenLinkEnd it) {
+ Iterable<GenLink> _allPotentialLinks = this.getAllPotentialLinks(it);
+ for (final GenLink l : _allPotentialLinks) {
+ boolean _createStartLinkCommand = this.createStartLinkCommand(l, it);
+ if (_createStartLinkCommand) {
+ return Boolean.valueOf(true);
+ }
+ }
+ return Boolean.valueOf(false);
+ }
+
+ public Boolean containsCreateCompleteLinkCommand(final GenLinkEnd it) {
+ Iterable<GenLink> _allPotentialLinks = this.getAllPotentialLinks(it);
+ for (final GenLink l : _allPotentialLinks) {
+ boolean _createCompleteLinkCommand = this.createCompleteLinkCommand(l, it);
+ if (_createCompleteLinkCommand) {
+ return Boolean.valueOf(true);
+ }
+ }
+ return Boolean.valueOf(false);
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/UpdateCommand.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/UpdateCommand.java new file mode 100644 index 00000000000..a72c0854979 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/UpdateCommand.java @@ -0,0 +1,90 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.updater;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class UpdateCommand extends xpt.diagram.updater.UpdateCommand {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence execute(final GenDiagramUpdater it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public Object execute(org.eclipse.core.commands.ExecutionEvent event) throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.jface.viewers.ISelection selection = org.eclipse.ui.PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.jface.viewers.IStructuredSelection structuredSelection = (org.eclipse.jface.viewers.IStructuredSelection) selection;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (structuredSelection.size() != 1) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (structuredSelection.getFirstElement() instanceof org.eclipse.gef.EditPart && ((org.eclipse.gef.EditPart) structuredSelection.getFirstElement()).getModel() instanceof org.eclipse.gmf.runtime.notation.View) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject modelElement = ((org.eclipse.gmf.runtime.notation.View) ((org.eclipse.gef.EditPart) structuredSelection.getFirstElement()).getModel()).getElement();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("java.util.List<?> editPolicies = org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy.getRegisteredEditPolicies(modelElement);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("for (java.util.Iterator<?> it = editPolicies.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy nextEditPolicy = (org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("nextEditPolicy.refresh();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java new file mode 100644 index 00000000000..67ac810011e --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java @@ -0,0 +1,108 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import aspects.xpt.editor.Editor;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class ActionBarContributor extends xpt.editor.ActionBarContributor {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Editor xptEditor;
+
+ public CharSequence ActionBarContributor(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" ");
+ CharSequence _extendsList = this.extendsList(it);
+ _builder.append(_extendsList, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected Class<");
+ CharSequence _qualifiedClassName = this.xptEditor.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> getEditorClass() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _qualifiedClassName_1 = this.xptEditor.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t");
+ _builder.append(".class;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected String getEditorId() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _qualifiedClassName_2 = this.xptEditor.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t");
+ _builder.append(".ID;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _initMethod = this.initMethod(it);
+ _builder.append(_initMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java new file mode 100644 index 00000000000..9f1ced08bb8 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java @@ -0,0 +1,118 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class AbstractNavigatorItem extends xpt.navigator.AbstractNavigatorItem {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence registerAdapterFactory(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Class[] supportedTypes = new Class[] { org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor propertySheetPageContributor = new org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public String getContributorId() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return \"");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenPlugin _plugin = _editorGen.getPlugin();
+ String _iD = _plugin.getID();
+ _builder.append(_iD, "\t\t\t");
+ _builder.append("\"; ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(Object adaptableObject, Class adapterType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (adaptableObject instanceof ");
+ CharSequence _qualifiedClassName = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(" && adapterType == org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("return propertySheetPageContributor;\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Class[] getAdapterList() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return supportedTypes;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}, ");
+ CharSequence _qualifiedClassName_1 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(".class);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java new file mode 100644 index 00000000000..5dcc390e87a --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java @@ -0,0 +1,82 @@ +/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import aspects.xpt.navigator.DomainNavigatorItem;
+import aspects.xpt.navigator.NavigatorContentProvider;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class DomainNavigatorContentProvider extends xpt.navigator.DomainNavigatorContentProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private NavigatorContentProvider xptNavigatorContentProvider;
+
+ @Inject
+ private DomainNavigatorItem xptDomainNavigatorItem;
+
+ public CharSequence wrapEObjects(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public Object[] wrapEObjects(Object[] objects, Object parentElement) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection<");
+ CharSequence _qualifiedClassName = this.xptDomainNavigatorItem.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> result = new java.util.ArrayList<");
+ CharSequence _qualifiedClassName_1 = this.xptDomainNavigatorItem.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(">();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("for (int i = 0; i < objects.length; i++) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (objects[i] instanceof org.eclipse.emf.ecore.EObject) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("result.add(new ");
+ CharSequence _qualifiedClassName_2 = this.xptDomainNavigatorItem.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t\t");
+ _builder.append("((org.eclipse.emf.ecore.EObject) objects[i], parentElement, myAdapterFctoryContentProvier));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result.toArray();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java new file mode 100644 index 00000000000..a7661315129 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java @@ -0,0 +1,122 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class DomainNavigatorItem extends xpt.navigator.DomainNavigatorItem {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence registerAdapterFactory(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Class[] supportedTypes = new Class[] { org.eclipse.emf.ecore.EObject.class, org.eclipse.ui.views.properties.IPropertySource.class };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(Object adaptableObject, Class adapterType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (adaptableObject instanceof ");
+ CharSequence _qualifiedClassName = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ CharSequence _qualifiedClassName_1 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t\t\t");
+ _builder.append(" domainNavigatorItem = (");
+ CharSequence _qualifiedClassName_2 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t\t\t");
+ _builder.append(") adaptableObject;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject eObject = domainNavigatorItem.getEObject();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (adapterType == org.eclipse.emf.ecore.EObject.class) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return eObject;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (adapterType == org.eclipse.ui.views.properties.IPropertySource.class) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return domainNavigatorItem.getPropertySourceProvider().getPropertySource(eObject);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Class[] getAdapterList() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return supportedTypes;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}, ");
+ CharSequence _qualifiedClassName_3 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_3, "\t");
+ _builder.append(".class);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java new file mode 100644 index 00000000000..0c36fb8db89 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java @@ -0,0 +1,67 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class NavigatorGroup extends xpt.navigator.NavigatorGroup {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence attributes(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private String myGroupName;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private String myIcon;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection<java.lang.Object> myChildren = new java.util.LinkedList<java.lang.Object>();");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence addChildren(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void addChildren(java.util.Collection<java.lang.Object> children) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myChildren.addAll(children);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java new file mode 100644 index 00000000000..a289da4bf33 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java @@ -0,0 +1,98 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class NavigatorItem extends xpt.navigator.NavigatorItem {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence registerAdapterFactory(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Class[] supportedTypes = new Class[] { org.eclipse.gmf.runtime.notation.View.class, org.eclipse.emf.ecore.EObject.class };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(Object adaptableObject, Class adapterType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (adaptableObject instanceof ");
+ CharSequence _qualifiedClassName = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(" && (adapterType == org.eclipse.gmf.runtime.notation.View.class || adapterType == org.eclipse.emf.ecore.EObject.class)) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("return ((");
+ CharSequence _qualifiedClassName_1 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t\t\t");
+ _builder.append(") adaptableObject).getView();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Class[] getAdapterList() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return supportedTypes;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}, ");
+ CharSequence _qualifiedClassName_2 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(".class);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java new file mode 100644 index 00000000000..e3ec7e56209 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java @@ -0,0 +1,148 @@ +/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.providers;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.List;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.diagram.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class ElementTypes extends xpt.providers.ElementTypes {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ public CharSequence getElement(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment("Returns \'type\' of the ecore object associated with the hint.\n");
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static synchronized org.eclipse.emf.ecore.ENamedElement getElement(org.eclipse.core.runtime.IAdaptable hint) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object type = hint.getAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType.class);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (elements == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("elements = new java.util.IdentityHashMap<org.eclipse.gmf.runtime.emf.type.core.IElementType, org.eclipse.emf.ecore.ENamedElement>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ {
+ GenClass _domainDiagramElement = it.getDomainDiagramElement();
+ boolean _notEquals = (!Objects.equal(_domainDiagramElement, null));
+ if (_notEquals) {
+ GenClass _domainDiagramElement_1 = it.getDomainDiagramElement();
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ CharSequence _bindUniqueIdentifierToNamedElement = this.bindUniqueIdentifierToNamedElement(_domainDiagramElement_1, _uniqueIdentifier);
+ _builder.append(_bindUniqueIdentifierToNamedElement, "\t\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenNode> _allNodes = it.getAllNodes();
+ for(final GenNode node : _allNodes) {
+ _builder.append("\t\t");
+ {
+ TypeModelFacet _modelFacet = node.getModelFacet();
+ boolean _notEquals_1 = (!Objects.equal(_modelFacet, null));
+ if (_notEquals_1) {
+ TypeModelFacet _modelFacet_1 = node.getModelFacet();
+ String _uniqueIdentifier_1 = node.getUniqueIdentifier();
+ CharSequence _bindUniqueIdentifierToNamedElement_1 = this.bindUniqueIdentifierToNamedElement(_modelFacet_1, _uniqueIdentifier_1);
+ _builder.append(_bindUniqueIdentifierToNamedElement_1, "\t\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenLink> _links = it.getLinks();
+ for(final GenLink link : _links) {
+ _builder.append("\t\t");
+ {
+ LinkModelFacet _modelFacet_2 = link.getModelFacet();
+ boolean _notEquals_2 = (!Objects.equal(_modelFacet_2, null));
+ if (_notEquals_2) {
+ LinkModelFacet _modelFacet_3 = link.getModelFacet();
+ String _uniqueIdentifier_2 = link.getUniqueIdentifier();
+ CharSequence _bindUniqueIdentifierToNamedElement_2 = this.bindUniqueIdentifierToNamedElement(_modelFacet_3, _uniqueIdentifier_2);
+ _builder.append(_bindUniqueIdentifierToNamedElement_2, "\t\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return (org.eclipse.emf.ecore.ENamedElement) elements.get(type);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence isKnownElementType(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static synchronized boolean isKnownElementType(org.eclipse.gmf.runtime.emf.type.core.IElementType elementType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (KNOWN_ELEMENT_TYPES == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("KNOWN_ELEMENT_TYPES = new java.util.HashSet<org.eclipse.gmf.runtime.emf.type.core.IElementType>();");
+ _builder.newLine();
+ {
+ List<GenCommonBase> _allTypedElements = this._utils_qvto.getAllTypedElements(it);
+ for(final GenCommonBase e : _allTypedElements) {
+ _builder.append("\t\t");
+ CharSequence _addKnownElementType = this.addKnownElementType(e);
+ _builder.append(_addKnownElementType, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return KNOWN_ELEMENT_TYPES.contains(elementType);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java new file mode 100644 index 00000000000..23187937399 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java @@ -0,0 +1,254 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.providers;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class MarkerNavigationProvider extends xpt.providers.MarkerNavigationProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence MarkerNavigationProvider(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("extends org.eclipse.gmf.runtime.emf.ui.providers.marker.AbstractModelMarkerNavigationProvider {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static final String MARKER_TYPE =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_1.getPlugin();
+ String _activatorQualifiedClassName = _plugin.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName, "\t\t");
+ _builder.append(".ID + \".");
+ String _validationDiagnosticMarkerType = it.getValidationDiagnosticMarkerType();
+ _builder.append(_validationDiagnosticMarkerType, "\t\t");
+ _builder.append("\"; ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected void doGotoMarker(org.eclipse.core.resources.IMarker marker) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("String elementId = marker.getAttribute(org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID, null);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (elementId == null || !(getEditor() instanceof org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor editor =");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor) getEditor();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.Map<?, ?> editPartRegistry = editor.getDiagramGraphicalViewer().getEditPartRegistry();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject targetView = editor.getDiagram().eResource().getEObject(elementId);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetView == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gef.EditPart targetEditPart = (org.eclipse.gef.EditPart) editPartRegistry.get(targetView);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetEditPart != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ String _diagramEditorUtilQualifiedClassName = it.getDiagramEditorUtilQualifiedClassName();
+ _builder.append(_diagramEditorUtilQualifiedClassName, "\t\t\t");
+ _builder.append(".selectElementsInDiagram(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("editor, java.util.Arrays.asList(new org.eclipse.gef.EditPart[] { targetEditPart }));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static void deleteMarkers(org.eclipse.core.resources.IResource resource) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("resource.deleteMarkers(MARKER_TYPE, true, org.eclipse.core.resources.IResource.DEPTH_ZERO);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} catch (org.eclipse.core.runtime.CoreException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_2.getPlugin();
+ String _activatorQualifiedClassName_1 = _plugin_1.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName_1, "\t\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("\"Failed to delete validation markers\", e); ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_1, "\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static org.eclipse.core.resources.IMarker addMarker(org.eclipse.core.resources.IFile file,");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("String elementId, String location, String message, int statusSeverity) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.resources.IMarker marker = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker = file.createMarker(MARKER_TYPE);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.core.resources.IMarker.MESSAGE, message);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.core.resources.IMarker.LOCATION, location);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID, elementId);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("int markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_INFO;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (statusSeverity == org.eclipse.core.runtime.IStatus.WARNING) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_WARNING; \t\t\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else if (statusSeverity == org.eclipse.core.runtime.IStatus.ERROR ||");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("statusSeverity == org.eclipse.core.runtime.IStatus.CANCEL) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_ERROR;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.core.resources.IMarker.SEVERITY, markerSeverity);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (org.eclipse.core.runtime.CoreException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenPlugin _plugin_2 = _editorGen_3.getPlugin();
+ String _activatorQualifiedClassName_2 = _plugin_2.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName_2, "\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("\"Failed to create validation marker\", e); ");
+ CharSequence _nonNLS_2 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_2, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return marker;\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/DiagramEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/DiagramEditPart.xtend index 7e95dd4493a..c34a0ef1353 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/DiagramEditPart.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/DiagramEditPart.xtend @@ -53,7 +53,7 @@ override createDefaultEditPoliciesBody(GenDiagram it) ''' «IF generateCreateShortcutAction() && null == editorGen.application» installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.DRAG_DROP_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.DiagramDragDropEditPolicy() { public org.eclipse.gef.commands.Command getDropObjectsCommand(org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest dropRequest) { - java.util.ArrayList<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor> viewDescriptors = new java.util.ArrayList<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor>(); + java.util.List<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor> viewDescriptors = new java.util.ArrayList<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor>(); for (java.util.Iterator<?> it = dropRequest.getObjects().iterator(); it.hasNext();) { Object nextObject = it.next(); if (false == nextObject instanceof org.eclipse.emf.ecore.EObject) { diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend index 2a4cc58937b..a8b38fab240 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend @@ -36,10 +36,12 @@ import xpt.diagram.editparts.Utils_qvto @Singleton class NodeEditPart extends impl.diagram.editparts.NodeEditPart { @Inject extension Common; - @Inject extension Utils_qvto; + @Inject extension EditPartsUtils_qvto; @Inject extension VisualIDRegistry; + @Inject extension Utils_qvto; + @Inject extension xpt.diagram.Utils_qvto; @Inject EditPartFactory xptEditPartFactory; @Inject impl.diagram.editparts.TextAware xptTextAware; @@ -117,6 +119,24 @@ override addFixedChild (GenNode it)''' } ''' + override def setLineWidth(GenNode it) ''' + «generatedMemberComment» + protected void setLineWidth(int width) { + if (primaryShape instanceof org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure) { + ((org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure) primaryShape).setLineWidth(«IF getDiagram().isPixelMapMode()»width«ELSE»getMapMode().DPtoLP(width)«ENDIF»); + } + } + ''' + + override def setLineStyle(GenNode it) ''' + «generatedMemberComment» + protected void setLineType(int style) { + if (primaryShape instanceof org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure) { + ((org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure) primaryShape).setLineStyle(style); + } + } + ''' + override createNodePlate (GenNode it)''' «generatedMemberComment» protected org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure createNodePlate() { @@ -180,6 +200,17 @@ def genSpecificLocator(SpecificLocator it, GenChildSideAffixedNode child)''' ''' + override def borderItemSelectionEP(GenNode it) ''' + new org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy() { + + protected java.util.List<?> createSelectionHandles() { + org.eclipse.gef.handles.MoveHandle mh = new org.eclipse.gef.handles.MoveHandle((org.eclipse.gef.GraphicalEditPart) getHost()); + mh.setBorder(null); + return java.util.Collections.singletonList(mh); + } + } + ''' + //BEGIN PapyrusGencode //Overwrite an existing method to set the preference value in the editpart def genPreferredValue (GenNode it)''' diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend index 03e2bd00e68..fd4e8a01415 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend @@ -233,7 +233,7 @@ override labelSetterFigureClassName (Viewmap it)''' override getModelChildren (GenCommonBase it)''' «generatedMemberComment» - protected java.util.List getModelChildren() { + protected java.util.List<?> getModelChildren() { return java.util.Collections.EMPTY_LIST; } ''' @@ -360,7 +360,7 @@ override getEditTextValidator (GenCommonBase it)''' try { org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus valid = (org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus) getEditingDomain().runExclusive( - new org.eclipse.emf.transaction.RunnableWithResult.Impl() { + new org.eclipse.emf.transaction.RunnableWithResult.Impl<java.lang.Object>() { public void run() { setResult(parser.isValidEditString(new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(element), (String) value)); @@ -768,7 +768,7 @@ def updateExtendedEditorConfiguration (GenCommonBase it)''' protected void updateExtendedEditorConfiguration() { String languagePreferred = org.eclipse.papyrus.extensionpoints.editors.Activator.getDefault().getPreferenceStore().getString( org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds.EDITOR_FOR_ELEMENT + resolveSemanticElement().eClass().getInstanceClassName()); - if (languagePreferred != null && !languagePreferred.equals("") && languagePreferred != configuration.getLanguage()) { + if (languagePreferred != null && !languagePreferred.equals("") && !languagePreferred.equals(configuration.getLanguage())) { configuration = org.eclipse.papyrus.extensionpoints.editors.utils.DirectEditorsUtil.findEditorConfiguration(languagePreferred, resolveSemanticElement() .eClass().getInstanceClassName()); } else if (org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds.SIMPLE_DIRECT_EDITOR.equals(languagePreferred)) { diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend new file mode 100644 index 00000000000..bec85eefbe8 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend @@ -0,0 +1,139 @@ +/** + * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others + * + * 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: + * Alexander Shatalin (Borland) - initial API and implementation + * Artem Tikhomirov - refactoring of containerBaseCanonicalMethods.xpt; extraction of API/non-API of CEP templates + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */
+package aspects.impl.diagram.update
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import metamodel.MetaModel
+import org.eclipse.gmf.codegen.gmfgen.GenContainerBase
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Common
+import xpt.diagram.updater.DiagramUpdater
+import xpt.diagram.updater.NodeDescriptor
+import xpt.diagram.updater.Utils_qvto
+import xpt.diagram.updater.LinkDescriptor
+import xpt.editor.VisualIDRegistry
+
+@Singleton class CanonicalUpdate extends impl.diagram.update.CanonicalUpdate {
+ @Inject extension Common;
+ @Inject extension Utils_qvto;
+
+ @Inject NodeDescriptor nodeDescriptor;
+ @Inject MetaModel xptMetaModel;
+ @Inject DiagramUpdater xptDiagramUpdater;
+ @Inject LinkDescriptor linkDescriptor;
+ @Inject VisualIDRegistry xptVisualIDRegistry;
+
+ override def getFeaturesToSynchronizeMethod(GenContainerBase it) '''
+ «IF getSemanticChildrenChildFeatures(it).size == 1»
+ + «generatedMemberComment» + protected org.eclipse.emf.ecore.EStructuralFeature getFeatureToSynchronize() { + return «xptMetaModel.MetaFeature(getSemanticChildrenContainmentFeatures(it).head)»; + } + «ELSEIF getSemanticChildrenChildFeatures(it).size > 1»
+ + «generatedMemberComment» + protected java.util.Set<org.eclipse.emf.ecore.EStructuralFeature> getFeaturesToSynchronize() { + if (myFeaturesToSynchronize == null) { + myFeaturesToSynchronize = new java.util.HashSet<org.eclipse.emf.ecore.EStructuralFeature>(); + «FOR f : getSemanticChildrenContainmentFeatures(it)»
+ «addContainmentFeature(f)» + «ENDFOR»
+ } + return myFeaturesToSynchronize; + } + «ENDIF»
+ '''
+
+ override def getSemanticChildrenListMethod(GenContainerBase it) '''
+ «generatedMemberComment» + protected java.util.List<org.eclipse.emf.ecore.EObject> getSemanticChildrenList() { + «IF hasSemanticChildren(it)/*REVISIT: is there real need for this check - Generator seems to consult needsCanonicalEP, which in turns ensures there are semantic children?*/»
+ org.eclipse.gmf.runtime.notation.View viewObject = (org.eclipse.gmf.runtime.notation.View) getHost().getModel(); + java.util.LinkedList<org.eclipse.emf.ecore.EObject> result = new java.util.LinkedList<org.eclipse.emf.ecore.EObject>(); + java.util.List<«nodeDescriptor.qualifiedClassName(it.diagram.editorGen.diagramUpdater)»> childDescriptors = «xptDiagramUpdater.
+ getSemanticChildrenMethodCall(it)»(viewObject); + for («nodeDescriptor.qualifiedClassName(it.diagram.editorGen.diagramUpdater)» d : childDescriptors) { + result.add(d.getModelElement()); + } + return result; + «ELSE»
+ return java.util.Collections.EMPTY_LIST; + «ENDIF»
+ } + '''
+
+ override def refreshConnectionsBody(GenDiagram it) '''
+ «Domain2Notation(it)» domain2NotationMap = new «Domain2Notation(it)»(); + java.util.Collection<«linkDescriptor.qualifiedClassName(editorGen.diagramUpdater)»> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap); + java.util.List<org.eclipse.gmf.runtime.notation.View> edges = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.View>(); + for (Object edge : getDiagram().getEdges()) + { + if (edge instanceof org.eclipse.gmf.runtime.notation.View) + { + edges.add((org.eclipse.gmf.runtime.notation.View) edge); + } + } + java.util.Collection<org.eclipse.gmf.runtime.notation.View> existingLinks = new java.util.LinkedList<org.eclipse.gmf.runtime.notation.View>(edges); + for (java.util.Iterator<org.eclipse.gmf.runtime.notation.View> linksIterator = existingLinks.iterator(); linksIterator.hasNext();) { + org.eclipse.gmf.runtime.notation.Edge nextDiagramLink = (org.eclipse.gmf.runtime.notation.Edge) linksIterator.next(); + int diagramLinkVisualID = «xptVisualIDRegistry.getVisualIDMethodCall(it)»(nextDiagramLink); + if (diagramLinkVisualID == -1«FOR link : links.filter[gl|gl.modelFacet == null]»«compareLinkVisualID(link)»«ENDFOR») { + if (nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) { + linksIterator.remove(); + } + continue; + } + org.eclipse.emf.ecore.EObject diagramLinkObject = nextDiagramLink.getElement(); + org.eclipse.emf.ecore.EObject diagramLinkSrc = nextDiagramLink.getSource().getElement(); + org.eclipse.emf.ecore.EObject diagramLinkDst = nextDiagramLink.getTarget().getElement(); + for (java.util.Iterator<«it.editorGen.diagramUpdater.linkDescriptorQualifiedClassName»> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) { + «linkDescriptor.qualifiedClassName(it.editorGen.diagramUpdater)» nextLinkDescriptor = linkDescriptorsIterator.next(); + if (diagramLinkObject == nextLinkDescriptor.getModelElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination() && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) { + linksIterator.remove(); + linkDescriptorsIterator.remove(); + break; + } + } + } + deleteViews(existingLinks.iterator()); + return createConnections(linkDescriptors, domain2NotationMap); + '''
+
+ override def collectAllLinksMethod(GenDiagram it) ''' + «generatedMemberComment» + private java.util.Collection<«linkDescriptor.qualifiedClassName(it.editorGen.diagramUpdater)»> collectAllLinks(org.eclipse.gmf.runtime.notation.View view, «Domain2Notation(
+ it)» domain2NotationMap) { + if (!«VisualIDRegistry::modelID(it)».equals(«xptVisualIDRegistry.getModelIDMethodCall(it)»(view))) { + return java.util.Collections.emptyList(); + } + java.util.LinkedList<«linkDescriptor.qualifiedClassName(it.editorGen.diagramUpdater)»> result = new java.util.LinkedList<«linkDescriptor.
+ qualifiedClassName(it.editorGen.diagramUpdater)»>(); + switch («xptVisualIDRegistry.getVisualIDMethodCall(it)»(view)) { + «FOR se : it.allSemanticElements» + «caseSemanticElement(se)» + «ENDFOR» + } + for (java.util.Iterator<?> children = view.getChildren().iterator(); children.hasNext();) { + result.addAll(collectAllLinks((org.eclipse.gmf.runtime.notation.View) children.next(), domain2NotationMap)); + } + for (java.util.Iterator<?> edges = view.getSourceEdges().iterator(); edges.hasNext();) { + result.addAll(collectAllLinks((org.eclipse.gmf.runtime.notation.View) edges.next(), domain2NotationMap)); + } + return result; + } + '''
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/parsers/ParserProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/parsers/ParserProvider.xtend new file mode 100644 index 00000000000..06d47ed37d8 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/parsers/ParserProvider.xtend @@ -0,0 +1,96 @@ +/** + * Copyright (c) 2007-2013 Borland Software Corporation and others + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Dmitry Stadnik (Borland) - initial API and implementation + * Artem Tikhomirov (Borland) - [235113] alternative parser access + * [244419] custom parsers + * [138179] expression-backed labels + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */ +package aspects.impl.parsers
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import impl.parsers.expression_qvto
+import metamodel.MetaModel
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature
+import org.eclipse.gmf.codegen.gmfgen.CustomParser
+import org.eclipse.gmf.codegen.gmfgen.ExpressionLabelParser
+import org.eclipse.gmf.codegen.gmfgen.ExternalParser
+import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase
+import org.eclipse.gmf.codegen.gmfgen.GenLink
+import org.eclipse.gmf.codegen.gmfgen.GenNode
+import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation
+import org.eclipse.gmf.codegen.gmfgen.GenParsers
+import org.eclipse.gmf.codegen.gmfgen.LabelModelFacet
+import org.eclipse.gmf.codegen.gmfgen.LabelTextAccessMethod
+import org.eclipse.gmf.codegen.gmfgen.OclChoiceParser
+import org.eclipse.gmf.codegen.gmfgen.PredefinedEnumParser
+import org.eclipse.gmf.codegen.gmfgen.PredefinedParser
+import org.eclipse.gmf.codegen.gmfgen.ValueExpression
+import plugin.Activator
+import xpt.Common
+import xpt.Common_qvto
+import xpt.editor.VisualIDRegistry
+import xpt.expressions.OclTracker_qvto
+import xpt.expressions.getExpression
+import xpt.providers.ElementTypes
+import xpt.providers.ParserUtils_qvto
+
+@Singleton class ParserProvider extends impl.parsers.ParserProvider { + @Inject extension Common + @Inject extension Common_qvto + + @Inject extension OclTracker_qvto + @Inject extension ParserUtils_qvto + @Inject extension expression_qvto + + @Inject extension parsers.ExpressionLabelParser; + @Inject extension parsers.PredefinedParser; + + @Inject getExpression xptGetExpression; + @Inject MetaModel xptMetaModel; + @Inject VisualIDRegistry xptVisualIDRegistry; + @Inject ElementTypes xptElementTypes; + @Inject parsers.ParserProvider xptParsers; + @Inject Activator xptActivator; + + + + override def HintAdapterClass(GenParsers it) ''' + «generatedMemberComment()» + private static class HintAdapter extends org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter { + + «generatedMemberComment()» + private final org.eclipse.gmf.runtime.emf.type.core.IElementType elementType; + + «generatedMemberComment()» + public HintAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType type, + org.eclipse.emf.ecore.EObject object, String parserHint) { + super(object, parserHint); + «_assert('type != null')» + elementType = type; + } + + «generatedMemberComment()» + public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) { + if (org.eclipse.gmf.runtime.emf.type.core.IElementType.class.equals(adapter)) { + return elementType; + } + return super.getAdapter(adapter); + } + } + ''' + + + +}
\ No newline at end of file diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend index c8a44b5048c..e907969828a 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend @@ -88,7 +88,21 @@ public class «className(it)» extends org.eclipse.gmf.runtime.diagram.ui.editpoli «additions(it)» } -'''
+''' +
+override def addDestroyShortcutsCommand(GenDiagram it) ''' + «generatedMemberComment('Clean all shortcuts to the host element from the same diagram')» + protected void addDestroyShortcutsCommand(org.eclipse.gmf.runtime.common.core.command.ICompositeCommand cmd, org.eclipse.gmf.runtime.notation.View view) { + «_assert('view.getEAnnotation(\"Shortcut\") == null')» + for (java.util.Iterator<?> it = view.getDiagram().getChildren().iterator(); it.hasNext();) { + org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next(); + if (nextView.getEAnnotation("Shortcut") == null || !nextView.isSetElement() || nextView.getElement() != view.getElement()) { «nonNLS()» + continue; + } + cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), nextView)); + } + } +''' override attributes(GenDiagram it) '''
«generatedMemberComment('Extended request data key to hold editpart visual id.')» diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.xtend index 4c1534540a5..7a85059b1ad 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.xtend @@ -58,8 +58,8 @@ import xpt.editor.VisualIDRegistry ««« Papyrus REM :
««« Test to know how the delete of this EditPart is done : we used the DeleteService or the "Traditional method"
-
- «IF it.eResource.allContents.filter(typeof (EditPartUsingDeleteService)).filter[v | v.genView.contains(this)].size != 0»
+
+ «IF it.eResource.allContents.filter(typeof (EditPartUsingDeleteService)).filter[v | v.genView.contains(it)].size != 0»
«generatedMemberComment»
«getDestroyElementCommandByService(it)»
«ELSE»
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.xtend new file mode 100644 index 00000000000..3ba5cf8e709 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.xtend @@ -0,0 +1,28 @@ +package aspects.xpt.diagram.editpolicies
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Common
+
+/** + * FIXME: [MG] - reverse the calls? call common code from here and TextelectionEP and not vice versa +*/ +@Singleton class TextNonResizableEditPolicy extends xpt.diagram.editpolicies.TextNonResizableEditPolicy { + + @Inject extension Common; + + + + override def TextNonResizableEditPolicy_createSelectionHandles(GenDiagram it) ''' + «generatedMemberComment» + protected java.util.List<?> createSelectionHandles() { + org.eclipse.gef.handles.MoveHandle moveHandle = + new org.eclipse.gef.handles.MoveHandle((org.eclipse.gef.GraphicalEditPart) getHost()); + moveHandle.setBorder(null); + moveHandle.setDragTracker(new org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx(getHost())); + return java.util.Collections.singletonList(moveHandle); + } + ''' + +}
\ No newline at end of file diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/Utils_qvto.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/Utils_qvto.xtend new file mode 100644 index 00000000000..50246d06683 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/Utils_qvto.xtend @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2007-2013 Borland Software Corporation && others + * + * All rights reserved. This program && the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, && is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alexander Shatalin (Borland) - initial API && implementation + * Michael Golubev (Borland) - [243151] explicit source/target for links + * - #386838 - migrate to Xtend2 + */ +package aspects.xpt.diagram.editpolicies
+
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd
+
+@Singleton class Utils_qvto extends xpt.diagram.editpolicies.Utils_qvto { + +def Boolean containsCreateStartLinkCommand(GenLinkEnd it){ + for (l : getAllPotentialLinks(it)){ + if(createStartLinkCommand(l, it)){ + return true; + } + } + + return false; +} + +def Boolean containsCreateCompleteLinkCommand(GenLinkEnd it){ + for (l : getAllPotentialLinks(it)){ + if(createCompleteLinkCommand(l, it)){ + return true; + } + } + + return false; +} + + +} diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend index 1b16e699e54..a17cac0b44a 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/linkCommands.xtend @@ -51,7 +51,8 @@ import xpt.providers.ElementTypes @Singleton class linkCommands extends xpt.diagram.editpolicies.linkCommands {
@Inject extension Utils_qvto;
@Inject extension Common;
-
+ + @Inject aspects.xpt.diagram.editpolicies.Utils_qvto aspectsUtils_qvto
@Inject VisualIDRegistry xptVisualIDRegistry; @Inject ElementTypes xptElementTypes; @Inject CreateLinkCommand xptCreateLinkCommand;
@@ -77,15 +78,21 @@ import xpt.providers.ElementTypes return null; } org.eclipse.gmf.runtime.emf.type.core.IElementType baseElementType = requestElementType; + «IF aspectsUtils_qvto.containsCreateStartLinkCommand(it)» boolean isExtendedType = false; + «ENDIF» if(requestElementType instanceof org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType) { baseElementType = org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils.getClosestDiagramType(requestElementType); if(baseElementType != null) { + «IF aspectsUtils_qvto.containsCreateStartLinkCommand(it)» isExtendedType = true; + «ENDIF» } else { // no reference element type ID. using the closest super element type to give more opportunities, but can lead to bugs. baseElementType = org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils.findClosestNonExtendedElementType((org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType)requestElementType); + «IF aspectsUtils_qvto.containsCreateStartLinkCommand(it)» isExtendedType = true; + «ENDIF» } } «FOR l : getAllPotentialLinks(it)» @@ -102,15 +109,21 @@ import xpt.providers.ElementTypes return null; } org.eclipse.gmf.runtime.emf.type.core.IElementType baseElementType = requestElementType; + «IF aspectsUtils_qvto.containsCreateCompleteLinkCommand(it)» boolean isExtendedType = false; + «ENDIF» if(requestElementType instanceof org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType) { baseElementType = org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils.getClosestDiagramType(requestElementType); if(baseElementType != null) { + «IF aspectsUtils_qvto.containsCreateCompleteLinkCommand(it)» isExtendedType = true; + «ENDIF» } else { // no reference element type ID. using the closest super element type to give more opportunities, but can lead to bugs. baseElementType = org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils.findClosestNonExtendedElementType((org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType)requestElementType); + «IF aspectsUtils_qvto.containsCreateCompleteLinkCommand(it)» isExtendedType = true; + «ENDIF» } } «FOR l : getAllPotentialLinks(it)» @@ -164,15 +177,19 @@ import xpt.providers.ElementTypes «generatedMemberComment(
'Returns command to reorient EClass based link. New link target or source\n' + 'should be the domain model element associated with this node.\n'
)» - protected org.eclipse.gef.commands.Command getReorientRelationshipCommand( - org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest req) { - switch (getVisualID(req)) { - «FOR rLink : getReroutableTypeLinks(it)»
- «reorientLinkCommandWithService(rLink)» - «ENDFOR»
- } - return super.getReorientRelationshipCommand(req); - } + protected org.eclipse.gef.commands.Command getReorientRelationshipCommand( + org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest req) { + switch (getVisualID(req)) { + «FOR link : getReroutableTypeLinks(it)» + «reorientLinkCommandWithService(link) » + «ENDFOR» + «callReorientCommand(it)» + «FOR link : getReroutableTypeLinks(it)» + «reorientLinkCommandWithoutService(link) » + «ENDFOR» + } + return super.getReorientRelationshipCommand(req); + } '''
//This function writes only : "case myLinkEditPart.VISUAL_ID:" @@ -204,7 +221,7 @@ import xpt.providers.ElementTypes // This function writes the code for the Links which uses their own ReorientCommand (the initial code) def reorientLinkCommandWithoutService(GenLink it) '''
- «IF it.eResource.allContents.filter(EditPartUsingReorientService).filter[v|v.genView.contains(it)].size != 0»
+ «IF it.eResource.allContents.filter(EditPartUsingReorientService).filter[v|v.genView.contains(it)].size == 0»
«reorientLinkCommand(it)» «ENDIF»
'''
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/updater/UpdateCommand.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/updater/UpdateCommand.xtend new file mode 100644 index 00000000000..e8238331560 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/updater/UpdateCommand.xtend @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others + * + * 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: + * Alexander Shatalin (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */ +package aspects.xpt.diagram.updater
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater
+import xpt.Common
+
+@Singleton class UpdateCommand extends xpt.diagram.updater.UpdateCommand { + @Inject extension Common; + + + + override def execute(GenDiagramUpdater it) ''' + «generatedMemberComment» + public Object execute(org.eclipse.core.commands.ExecutionEvent event) throws org.eclipse.core.commands.ExecutionException { + org.eclipse.jface.viewers.ISelection selection = org.eclipse.ui.PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(); + if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection) { + org.eclipse.jface.viewers.IStructuredSelection structuredSelection = (org.eclipse.jface.viewers.IStructuredSelection) selection; + if (structuredSelection.size() != 1) { + return null; + } + if (structuredSelection.getFirstElement() instanceof org.eclipse.gef.EditPart && ((org.eclipse.gef.EditPart) structuredSelection.getFirstElement()).getModel() instanceof org.eclipse.gmf.runtime.notation.View) { + org.eclipse.emf.ecore.EObject modelElement = ((org.eclipse.gmf.runtime.notation.View) ((org.eclipse.gef.EditPart) structuredSelection.getFirstElement()).getModel()).getElement(); + java.util.List<?> editPolicies = org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy.getRegisteredEditPolicies(modelElement); + for (java.util.Iterator<?> it = editPolicies.iterator(); it.hasNext();) { + org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy nextEditPolicy = (org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy) it.next(); + nextEditPolicy.refresh(); + } + + } + } + return null; + } + ''' +} diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ActionBarContributor.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ActionBarContributor.xtend new file mode 100644 index 00000000000..cdf087b52f0 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ActionBarContributor.xtend @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Dmitry Stadnik (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */ +package aspects.xpt.editor
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenEditorView
+import xpt.Common
+
+@Singleton class ActionBarContributor extends xpt.editor.ActionBarContributor { + @Inject extension Common; + @Inject Editor xptEditor; + + override def ActionBarContributor(GenEditorView it) ''' + «copyright(editorGen)» + package «packageName(it)»; + + «generatedClassComment» + public class «className(it)» «extendsList(it)» { + + «generatedMemberComment» + + protected Class<«xptEditor.qualifiedClassName(it)»> getEditorClass() { + return «xptEditor.qualifiedClassName(it)».class; + } + + «generatedMemberComment» + protected String getEditorId() { + return «xptEditor.qualifiedClassName(it)».ID; + } + «initMethod(it)» + «additions(it)» + } + ''' + + +} diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend new file mode 100644 index 00000000000..e091a31e6cc --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others + * + * 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: + * Alexander Shatalin (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */
+package aspects.xpt.navigator
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator
+import xpt.Common
+
+@Singleton class AbstractNavigatorItem extends xpt.navigator.AbstractNavigatorItem {
+ @Inject extension Common;
+
+ override def registerAdapterFactory(GenNavigator it) '''
+ «generatedMemberComment()» + static { + @SuppressWarnings("rawtypes") + final Class[] supportedTypes = new Class[] { org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class }; + final org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor propertySheetPageContributor = new org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor() { + public String getContributorId() { + return "«editorGen.plugin.ID»"; «nonNLS(1)» + } + }; + org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() { + + @SuppressWarnings("rawtypes") + public Object getAdapter(Object adaptableObject, Class adapterType) { + if (adaptableObject instanceof «qualifiedClassName(it)» && adapterType == org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class) { + return propertySheetPageContributor; + } + return null; + } + + @SuppressWarnings("rawtypes") + public Class[] getAdapterList() { + return supportedTypes; + } + }, «qualifiedClassName(it)».class); + } + '''
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorContentProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorContentProvider.xtend new file mode 100644 index 00000000000..3ae343a8f5c --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorContentProvider.xtend @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others + * + * 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: + * Alexander Shatalin (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */
+package aspects.xpt.navigator
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator
+import plugin.Activator
+import xpt.Common
+
+@Singleton class DomainNavigatorContentProvider extends xpt.navigator.DomainNavigatorContentProvider {
+ @Inject extension Common;
+
+ @Inject Activator xptActivator
+ @Inject NavigatorContentProvider xptNavigatorContentProvider;
+ @Inject DomainNavigatorItem xptDomainNavigatorItem;
+
+ override def wrapEObjects(GenNavigator it) '''
+ «generatedMemberComment()» + public Object[] wrapEObjects(Object[] objects, Object parentElement) { + java.util.Collection<«xptDomainNavigatorItem.qualifiedClassName(it)»> result = new java.util.ArrayList<«xptDomainNavigatorItem.qualifiedClassName(it)»>(); + for (int i = 0; i < objects.length; i++) { + if (objects[i] instanceof org.eclipse.emf.ecore.EObject) { + result.add(new «xptDomainNavigatorItem.qualifiedClassName(it)»((org.eclipse.emf.ecore.EObject) objects[i], parentElement, myAdapterFctoryContentProvier)); + } + } + return result.toArray(); + } + '''
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend new file mode 100644 index 00000000000..26f5a8579bb --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend @@ -0,0 +1,55 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator
+
+import com.google.inject.Inject
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator
+import xpt.Common
+
+@com.google.inject.Singleton class DomainNavigatorItem extends xpt.navigator.DomainNavigatorItem {
+ @Inject extension Common;
+
+
+ override def registerAdapterFactory(GenNavigator it) '''
+ «generatedMemberComment()»
+ static {
+ @SuppressWarnings("rawtypes")
+ final Class[] supportedTypes = new Class[] { org.eclipse.emf.ecore.EObject.class, org.eclipse.ui.views.properties.IPropertySource.class };
+ org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {
+
+ @SuppressWarnings("rawtypes")
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof «qualifiedClassName(it)») {
+ «qualifiedClassName(it)» domainNavigatorItem = («qualifiedClassName(it)») adaptableObject;
+ org.eclipse.emf.ecore.EObject eObject = domainNavigatorItem.getEObject();
+ if (adapterType == org.eclipse.emf.ecore.EObject.class) {
+ return eObject;
+ }
+ if (adapterType == org.eclipse.ui.views.properties.IPropertySource.class) {
+ return domainNavigatorItem.getPropertySourceProvider().getPropertySource(eObject);
+ }
+ }
+
+ return null;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public Class[] getAdapterList() {
+ return supportedTypes;
+ }
+ }, «qualifiedClassName(it)».class);
+ }
+ '''
+
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend index 8ce33b924f5..238207b8f24 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend @@ -62,7 +62,7 @@ import xpt.navigator.Utils_qvto override processChanges(GenNavigator it) '''
- for (java.util.Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) { + for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) { org.eclipse.emf.ecore.resource.Resource nextResource = (org.eclipse.emf.ecore.resource.Resource) it.next(); nextResource.unload(); } @@ -72,7 +72,52 @@ import xpt.navigator.Utils_qvto return true; '''
-
+ override def initCommonAttributes(GenNavigator it) ''' + org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = «createEditingDomain(it)»; + myEditingDomain = (org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain) editingDomain; + @SuppressWarnings("serial") + java.util.Map<org.eclipse.emf.ecore.resource.Resource, java.lang.Boolean> map = new java.util.HashMap<org.eclipse.emf.ecore.resource.Resource, java.lang.Boolean>() { + public java.lang.Boolean get(java.lang.Object key) { + if (!containsKey(key)) { + if (key instanceof org.eclipse.emf.ecore.resource.Resource) { + put((org.eclipse.emf.ecore.resource.Resource) key, java.lang.Boolean.TRUE); + } + } + return super.get(key); + } + }; + myEditingDomain.setResourceToReadOnlyMap(map); + myViewerRefreshRunnable = new Runnable() { + public void run() { + if (myViewer != null) { + myViewer.refresh(); + } + } + }; + myWorkspaceSynchronizer = new org.eclipse.emf.workspace.util.WorkspaceSynchronizer(editingDomain, new org.eclipse.emf.workspace.util.WorkspaceSynchronizer.Delegate() { + public void dispose() { + } + + public boolean handleResourceChanged(final org.eclipse.emf.ecore.resource.Resource resource) { + «processChanges(it)» + } + + public boolean handleResourceDeleted(org.eclipse.emf.ecore.resource.Resource resource) { + «processChanges(it)» + } + + public boolean handleResourceMoved(org.eclipse.emf.ecore.resource.Resource resource, final org.eclipse.emf.common.util.URI newURI) { + «processChanges(it)» + } + }); + ''' + + override def constructor(GenNavigator it) ''' + «generatedMemberComment()» + public «className(it)»() { + «initCommonAttributes(it)» + } + '''
override dispose(GenNavigator it) '''
«generatedMemberComment()» @@ -81,7 +126,7 @@ import xpt.navigator.Utils_qvto myWorkspaceSynchronizer = null; myViewerRefreshRunnable = null; - for (java.util.Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) { + for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) { org.eclipse.emf.ecore.resource.Resource resource = (org.eclipse.emf.ecore.resource.Resource) it.next(); resource.unload(); } @@ -96,11 +141,11 @@ import xpt.navigator.Utils_qvto override getFileChildren(GenNavigator it) '''
«var references = getChildReferencesFrom(it, null)» «getFileResource(it)» - java.util.Collection result = new java.util.ArrayList(); + java.util.Collection<Object> result = new java.util.ArrayList<Object>(); «FOR groupName : getGroupNames(references)»
«initGroupVariables(groupName, it, references, 'file', null)» «ENDFOR»
- java.util.ArrayList<org.eclipse.gmf.runtime.notation.View> topViews = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.View>(resource.getContents().size()); + java.util.List<org.eclipse.gmf.runtime.notation.View> topViews = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.View>(resource.getContents().size()); for (org.eclipse.emf.ecore.EObject o : resource.getContents()) { if (o instanceof org.eclipse.gmf.runtime.notation.View) { topViews.add((org.eclipse.gmf.runtime.notation.View) o); @@ -133,81 +178,81 @@ import xpt.navigator.Utils_qvto '''
override utilityMethods(GenNavigator it) '''
- «generatedMemberComment» - private java.util.Collection getLinksSourceByType(java.util.Collection edges, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = edges.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next(); - org.eclipse.gmf.runtime.notation.View nextEdgeSource = nextEdge.getSource(); - if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) { - result.add(nextEdgeSource); - } - } - return result; - } - - «generatedMemberComment» - private java.util.Collection getLinksTargetByType(java.util.Collection edges, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = edges.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next(); - org.eclipse.gmf.runtime.notation.View nextEdgeTarget = nextEdge.getTarget(); - if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) { - result.add(nextEdgeTarget); - } - } - return result; - } - «generatedMemberComment» - private java.util.Collection getOutgoingLinksByType(java.util.Collection nodes, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = nodes.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next(); - result.addAll(selectViewsByType(nextNode.getSourceEdges(), type)); - } - return result; - } - - «generatedMemberComment» - private java.util.Collection getIncomingLinksByType(java.util.Collection nodes, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = nodes.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next(); - result.addAll(selectViewsByType(nextNode.getTargetEdges(), type)); - } - return result; - } - - «generatedMemberComment» - private java.util.Collection getChildrenByType(java.util.Collection nodes, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = nodes.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next(); - result.addAll(selectViewsByType(nextNode.getChildren(), type)); - } - return result; - } - - «generatedMemberComment» - private java.util.Collection getDiagramLinksByType(java.util.Collection diagrams, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = diagrams.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.Diagram nextDiagram = (org.eclipse.gmf.runtime.notation.Diagram) it.next(); - result.addAll(selectViewsByType(nextDiagram.getEdges(), type)); - } - return result; - } - «generatedMemberComment» - private java.util.Collection selectViewsByType(java.util.Collection views, String type) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = views.iterator(); it.hasNext();) { - org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next(); - if (type.equals(nextView.getType()) && isOwnView(nextView)) { - result.add(nextView); - } - } - return result; - } +««« «generatedMemberComment» +««« private java.util.Collection getLinksSourceByType(java.util.Collection edges, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = edges.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next(); +««« org.eclipse.gmf.runtime.notation.View nextEdgeSource = nextEdge.getSource(); +««« if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) { +««« result.add(nextEdgeSource); +««« } +««« } +««« return result; +««« } +««« +««« «generatedMemberComment» +««« private java.util.Collection getLinksTargetByType(java.util.Collection edges, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = edges.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next(); +««« org.eclipse.gmf.runtime.notation.View nextEdgeTarget = nextEdge.getTarget(); +««« if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) { +««« result.add(nextEdgeTarget); +««« } +««« } +««« return result; +««« } +««« «generatedMemberComment» +««« private java.util.Collection getOutgoingLinksByType(java.util.Collection nodes, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = nodes.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next(); +««« result.addAll(selectViewsByType(nextNode.getSourceEdges(), type)); +««« } +««« return result; +««« } +««« +««« «generatedMemberComment» +««« private java.util.Collection getIncomingLinksByType(java.util.Collection nodes, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = nodes.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next(); +««« result.addAll(selectViewsByType(nextNode.getTargetEdges(), type)); +««« } +««« return result; +««« } +««« +««« «generatedMemberComment» +««« private java.util.Collection getChildrenByType(java.util.Collection nodes, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = nodes.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next(); +««« result.addAll(selectViewsByType(nextNode.getChildren(), type)); +««« } +««« return result; +««« } +««« +««« «generatedMemberComment» +««« private java.util.Collection getDiagramLinksByType(java.util.Collection diagrams, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = diagrams.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.Diagram nextDiagram = (org.eclipse.gmf.runtime.notation.Diagram) it.next(); +««« result.addAll(selectViewsByType(nextDiagram.getEdges(), type)); +««« } +««« return result; +««« } +««« «generatedMemberComment» +««« private java.util.Collection selectViewsByType(java.util.Collection views, String type) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = views.iterator(); it.hasNext();) { +««« org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next(); +««« if (type.equals(nextView.getType()) && isOwnView(nextView)) { +««« result.add(nextView); +««« } +««« } +««« return result; +««« } «generatedMemberComment()» private boolean isOwnView(org.eclipse.gmf.runtime.notation.View view) { @@ -215,14 +260,14 @@ import xpt.navigator.Utils_qvto getModelIDMethodCall(editorGen.diagram)»(view)); } - «generatedMemberComment» - private java.util.Collection createNavigatorItems(java.util.Collection views, Object parent, boolean isLeafs) { - java.util.Collection result = new java.util.ArrayList(); - for (java.util.Iterator it = views.iterator(); it.hasNext();) { - result.add(new «getNavigatorItemQualifiedClassName()»((org.eclipse.gmf.runtime.notation.View) it.next(), parent, isLeafs)); - } - return result; - } +««« «generatedMemberComment» +««« private java.util.Collection createNavigatorItems(java.util.Collection views, Object parent, boolean isLeafs) { +««« java.util.Collection result = new java.util.ArrayList(); +««« for (java.util.Iterator it = views.iterator(); it.hasNext();) { +««« result.add(new «getNavigatorItemQualifiedClassName()»((org.eclipse.gmf.runtime.notation.View) it.next(), parent, isLeafs)); +««« } +««« return result; +««« } «getForeignShortcuts(it)» '''
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorGroup.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorGroup.xtend new file mode 100644 index 00000000000..33d56d921da --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorGroup.xtend @@ -0,0 +1,40 @@ +/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator
+
+import com.google.inject.Inject
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator
+import xpt.Common
+
+@com.google.inject.Singleton class NavigatorGroup extends xpt.navigator.NavigatorGroup {
+ @Inject extension Common;
+
+ override def attributes(GenNavigator it) '''
+ «generatedMemberComment()»
+ private String myGroupName;
+
+ «generatedMemberComment()»
+ private String myIcon;
+
+ «generatedMemberComment()»
+ private java.util.Collection<java.lang.Object> myChildren = new java.util.LinkedList<java.lang.Object>();
+ '''
+
+ override def addChildren(GenNavigator it) '''
+ «generatedMemberComment()»
+ public void addChildren(java.util.Collection<java.lang.Object> children) {
+ myChildren.addAll(children);
+ }
+ '''
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend new file mode 100644 index 00000000000..d75a69b321d --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others + * + * 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: + * Alexander Shatalin (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */ +package aspects.xpt.navigator
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator
+import xpt.Common
+
+@Singleton class NavigatorItem extends xpt.navigator.NavigatorItem { + @Inject extension Common; + + override def registerAdapterFactory(GenNavigator it) ''' + «generatedMemberComment()» + static { + @SuppressWarnings("rawtypes") + final Class[] supportedTypes = new Class[] { org.eclipse.gmf.runtime.notation.View.class, org.eclipse.emf.ecore.EObject.class }; + org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() { + + @SuppressWarnings("rawtypes") + public Object getAdapter(Object adaptableObject, Class adapterType) { + if (adaptableObject instanceof «qualifiedClassName(it)» && (adapterType == org.eclipse.gmf.runtime.notation.View.class || adapterType == org.eclipse.emf.ecore.EObject.class)) { + return ((«qualifiedClassName(it)») adaptableObject).getView(); + } + return null; + } + + @SuppressWarnings("rawtypes") + public Class[] getAdapterList() { + return supportedTypes; + } + }, «qualifiedClassName(it)».class); + } + ''' + +} diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend new file mode 100644 index 00000000000..bebc661cb99 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Dmitry Stadnik (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */ +package aspects.xpt.providers
+
+import com.google.inject.Inject +import xpt.diagram.Utils_qvto
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Common
+
+@Singleton class ElementTypes extends xpt.providers.ElementTypes { + + @Inject extension Common; + @Inject extension Utils_qvto; + + override def getElement(GenDiagram it) ''' + «generatedMemberComment('Returns \'type\' of the ecore object associated with the hint.\n')» + public static synchronized org.eclipse.emf.ecore.ENamedElement getElement(org.eclipse.core.runtime.IAdaptable hint) { + Object type = hint.getAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType.class); + if (elements == null) { + elements = new java.util.IdentityHashMap<org.eclipse.gmf.runtime.emf.type.core.IElementType, org.eclipse.emf.ecore.ENamedElement>(); + «IF domainDiagramElement != null»«bindUniqueIdentifierToNamedElement(domainDiagramElement, getUniqueIdentifier())»«ENDIF» + «FOR node : getAllNodes()» + «IF node.modelFacet != null»«bindUniqueIdentifierToNamedElement(node.modelFacet, node.getUniqueIdentifier())»«ENDIF» + «ENDFOR» + «FOR link : it.links» + «IF link.modelFacet != null»«bindUniqueIdentifierToNamedElement(link.modelFacet, link.getUniqueIdentifier())»«ENDIF» + «ENDFOR» + } + return (org.eclipse.emf.ecore.ENamedElement) elements.get(type); + } + ''' + + override def isKnownElementType(GenDiagram it) ''' + «generatedMemberComment» + public static synchronized boolean isKnownElementType(org.eclipse.gmf.runtime.emf.type.core.IElementType elementType) { + if (KNOWN_ELEMENT_TYPES == null) { + KNOWN_ELEMENT_TYPES = new java.util.HashSet<org.eclipse.gmf.runtime.emf.type.core.IElementType>(); + «FOR e : it.getAllTypedElements()» + «addKnownElementType(e)» + «ENDFOR» + } + return KNOWN_ELEMENT_TYPES.contains(elementType); + } + ''' + +} diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend new file mode 100644 index 00000000000..7392197e7d3 --- /dev/null +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend @@ -0,0 +1,92 @@ +/** + * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Dmitry Stadnik (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + */ +package aspects.xpt.providers
+
+import com.google.inject.Inject
+import com.google.inject.Singleton
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Common
+
+@Singleton class MarkerNavigationProvider extends xpt.providers.MarkerNavigationProvider { + @Inject extension Common; + + override def MarkerNavigationProvider(GenDiagram it) ''' + «copyright(editorGen)» + package «packageName(it)»; + + «generatedClassComment» + public class «className(it)» + extends org.eclipse.gmf.runtime.emf.ui.providers.marker.AbstractModelMarkerNavigationProvider { + + «generatedMemberComment» + public static final String MARKER_TYPE = + «editorGen.plugin.activatorQualifiedClassName».ID + ".«getValidationDiagnosticMarkerType()»"; «nonNLS(1)» + + «generatedMemberComment» + protected void doGotoMarker(org.eclipse.core.resources.IMarker marker) { + String elementId = marker.getAttribute(org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID, null); + if (elementId == null || !(getEditor() instanceof org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor)) { + return; + } + org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor editor = + (org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor) getEditor(); + java.util.Map<?, ?> editPartRegistry = editor.getDiagramGraphicalViewer().getEditPartRegistry(); + org.eclipse.emf.ecore.EObject targetView = editor.getDiagram().eResource().getEObject(elementId); + if (targetView == null) { + return; + } + org.eclipse.gef.EditPart targetEditPart = (org.eclipse.gef.EditPart) editPartRegistry.get(targetView); + if (targetEditPart != null) { + «getDiagramEditorUtilQualifiedClassName()».selectElementsInDiagram( + editor, java.util.Arrays.asList(new org.eclipse.gef.EditPart[] { targetEditPart })); + } + } + + «generatedMemberComment» + public static void deleteMarkers(org.eclipse.core.resources.IResource resource) { + try { + resource.deleteMarkers(MARKER_TYPE, true, org.eclipse.core.resources.IResource.DEPTH_ZERO); + } catch (org.eclipse.core.runtime.CoreException e) { + «editorGen.plugin.activatorQualifiedClassName».getInstance().logError( + "Failed to delete validation markers", e); «nonNLS(1)» + } + } + + «generatedMemberComment» + public static org.eclipse.core.resources.IMarker addMarker(org.eclipse.core.resources.IFile file, + String elementId, String location, String message, int statusSeverity) { + org.eclipse.core.resources.IMarker marker = null; + try { + marker = file.createMarker(MARKER_TYPE); + marker.setAttribute(org.eclipse.core.resources.IMarker.MESSAGE, message); + marker.setAttribute(org.eclipse.core.resources.IMarker.LOCATION, location); + marker.setAttribute(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID, elementId); + int markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_INFO; + if (statusSeverity == org.eclipse.core.runtime.IStatus.WARNING) { + markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_WARNING; + } else if (statusSeverity == org.eclipse.core.runtime.IStatus.ERROR || + statusSeverity == org.eclipse.core.runtime.IStatus.CANCEL) { + markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_ERROR; + } + marker.setAttribute(org.eclipse.core.resources.IMarker.SEVERITY, markerSeverity); + } catch (org.eclipse.core.runtime.CoreException e) { + «editorGen.plugin.activatorQualifiedClassName».getInstance().logError( + "Failed to create validation marker", e); «nonNLS(1)» + } + return marker; + } + «additions(it)» + } + ''' + +} diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ViewProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ViewProvider.xtend index e74feff79aa..41a8b400cb7 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ViewProvider.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ViewProvider.xtend @@ -233,6 +233,7 @@ import xpt.editor.VisualIDRegistry «generatedMemberComment» + @SuppressWarnings("unchecked") public org.eclipse.gmf.runtime.notation.Diagram createDiagram(org.eclipse.core.runtime.IAdaptable semanticAdapter, String diagramKind, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) { org.eclipse.gmf.runtime.notation.Diagram diagram = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDiagram();«/* FIXME instantiate diagramRunTimeClass instead */» diagram.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDiagramStyle()); @@ -418,7 +419,7 @@ import xpt.editor.VisualIDRegistry «ENDIF» «xptViewStyles.addCustomStyles(it, 'edge.getStyles()')» org.eclipse.gmf.runtime.notation.RelativeBendpoints bendpoints = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createRelativeBendpoints(); - java.util.ArrayList<org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint> points = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint>(2); + java.util.List<org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint> points = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint>(2); points.add(new org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint()); points.add(new org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint()); bendpoints.setPoints(points); diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend index d453d2599b9..a780cf252d5 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/extensions.xtend @@ -76,7 +76,7 @@ import xpt.providers.ShortcutsDecoratorProvider «tripleSpace(2)»</editpartProvider>
«tripleSpace(1)»</extension>
- «modelingAssistantProvider(it)»
+««« «modelingAssistantProvider(it)»
«tripleSpace(1)»<extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders" id="icon-provider">
«tripleSpace(2)»«xmlGeneratedTag»
@@ -138,25 +138,25 @@ import xpt.providers.ShortcutsDecoratorProvider «tripleSpace(1)»</extension>
'''
- override modelingAssistantProvider(GenDiagram it) '''
-
- <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders" id="modelassist-provider">
- «xmlGeneratedTag»
- <modelingAssistantProvider class="«getModelingAssistantProviderQualifiedClassName()»">
- <Priority name="«modelingAssistantProviderPriority»"/>
- <object class="«getEditPartQualifiedClassName()»" id="«getUniqueIdentifier()»"/>
- «FOR n :topLevelNodes»
- <object class="«n.getEditPartQualifiedClassName()»" id="«n.getUniqueIdentifier()»"/>
- «ENDFOR»
- «FOR n:childNodes»
- <object class="«n.getEditPartQualifiedClassName()»" id="«n.getUniqueIdentifier()»"/>
- «ENDFOR»
- <context elements="«getUniqueIdentifier()»,«FOR n : topLevelNodes SEPARATOR ','»«n.getUniqueIdentifier()»«ENDFOR»,«FOR n : childNodes SEPARATOR ','»«n.getUniqueIdentifier()»«ENDFOR»"/>
- </modelingAssistantProvider>
- </extension>
-
-
- '''
+// override modelingAssistantProvider(GenDiagram it) '''
+//
+// <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders" id="modelassist-provider">
+// «xmlGeneratedTag»
+// <modelingAssistantProvider class="«getModelingAssistantProviderQualifiedClassName()»">
+// <Priority name="«modelingAssistantProviderPriority»"/>
+// <object class="«getEditPartQualifiedClassName()»" id="«getUniqueIdentifier()»"/>
+// «FOR n :topLevelNodes»
+// <object class="«n.getEditPartQualifiedClassName()»" id="«n.getUniqueIdentifier()»"/>
+// «ENDFOR»
+// «FOR n:childNodes»
+// <object class="«n.getEditPartQualifiedClassName()»" id="«n.getUniqueIdentifier()»"/>
+// «ENDFOR»
+// <context elements="«getUniqueIdentifier()»,«FOR n : topLevelNodes SEPARATOR ','»«n.getUniqueIdentifier()»«ENDFOR»,«FOR n : childNodes SEPARATOR ','»«n.getUniqueIdentifier()»«ENDFOR»"/>
+// </modelingAssistantProvider>
+// </extension>
+//
+//
+// '''
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/utils/PrefsConstant_qvto.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/utils/PrefsConstant_qvto.xtend index 0c167cc2eb0..f155e545af4 100644 --- a/plugins/developer/org.eclipse.papyrus.def/xtend/utils/PrefsConstant_qvto.xtend +++ b/plugins/developer/org.eclipse.papyrus.def/xtend/utils/PrefsConstant_qvto.xtend @@ -10,21 +10,12 @@ * Thibault Landre (Atos Origin) - initial API and implementation * modified by Patrick Tessier(CEA LIST) */
-package utils -
+package utils
import com.google.inject.Singleton
-import org.eclipse.papyrus.codegen.utils.PapyrusGenConstants
@Singleton class PrefsConstant_qvto {
- def String getPreferenceConstantFileName() {
- return PapyrusGenConstants.getIDiagramPreferenceConstantJavaClassName()
- }
-
- def String getDiagramPreferencePageFileName(String diagramName) {
- return PapyrusGenConstants.getDiagramPreferencePageJavaClassName(diagramName)
- }
def String getDiagramPreferencePageCategory() {
return "org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams"
|