|
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 |
} |