1 package org.dbe.studio.tools.accounting.metering.actions;
2
3
4
5 import org.dbe.studio.tools.accounting.metering.wizards.AccountingWizard;
6 import org.eclipse.core.resources.IFile;
7 import org.eclipse.jface.action.IAction;
8 import org.eclipse.jface.viewers.ISelection;
9 import org.eclipse.jface.viewers.IStructuredSelection;
10 import org.eclipse.jface.wizard.WizardDialog;
11 import org.eclipse.swt.widgets.FileDialog;
12 import org.eclipse.ui.IActionDelegate;
13 import org.eclipse.ui.IObjectActionDelegate;
14 import org.eclipse.ui.IWorkbenchPart;
15 import org.eclipse.ui.PlatformUI;
16
17 public class AddMeteringAction implements IObjectActionDelegate {
18 IFile darFile;
19 /***
20 * Constructor for Action1.
21 */
22 public AddMeteringAction() {
23 super();
24 }
25
26 /***
27 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
28 */
29 public void setActivePart(IAction action, IWorkbenchPart targetPart) {
30 }
31
32 /***
33 * @see IActionDelegate#run(IAction)
34 */
35 public void run(IAction action) {
36 if (this.darFile == null) {
37 FileDialog fd = new FileDialog(PlatformUI.getWorkbench()
38 .getActiveWorkbenchWindow().getShell());
39 fd.setFilterExtensions(new String[] { "*.dar" });
40 fd.setText("Select DAR File to regsiter");
41 String fileName = fd.open();
42 if (fileName != null)
43 this.openWizard(fileName);
44
45 } else {
46 this.openWizard(darFile.getLocation().toString());
47 }
48 this.darFile = null;
49 }
50
51 /***
52 * @param fileName
53 */
54 private void openWizard(String fileName) {
55 try{
56
57 AccountingWizard wizard = new AccountingWizard(fileName);
58
59 WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench()
60 .getActiveWorkbenchWindow().getShell(), wizard);
61 dialog.create();
62 dialog.open();
63 }catch(Exception e){
64 e.printStackTrace();
65 }
66 }
67
68 /***
69 * @see IActionDelegate#selectionChanged(IAction, ISelection)
70 */
71 public void selectionChanged(IAction action, ISelection selection) {
72 this.darFile = null;
73 if (selection instanceof IStructuredSelection) {
74 IStructuredSelection structuredSelection = (IStructuredSelection) selection;
75 if (structuredSelection.size() == 1) {
76 Object selectedResource = structuredSelection.getFirstElement();
77 if (selectedResource instanceof IFile) {
78 this.darFile = (IFile) selectedResource;
79 }
80 }
81 }
82 }
83
84
85 }