Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schindl2011-02-16 20:14:07 +0000
committerThomas Schindl2011-02-16 20:14:07 +0000
commita9bff0bd3efcc6c7d5514d7992292b7b89e613f6 (patch)
tree166d94e01cc7fd9dedffa236281deb49a2af10e6
parent9f7a105905831d7feaa81ef215a9cb287958383c (diff)
downloadorg.eclipse.e4.tools-a9bff0bd3efcc6c7d5514d7992292b7b89e613f6.tar.gz
org.eclipse.e4.tools-a9bff0bd3efcc6c7d5514d7992292b7b89e613f6.tar.xz
org.eclipse.e4.tools-a9bff0bd3efcc6c7d5514d7992292b7b89e613f6.zip
Bug 337174 - [ModelTooling] Creating class is default package fails
-rw-r--r--bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/AbstractNewClassWizard.java46
-rw-r--r--bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewAddonClassWizard.java13
-rw-r--r--bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java10
-rw-r--r--bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java14
4 files changed, 70 insertions, 13 deletions
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/AbstractNewClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/AbstractNewClassWizard.java
index 355a41c7..523e003b 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/AbstractNewClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/AbstractNewClassWizard.java
@@ -11,9 +11,15 @@
package org.eclipse.e4.internal.tools.wizards.classes;
import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
@@ -29,10 +35,16 @@ import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.pde.core.project.IBundleProjectDescription;
+import org.eclipse.pde.core.project.IBundleProjectService;
+import org.eclipse.pde.core.project.IRequiredBundleDescription;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
public abstract class AbstractNewClassWizard extends Wizard implements INewWizard {
protected IPackageFragmentRoot root;
@@ -115,7 +127,39 @@ public abstract class AbstractNewClassWizard extends Wizard implements INewWizar
}
protected void checkRequiredBundles() {
-
+ IProject project = getDomainClass().getFragmentRoot().getJavaProject().getProject();
+ BundleContext context = FrameworkUtil.getBundle(NewAddonClassWizard.class).getBundleContext();
+ ServiceReference<IBundleProjectService> ref = context.getServiceReference(IBundleProjectService.class);
+ IBundleProjectService service = context.getService(ref);
+ try {
+ IBundleProjectDescription description = service.getDescription(project);
+ Set<String> requiredBundles = getRequiredBundles();
+ IRequiredBundleDescription[] arTmp = description.getRequiredBundles();
+ List<IRequiredBundleDescription> descs = new ArrayList<IRequiredBundleDescription>();
+ if( arTmp != null ) {
+ descs.addAll(Arrays.asList(arTmp));
+ }
+ for( IRequiredBundleDescription bd : descs ) {
+ requiredBundles.remove(bd.getName());
+ }
+
+ if( requiredBundles.size() > 0 ) {
+ for( String b : requiredBundles ) {
+ descs.add(service.newRequiredBundle(b, null, false, false));
+ }
+ description.setRequiredBundles(descs.toArray(new IRequiredBundleDescription[0]));
+ description.apply(new NullProgressMonitor());
+ }
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ protected Set<String> getRequiredBundles() {
+ Set<String> rv = new HashSet<String>();
+ rv.add("javax.inject");
+ return rv;
}
@Override
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewAddonClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewAddonClassWizard.java
index 48793ef0..58432912 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewAddonClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewAddonClassWizard.java
@@ -10,6 +10,8 @@
******************************************************************************/
package org.eclipse.e4.internal.tools.wizards.classes;
+import java.util.Set;
+
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.e4.internal.tools.wizards.classes.templates.AddonTemplate;
@@ -42,9 +44,10 @@ public class NewAddonClassWizard extends AbstractNewClassWizard {
}
@Override
- protected void checkRequiredBundles() {
- // TODO Auto-generated method stub
-
+ protected Set<String> getRequiredBundles() {
+ Set<String> rv = super.getRequiredBundles();
+ rv.add("javax.annotation");
+ rv.add("org.eclipse.e4.core.services");
+ return rv;
}
-
-}
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java
index 100fb188..f970424a 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewHandlerClassWizard.java
@@ -10,6 +10,8 @@
******************************************************************************/
package org.eclipse.e4.internal.tools.wizards.classes;
+import java.util.Set;
+
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.beans.BeanProperties;
import org.eclipse.core.resources.ResourcesPlugin;
@@ -87,12 +89,12 @@ public class NewHandlerClassWizard extends AbstractNewClassWizard {
}
@Override
- protected void checkRequiredBundles() {
- // TODO Auto-generated method stub
-
+ protected Set<String> getRequiredBundles() {
+ Set<String> set = super.getRequiredBundles();
+ set.add("org.eclipse.e4.core.di");
+ return set;
}
-
public static class HandlerClass extends JavaClass {
private String executeMethodName = "execute";
private String canExecuteMethodName = "canExecute";
diff --git a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java
index a28bdb19..db3d3bf6 100644
--- a/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java
+++ b/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/classes/NewPartClassWizard.java
@@ -12,6 +12,7 @@ package org.eclipse.e4.internal.tools.wizards.classes;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.util.Set;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.beans.BeanProperties;
@@ -136,11 +137,18 @@ public class NewPartClassWizard extends AbstractNewClassWizard {
}
@Override
- protected void checkRequiredBundles() {
- // TODO Auto-generated method stub
+ protected Set<String> getRequiredBundles() {
+ Set<String> rv = super.getRequiredBundles();
+ PartClass cl = (PartClass)getDomainClass();
+ if( cl.usePostConstruct || cl.usePredestroy ) {
+ rv.add("javax.annotation");
+ } else if( cl.useFocus || cl.usePersist ) {
+ rv.add("org.eclipse.e4.ui.di");
+ }
+ return rv;
}
-
+
@Override
protected String getContent() {
PartTemplate template = new PartTemplate();

Back to the top