01: package tide.importtools;
02:
03: import java.io.*;
04: import java.util.*;
05: import tide.project.ProjectSettings;
06: import snow.utils.storage.*;
07: import javax.swing.JOptionPane;
08:
09: /** Imports JBuilder 2 project files.
10: * Missing: libraries paths !! (??)
11: */
12: public final class JBuilder {
13: public static String fileNameEnding = ".jpr";
14: final private File base;
15: private final Map<String, String> map = new HashMap<String, String>();
16:
17: public JBuilder(File projFile, ProjectSettings proj)
18: throws Exception {
19: this .base = projFile.getParentFile();
20:
21: FileReader fr = new FileReader(projFile);
22: BufferedReader br = new BufferedReader(fr);
23: String line = null;
24: while ((line = br.readLine()) != null) {
25:
26: if (line.startsWith(";")) {
27: System.out.println("" + line);
28: } else {
29: int pos = line.indexOf('=');
30: if (pos > 0) {
31: String key = line.substring(0, pos);
32: String val = line.substring(pos + 1);
33:
34: map.put(key, val);
35:
36: if (key.startsWith("sys[0].")) {
37: System.out.println("" + key + ":: " + val);
38: }
39: } else {
40: System.out.println("Bad syntax: " + line);
41: }
42: }
43:
44: }
45:
46: //System.out.println("Sources home = "+getAbsFile(map.get("sys[0].SourcePath")));
47:
48: if (proj != null) {
49: proj.setSources_Home(getAbsFile(map
50: .get("sys[0].SourcePath")));
51: proj.setMainSourceFile(getAbsFile(map
52: .get("sys[0].DefaultRunnablePath")));
53: proj.setRuntimeArgs(map.get("sys[0].JavaVmParameters"));
54: proj.setClasses_Home(getAbsFile(map.get("sys[0].OutPath")));
55: proj.setProjectName(projFile.getName());
56:
57: String libs = map.get("sys[0].Libraries");
58: if (libs != null && libs.length() > 0) {
59: JOptionPane.showMessageDialog(null,
60: "Please add the paths to the libraries\n "
61: + libs + "\nin the project settings");
62: }
63: }
64: }
65:
66: private File getAbsFile(String relName) {
67: File af = new File(base, relName);
68: try {
69: af = af.getCanonicalFile();
70: } catch (Exception ignore) {
71: }
72: return af;
73: }
74:
75: /*test
76: public static void main(String[] args) throws Exception
77: {
78: new JBuilder(new File("c:/temp/PortListener.jpr"), null);
79: }*/
80:
81: }
|