Skip to content
This repository has been archived by the owner on Jan 5, 2021. It is now read-only.

Commit

Permalink
#899 removed UI dependencies, removed Image from IGeneratorDescriptor
Browse files Browse the repository at this point in the history
Interface
  • Loading branch information
andreasmuelder committed Aug 12, 2016
1 parent 9143421 commit 308193f
Show file tree
Hide file tree
Showing 12 changed files with 69 additions and 54 deletions.
2 changes: 1 addition & 1 deletion plugins/org.yakindu.sct.generator.builder/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ public boolean visit(IResource resource) {
@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) {
Expand Down Expand Up @@ -217,15 +217,15 @@ protected void executeGenmodelGenerator(IResource resource) {
}

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) {
Expand All @@ -242,9 +242,8 @@ private <TYPE extends EObject> TYPE loadFromResource(IResource res) {
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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
13 changes: 4 additions & 9 deletions plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand All @@ -34,7 +34,9 @@ public GeneratorActivator() {

/*
* (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);
Expand All @@ -43,7 +45,9 @@ public void start(BundleContext context) throws Exception {

/*
* (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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
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;

Expand Down Expand Up @@ -49,7 +47,7 @@ private static class GeneratorDescriptor implements IGeneratorDescriptor {

private final IConfigurationElement configElement;

private Image image;
private URL image;

GeneratorDescriptor(IConfigurationElement configElement) {
this.configElement = configElement;
Expand Down Expand Up @@ -88,17 +86,15 @@ public String getName() {
}

@Override
public Image getImage() {
public URL getImagePath() {
if (image != null)
return image;
String path = configElement.getAttribute(ATTRIBUTE_ICON);
if (path == null)
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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -26,10 +30,7 @@ public interface IGeneratorDescriptor {

String getName();

/**
* may return null!!
*/
Image getImage();
URL getImagePath();

String getContentType();

Expand Down
Original file line number Diff line number Diff line change
@@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
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;

/**
Expand Down Expand Up @@ -53,7 +54,7 @@ public void completeGeneratorModel_GeneratorId(EObject model,
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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,28 @@
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");
}

@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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
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;
Expand Down Expand Up @@ -218,7 +219,7 @@ public String getText(Object element) {
@Override
public Image getImage(Object element) {
if (element instanceof IGeneratorDescriptor) {
return ((IGeneratorDescriptor) element).getImage();
return PathToImageResolver.toImage(((IGeneratorDescriptor) element).getImagePath());
}
return super.getImage(element);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
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;

/**
*
Expand All @@ -39,7 +40,7 @@ public Image getImage(Object element) {
} 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);
}
Expand Down

0 comments on commit 308193f

Please sign in to comment.