added a new feature to import ecore models directly into the runtime registry
# Conflicts:
# eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/report/ClassInfoReportGenerator.java
# eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/register_ecores.png b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/register_ecores.png
new file mode 100644
index 0000000..28c2175
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/icons/register_ecores.png
Binary files differ
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/RegisterECOREfilesAction.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/RegisterECOREfilesAction.java
new file mode 100644
index 0000000..bc2d78d
--- /dev/null
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/utils/RegisterECOREfilesAction.java
@@ -0,0 +1,114 @@
+package org.eclipse.app4mc.emfutils.metamodelviewer.utils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
+import org.eclipse.jface.viewers.ComboViewer;
+
+public class RegisterECOREfilesAction {
+
+ @SuppressWarnings({ "unused", "rawtypes", "unchecked" })
+ public static ResourceSet loadECOREs(List<String> ecoreFiles, ComboViewer combo_ecore) throws IOException {
+
+ final Registry master_ePackageRegistry = EPackage.Registry.INSTANCE;
+
+ System.out.println(master_ePackageRegistry.size());
+
+ ResourceSet metaDataResourceSet = new ResourceSetImpl();
+
+ if(metaDataResourceSet instanceof ResourceSetImpl){
+ ((ResourceSetImpl) metaDataResourceSet).setURIResourceMap(new HashMap<>());
+ }
+ Map<String, Object> extensionToFactoryMap = metaDataResourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap();
+
+ extensionToFactoryMap.put("ecore", new EcoreResourceFactoryImpl());
+
+// extensionToFactoryMap.put("xmi", new XMIResourceFactoryImpl());
+
+ // resourceSet.getURIConverter().getURIMap().putAll(EcorePlugin.computePlatformURIMap(true));
+
+ EcorePackage ecorePackage = EcorePackage.eINSTANCE;
+
+ // register Ecore model in resourceSet registry
+ Map packageRegistry = metaDataResourceSet.getPackageRegistry();
+
+ packageRegistry.put("http://www.eclipse.org/emf/2002/Ecore",
+ EcorePackage.eINSTANCE);
+
+
+ for (String ecorePath : ecoreFiles) {
+
+ EPackage loadEPackage = loadEPackage(ecorePath, metaDataResourceSet);
+
+ if(packageRegistry.containsKey(loadEPackage.getNsURI())){
+ Object object = packageRegistry.get(loadEPackage.getNsURI());
+
+ if(object instanceof EPackage){
+ ((EPackage)object).getESubpackages().add(loadEPackage);
+ }
+ }else{
+ packageRegistry.put(loadEPackage.getNsURI(), loadEPackage);
+
+ }
+
+// master_ePackageRegistry.put(loadEPackage.getNsURI(), loadEPackage);
+
+ }
+
+ EcoreUtil.resolveAll(metaDataResourceSet);
+
+ /*-for sorting */
+
+ ArrayList arrayList = new ArrayList(master_ePackageRegistry.keySet());
+
+ Collections.sort(arrayList);
+
+ arrayList.addAll(0, metaDataResourceSet.getPackageRegistry().keySet());
+
+ master_ePackageRegistry.putAll(metaDataResourceSet.getPackageRegistry());
+
+
+ combo_ecore.setInput(arrayList.toArray());
+
+
+ return metaDataResourceSet;
+ }
+
+ private static EPackage loadEPackage(String path, ResourceSet metaResourceSet) throws IOException {
+
+
+// path = path.contains("file:////") ? path : "file:////" + getCanonicalPathFullPath(path);
+ path = getCanonicalPathFullPath(path);
+
+// Resource metaResource = metaResourceSet.getResource(URI.createURI(path), true);
+ Resource metaResource = metaResourceSet.getResource(URI.createFileURI(path), true);
+
+ metaResource.load(Collections.EMPTY_MAP);
+
+ EObject eObject = metaResource.getContents().get(0);
+
+ return (EPackage) eObject;
+
+ }
+
+ private static String getCanonicalPathFullPath(String path) throws IOException {
+
+ File file = new File(path);
+ return file.getCanonicalPath();
+ }
+}
diff --git a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java
index 23413b4..b2dee70 100644
--- a/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java
+++ b/eclipse-tools/emf-graphical-viewer/plugins/org.eclipse.app4mc.emfutils.metamodelviewer/src/org/eclipse/app4mc/emfutils/metamodelviewer/views/MetaModelExplorerView.java
@@ -10,16 +10,19 @@
*******************************************************************************/
package org.eclipse.app4mc.emfutils.metamodelviewer.views;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
-import java.util.TreeSet;
import org.eclipse.app4mc.emfutils.metamodelviewer.base.Activator;
import org.eclipse.app4mc.emfutils.metamodelviewer.dialogs.SelectedElementContentDialog;
import org.eclipse.app4mc.emfutils.metamodelviewer.preferences.MetaModelViewerPreferenceConstants;
import org.eclipse.app4mc.emfutils.metamodelviewer.utils.ElementSearchPatternFilter;
import org.eclipse.app4mc.emfutils.metamodelviewer.utils.PluginUtils;
+import org.eclipse.app4mc.emfutils.metamodelviewer.utils.RegisterECOREfilesAction;
import org.eclipse.app4mc.emfutils.metamodelviewer.views.providers.ViewContentProvider;
import org.eclipse.app4mc.emfutils.metamodelviewer.views.providers.ViewLabelProvider;
import org.eclipse.emf.ecore.EObject;
@@ -33,9 +36,13 @@
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.sphinx.emf.metamodel.IMetaModelDescriptor;
@@ -47,6 +54,8 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
@@ -58,363 +67,405 @@
public class MetaModelExplorerView extends ViewPart {
+ /**
+ * The ID of the view as specified by the extension.
+ */
+ public static final String ID = "org.eclipse.app4mc.emfutils.metamodelviewer.views.MetaModel-ExplorerView";
+ private static int id_Counter = 1;
+ private TreeViewer viewer;
+ private Action filterClassesAction;
+ private Action registerEcoreFilesAction;
+ private Action filterAttributesAction;
+ private Action cloneViewAction;
+ private boolean filterForEClassifiersBoolean = true;
+ private boolean filterForAttributesBoolean;
+ private ElementSearchPatternFilter patternFilter;
+ private ComboViewer combo_ecore;
- /**
- * The ID of the view as specified by the extension.
- */
- public static final String ID = "org.eclipse.app4mc.emfutils.metamodelviewer.views.MetaModel-ExplorerView";
+ /**
+ * The constructor.
+ */
+ public MetaModelExplorerView() {
+ }
- private TreeViewer viewer;
+ /**
+ * This is a callback that will allow us to create the viewer and initialize it.
+ */
+ @Override
+ public void createPartControl(final Composite parent) {
+ parent.setLayout(new GridLayout(2, false));
- private Action filterClassesAction;
+ final Label label = new Label(parent, 0);
- private Action filterAttributesAction;
+ label.setText("SPHINX Registry");
- private Action cloneViewAction;
+ label.setLayoutData(new GridData());
- private boolean filterForEClassifiersBoolean = true;
+ final Combo combo = new Combo(parent,
+ SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
- private boolean filterForAttributesBoolean;
+ final Label label_ecore = new Label(parent, 0);
- private ElementSearchPatternFilter patternFilter;
+ label_ecore.setText("ECORE Registry");
- private static int id_Counter=1;
+ label_ecore.setLayoutData(new GridData());
- /**
- * The constructor.
- */
- public MetaModelExplorerView() {
- }
+ combo_ecore = new ComboViewer(parent,
+ SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
- /**
- * This is a callback that will allow us to create the viewer and initialize it.
- */
- @Override
- public void createPartControl(final Composite parent) {
+ final Registry ePackageRegistry = EPackage.Registry.INSTANCE;
- parent.setLayout(new GridLayout(2, false));
+ final Set<String> keySet = ePackageRegistry.keySet();
+ // for (final String string : new TreeSet<String>(keySet)) {
+ //
+ // combo_ecore.add(string);
+ // }
+ combo_ecore.setContentProvider(ArrayContentProvider.getInstance());
+ combo_ecore.setLabelProvider(new LabelProvider() {
+ @Override
+ public String getText(Object element) {
+ return super.getText(element);
+ }
+ });
- final Label label = new Label(parent, 0);
+ ArrayList<String> arrayList = new ArrayList<String>(keySet);
- label.setText("SPHINX Registry");
+ Collections.sort(arrayList);
- label.setLayoutData(new GridData());
+ combo_ecore.setInput(arrayList.toArray());
- final Combo combo = new Combo(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
+ combo_ecore.getCombo().addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(final SelectionEvent e) {
+ combo.deselectAll();
- final Label label_ecore = new Label(parent, 0);
+ final String text = combo_ecore.getCombo().getText();
- label_ecore.setText("ECORE Registry");
+ final EPackage ePackage = ePackageRegistry.getEPackage(text);
- label_ecore.setLayoutData(new GridData());
+ getViewer().setInput(ePackage);
+ }
+ });
- final Combo combo_ecore = new Combo(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.READ_ONLY);
+ final List<IMetaModelDescriptor> descriptors = MetaModelDescriptorRegistry.INSTANCE.getDescriptors(MetaModelDescriptorRegistry.ANY_MM);
- final Registry ePackageRegistry = EPackage.Registry.INSTANCE;
+ for (final IMetaModelDescriptor iMetaModelDescriptor : descriptors) {
+ final String identifier = iMetaModelDescriptor.getIdentifier();
+ combo.add(identifier);
+ }
- final Set<String> keySet = ePackageRegistry.keySet();
+ combo.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(final SelectionEvent e) {
+ combo_ecore.getCombo().deselectAll();
- for (final String string : new TreeSet<String>(keySet)) {
+ final String text = combo.getText();
- combo_ecore.add(string);
- }
+ final IMetaModelDescriptor descriptor = MetaModelDescriptorRegistry.INSTANCE.getDescriptor(text);
+ getViewer().setInput(descriptor);
+ }
+ });
- combo_ecore.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(final SelectionEvent e) {
+ this.patternFilter = new ElementSearchPatternFilter(this.filterForEClassifiersBoolean,
+ this.filterForAttributesBoolean);
- combo.deselectAll();
+ final FilteredTree filteredTree = new FilteredTree(parent,
+ SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
+ this.patternFilter, true);
+ filteredTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true,
+ 2, 0));
- final String text = combo_ecore.getText();
+ this.viewer = filteredTree.getViewer();
- final EPackage ePackage = ePackageRegistry.getEPackage(text);
+ final GridData gridLayoutData = new GridData();
+ gridLayoutData.horizontalSpan = 2;
+ gridLayoutData.grabExcessHorizontalSpace = true;
+ gridLayoutData.grabExcessVerticalSpace = true;
+ gridLayoutData.horizontalAlignment = GridData.FILL;
+ gridLayoutData.verticalAlignment = GridData.FILL;
- getViewer().setInput(ePackage);
+ this.viewer.getTree()
+ .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true,
+ 2, 0));
- }
- });
+ this.viewer.setContentProvider(new ViewContentProvider());
+ this.viewer.setInput(getViewSite());
- final List<IMetaModelDescriptor> descriptors = MetaModelDescriptorRegistry.INSTANCE
- .getDescriptors(MetaModelDescriptorRegistry.ANY_MM);
+ this.viewer.setLabelProvider(new ViewLabelProvider());
+ getSite().setSelectionProvider(this.viewer);
- for (final IMetaModelDescriptor iMetaModelDescriptor : descriptors) {
+ makeActions();
- final String identifier = iMetaModelDescriptor.getIdentifier();
- combo.add(identifier);
- }
+ hookContextMenu();
- combo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(final SelectionEvent e) {
+ hookDoubleClickAction();
- combo_ecore.deselectAll();
+ contributeToActionBars();
+ }
- final String text = combo.getText();
+ public TreeViewer getViewer() {
+ return this.viewer;
+ }
- final IMetaModelDescriptor descriptor = MetaModelDescriptorRegistry.INSTANCE.getDescriptor(text);
+ private void hookContextMenu() {
+ final MenuManager menuMgr = new MenuManager("#PopupMenu") {
+ @Override
+ public IContributionItem[] getItems() {
+ IContributionItem[] menuItems = super.getItems();
- getViewer().setInput(descriptor);
+ final List<IContributionItem> filteredContributionItems = new LinkedList<IContributionItem>();
- }
- });
+ for (final IContributionItem contributionItem : menuItems) {
+ if ((contributionItem != null) &&
+ ((contributionItem.getId() != null) &&
+ (!(contributionItem.getId()
+ .startsWith("org.eclipse.emf.ecore.editor.CreateDynamicInstance"))))) {
+ filteredContributionItems.add(contributionItem);
+ }
+ }
+ menuItems = new IContributionItem[filteredContributionItems.size()];
- this.patternFilter = new ElementSearchPatternFilter(this.filterForEClassifiersBoolean,
- this.filterForAttributesBoolean);
+ return filteredContributionItems.toArray(menuItems);
+ }
+ };
- final FilteredTree filteredTree = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
- this.patternFilter, true);
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(new IMenuListener() {
+ @Override
+ public void menuAboutToShow(final IMenuManager manager) {
+ MetaModelExplorerView.this.fillContextMenu(manager);
+ }
+ });
- filteredTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 0));
+ final Menu menu = menuMgr.createContextMenu(this.viewer.getControl());
+ this.viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, this.viewer);
+ }
- this.viewer = filteredTree.getViewer();
+ private void contributeToActionBars() {
+ final IActionBars bars = getViewSite().getActionBars();
+ fillLocalPullDown(bars.getMenuManager());
+ fillLocalToolBar(bars.getToolBarManager());
+ }
- final GridData gridLayoutData = new GridData();
- gridLayoutData.horizontalSpan = 2;
- gridLayoutData.grabExcessHorizontalSpace = true;
- gridLayoutData.grabExcessVerticalSpace = true;
- gridLayoutData.horizontalAlignment = GridData.FILL;
- gridLayoutData.verticalAlignment = GridData.FILL;
+ private void fillLocalPullDown(final IMenuManager manager) {
+ manager.add(this.filterClassesAction);
+ manager.add(new Separator());
+ manager.add(this.filterAttributesAction);
+ manager.add(new Separator());
+ manager.add(this.cloneViewAction);
+ }
- this.viewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 0));
+ void fillContextMenu(final IMenuManager manager) {
+ // manager.add(this.filterClassesAction);
+ // manager.add(this.filterAttributesAction);
+ // manager.add(new Separator());
+ // this.drillDownAdapter.addNavigationActions(manager);
+ // Other plug-ins can contribute there actions here
+ // manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ }
- this.viewer.setContentProvider(new ViewContentProvider());
+ private void fillLocalToolBar(final IToolBarManager manager) {
+ manager.add(this.filterClassesAction);
+ manager.add(this.filterAttributesAction);
+ manager.add(new Separator());
- this.viewer.setInput(getViewSite());
+ manager.add(this.registerEcoreFilesAction);
+ }
- this.viewer.setLabelProvider(new ViewLabelProvider());
+ private void makeActions() {
+ this.filterClassesAction = new Action("Filter for EClassifers",
+ IAction.AS_CHECK_BOX) {
+ @Override
+ public void run() {
+ if (isChecked()) {
+ setFilterForEClassifiersBoolean(true);
+ } else {
+ setFilterForEClassifiersBoolean(false);
+ }
+ }
+ };
- getSite().setSelectionProvider(this.viewer);
+ this.filterClassesAction.setEnabled(true);
- makeActions();
+ this.filterClassesAction.setToolTipText("Filter for EClassifiers");
+ this.filterClassesAction.setImageDescriptor(PluginUtils.getImageDescriptor(
+ "icons/class_obj.png"));
- hookContextMenu();
+ this.filterAttributesAction = new Action("Filter for Attributes",
+ IAction.AS_CHECK_BOX) {
+ @Override
+ public void run() {
+ if (isChecked()) {
+ setFilterForAttributesBoolean(true);
+ } else {
+ setFilterForAttributesBoolean(false);
+ }
+ }
+ };
+ this.filterAttributesAction.setToolTipText("Filter for Attributes");
+ this.filterAttributesAction.setImageDescriptor(PluginUtils.getImageDescriptor(
+ "icons/prop_ps.gif"));
- hookDoubleClickAction();
+ this.cloneViewAction = new Action("Clone View", IAction.AS_CHECK_BOX) {
+ @Override
+ public void run() {
+ try {
+ getViewSite().getPage()
+ .showView(ID, id_Counter++ + "",
+ IWorkbenchPage.VIEW_VISIBLE);
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+ this.cloneViewAction.setToolTipText("Clone View");
+ this.cloneViewAction.setImageDescriptor(PluginUtils.getImageDescriptor(
+ "icons/prop_ps.gif"));
+
- contributeToActionBars();
- }
+ this.registerEcoreFilesAction = new Action("Register ECORE files") {
+ @Override
+ public void run() {
+ //TODO: add implementation for CSV report generation
+ Object input = viewer.getInput();
+ FileDialog dialog = new FileDialog(Display.getDefault()
+ .getActiveShell(),
+ SWT.OPEN | SWT.MULTI);
- public TreeViewer getViewer() {
- return this.viewer;
- }
-
- private void hookContextMenu() {
- final MenuManager menuMgr = new MenuManager("#PopupMenu") {
- @Override
- public IContributionItem[] getItems() {
-
- IContributionItem[] menuItems = super.getItems();
-
- final List<IContributionItem> filteredContributionItems = new LinkedList<IContributionItem>();
-
- for (final IContributionItem contributionItem : menuItems) {
- if (contributionItem != null && (contributionItem.getId() != null && (!(contributionItem.getId()
- .startsWith("org.eclipse.emf.ecore.editor.CreateDynamicInstance"))))) {
- filteredContributionItems.add(contributionItem);
- }
- }
- menuItems = new IContributionItem[filteredContributionItems.size()];
- return filteredContributionItems.toArray(menuItems);
-
- }
- };
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- @Override
- public void menuAboutToShow(final IMenuManager manager) {
- MetaModelExplorerView.this.fillContextMenu(manager);
- }
- });
- final Menu menu = menuMgr.createContextMenu(this.viewer.getControl());
- this.viewer.getControl().setMenu(menu);
- getSite().registerContextMenu(menuMgr, this.viewer);
- }
-
- private void contributeToActionBars() {
- final IActionBars bars = getViewSite().getActionBars();
- fillLocalPullDown(bars.getMenuManager());
- fillLocalToolBar(bars.getToolBarManager());
- }
-
- private void fillLocalPullDown(final IMenuManager manager) {
- manager.add(this.filterClassesAction);
- manager.add(new Separator());
- manager.add(this.filterAttributesAction);
- manager.add(new Separator());
- manager.add(this.cloneViewAction);
- }
-
- void fillContextMenu(final IMenuManager manager) {
- // manager.add(this.filterClassesAction);
- // manager.add(this.filterAttributesAction);
- // manager.add(new Separator());
- // this.drillDownAdapter.addNavigationActions(manager);
- // Other plug-ins can contribute there actions here
- // manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- private void fillLocalToolBar(final IToolBarManager manager) {
- manager.add(this.filterClassesAction);
- manager.add(this.filterAttributesAction);
- manager.add(new Separator());
- }
-
- private void makeActions() {
- this.filterClassesAction = new Action("Filter for EClassifers", IAction.AS_CHECK_BOX) {
- @Override
- public void run() {
-
- if (isChecked()) {
- setFilterForEClassifiersBoolean(true);
- }
- else {
- setFilterForEClassifiersBoolean(false);
- }
- }
- };
-
- this.filterClassesAction.setEnabled(true);
-
- this.filterClassesAction.setToolTipText("Filter for EClassifiers");
- this.filterClassesAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/class_obj.png"));
-
- this.filterAttributesAction = new Action("Filter for Attributes", IAction.AS_CHECK_BOX) {
- @Override
- public void run() {
- if (isChecked()) {
- setFilterForAttributesBoolean(true);
-
- }
- else {
- setFilterForAttributesBoolean(false);
-
-
- }
-
- }
- };
- this.filterAttributesAction.setToolTipText("Filter for Attributes");
- this.filterAttributesAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/prop_ps.gif"));
-
-
- this.cloneViewAction = new Action("Clone View", IAction.AS_CHECK_BOX) {
- @Override
- public void run() {
- try {
- getViewSite().getPage().showView(ID,id_Counter+++"", IWorkbenchPage.VIEW_VISIBLE);
- } catch (PartInitException e) {
- e.printStackTrace();
- }
- }
- };
- this.cloneViewAction.setToolTipText("Clone View");
- this.cloneViewAction.setImageDescriptor(PluginUtils.getImageDescriptor("icons/prop_ps.gif"));
-
- }
-
- private void hookDoubleClickAction() {
- this.viewer.addDoubleClickListener(new IDoubleClickListener() {
- @Override
- public void doubleClick(final DoubleClickEvent event) {
- final ISelection selection = event.getSelection();
-
- if (selection instanceof TreeSelection) {
- final Object firstElement = ((TreeSelection) selection).getFirstElement();
- if (firstElement instanceof EObject) {
-
- Shell parentShell = null;
-
- String displayDialogStyle=(Activator.getDefault().getPreferenceStore().getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY));
-
- if(displayDialogStyle !=null && displayDialogStyle.equals(MetaModelViewerPreferenceConstants.V_ON_TOP)){
- parentShell=new Shell(SWT.ON_TOP);
- }else{
- parentShell=new Shell();
- }
-
-
-
- // final String name = ((firstElement instanceof EClass) ? ((EClass) firstElement).getName() :
- // "");
- //
- // parentShell.setText("Details of : " + ((EClass) firstElement).eClass().getName() + " " +
- // name);
- //
- //
- // final TaskBar systemTaskBar = parentShell.getDisplay().getSystemTaskBar();
- // final TaskItem taskItem = systemTaskBar.getItem(parentShell);
- //
- // taskItem.setData(parentShell);
- // taskItem.setOverlayText(name);
- // taskItem.setText(name);
-
-
- new SelectedElementContentDialog(parentShell, getSite(), (EObject) firstElement).open();
+ dialog.setFilterExtensions(new String[] { "*.ecore" });
- }
- }
- }
- });
- }
+ dialog.open();
+ if ((dialog.getFileName() == null) ||
+ (dialog.getFileNames() == null)) {
+ return;
+ }
- /**
- * Passing the focus request to the viewer's control.
- */
- @Override
- public void setFocus() {
- this.viewer.getControl().setFocus();
- }
+ List<String> files = new ArrayList<String>();
+ for (String fileName : dialog.getFileNames()) {
+ String filePath = dialog.getFilterPath() +
+ File.separator + fileName;
- public Action getFilterClassesAction() {
- return this.filterClassesAction;
- }
+ files.add(filePath);
+ }
+ try {
+ RegisterECOREfilesAction.loadECOREs(files,
+ combo_ecore);
+ } catch (Exception e) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ MessageDialog.openError(Display.getDefault()
+ .getActiveShell(),
+ "Error", e.getMessage());
+ }
+ });
+ }
+ }
+ };
+ this.registerEcoreFilesAction.setToolTipText(
+ "Register ECORE files");
+ this.registerEcoreFilesAction.setImageDescriptor(PluginUtils.getImageDescriptor(
+ "icons/register_ecores.png"));
+ }
- public Action getFilterAttributesAction() {
- return this.filterAttributesAction;
- }
+ private void hookDoubleClickAction() {
+ this.viewer.addDoubleClickListener(new IDoubleClickListener() {
+ @Override
+ public void doubleClick(final DoubleClickEvent event) {
+ final ISelection selection = event.getSelection();
+ if (selection instanceof TreeSelection) {
+ final Object firstElement = ((TreeSelection) selection).getFirstElement();
- public boolean isFilterForEClassifiersBoolean() {
- return this.filterForEClassifiersBoolean;
- }
+ if (firstElement instanceof EObject) {
+ Shell parentShell = null;
+ String displayDialogStyle = (Activator.getDefault()
+ .getPreferenceStore()
+ .getString(MetaModelViewerPreferenceConstants.P_DIALOG_DISPLAY));
- public boolean isFilterForAttributesBoolean() {
- return this.filterForAttributesBoolean;
- }
+ if ((displayDialogStyle != null) &&
+ displayDialogStyle.equals(
+ MetaModelViewerPreferenceConstants.V_ON_TOP)) {
+ parentShell = new Shell(SWT.ON_TOP);
+ } else {
+ parentShell = new Shell();
+ }
+ // final String name = ((firstElement instanceof EClass) ? ((EClass) firstElement).getName() :
+ // "");
+ //
+ // parentShell.setText("Details of : " + ((EClass) firstElement).eClass().getName() + " " +
+ // name);
+ //
+ //
+ // final TaskBar systemTaskBar = parentShell.getDisplay().getSystemTaskBar();
+ // final TaskItem taskItem = systemTaskBar.getItem(parentShell);
+ //
+ // taskItem.setData(parentShell);
+ // taskItem.setOverlayText(name);
+ // taskItem.setText(name);
+ new SelectedElementContentDialog(parentShell,
+ getSite(), (EObject) firstElement).open();
+ }
+ }
+ }
+ });
+ }
- public void setFilterClassesAction(final Action filterClassesAction) {
- this.filterClassesAction = filterClassesAction;
- }
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ @Override
+ public void setFocus() {
+ this.viewer.getControl().setFocus();
+ }
+ public Action getFilterClassesAction() {
+ return this.filterClassesAction;
+ }
- public void setFilterAttributesAction(final Action filterAttributesAction) {
- this.filterAttributesAction = filterAttributesAction;
- }
+ public Action getFilterAttributesAction() {
+ return this.filterAttributesAction;
+ }
+ public boolean isFilterForEClassifiersBoolean() {
+ return this.filterForEClassifiersBoolean;
+ }
- public void setFilterForEClassifiersBoolean(final boolean filterForEClassifiersBoolean) {
- this.filterForEClassifiersBoolean = filterForEClassifiersBoolean;
+ public boolean isFilterForAttributesBoolean() {
+ return this.filterForAttributesBoolean;
+ }
- this.patternFilter.setFilterForEClassifiersBoolean(filterForEClassifiersBoolean);
- }
+ public void setFilterClassesAction(final Action filterClassesAction) {
+ this.filterClassesAction = filterClassesAction;
+ }
+ public void setFilterAttributesAction(final Action filterAttributesAction) {
+ this.filterAttributesAction = filterAttributesAction;
+ }
- public void setFilterForAttributesBoolean(final boolean filterForAttributesBoolean) {
- this.filterForAttributesBoolean = filterForAttributesBoolean;
+ public void setFilterForEClassifiersBoolean(
+ final boolean filterForEClassifiersBoolean) {
+ this.filterForEClassifiersBoolean = filterForEClassifiersBoolean;
- this.patternFilter.setFilterForAttributesBoolean(filterForAttributesBoolean);
- }
+ this.patternFilter.setFilterForEClassifiersBoolean(filterForEClassifiersBoolean);
+ }
+ public void setFilterForAttributesBoolean(
+ final boolean filterForAttributesBoolean) {
+ this.filterForAttributesBoolean = filterForAttributesBoolean;
+ this.patternFilter.setFilterForAttributesBoolean(filterForAttributesBoolean);
+ }
}