KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > memoire > vainstall > builder > action > OpenProductAction


1 /*
2  * $RCSfile: OpenProductAction.java,v $
3  * @modification $Date: 2001/09/28 19:31:19 $
4  * @version $Id: OpenProductAction.java,v 1.1 2001/09/28 19:31:19 hfalk Exp $
5  *
6  */

7
8 package com.memoire.vainstall.builder.action;
9
10 import com.memoire.vainstall.VAGlobals;
11 import com.memoire.vainstall.builder.*;
12 import com.memoire.vainstall.builder.util.*;
13
14 import java.io.File JavaDoc;
15 import java.util.Hashtable JavaDoc;
16 import javax.swing.JFileChooser JavaDoc;
17 import javax.swing.JOptionPane JavaDoc;
18
19 /**
20  * This action opens an already saved project
21  *
22  * @see com.memoire.vainstall.builder.util.AbstractVAIBuilderAction
23  *
24  * @author Henrik Falk
25  * @version $Id: OpenProductAction.java,v 1.1 2001/09/28 19:31:19 hfalk Exp $
26  */

27 public class OpenProductAction extends AbstractVAIBuilderAction {
28
29     /**
30      * Default constructor
31      */

32     public OpenProductAction() {
33         super();
34     }
35
36     /**
37      * Implements the runnit method
38      */

39     public void runnit() {
40
41         // create filechooser
42
JFileChooser JavaDoc chooser = new JFileChooser JavaDoc();
43         chooser.setDialogType(JFileChooser.OPEN_DIALOG);
44         chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
45
46         // set current directory to ...
47
if (getModel().getLastOpenedProjectList().size() != 0) {
48             String JavaDoc file = (String JavaDoc)getModel().getLastOpenedProjectList().get(0);
49
50             String JavaDoc superdirectory = file.substring(0,file.lastIndexOf(File.separator));
51             String JavaDoc directory = superdirectory.substring(0,superdirectory.lastIndexOf(File.separator));
52             System.out.println(directory);
53             chooser.setCurrentDirectory(new java.io.File JavaDoc(directory));
54         } else {
55             chooser.setCurrentDirectory(new java.io.File JavaDoc(System.getProperty("user.dir")));
56         }
57
58         // we only allow 'vainstall.xml' files to be valid
59
chooser.setAcceptAllFileFilterUsed(false);
60         VAIProjectFileFilter filter = new VAIProjectFileFilter();
61         chooser.addChoosableFileFilter(filter);
62
63         // show filechooser
64
int retval = chooser.showOpenDialog(getController().getFrame());
65         if (retval == JFileChooser.APPROVE_OPTION) {
66             File JavaDoc theFile = chooser.getSelectedFile();
67         } else {
68             // return if the user pressed 'Cancel'
69
return;
70         }
71
72         String JavaDoc fullName = chooser.getSelectedFile().getAbsolutePath();
73
74         String JavaDoc projectDirectory = fullName.substring(0,fullName.lastIndexOf(File.separator));
75
76         // if product already opened then just get it into focus
77
Hashtable JavaDoc list = getController().getProductControllerList();
78         VAIProductController product = (VAIProductController)list.get(projectDirectory);
79         if(product != null) {
80             try {
81                 product.getFrame().setVisible(true);
82                 product.getFrame().setSelected(true);
83                 product.getFrame().setMaximum(true);
84             } catch(Exception JavaDoc exc) {
85                 exc.printStackTrace();
86                 return;
87             }
88             return;
89         }
90
91         // load project
92
VAIProductController productController = new VAIProductController();
93         productController.getModel().setProductDirectory(projectDirectory);
94         try {
95             productController.getModel().load();
96         } catch (VAIBuilderException exc) {
97            JOptionPane.showMessageDialog(getController().getFrame(),
98                 exc.getMessageAsHtml(),
99                 VAGlobals.NAME,
100                 JOptionPane.ERROR_MESSAGE);
101             return;
102         }
103         getController().addProduct(projectDirectory,productController);
104
105     }
106 }
107
Popular Tags