Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java')
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java147
1 files changed, 147 insertions, 0 deletions
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java
new file mode 100644
index 00000000000..8808bfe9e46
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Display the lis of nodes
+ */
+public class DisplayReport extends Action {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+
+ // Action should not be available on objects that are not GenCommonBase
+ if (eObject instanceof GenCommonBase) {
+ GenCommonBase genCommonBase = (GenCommonBase) eObject;
+ StringBuffer out = getTopNodes(genCommonBase.eResource());
+ Shell shell = new Shell(Display.getCurrent());
+
+ shell.setText("report");
+ shell.setLayout(new FillLayout());
+ Text text1 = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ text1.setText(out.toString());
+ shell.pack();
+ shell.open();
+
+ }
+
+ }
+ }
+
+ public StringBuffer getTopNodes(Resource gmfgen) {
+ StringBuffer out = new StringBuffer();
+ // Find the highest VisualID used by the chosen kind of node (given by clazz)
+ Iterator<EObject> it = gmfgen.getAllContents();
+ out = out.append("TopNode\n");
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenTopLevelNode) {
+ GenTopLevelNode genTopLevelNode = (GenTopLevelNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+
+ out = out.append("\nChildNode\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildNode) {
+ GenChildNode genTopLevelNode = (GenChildNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+
+ out = out.append("\nChildLabelNode\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildLabelNode) {
+ GenChildLabelNode genTopLevelNode = (GenChildLabelNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+
+ out = out.append("\nAffixedNode\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildSideAffixedNode) {
+ GenChildSideAffixedNode genTopLevelNode = (GenChildSideAffixedNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+ out = out.append("\nLink\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenLink) {
+ GenLink genTopLevelNode = (GenLink) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ if (genTopLevelNode.getModelFacet() instanceof TypeLinkModelFacet) {
+ out = out.append(((TypeLinkModelFacet) genTopLevelNode.getModelFacet()).getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+ }
+ return out;
+ }
+
+}

Back to the top