author | Eugene Ostroukhov <eugeneo@symbian.org> |
Tue, 31 Aug 2010 11:58:53 -0700 | |
changeset 479 | 518afa7c6d2f |
parent 470 | d4809db37847 |
child 482 | 2973198ae2a9 |
permissions | -rw-r--r-- |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
1 |
package org.symbian.tools.wrttools.util; |
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
2 |
|
104
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
3 |
import java.io.BufferedReader; |
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
4 |
import java.io.IOException; |
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
5 |
import java.io.InputStreamReader; |
200
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
6 |
import java.io.Reader; |
98
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
7 |
import java.text.MessageFormat; |
122
8bb5bc59bfcf
Bug 1667 (WRT Navigator view oddities) and other bugs were fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
104
diff
changeset
|
8 |
import java.util.HashMap; |
8bb5bc59bfcf
Bug 1667 (WRT Navigator view oddities) and other bugs were fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
104
diff
changeset
|
9 |
import java.util.Map; |
98
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
10 |
import java.util.regex.Matcher; |
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
11 |
import java.util.regex.Pattern; |
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
12 |
|
104
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
13 |
import org.eclipse.core.resources.IFile; |
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
14 |
import org.eclipse.core.resources.IProject; |
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
15 |
import org.eclipse.core.resources.IResource; |
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
16 |
import org.eclipse.core.runtime.CoreException; |
122
8bb5bc59bfcf
Bug 1667 (WRT Navigator view oddities) and other bugs were fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
104
diff
changeset
|
17 |
import org.eclipse.core.runtime.IStatus; |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
18 |
import org.eclipse.core.runtime.Platform; |
122
8bb5bc59bfcf
Bug 1667 (WRT Navigator view oddities) and other bugs were fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
104
diff
changeset
|
19 |
import org.eclipse.core.runtime.Status; |
98
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
20 |
import org.eclipse.jface.text.IRegion; |
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
21 |
import org.eclipse.jface.text.Region; |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
22 |
import org.eclipse.wst.jsdt.core.IJavaScriptProject; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
23 |
import org.eclipse.wst.jsdt.core.IType; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
24 |
import org.eclipse.wst.jsdt.core.JavaScriptModelException; |
122
8bb5bc59bfcf
Bug 1667 (WRT Navigator view oddities) and other bugs were fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
104
diff
changeset
|
25 |
import org.symbian.tools.wrttools.Activator; |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
26 |
|
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
27 |
public class CoreUtil { |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
28 |
public static final String METADATA_FILE = "Info.plist"; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
29 |
public static final String PROPERTY_PATTERN = "<key>\\s*{0}\\s*</key>\\s*<string>\\s*(.*)\\s*</string>"; |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
30 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
31 |
public static boolean isWindows() { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
32 |
return "windows".equals(Platform.getOS()); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
33 |
} |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
34 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
35 |
public static boolean isMac() { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
36 |
return "macosx".equals(Platform.getOS()); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
37 |
} |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
38 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
39 |
public static boolean isLinux() { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
40 |
return "linux".equals(Platform.getOS()); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
41 |
} |
98
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
42 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
43 |
public static String getIndexFileName(String buffer) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
44 |
if (buffer != null) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
45 |
Matcher matcher = getPropertyLookupPattern("MainHTML").matcher(buffer); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
46 |
if (matcher.find()) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
47 |
return matcher.group(1); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
48 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
49 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
50 |
return null; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
51 |
} |
98
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
52 |
|
200
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
53 |
public static String getApplicationName(String buffer) { |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
54 |
if (buffer != null) { |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
55 |
Matcher matcher = getPropertyLookupPattern("DisplayName").matcher(buffer); |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
56 |
if (matcher.find()) { |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
57 |
return matcher.group(1); |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
58 |
} |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
59 |
} |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
60 |
return null; |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
61 |
} |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
62 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
63 |
public static Pattern getPropertyLookupPattern(String propertyName) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
64 |
return Pattern.compile(MessageFormat.format(PROPERTY_PATTERN, propertyName), Pattern.CASE_INSENSITIVE); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
65 |
} |
98
b6d252d808df
Nokia validation code is now integrated with WTP framework
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
55
diff
changeset
|
66 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
67 |
public static IRegion getIndexFileNameRegion(String string) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
68 |
Matcher matcher = getPropertyLookupPattern("MainHTML").matcher(string); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
69 |
if (matcher.find()) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
70 |
int start = matcher.start(1); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
71 |
return new Region(start, matcher.end(1) - start); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
72 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
73 |
return null; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
74 |
} |
104
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
75 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
76 |
public static IFile getFile(IProject project, String fileName) throws CoreException { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
77 |
String n = fileName.toLowerCase(); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
78 |
IResource[] members = project.members(); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
79 |
for (IResource iResource : members) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
80 |
if (iResource.getType() == IResource.FILE && n.equals(iResource.getName().toLowerCase()) |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
81 |
&& iResource.isAccessible()) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
82 |
return (IFile) iResource; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
83 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
84 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
85 |
return null; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
86 |
} |
104
58b323842de3
Bug 1650 - Source not found for preview code while stepping in debugger - was fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
98
diff
changeset
|
87 |
|
468
a05c6e5cc7d9
Previewer now is TMWed (can support projects with different natures). Note: this commit does not compile. This previewer still only supports WRT libraries
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
415
diff
changeset
|
88 |
public static String readFile(IFile file) throws CoreException { |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
89 |
try { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
90 |
if (file != null && file.isAccessible()) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
91 |
final BufferedReader reader = new BufferedReader(new InputStreamReader(file.getContents(), |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
92 |
file.getCharset())); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
93 |
return read(reader); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
94 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
95 |
return null; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
96 |
} catch (IOException e) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
97 |
throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, MessageFormat.format( |
468
a05c6e5cc7d9
Previewer now is TMWed (can support projects with different natures). Note: this commit does not compile. This previewer still only supports WRT libraries
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
415
diff
changeset
|
98 |
"Failed to read file {0} in project {1}", file.getName(), file.getProject().getName()))); |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
99 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
100 |
} |
122
8bb5bc59bfcf
Bug 1667 (WRT Navigator view oddities) and other bugs were fixed
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
104
diff
changeset
|
101 |
|
200
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
102 |
public static String read(final Reader reader) throws IOException { |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
103 |
StringBuffer buffer = new StringBuffer(); |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
104 |
try { |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
105 |
int c = 0; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
106 |
char[] buf = new char[4096]; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
107 |
while ((c = reader.read(buf)) > 0) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
108 |
buffer.append(buf, 0, c); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
109 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
110 |
return buffer.toString(); |
200
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
111 |
} finally { |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
112 |
reader.close(); |
200
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
113 |
} |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
114 |
} |
830136ec8316
Wizard can now import projects of any time (i.e. Dreamweaver, WRT IDE) from the filesystem
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
139
diff
changeset
|
115 |
|
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
116 |
private static final Map<IProject, IndexFileRecord> INDEX_FILES = new HashMap<IProject, IndexFileRecord>(); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
117 |
|
479
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
118 |
public static synchronized IFile getIndexFile(IProject project) throws CoreException { |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
119 |
// There will really be a lot of calls to this method. We need to cache values. |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
120 |
IFile file = getFile(project, METADATA_FILE); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
121 |
if (file == null) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
122 |
return null; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
123 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
124 |
if (INDEX_FILES.containsKey(project)) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
125 |
IndexFileRecord record = INDEX_FILES.get(project); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
126 |
if (file == null || !file.isAccessible()) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
127 |
throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, MessageFormat.format( |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
128 |
"No Info.plist for project {0}", project.getName()))); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
129 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
130 |
if (record.timeStamp == file.getModificationStamp()) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
131 |
return record.fileName; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
132 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
133 |
} |
468
a05c6e5cc7d9
Previewer now is TMWed (can support projects with different natures). Note: this commit does not compile. This previewer still only supports WRT libraries
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
415
diff
changeset
|
134 |
String fileName = getIndexFileName(readFile(file)); |
479
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
135 |
if (fileName != null) { |
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
136 |
IFile f = getFile(project, fileName); |
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
137 |
INDEX_FILES.put(project, new IndexFileRecord(f, file.getModificationStamp())); |
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
138 |
return f; |
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
139 |
} |
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
140 |
return null; |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
141 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
142 |
|
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
143 |
private static class IndexFileRecord { |
479
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
144 |
public final IFile fileName; |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
145 |
public final long timeStamp; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
146 |
|
479
518afa7c6d2f
Minor refactoring to make API more clear
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
470
diff
changeset
|
147 |
public IndexFileRecord(IFile fileName, long timeStamp) { |
415
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
148 |
this.fileName = fileName; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
149 |
this.timeStamp = timeStamp; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
150 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
151 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
152 |
|
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
153 |
public static boolean hasType(IJavaScriptProject project, String name) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
154 |
try { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
155 |
final IType[] types = project.findTypes(name); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
156 |
if (types != null) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
157 |
for (IType type : types) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
158 |
if (type.getJavaScriptProject().equals(project)) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
159 |
return true; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
160 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
161 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
162 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
163 |
} catch (JavaScriptModelException e) { |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
164 |
Activator.log(e); |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
165 |
} |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
166 |
return false; |
8198c73b9e1f
Bug 2835 - Add JavaScript library is grayed out even if not already included
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
200
diff
changeset
|
167 |
} |
55
bb6160d0b6f2
Added fallback to default browser if platform is Mac or XULRunner is not available
Eugene Ostroukhov <eostroukhov@gmail.com>
parents:
diff
changeset
|
168 |
} |