diff options
Diffstat (limited to 'plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/xpt/navigator/NavigatorLabelProvider.xtend')
-rw-r--r-- | plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/xpt/navigator/NavigatorLabelProvider.xtend | 221 |
1 files changed, 100 insertions, 121 deletions
diff --git a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/xpt/navigator/NavigatorLabelProvider.xtend b/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/xpt/navigator/NavigatorLabelProvider.xtend index d3c68988fe7..4c7437b726c 100644 --- a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/xpt/navigator/NavigatorLabelProvider.xtend +++ b/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.codegen.xtend/xtend/xpt/navigator/NavigatorLabelProvider.xtend @@ -1,17 +1,20 @@ -/******************************************************************************* - * Copyright (c) 2006, 2020 Borland Software Corporation, CEA LIST, Artal and others +/***************************************************************************** + * Copyright (c) 2006, 2010, 2013, 2021 Borland Software Corporation, CEA LIST, Artal and others * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * + * https://www.eclipse.org/legal/epl-2.0/ + * * SPDX-License-Identifier: EPL-2.0 * - * Contributors: - * Alexander Shatalin (Borland) - initial API and implementation - * Michael Golubev (Montages) - #386838 - migrate to Xtend2 - * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Bug 569174 + * Contributors: + * Alexander Shatalin (Borland) - initial API and implementation + * Michael Golubev (Montages) - #386838 - migrate to Xtend2 + * Modified by Patrick Tessier (CEA LIST) + * Emilien Perico (Atos Origin) - update template for GMF 2.2 compliance + * Etienne Allogo (ARTAL) - etienne.allogo@artal.fr - Bug 569174 : 1.4 Merge papyrus extension templates into codegen.xtend + * Etienne Allogo (ARTAL) - etienne.allogo@artal.fr - Bug 569174 : L1.2 clean up *****************************************************************************/ package xpt.navigator @@ -47,10 +50,11 @@ import org.eclipse.papyrus.gmf.codegen.gmfgen.GenTopLevelNode import plugin.Activator @com.google.inject.Singleton class NavigatorLabelProvider { + @com.google.inject.Inject extension xpt.CodeStyle; @com.google.inject.Inject extension xpt.Common; @com.google.inject.Inject extension xpt.Common_qvto; @com.google.inject.Inject extension xpt.navigator.Utils_qvto; - + @Inject Activator xptActivator; @Inject VisualIDRegistry xptVisualIDRegistry; @Inject ElementTypes xptElementTypes; @@ -58,58 +62,42 @@ import plugin.Activator @Inject MetaModel xptMetaModel; @Inject NavigatorGroup navigatorGroup; @Inject NavigatorItem xptNavigatorItem; - + def className(GenNavigator it) '''«it.labelProviderClassName»''' def packageName(GenNavigator it) '''«it.packageName»''' def qualifiedClassName(GenNavigator it) '''«packageName(it)».«className(it)»''' - + def fullPath(GenNavigator it) '''«qualifiedClassName(it)»''' - + def extendsList(GenNavigator it) '''extends org.eclipse.jface.viewers.LabelProvider''' def implementsList(GenNavigator it) '''implements org.eclipse.ui.navigator.ICommonLabelProvider, org.eclipse.jface.viewers.ITreePathLabelProvider''' def NavigatorLabelProvider(GenNavigator it) ''' «copyright(editorGen)» package «packageName(it)»; - + «generatedClassComment()» public class «className(it)» «extendsList(it)» «implementsList(it)» { - + «staticInitializer(it)» - «updateLabel(it)» - «getImage(it)» - «getViewImage(it)» - «getImageByKey(it)» - «getText(it)» - «getViewText(it)» - «FOR n : getNavigatorContainedNodes(it)» «getTextMethod(n)» «ENDFOR» - «getUnknownElementText(it)» - «getUnresolvedDomainElementProxyText(it)» - «constructor(it)» - «restoreState(it)» - «saveState(it)» - «getDescription(it)» - «isOwnView(it)» - - «additions(it)» } ''' @@ -123,6 +111,7 @@ import plugin.Activator def updateLabel(GenNavigator it) ''' «generatedMemberComment()» + «overrideI» public void updateLabel(org.eclipse.jface.viewers.ViewerLabel label, org.eclipse.jface.viewers.TreePath elementPath) { Object element = elementPath.getLastSegment(); if (element instanceof «xptNavigatorItem.qualifiedClassName(it)» && !isOwnView(((«xptNavigatorItem.qualifiedClassName(it)») element).getView())) { @@ -135,14 +124,11 @@ import plugin.Activator def getImage(GenNavigator it) ''' «generatedMemberComment()» + «overrideC» public org.eclipse.swt.graphics.Image getImage(Object element) { «getNavigatorGroupImage(it)» - «getNavigatorItemImage(it)» - «getAdaptableImage(it)» - - «getAdditionalInputImage(it)» return super.getImage(element); } ''' @@ -153,7 +139,7 @@ import plugin.Activator return «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().getBundledImage(group.getIcon()); } ''' - + def getNavigatorItemImage(GenNavigator it) ''' if (element instanceof «xptNavigatorItem.qualifiedClassName(it)») { «xptNavigatorItem.qualifiedClassName(it)» navigatorItem = («xptNavigatorItem.qualifiedClassName(it)») element; @@ -163,7 +149,7 @@ import plugin.Activator return getImage(navigatorItem.getView()); } ''' - + def getAdaptableImage(GenNavigator it) ''' «IF editorGen.diagram.generateShortcutIcon()» // Due to plugin.xml content will be called only for "own" views @@ -175,16 +161,14 @@ import plugin.Activator } «ENDIF» ''' - - def getAdditionalInputImage(GenNavigator it) '''''' - + def getViewImage(GenNavigator it) ''' «generatedMemberComment()» public org.eclipse.swt.graphics.Image getImage(org.eclipse.gmf.runtime.notation.View view) { «IF getNavigatorContainedNodes(it).notEmpty» switch («xptVisualIDRegistry.getVisualIDMethodCall(editorGen.diagram)»(view)) { «FOR n : getNavigatorContainedNodes(it)» - «IF n != null» + «IF n !== null » «caseImage(n)» «ENDIF» «ENDFOR» @@ -193,12 +177,12 @@ import plugin.Activator return getImage(«unknownElementKey()», null); «nonNLS(1)» } ''' - + def caseImage(GenCommonBase it) ''' case «VisualIDRegistry::visualID(it)»: - return getImage("«key()»", «IF null != elementType»«xptElementTypes.accessElementType(it)»«ELSE»null«ENDIF»); «nonNLS(1)» + return getImage("«key()»", «IF null !== elementType »«xptElementTypes.accessElementType(it)»«ELSE»null«ENDIF»); «nonNLS(1)» ''' - + def getImageByKey(GenNavigator it) ''' «generatedMemberComment()» private org.eclipse.swt.graphics.Image getImage(String key, org.eclipse.gmf.runtime.emf.type.core.IElementType elementType) { @@ -208,7 +192,7 @@ import plugin.Activator image = «xptElementTypes.qualifiedClassName(editorGen.diagram)».getImage(elementType); imageRegistry.put(key, image); } - + if (image == null) { image = imageRegistry.get(«notFoundElementKey()»); «nonNLS(1)» imageRegistry.put(key, image); @@ -216,28 +200,25 @@ import plugin.Activator return image; } ''' - + def dispatch CharSequence getText(GenNavigator it) ''' «generatedMemberComment()» + «overrideC» public String getText(Object element) { «getNavigatorGroupText(it)» - «getNavigatorItemText(it)» - «getAdaptableText(it)» - - «getAdditionalInputText(it)» return super.getText(element); } ''' - + def getNavigatorGroupText(GenNavigator it) ''' if (element instanceof «navigatorGroup.qualifiedClassName(it)») { «navigatorGroup.qualifiedClassName(it)» group = («navigatorGroup.qualifiedClassName(it)») element; return group.getGroupName(); } ''' - + def getNavigatorItemText(GenNavigator it) ''' if (element instanceof «xptNavigatorItem.qualifiedClassName(it)») { «xptNavigatorItem.qualifiedClassName(it)» navigatorItem = («xptNavigatorItem.qualifiedClassName(it)») element; @@ -247,7 +228,7 @@ import plugin.Activator return getText(navigatorItem.getView()); } ''' - + def getAdaptableText(GenNavigator it) ''' «IF editorGen.diagram.generateShortcutIcon()» // Due to plugin.xml content will be called only for "own" views @@ -259,9 +240,7 @@ import plugin.Activator } «ENDIF» ''' - - def getAdditionalInputText(GenNavigator it) '''''' - + def getViewText(GenNavigator it) ''' «generatedMemberComment()» public String getText(org.eclipse.gmf.runtime.notation.View view) { @@ -278,37 +257,37 @@ import plugin.Activator return getUnknownElementText(view); } ''' - + def caseText(GenCommonBase it) ''' case «VisualIDRegistry::visualID(it)»: return «getTextMethodName(it)»(view); ''' - - @MetaDef def getTextMethodName(GenCommonBase it) '''get«getUniqueIdentifier()»Text''' - + + @MetaDef def getTextMethodName(GenCommonBase it) '''get«stringUniqueIdentifier»Text''' + def getTextMethod(GenCommonBase it) ''' «generatedMemberComment()» private String «getTextMethodName(it)»(org.eclipse.gmf.runtime.notation.View view) { «getText(it)» } ''' - + def dispatch CharSequence getText(GenCommonBase it) '''«ERROR('Incorrect GenCommonBase: ' + it)»''' - + def dispatch CharSequence getText(GenDiagram it) ''' «getLabelFeatureText(it, it.domainDiagramElement)» ''' - + def dispatch CharSequence getText(GenChildLabelNode it) ''' «getDiagramLabelText(it, it, labelModelFacet)» ''' - + def dispatch CharSequence getText(GenLinkLabel it) '''«getDiagramLabelText(it, link, modelFacet)»''' def dispatch CharSequence getText(GenNodeLabel it) '''«getDiagramLabelText(it, node, modelFacet)»''' - + def dispatch CharSequence getText(GenNode it) ''' «IF labels.empty» - «IF null != modelFacet» + «IF null !== modelFacet » «getLabelFeatureText(it, modelFacet.metaClass)» «ELSE» «returnEmptyString()» @@ -317,10 +296,10 @@ import plugin.Activator «getDiagramLabelText(it, labels)» «ENDIF» ''' - + def dispatch CharSequence getText(GenLink it) ''' «IF it.labels.empty» - «IF null != modelFacet» + «IF null !== modelFacet » «getText(it, modelFacet)» «ELSE» «returnEmptyString()» @@ -329,29 +308,29 @@ import plugin.Activator «getDiagramLabelText(it, it.labels)» «ENDIF» ''' - + def CharSequence getDiagramLabelText(GenCommonBase it, Iterable<? extends GenLabel> labels) ''' «IF labels.empty» «ERROR('Empty list of labels passed')» «ENDIF» «getDiagramLabelText(labels.head, it, labels.head.modelFacet)» ''' - + def dispatch CharSequence getText(GenLink it, LinkModelFacet modelFacet) ''' «returnEmptyString()» ''' - + def dispatch CharSequence getText(GenLink it, TypeLinkModelFacet modelFacet) ''' «getLabelFeatureText(it, modelFacet.metaClass)» ''' - + def dispatch CharSequence getText(GenCompartment it) ''' return "«title»"; «nonNLS(1)» ''' - + /** * FIXME: [MG] Refactor. Need to reuse parts of TextAware.xpt - * + * * it - aka hintHolder, visual element to present a text * elementTypeHolder - model element being displayed * modelFacet - may be null @@ -361,129 +340,129 @@ import plugin.Activator if (parser != null) { return parser.getPrintString(new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(view.getElement() != null ? view.getElement() : view), org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions.NONE.intValue()); } else { - «xptActivator.qualifiedClassName(getDiagram().editorGen.plugin)».getInstance().logError("Parser was not found for label " + «visualID»); «nonNLS(1)» + «xptActivator.qualifiedClassName(getDiagram().editorGen.plugin)».getInstance().logError("Parser was not found for label «stringVisualID»"); «nonNLS(1)» «returnEmptyString()» } ''' - - + def getLabelFeatureText(GenCommonBase it, GenClass genClass) ''' - «IF null != genClass && null != genClass.labelFeature» + «IF null !== genClass && null !== genClass.labelFeature » «xptMetaModel.DeclareAndAssign(genClass, 'domainModelElement', 'view.getElement()')» if (domainModelElement != null) { - return «IF !isStringFeature(genClass.labelFeature)»String.valueOf(«ENDIF»«xptMetaModel.getFeatureValue(genClass.labelFeature, 'domainModelElement', genClass)»«IF !isStringFeature(genClass.labelFeature)»)«ENDIF»; + return «IF !isStringFeature(genClass.labelFeature)»String.valueOf(«ENDIF»UMLLabelInternationalization.getInstance().getLabel(domainModelElement)«IF !isStringFeature(genClass.labelFeature)»)«ENDIF»; } else { - «xptActivator.qualifiedClassName(getDiagram().editorGen.plugin)».getInstance().logError("No domain element for view with visualID = " + «visualID»); «nonNLS(1)» + «xptActivator.qualifiedClassName(getDiagram().editorGen.plugin)».getInstance().logError("No domain element for view with visualID = «stringVisualID»"); «nonNLS(1)» «returnEmptyString()» } «ELSE» «returnEmptyString()» «ENDIF» ''' - + def returnEmptyString() ''' return ""; «nonNLS(1)» ''' - + def getUnknownElementText(GenNavigator it) ''' «generatedMemberComment()» private String getUnknownElementText(org.eclipse.gmf.runtime.notation.View view) { - return "<UnknownElement Visual_ID = " + view.getType() + ">"; «nonNLS(1)» «nonNLS(2)» + return "<UnknownElement Visual_ID = " + view.getType() + ">"; «nonNLS(1)» «nonNLS(2)» } ''' - + def getUnresolvedDomainElementProxyText(GenNavigator it) ''' «generatedMemberComment()» private String getUnresolvedDomainElementProxyText(org.eclipse.gmf.runtime.notation.View view) { - return "<Unresolved domain element Visual_ID = " + view.getType() + ">"; «nonNLS(1)» «nonNLS(2)» + return "<Unresolved domain element Visual_ID = " + view.getType() + ">"; «nonNLS(1)» «nonNLS(2)» } ''' - + def constructor(GenNavigator it) ''' «generatedMemberComment()» + «overrideI» public void init(org.eclipse.ui.navigator.ICommonContentExtensionSite aConfig) { } ''' - + def restoreState(GenNavigator it) ''' «generatedMemberComment()» + «overrideI» public void restoreState(org.eclipse.ui.IMemento aMemento) { } ''' - + def saveState(GenNavigator it) ''' «generatedMemberComment()» + «overrideI» public void saveState(org.eclipse.ui.IMemento aMemento) { } ''' - + def getDescription(GenNavigator it) ''' «generatedMemberComment()» + «overrideI» public String getDescription(Object anElement) { return null; } ''' - + def isOwnView(GenNavigator it) ''' «generatedMemberComment()» private boolean isOwnView(org.eclipse.gmf.runtime.notation.View view) { return «VisualIDRegistry::modelID(editorGen.diagram)».equals(«xptVisualIDRegistry.getModelIDMethodCall(editorGen.diagram)»(view)); } ''' - + def unknownElementKey() '''"«commonKeyPrefix()»UnknownElement"''' - + def notFoundElementKey() '''"«commonKeyPrefix()»ImageNotFound"''' - + def dispatch CharSequence key(GenCommonBase it) '''«ERROR('Incorrect GenCommonBase: ' + it)»''' - - def dispatch CharSequence key(GenDiagram it) '''«commonKeyPrefix()»Diagram?«IF it.domainDiagramElement != null»«keyFragment(it.domainDiagramElement)»«ENDIF»''' - - def dispatch CharSequence key(GenNode it) '''«commonKeyPrefix()»«keyFragment(it)»«IF null != modelFacet»«keyFragment(modelFacet.metaClass)»«ELSE»«keyFragment(viewmap)»«ENDIF»''' - + + def dispatch CharSequence key(GenDiagram it) '''«commonKeyPrefix()»Diagram?«IF it.domainDiagramElement !== null »«keyFragment(it.domainDiagramElement)»«ENDIF»''' + + def dispatch CharSequence key(GenNode it) '''«commonKeyPrefix()»«keyFragment(it)»«IF null !== modelFacet »«keyFragment(modelFacet.metaClass)»«ELSE»«keyFragment(viewmap)»«ENDIF»''' + def dispatch CharSequence keyFragment(GenNode it) '''Node?''' - + def dispatch CharSequence keyFragment(GenTopLevelNode it) '''TopLevelNode?''' - - def dispatch CharSequence key(GenLink it) '''«commonKeyPrefix()»Link?«IF null != modelFacet»«keyFragment(modelFacet)»«ELSE»«keyFragment(viewmap)»«ENDIF»''' - + + def dispatch CharSequence key(GenLink it) '''«commonKeyPrefix()»Link?«IF null !== modelFacet »«keyFragment(modelFacet)»«ELSE»«keyFragment(viewmap)»«ENDIF»''' + def dispatch CharSequence keyFragment(LinkModelFacet it) '''«ERROR('Incorrect link model facet passed: ' + it)»''' - + def dispatch CharSequence keyFragment(TypeLinkModelFacet it) '''«keyFragment(metaClass)»''' - + def dispatch CharSequence keyFragment(FeatureLinkModelFacet it) '''«keyFragment(metaFeature)»''' - + def dispatch CharSequence key(GenCompartment it) '''«key(node)»?Compartment?«title»''' - + def dispatch CharSequence key(GenLabel it) '''«ERROR('Incorrect GenLabel:' + it)»''' - + def dispatch CharSequence key(GenNodeLabel it) '''«key(node)»«keyFragment(it)»''' - + def dispatch CharSequence key(GenLinkLabel it) '''«key(link)»«keyFragment(it)»''' - + def dispatch CharSequence keyFragment(GenLabel it) '''?Label?«keyFragment(it.modelFacet, it)»''' - + def dispatch CharSequence keyFragment(GenClass it)'''«genPackage.getEcorePackage.nsURI»?«ecoreClass.name»''' - + def dispatch CharSequence keyFragment(GenFeature it)'''«keyFragment(genClass)»?«ecoreFeature.name»''' - + def dispatch CharSequence keyFragment(Viewmap it) '''''' - + def dispatch CharSequence keyFragment(FigureViewmap it) '''«figureQualifiedClassName»''' - + def dispatch CharSequence keyFragment(InnerClassViewmap it) '''«className»''' - + def dispatch CharSequence keyFragment(ParentAssignedViewmap it) '''«figureQualifiedClassName»''' - + def dispatch CharSequence keyFragment(LabelModelFacet it, GenLabel label) '''«ERROR('Incorrect label model facet: ' + it)»''' - + def dispatch CharSequence keyFragment(FeatureLabelModelFacet it, GenLabel label) '''«FOR f:metaFeatures»«keyFragment(f)»«ENDFOR»''' - + def dispatch CharSequence keyFragment(DesignLabelModelFacet it, GenLabel label) '''«keyFragment(label.viewmap)»''' - + def commonKeyPrefix() '''Navigator?''' - - def additions(GenNavigator it) '''''' - } |