diff --git a/com.minres.scviewer.e4.product/pom.xml b/com.minres.scviewer.e4.product/pom.xml index f87674d..99973ca 100644 --- a/com.minres.scviewer.e4.product/pom.xml +++ b/com.minres.scviewer.e4.product/pom.xml @@ -7,7 +7,7 @@ com.minres.scviewer com.minres.scviewer.parent 2.0.0-SNAPSHOT - ../com.minres.scviewer.parent + .. com.minres.scviewer.e4.product 2.6.0-SNAPSHOT diff --git a/com.minres.scviewer.parent/.gitignore b/com.minres.scviewer.parent/.gitignore deleted file mode 100644 index 9e440c0..0000000 --- a/com.minres.scviewer.parent/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/workspace/ diff --git a/com.minres.scviewer.parent/.project b/com.minres.scviewer.parent/.project deleted file mode 100644 index a68889f..0000000 --- a/com.minres.scviewer.parent/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - com.minres.scviewer.parent - - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - - diff --git a/com.minres.scviewer.target/com.minres.scviewer.target.target b/com.minres.scviewer.target/com.minres.scviewer.target.target index c2d147a..5242f57 100644 --- a/com.minres.scviewer.target/com.minres.scviewer.target.target +++ b/com.minres.scviewer.target/com.minres.scviewer.target.target @@ -3,7 +3,7 @@ - + @@ -12,11 +12,11 @@ - + - + diff --git a/com.minres.scviewer.target/pom.xml b/com.minres.scviewer.target/pom.xml index 459e328..d28de3c 100644 --- a/com.minres.scviewer.target/pom.xml +++ b/com.minres.scviewer.target/pom.xml @@ -13,7 +13,7 @@ com.minres.scviewer com.minres.scviewer.parent 2.0.0-SNAPSHOT - ../com.minres.scviewer.parent + .. - \ No newline at end of file + diff --git a/com.minres.scviewer.updateSite/.settings/org.eclipse.m2e.core.prefs b/com.minres.scviewer.updateSite/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/com.minres.scviewer.updateSite/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/com.opcoach.e4.preferences/src/com/opcoach/e4/preferences/internal/E4PreferenceRegistry.java b/com.opcoach.e4.preferences/src/com/opcoach/e4/preferences/internal/E4PreferenceRegistry.java deleted file mode 100644 index de4baf8..0000000 --- a/com.opcoach.e4.preferences/src/com/opcoach/e4/preferences/internal/E4PreferenceRegistry.java +++ /dev/null @@ -1,325 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 OPCoach. - * 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: - * OPCoach - initial API and implementation - *******************************************************************************/ -package com.opcoach.e4.preferences.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import javax.inject.Inject; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionRegistry; -import org.eclipse.core.runtime.preferences.InstanceScope; -import org.eclipse.e4.core.contexts.ContextInjectionFactory; -import org.eclipse.e4.core.contexts.IEclipseContext; -import org.eclipse.e4.core.di.annotations.Creatable; -import org.eclipse.e4.core.services.contributions.IContributionFactory; -import org.eclipse.e4.core.services.log.Logger; -import org.eclipse.jface.preference.IPreferenceNode; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.PreferenceManager; -import org.eclipse.jface.preference.PreferenceNode; -import org.eclipse.jface.preference.PreferencePage; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; - -import com.opcoach.e4.preferences.IPreferenceStoreProvider; -import com.opcoach.e4.preferences.ScopedPreferenceStore; - -@SuppressWarnings("restriction") -@Creatable -public class E4PreferenceRegistry -{ - - public static final String PREFS_PAGE_XP = "com.opcoach.e4.preferences.e4PreferencePages"; // $NON-NLS-1$ - public static final String PREF_STORE_PROVIDER = "com.opcoach.e4.preferences.e4PreferenceStoreProvider"; // $NON-NLS-1$ - public static final String KEY_PREF_STORE_PROVIDERS = "com.opcoach.e4.preferences.e4PreferenceStoreProviders"; // $NON-NLS-1$ - protected static final String ELMT_PAGE = "page"; // $NON-NLS-1$ - protected static final String ATTR_ID = "id"; // $NON-NLS-1$ - protected static final String ATTR_CATEGORY = "category"; // $NON-NLS-1$ - protected static final String ATTR_CLASS = "class"; // $NON-NLS-1$ - protected static final String ATTR_NAME = "name"; // $NON-NLS-1$ - - protected static final String ATTR_PLUGIN_ID = "pluginId"; // $NON-NLS-1$ - protected static final String ATTR_ID_IN_WBCONTEXT = "idInWorkbenchContext"; // $NON-NLS-1$ - - @Inject - protected Logger logger; - - @Inject - protected IEclipseContext context; - - @Inject - protected IExtensionRegistry registry; - - private PreferenceManager pm = null; - - // A map of (pluginId, { IPreferenceStoreProvider, or key in wbcontext } - private Map psProviders; - - public PreferenceManager getPreferenceManager() - { - - // Remember of the unbounded nodes to order parent pages. - // Map (all nodes except root nodes) - Map> childrenNodes = new HashMap>(); - - if (pm != null) - return pm; - - pm = new PreferenceManager(); - IContributionFactory factory = context.get(IContributionFactory.class); - - for (IConfigurationElement elmt : registry.getConfigurationElementsFor(PREFS_PAGE_XP)) - { - String bundleId = elmt.getNamespaceIdentifier(); - if (!elmt.getName().equals(ELMT_PAGE)) - { - logger.warn("unexpected element: {0}", elmt.getName()); - continue; - } else if (isEmpty(elmt.getAttribute(ATTR_ID)) || isEmpty(elmt.getAttribute(ATTR_NAME))) - { - logger.warn("missing id and/or name: {}", bundleId); - continue; - } - PreferenceNode pn = null; - if (elmt.getAttribute(ATTR_CLASS) != null) - { - PreferencePage page = null; - try - { - String prefPageURI = getClassURI(bundleId, elmt.getAttribute(ATTR_CLASS)); - Object object = factory.create(prefPageURI, context); - if (!(object instanceof PreferencePage)) - { - logger.error("Expected instance of PreferencePage: {0}", elmt.getAttribute(ATTR_CLASS)); - continue; - } - page = (PreferencePage) object; - setPreferenceStore(bundleId, page); - - } catch (ClassNotFoundException e) - { - logger.error(e); - continue; - } - ContextInjectionFactory.inject(page, context); - if ((page.getTitle() == null || page.getTitle().isEmpty()) && elmt.getAttribute(ATTR_NAME) != null) - { - page.setTitle(elmt.getAttribute(ATTR_NAME)); - } - - pn = new PreferenceNode(elmt.getAttribute(ATTR_ID), page); - } else - { - pn = new PreferenceNode(elmt.getAttribute(ATTR_ID), new EmptyPreferencePage(elmt.getAttribute(ATTR_NAME))); - } - - // Issue 2 : Fix bug on order (see : - // https://github.com/opcoach/e4Preferences/issues/2) - // Add only pages at root level and remember of child pages for - // categories - String category = elmt.getAttribute(ATTR_CATEGORY); - if (isEmpty(category)) - { - pm.addToRoot(pn); - } else - { - /* - * IPreferenceNode parent = findNode(pm, category); if (parent - * == null) { // No parent found, but may be the extension has - * not been read yet. So remember of it unboundedNodes.put(pn, - * category); } else { parent.add(pn); } - */ - // Check if this category is already registered. - Collection children = childrenNodes.get(category); - if (children == null) - { - children = new ArrayList(); - childrenNodes.put(category, children); - } - children.add(pn); - } - } - - // Must now bind pages that has not been added in nodes (depends on the - // preference page read order) - // Iterate on all possible categories - Collection categoriesDone = new ArrayList(); - - while (!childrenNodes.isEmpty()) - { - for (String cat : Collections.unmodifiableSet(childrenNodes.keySet())) - { - // Is this category already in preference manager ? If not add - // it later... - IPreferenceNode parent = findNode(pm, cat); - if (parent != null) - { - // Can add the list of children to this parent page... - for (IPreferenceNode pn : childrenNodes.get(cat)) - { - parent.add(pn); - } - // Ok This parent page is done. Can remove it from map - // outside of this loop - categoriesDone.add(cat); - } - } - - for (String keyToRemove : categoriesDone) - childrenNodes.remove(keyToRemove); - categoriesDone.clear(); - - } - - return pm; - } - - private void setPreferenceStore(String bundleId, PreferencePage page) - { - // Affect preference store to this page if this is a - // PreferencePage, else, must manage it internally - // Set the issue#1 on github : - // https://github.com/opcoach/e4Preferences/issues/1 - // And manage the extensions of IP - initialisePreferenceStoreProviders(); - - IPreferenceStore store = null; - - // Get the preference store according to policy. - Object data = psProviders.get(bundleId); - if (data != null) - { - if (data instanceof IPreferenceStore) - store = (IPreferenceStore) data; - else if (data instanceof IPreferenceStoreProvider) - store = ((IPreferenceStoreProvider) data).getPreferenceStore(); - else if (data instanceof String) - store = (IPreferenceStore) context.get((String) data); - - } else - { - // Default behavior : create a preference store for this bundle and remember of it - store = new ScopedPreferenceStore(InstanceScope.INSTANCE, bundleId); - psProviders.put(bundleId, store); - } - - - if (store != null) - page.setPreferenceStore(store); - else - { - logger.warn("Unable to set the preferenceStore for page " + page.getTitle() + " defined in bundle " + bundleId); - } - - } - - /** Read the e4PreferenceStoreProvider extension point */ - private void initialisePreferenceStoreProviders() - { - if (psProviders == null) - { - IContributionFactory factory = context.get(IContributionFactory.class); - - psProviders = new HashMap(); - IExtensionRegistry registry = context.get(IExtensionRegistry.class); - - // Read extensions and fill the map... - for (IConfigurationElement elmt : registry.getConfigurationElementsFor(PREF_STORE_PROVIDER)) - { - String declaringBundle = elmt.getNamespaceIdentifier(); - String pluginId = elmt.getAttribute(ATTR_PLUGIN_ID); - if (isEmpty(pluginId)) - { - logger.warn("missing plugin Id in extension " + PREF_STORE_PROVIDER + " check the plugin " + declaringBundle); - continue; - } - - String classname = elmt.getAttribute(ATTR_CLASS); - String objectId = elmt.getAttribute(ATTR_ID_IN_WBCONTEXT); - - if ((isEmpty(classname) && isEmpty(objectId)) || (((classname != null) && classname.length() > 0) && ((objectId != null) && objectId.length() > 0))) - { - logger.warn("In extension " + PREF_STORE_PROVIDER + " only one of the two attributes (pluginId or idInWorkbenchContext) must be set. Check the plugin " - + declaringBundle); - continue; - } - - // Ok can now work with data... - Object data = objectId; - if (classname != null) - { - data = factory.create("bundleclass://"+declaringBundle+"/"+classname, context); - if (!(data instanceof IPreferenceStoreProvider)) - { - logger.warn("In extension " + PREF_STORE_PROVIDER + " the class must implements IPreferenceStoreProvider. Check the plugin " + declaringBundle); - continue; - } - } - - psProviders.put(pluginId, data); - - } - - context.set(KEY_PREF_STORE_PROVIDERS, psProviders); - } - } - - private IPreferenceNode findNode(PreferenceManager pm, String categoryId) - { - for (Object o : pm.getElements(PreferenceManager.POST_ORDER)) - { - if (o instanceof IPreferenceNode && ((IPreferenceNode) o).getId().equals(categoryId)) - { - return (IPreferenceNode) o; - } - } - return null; - } - - private String getClassURI(String definingBundleId, String spec) throws ClassNotFoundException - { - if (spec.startsWith("platform:")) - { - return spec; - } // $NON-NLS-1$ - return "bundleclass://" + definingBundleId + '/' + spec; - } - - private boolean isEmpty(String value) - { - return value == null || value.trim().isEmpty(); - } - - static class EmptyPreferencePage extends PreferencePage - { - - public EmptyPreferencePage(String title) - { - setTitle(title); - noDefaultAndApplyButton(); - } - - @Override - protected Control createContents(Composite parent) - { - return new Label(parent, SWT.NONE); - } - - } - -} diff --git a/com.minres.scviewer.feature/.gitignore b/features/com.minres.scviewer.feature/.gitignore similarity index 100% rename from com.minres.scviewer.feature/.gitignore rename to features/com.minres.scviewer.feature/.gitignore diff --git a/com.minres.scviewer.feature/.project b/features/com.minres.scviewer.feature/.project similarity index 100% rename from com.minres.scviewer.feature/.project rename to features/com.minres.scviewer.feature/.project diff --git a/com.minres.scviewer.database.sqlite/.settings/org.eclipse.m2e.core.prefs b/features/com.minres.scviewer.feature/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from com.minres.scviewer.database.sqlite/.settings/org.eclipse.m2e.core.prefs rename to features/com.minres.scviewer.feature/.settings/org.eclipse.m2e.core.prefs diff --git a/com.minres.scviewer.feature/build.properties b/features/com.minres.scviewer.feature/build.properties similarity index 100% rename from com.minres.scviewer.feature/build.properties rename to features/com.minres.scviewer.feature/build.properties diff --git a/com.minres.scviewer.feature/feature.properties b/features/com.minres.scviewer.feature/feature.properties similarity index 100% rename from com.minres.scviewer.feature/feature.properties rename to features/com.minres.scviewer.feature/feature.properties diff --git a/com.minres.scviewer.feature/feature.xml b/features/com.minres.scviewer.feature/feature.xml similarity index 100% rename from com.minres.scviewer.feature/feature.xml rename to features/com.minres.scviewer.feature/feature.xml diff --git a/com.minres.scviewer.feature/pom.xml b/features/com.minres.scviewer.feature/pom.xml similarity index 88% rename from com.minres.scviewer.feature/pom.xml rename to features/com.minres.scviewer.feature/pom.xml index 8da4db3..309086f 100644 --- a/com.minres.scviewer.feature/pom.xml +++ b/features/com.minres.scviewer.feature/pom.xml @@ -6,7 +6,7 @@ com.minres.scviewer com.minres.scviewer.parent 2.0.0-SNAPSHOT - ../com.minres.scviewer.parent + ../.. 1.0.0-SNAPSHOT - \ No newline at end of file + diff --git a/com.minres.scviewer.updateSite/.gitignore b/p2repositories/com.minres.scviewer.updateSite/.gitignore similarity index 100% rename from com.minres.scviewer.updateSite/.gitignore rename to p2repositories/com.minres.scviewer.updateSite/.gitignore diff --git a/com.minres.scviewer.updateSite/.project b/p2repositories/com.minres.scviewer.updateSite/.project similarity index 100% rename from com.minres.scviewer.updateSite/.project rename to p2repositories/com.minres.scviewer.updateSite/.project diff --git a/com.minres.scviewer.database.test/.settings/org.eclipse.m2e.core.prefs b/p2repositories/com.minres.scviewer.updateSite/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from com.minres.scviewer.database.test/.settings/org.eclipse.m2e.core.prefs rename to p2repositories/com.minres.scviewer.updateSite/.settings/org.eclipse.m2e.core.prefs diff --git a/com.minres.scviewer.updateSite/category.xml b/p2repositories/com.minres.scviewer.updateSite/category.xml similarity index 100% rename from com.minres.scviewer.updateSite/category.xml rename to p2repositories/com.minres.scviewer.updateSite/category.xml diff --git a/com.minres.scviewer.updateSite/pom.xml b/p2repositories/com.minres.scviewer.updateSite/pom.xml similarity index 90% rename from com.minres.scviewer.updateSite/pom.xml rename to p2repositories/com.minres.scviewer.updateSite/pom.xml index b3a3c1e..3634c3d 100644 --- a/com.minres.scviewer.updateSite/pom.xml +++ b/p2repositories/com.minres.scviewer.updateSite/pom.xml @@ -7,7 +7,7 @@ com.minres.scviewer com.minres.scviewer.parent 2.0.0-SNAPSHOT - ../com.minres.scviewer.parent + ../..