Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 97200
Collapse All | Expand All

(-)ui/org/eclipse/jdt/internal/ui/actions/NewWizardsActionGroup.java (-2 / +9 lines)
Lines 10-29 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jdt.internal.ui.actions;
11
package org.eclipse.jdt.internal.ui.actions;
12
12
13
import org.eclipse.core.resources.IResource;
14
13
import org.eclipse.jface.action.IMenuManager;
15
import org.eclipse.jface.action.IMenuManager;
14
import org.eclipse.jface.action.MenuManager;
16
import org.eclipse.jface.action.MenuManager;
15
import org.eclipse.jface.viewers.ISelection;
17
import org.eclipse.jface.viewers.ISelection;
16
import org.eclipse.jface.viewers.IStructuredSelection;
18
import org.eclipse.jface.viewers.IStructuredSelection;
17
19
18
import org.eclipse.core.resources.IResource;
19
20
import org.eclipse.ui.IWorkbenchSite;
20
import org.eclipse.ui.IWorkbenchSite;
21
import org.eclipse.ui.IWorkingSet;
21
import org.eclipse.ui.actions.ActionGroup;
22
import org.eclipse.ui.actions.ActionGroup;
22
import org.eclipse.ui.actions.NewWizardMenu;
23
import org.eclipse.ui.actions.NewWizardMenu;
24
23
import org.eclipse.jdt.core.IJavaElement;
25
import org.eclipse.jdt.core.IJavaElement;
24
26
25
import org.eclipse.jdt.ui.IContextMenuConstants;
27
import org.eclipse.jdt.ui.IContextMenuConstants;
26
28
29
import org.eclipse.jdt.internal.ui.workingsets.JavaWorkingSetUpdater;
30
27
31
28
/**
32
/**
29
 * Action group that adds the 'new' menu to a context menu.
33
 * Action group that adds the 'new' menu to a context menu.
Lines 81-86 Link Here
81
				type == IJavaElement.COMPILATION_UNIT ||
85
				type == IJavaElement.COMPILATION_UNIT ||
82
				type == IJavaElement.TYPE;
86
				type == IJavaElement.TYPE;
83
		}
87
		}
88
		if (element instanceof IWorkingSet) {
89
			return JavaWorkingSetUpdater.ID.equals(((IWorkingSet)element).getId());
90
		}
84
		return false;
91
		return false;
85
	}	
92
	}	
86
93
(-)ui/org/eclipse/jdt/internal/ui/wizards/JavaProjectWizard.java (+47 lines)
Lines 11-24 Link Here
11
package org.eclipse.jdt.internal.ui.wizards;
11
package org.eclipse.jdt.internal.ui.wizards;
12
12
13
import java.lang.reflect.InvocationTargetException;
13
import java.lang.reflect.InvocationTargetException;
14
import java.util.Iterator;
15
import java.util.List;
14
16
15
import org.eclipse.core.runtime.CoreException;
17
import org.eclipse.core.runtime.CoreException;
18
import org.eclipse.core.runtime.IAdaptable;
16
import org.eclipse.core.runtime.IConfigurationElement;
19
import org.eclipse.core.runtime.IConfigurationElement;
17
import org.eclipse.core.runtime.IExecutableExtension;
20
import org.eclipse.core.runtime.IExecutableExtension;
18
import org.eclipse.core.runtime.IProgressMonitor;
21
import org.eclipse.core.runtime.IProgressMonitor;
19
22
20
import org.eclipse.swt.widgets.Shell;
23
import org.eclipse.swt.widgets.Shell;
21
24
25
import org.eclipse.jface.viewers.IStructuredSelection;
26
import org.eclipse.jface.viewers.ITreeSelection;
27
import org.eclipse.jface.viewers.TreePath;
28
29
import org.eclipse.ui.IWorkingSet;
22
import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
30
import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
23
31
24
import org.eclipse.jdt.core.IJavaElement;
32
import org.eclipse.jdt.core.IJavaElement;
Lines 27-32 Link Here
27
import org.eclipse.jdt.internal.ui.JavaPlugin;
35
import org.eclipse.jdt.internal.ui.JavaPlugin;
28
import org.eclipse.jdt.internal.ui.JavaPluginImages;
36
import org.eclipse.jdt.internal.ui.JavaPluginImages;
29
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
37
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
38
import org.eclipse.jdt.internal.ui.workingsets.JavaWorkingSetUpdater;
30
39
31
public class JavaProjectWizard extends NewElementWizard implements IExecutableExtension {
40
public class JavaProjectWizard extends NewElementWizard implements IExecutableExtension {
32
    
41
    
Lines 65-70 Link Here
65
	public boolean performFinish() {
74
	public boolean performFinish() {
66
		boolean res= super.performFinish();
75
		boolean res= super.performFinish();
67
		if (res) {
76
		if (res) {
77
			IWorkingSet workingSet= getWorkingSet(getSelection());
78
			if (workingSet != null && JavaWorkingSetUpdater.ID.equals(workingSet.getId())) {
79
				IAdaptable[] elements= workingSet.getElements();
80
				IAdaptable[] newElements= new IAdaptable[elements.length + 1];
81
				System.arraycopy(elements, 0, newElements, 0, elements.length);
82
				IJavaElement element= getCreatedElement();
83
				newElements[newElements.length - 1]= element;
84
				workingSet.setElements(newElements);
85
			}
68
			BasicNewProjectResourceWizard.updatePerspective(fConfigElement);
86
			BasicNewProjectResourceWizard.updatePerspective(fConfigElement);
69
	 		selectAndReveal(fSecondPage.getJavaProject().getProject());
87
	 		selectAndReveal(fSecondPage.getJavaProject().getProject());
70
		}
88
		}
Lines 99-103 Link Here
99
	public IJavaElement getCreatedElement() {
117
	public IJavaElement getCreatedElement() {
100
		return JavaCore.create(fFirstPage.getProjectHandle());
118
		return JavaCore.create(fFirstPage.getProjectHandle());
101
	}
119
	}
120
	
121
	private IWorkingSet getWorkingSet(IStructuredSelection selection) {
122
		if (!(selection instanceof ITreeSelection))
123
			return null;
124
		ITreeSelection treeSelection= (ITreeSelection)selection;
125
		List elements= treeSelection.toList();
126
		IWorkingSet result= null;
127
		for (Iterator iter= elements.iterator(); iter.hasNext();) {
128
			Object element= iter.next();
129
			if (element instanceof IWorkingSet)
130
				return (IWorkingSet)element;
131
			TreePath[] paths= treeSelection.getPathsFor(element);
132
			if (paths.length != 1)
133
				return null;
134
			TreePath path= paths[0];
135
			if (path.getSegmentCount() != 2)
136
				return null;
137
			Object candidate= path.getSegment(0);
138
			if (!(candidate instanceof IWorkingSet))
139
				return null;
140
			if (result == null) {
141
				result= (IWorkingSet)candidate;
142
			} else {
143
				if (result != candidate)
144
					return null;
145
			}
146
		}
147
		return result;
148
	}
102
        
149
        
103
}
150
}

Return to bug 97200