Просмотр исходного кода

#899 removed UI dependencies, removed Image from IGeneratorDescriptor
Interface

Andreas Muelder 9 лет назад
Родитель
Сommit
308193f63d
12 измененных файлов с 69 добавлено и 54 удалено
  1. 1 1
      plugins/org.yakindu.sct.generator.builder/plugin.xml
  2. 10 11
      plugins/org.yakindu.sct.generator.builder/src/org/yakindu/sct/generator/builder/SCTBuilder.java
  3. 4 5
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/preferences/GenModelPreferenceInitializer.java
  4. 4 9
      plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF
  5. 10 6
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/GeneratorActivator.java
  6. 3 7
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/GeneratorExtensions.java
  7. 7 6
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/IGeneratorDescriptor.java
  8. 15 1
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/ILibraryDescriptor.java
  9. 2 1
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/contentassist/SGenProposalProvider.java
  10. 9 5
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/preferences/GeneratorRootPreferencePage.java
  11. 2 1
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2.java
  12. 2 1
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2LabelProvider.java

+ 1 - 1
plugins/org.yakindu.sct.generator.builder/plugin.xml

@@ -67,7 +67,7 @@
    </extension>
      <extension
        point="org.eclipse.core.runtime.preferences">
-    	<initializer class="org.yakindu.sct.generator.core.preferences.GenModelPreferenceInitializer">
+    	<initializer class="org.yakindu.sct.generator.builder.preferences.GenModelPreferenceInitializer">
     	</initializer>
  	</extension>
  	  <extension point = "org.eclipse.ui.popupMenus">

+ 10 - 11
plugins/org.yakindu.sct.generator.builder/src/org/yakindu/sct/generator/builder/SCTBuilder.java

