33import org .eclipse .jface .action .IAction ;
44import org .eclipse .jface .viewers .ISelection ;
55import org .eclipse .jface .viewers .IStructuredSelection ;
6+ import org .eclipse .jface .wizard .WizardDialog ;
67import org .eclipse .swt .widgets .Shell ;
78import org .eclipse .ui .IObjectActionDelegate ;
89import org .eclipse .ui .ISelectionService ;
910import org .eclipse .ui .IWorkbenchPart ;
10- import org .eclipse .jdt .internal .core .PackageFragment ;
11+ import org .eclipse .ui .IWorkbenchWindow ;
12+ import org .eclipse .ui .PlatformUI ;
13+
14+ import net .servicestack .eclipse .wizard .AddReferenceWizard ;
15+
16+ import org .eclipse .core .resources .IFolder ;
17+ import org .eclipse .jdt .core .IPackageFragment ;
1118
1219public class AddReferenceAction implements IObjectActionDelegate {
1320
1421 private Shell shell ;
22+ private IFolder _selection ;
23+ private IPackageFragment _packageFragment ;
1524 private ISelectionService selectionService ;
16-
1725 /**
1826 * Constructor for Action1.
1927 */
@@ -26,39 +34,41 @@ public AddReferenceAction() {
2634 */
2735 public void setActivePart (IAction action , IWorkbenchPart targetPart ) {
2836 shell = targetPart .getSite ().getShell ();
37+ targetPart .getSite ().getWorkbenchWindow ().getSelectionService ();
2938 selectionService = targetPart .getSite ().getWorkbenchWindow ().getSelectionService ();
3039 }
3140
3241 /**
3342 * @see IActionDelegate#run(IAction)
3443 */
3544 public void run (IAction action ) {
36- IStructuredSelection structured = (IStructuredSelection ) selectionService
37- .getSelection ("org.eclipse.jdt.ui.PackageExplorer" );
38- Object firstElement = structured .getFirstElement ();
39- if (firstElement instanceof PackageFragment ) { //NoClassDefFoundError...
40- PackageFragment packFrag = (PackageFragment )firstElement ;
45+ if (_selection != null ) {
46+ IStructuredSelection packageSelection = (IStructuredSelection ) selectionService
47+ .getSelection ("org.eclipse.jdt.ui.PackageExplorer" );
48+ Object firstElement = packageSelection .getFirstElement ();
49+ if (firstElement instanceof IPackageFragment ) {
50+ _packageFragment = (IPackageFragment )firstElement ;
51+ }
52+ AddReferenceWizard generationWizard = new AddReferenceWizard (_selection , _packageFragment );
53+ WizardDialog dialog = new WizardDialog (shell , generationWizard );
54+ if (dialog .open () == WizardDialog .OK ){
55+ // MessageDialog.openInformation(shell, "CTE tree generation", "CTE trees are being generated, checking the process view for details!");
56+ }
4157 }
42- // IFolder folder = (IFolder) structured.getFirstElement();
43- // if(folder == null) {
44- // return;
45- // }
46- // IPath path = folder.getLocation();
47- //
48- // ObjectPluginAction pluginAction = (ObjectPluginAction)action;
49- AddRefDialog dialog = new AddRefDialog ();
50- dialog .pack ();
51- dialog .setLocationRelativeTo (null );
52- dialog .setSize (dialog .getPreferredSize ());
53- dialog .setResizable (true );
54- dialog .setTitle ("Add ServiceStack Reference" );
55- dialog .setVisible (true );
5658 }
5759
5860 /**
5961 * @see IActionDelegate#selectionChanged(IAction, ISelection)
6062 */
63+ @ Override
6164 public void selectionChanged (IAction action , ISelection selection ) {
65+ if (selection instanceof IStructuredSelection ) {
66+ IStructuredSelection structured = (IStructuredSelection )selection ;
67+ Object firstElement = structured .getFirstElement ();
68+ if (firstElement instanceof IFolder ) {
69+ _selection = (IFolder ) firstElement ;
70+ }
71+ }
6272 }
63-
73+
6474}
0 commit comments