@@ -109,8 +109,8 @@ public class SCTBuilder extends IncrementalProjectBuilder {
 	@Override
 	protected IProject[] build(int kind, @SuppressWarnings("rawtypes") Map args, IProgressMonitor monitor)
 			throws CoreException {
-		
-		IPreferenceStore store = GeneratorActivator.getDefault().getPreferenceStore();
+
+		IPreferenceStore store = BuilderActivator.getDefault().getPreferenceStore();
 		boolean generateAutomatical = store.getBoolean(GeneratorActivator.PREF_GENERATE_AUTOMATICALLY);
 
 		if (generateAutomatical) {
@@ -217,15 +217,15 @@ public class SCTBuilder extends IncrementalProjectBuilder {
 	}
 
 	protected void logGenmodelError(String resource) {
-		Status status = new Status(Status.ERROR, BUILDER_ID, String.format(
-				"Cannot execute Genmodel %s. The file contains errors.", resource));
-		Platform.getLog(GeneratorActivator.getDefault().getBundle()).log(status);
+		Status status = new Status(Status.ERROR, BUILDER_ID,
+				String.format("Cannot execute Genmodel %s. The file contains errors.", resource));
+		Platform.getLog(BuilderActivator.getDefault().getBundle()).log(status);
 	}
 
 	protected void logStatechartError(final String resource) {
-		Status status = new Status(Status.ERROR, BUILDER_ID, String.format(
-				"Cannot generate Code for Statechart %s. The file contains errors.", resource));
-		Platform.getLog(GeneratorActivator.getDefault().getBundle()).log(status);
+		Status status = new Status(Status.ERROR, BUILDER_ID,
+				String.format("Cannot generate Code for Statechart %s. The file contains errors.", resource));
+		Platform.getLog(BuilderActivator.getDefault().getBundle()).log(status);
 	}
 
 	private boolean isGenmodelForStatechart(IResource genmodelResource, final Statechart statechart) {
@@ -242,9 +242,8 @@ public class SCTBuilder extends IncrementalProjectBuilder {
 		try {
 			emfResource = set.getResource(uri, true);
 		} catch (WrappedException e) {
-			Platform.getLog(GeneratorActivator.getDefault().getBundle()).log(
-					new Status(IStatus.WARNING, GeneratorActivator.PLUGIN_ID, "Resource " + uri
-							+ " can not be loaded by builder", e));
+			Platform.getLog(BuilderActivator.getDefault().getBundle()).log(new Status(IStatus.WARNING,
+					GeneratorActivator.PLUGIN_ID, "Resource " + uri + " can not be loaded by builder", e));
 			return null;
 		}
 		if (emfResource.getErrors().size() > 0 || emfResource.getContents().size() == 0)

+ 4 - 5
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/preferences/GenModelPreferenceInitializer.java

@@ -8,19 +8,18 @@
  * 	committers of YAKINDU - initial API and implementation
  * 
  */
-package org.yakindu.sct.generator.core.preferences;
+package org.yakindu.sct.generator.builder.preferences;
 
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.yakindu.sct.generator.builder.BuilderActivator;
 import org.yakindu.sct.generator.core.GeneratorActivator;
 
-public class GenModelPreferenceInitializer extends
-		AbstractPreferenceInitializer {
+public class GenModelPreferenceInitializer extends AbstractPreferenceInitializer {
 
 	@Override
 	public void initializeDefaultPreferences() {
-		IPreferenceStore store = GeneratorActivator.getDefault()
-				.getPreferenceStore();
+		IPreferenceStore store = BuilderActivator.getDefault().getPreferenceStore();
 		store.setDefault(GeneratorActivator.PREF_GENERATE_AUTOMATICALLY, true);
 	}
 

+ 4 - 9
plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF

@@ -5,21 +5,16 @@ Bundle-SymbolicName: org.yakindu.sct.generator.core;singleton:=true
 Bundle-Version: 2.7.1.qualifier
 Bundle-Activator: org.yakindu.sct.generator.core.GeneratorActivator
 Bundle-Vendor: statecharts.org
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime;visibility:=reexport,
- org.yakindu.sct.model.sexec;visibility:=reexport,
- org.eclipse.core.resources;visibility:=reexport,
+Require-Bundle: org.yakindu.sct.model.sexec;visibility:=reexport,
  org.yakindu.sct.model.stext,
- org.eclipse.jdt.core,
- org.eclipse.jdt.launching,
- org.eclipse.xtext.xbase,
  org.yakindu.sct.model.sgen,
  org.eclipse.core.expressions,
  org.yakindu.base.types,
- org.yakindu.sct.commons,
  org.yakindu.sct.domain,
  com.google.guava,
- org.eclipse.emf.workspace
+ org.eclipse.emf.workspace,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.core.runtime;visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
 Export-Package: org.yakindu.sct.generator.core,

+ 10 - 6
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/GeneratorActivator.java

@@ -10,22 +10,22 @@
 */
 package org.yakindu.sct.generator.core;
 
-import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.core.runtime.Plugin;
 import org.osgi.framework.BundleContext;
 
 /**
  * The activator class controls the plug-in life cycle
  */
-public class GeneratorActivator extends AbstractUIPlugin {
+public class GeneratorActivator extends Plugin {
 
 	// The plug-in ID
 	public static final String PLUGIN_ID = "org.yakindu.sct.generator.core"; //$NON-NLS-1$
 
 	// The shared instance
 	private static GeneratorActivator plugin;
-	//Preference constant for automatic code generation
+	// Preference constant for automatic code generation
 	public static final String PREF_GENERATE_AUTOMATICALLY = "generate.automatically";
-	
+
 	/**
 	 * The constructor
 	 */
@@ -34,7 +34,9 @@ public class GeneratorActivator extends AbstractUIPlugin {
 
 	/*
 	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.
+	 * BundleContext)
 	 */
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
@@ -43,7 +45,9 @@ public class GeneratorActivator extends AbstractUIPlugin {
 
 	/*
 	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.
+	 * BundleContext)
 	 */
 	public void stop(BundleContext context) throws Exception {
 		plugin = null;

+ 3 - 7
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/GeneratorExtensions.java

@@ -18,8 +18,6 @@ import java.util.NoSuchElementException;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
 import org.osgi.framework.Bundle;
 import org.yakindu.sct.generator.core.ISCTGenerator;
 
@@ -49,7 +47,7 @@ public class GeneratorExtensions {
 
 		private final IConfigurationElement configElement;
 
-		private Image image;
+		private URL image;
 
 		GeneratorDescriptor(IConfigurationElement configElement) {
 			this.configElement = configElement;
@@ -88,7 +86,7 @@ public class GeneratorExtensions {
 		}
 
 		@Override
-		public Image getImage() {
+		public URL getImagePath() {
 			if (image != null)
 				return image;
 			String path = configElement.getAttribute(ATTRIBUTE_ICON);
@@ -96,9 +94,7 @@ public class GeneratorExtensions {
 				return null;
 
 			Bundle extensionBundle = Platform.getBundle(configElement.getContributor().getName());
-			URL entry = extensionBundle.getEntry(path);
-			ImageDescriptor descriptor = ImageDescriptor.createFromURL(entry);
-			image = descriptor.createImage();
+			image = extensionBundle.getEntry(path);
 			return image;
 		}
 

+ 7 - 6
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/IGeneratorDescriptor.java

@@ -11,11 +11,15 @@
  */
 package org.yakindu.sct.generator.core.extensions;
 
+import java.net.URL;
 import java.util.List;
 
-import org.eclipse.swt.graphics.Image;
 import org.yakindu.sct.generator.core.ISCTGenerator;
-
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
 public interface IGeneratorDescriptor {
 
 	ISCTGenerator createGenerator();
@@ -26,10 +30,7 @@ public interface IGeneratorDescriptor {
 
 	String getName();
 
-	/**
-	 * may return null!!
-	 */
-	Image getImage();
+	URL getImagePath();
 
 	String getContentType();
 

+ 15 - 1
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/ILibraryDescriptor.java

@@ -1,8 +1,22 @@
+/**
+ * Copyright (c) 2016 committers of YAKINDU 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:
+ *     committers of YAKINDU - initial API and implementation
+ */
 package org.yakindu.sct.generator.core.extensions;
 
 import org.eclipse.emf.common.util.URI;
 import org.yakindu.sct.generator.core.library.IDefaultFeatureValueProvider;
-
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
 public interface ILibraryDescriptor {
 
 	URI getURI();

+ 2 - 1
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/contentassist/SGenProposalProvider.java

@@ -20,6 +20,7 @@ import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
 import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
 import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
+import org.yakindu.sct.generator.genmodel.ui.PathToImageResolver;
 import org.yakindu.sct.model.sgen.GeneratorModel;
 
 /**
@@ -53,7 +54,7 @@ public class SGenProposalProvider extends AbstractSGenProposalProvider {
 			ICompletionProposal proposal = createCompletionProposal(
 					desc.getId(),
 					new StyledString((desc.getName() != null) ? desc.getName()
-							: "null"), desc.getImage(), context);
+							: "null"), PathToImageResolver.toImage(desc.getImagePath()), context);
 
 			if (proposal instanceof ConfigurableCompletionProposal) {
 				ConfigurableCompletionProposal configurable = (ConfigurableCompletionProposal) proposal;

+ 9 - 5
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/preferences/GeneratorRootPreferencePage.java

@@ -14,10 +14,15 @@ import org.eclipse.gmf.runtime.common.ui.preferences.CheckBoxFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.yakindu.sct.generator.builder.BuilderActivator;
 import org.yakindu.sct.generator.core.GeneratorActivator;
 
-public class GeneratorRootPreferencePage extends FieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class GeneratorRootPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
 
 	public GeneratorRootPreferencePage() {
 		setDescription("Change the behavior of the Generator model");
@@ -25,13 +30,12 @@ public class GeneratorRootPreferencePage extends FieldEditorPreferencePage
 
 	@Override
 	protected void createFieldEditors() {
-		addField(new CheckBoxFieldEditor(
-				GeneratorActivator.PREF_GENERATE_AUTOMATICALLY,
+		addField(new CheckBoxFieldEditor(GeneratorActivator.PREF_GENERATE_AUTOMATICALLY,
 				"Execute SGen Files automatically: ", getFieldEditorParent()));
 	}
 
 	@Override
 	public void init(IWorkbench workbench) {
-		setPreferenceStore(GeneratorActivator.getDefault().getPreferenceStore());
+		setPreferenceStore(BuilderActivator.getDefault().getPreferenceStore());
 	}
 }

+ 2 - 1
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2.java

@@ -51,6 +51,7 @@ import org.eclipse.swt.widgets.Label;
 import org.yakindu.sct.generator.core.extensions.FileExtensions;
 import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
 import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
+import org.yakindu.sct.generator.genmodel.ui.PathToImageResolver;
 import org.yakindu.sct.ui.wizards.ModelCreationWizardPage;
 
 import com.google.common.collect.Lists;
@@ -218,7 +219,7 @@ public class SGenWizardPage2 extends WizardPage {
 		@Override
 		public Image getImage(Object element) {
 			if (element instanceof IGeneratorDescriptor) {
-				return ((IGeneratorDescriptor) element).getImage();
+				return PathToImageResolver.toImage(((IGeneratorDescriptor) element).getImagePath());
 			}
 			return super.getImage(element);
 		}

+ 2 - 1
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/SGenWizardPage2LabelProvider.java

@@ -22,6 +22,7 @@ import org.eclipse.ui.ide.IDE;
 import org.yakindu.sct.generator.core.extensions.FileExtensions;
 import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
 import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
+import org.yakindu.sct.generator.genmodel.ui.PathToImageResolver;
 
 /**
  * 
@@ -39,7 +40,7 @@ class SGenWizardPage2LabelProvider extends LabelProvider {
 		} else if (element instanceof IFile) {
 			String generatorID = FileExtensions.getGeneratorForFileExtension(((IFile) element).getFileExtension());
 			IGeneratorDescriptor genDesc = GeneratorExtensions.getGeneratorDescriptor(generatorID);
-			return genDesc.getImage();
+			return PathToImageResolver.toImage(genDesc.getImagePath());
 		}
 		return super.getImage(element);
 	}