Mercurial > projects > dwt-win
annotate dwt/dwthelper/ResourceBundle.d @ 319:71b78d56f01f
Enable unicode literal in resource bundles.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 23 Oct 2008 23:41:09 +0200 |
parents | 8c656d6b7300 |
children | 27479f54069d |
rev | line source |
---|---|
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
1 /** |
0 | 2 * Authors: Frank Benoit <keinfarbton@googlemail.com> |
3 */ | |
4 module dwt.dwthelper.ResourceBundle; | |
5 | |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
6 import tango.text.Util; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
7 import tango.io.Stdout; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
8 |
197
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
9 import dwt.DWT; |
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
10 import dwt.dwthelper.utils; |
200 | 11 import tango.io.File; |
317
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
12 import tango.text.locale.Core; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
13 |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
14 import tango.util.log.Trace; |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
15 |
0 | 16 class ResourceBundle { |
17 | |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
18 String[ String ] map; |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
19 |
317
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
20 /++ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
21 + First entry is the default entry if no maching locale is found |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
22 +/ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
23 public this( ImportData[] data ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
24 char[] name = Culture.current().name.dup; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
25 if( name.length is 5 && name[2] is '-' ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
26 name[2] = '_'; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
27 char[] end = "_" ~ name ~ ".properties"; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
28 foreach( entry; data ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
29 if( entry.name.length > end.length && entry.name[ $-end.length .. $ ] == end ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
30 Trace.formatln( "ResourceBundle {}", entry.name ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
31 initialize( cast(char[])entry.data ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
32 return; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
33 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
34 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
35 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
36 char[] end = "_" ~ name[0..2] ~ ".properties"; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
37 foreach( entry; data ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
38 if( entry.name.length > end.length && entry.name[ $-end.length .. $ ] == end ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
39 Trace.formatln( "ResourceBundle {}", entry.name ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
40 initialize( cast(char[])entry.data ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
41 return; |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
42 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
43 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
44 Trace.formatln( "ResourceBundle default" ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
45 initialize( cast(char[])data[0].data ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
46 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
47 public this( ImportData data ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
48 initialize( cast(char[])data.data ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
49 } |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
50 public this( String data ){ |
317
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
51 initialize( data ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
52 } |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
53 private void initialize( String data ){ |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
54 String line; |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
55 int dataIndex; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
56 |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
57 //tango.io.Stdout.Stdout.formatln( "properties put ..." ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
58 void readLine(){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
59 line.length = 0; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
60 char i = data[ dataIndex++ ]; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
61 while( dataIndex < data.length && i !is '\n' && i !is '\r' ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
62 line ~= i; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
63 i = data[ dataIndex++ ]; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
64 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
65 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
66 |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
67 //tango.io.Stdout.Stdout.formatln( "properties put {}", __LINE__ ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
68 bool linecontinue = false; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
69 bool iskeypart = true; |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
70 String key; |
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
71 String value; |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
72 nextline: |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
73 while( dataIndex < data.length ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
74 //tango.io.Stdout.Stdout.formatln( "properties put {} startline", __LINE__ ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
75 readLine(); |
197
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
76 line = dwt.dwthelper.utils.trim(line); |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
77 if( line.length is 0 ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
78 //tango.io.Stdout.Stdout.formatln( "properties put {} was 0 length", __LINE__ ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
79 continue; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
80 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
81 if( line[0] == '#' ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
82 //tango.io.Stdout.Stdout.formatln( "properties put {} was comment", __LINE__ ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
83 continue; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
84 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
85 int pos = 0; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
86 bool esc = false; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
87 if( !linecontinue ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
88 iskeypart = true; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
89 key = null; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
90 value = null; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
91 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
92 else{ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
93 linecontinue = false; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
94 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
95 while( pos < line.length ){ |
319
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
96 char[] c = line[pos .. pos +1]; |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
97 if( esc ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
98 esc = false; |
319
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
99 switch( c[0] ){ |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
100 case 't' : c[0] = '\t'; break; |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
101 case 'n' : c[0] = '\n'; break; |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
102 case '\\': c[0] = '\\'; break; |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
103 case '\"': c[0] = '\"'; break; |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
104 case 'u' : |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
105 dchar d = Integer.parseInt( line[ pos+1 .. pos+5 ], 16 ); |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
106 c = dcharToString(d); |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
107 pos += 4; |
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
108 break; |
124
1da8c82b1c84
Add: hasString for ResourceBundle to indicate if the string has length 0 or is not present
Frank Benoit <benoit@tionex.de>
parents:
84
diff
changeset
|
109 default: break; |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
110 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
111 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
112 else{ |
319
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
113 if( c == "\\" ){ |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
114 if( pos == line.length -1 ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
115 linecontinue = true; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
116 goto nextline; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
117 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
118 esc = true; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
119 pos++; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
120 continue; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
121 } |
319
71b78d56f01f
Enable unicode literal in resource bundles.
Frank Benoit <benoit@tionex.de>
parents:
317
diff
changeset
|
122 else if( iskeypart && c == "=" ){ |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
123 pos++; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
124 iskeypart = false; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
125 continue; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
126 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
127 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
128 pos++; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
129 if( iskeypart ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
130 key ~= c; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
131 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
132 else{ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
133 value ~= c; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
134 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
135 } |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
136 if( iskeypart ){ |
197
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
137 // Cannot find '=' in record |
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
138 DWT.error( __FILE__, __LINE__, DWT.ERROR_INVALID_ARGUMENT ); |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
139 continue; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
140 } |
197
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
141 key = dwt.dwthelper.utils.trim(key); |
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
142 value = dwt.dwthelper.utils.trim(value); |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
143 //tango.io.Stdout.Stdout.formatln( "properties put {}=>{}", key, value ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
144 |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
145 map[ key.dup ] = value.dup; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
146 //tango.io.Stdout.Stdout.formatln( "properties put {}", __LINE__ ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
147 } |
0 | 148 } |
149 | |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
150 public bool hasString( String key ){ |
124
1da8c82b1c84
Add: hasString for ResourceBundle to indicate if the string has length 0 or is not present
Frank Benoit <benoit@tionex.de>
parents:
84
diff
changeset
|
151 return ( key in map ) !is null; |
1da8c82b1c84
Add: hasString for ResourceBundle to indicate if the string has length 0 or is not present
Frank Benoit <benoit@tionex.de>
parents:
84
diff
changeset
|
152 } |
1da8c82b1c84
Add: hasString for ResourceBundle to indicate if the string has length 0 or is not present
Frank Benoit <benoit@tionex.de>
parents:
84
diff
changeset
|
153 |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
154 public String getString( String key ){ |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
155 if( auto v = key in map ){ |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
156 return (*v).dup; |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
157 } |
197
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
158 throw new MissingResourceException( "key not found", this.classinfo.name, key ); |
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
159 } |
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
160 |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
161 public String[] getKeys(){ |
197
184ab53b7785
Changes and fixes for jface
Frank Benoit <benoit@tionex.de>
parents:
124
diff
changeset
|
162 return map.keys; |
0 | 163 } |
164 | |
317
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
165 public static ResourceBundle getBundle( ImportData[] data ){ |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
166 return new ResourceBundle( data ); |
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
167 } |
200 | 168 public static ResourceBundle getBundle( ImportData data ){ |
317
8c656d6b7300
Add support for SWT language files
Frank Benoit <benoit@tionex.de>
parents:
212
diff
changeset
|
169 return new ResourceBundle( data ); |
200 | 170 } |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
171 public static ResourceBundle getBundle( String name ){ |
200 | 172 try{ |
173 scope f = new File(name); | |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
174 return new ResourceBundle( cast(String) f.read() ); |
200 | 175 } |
176 catch( IOException e){ | |
177 e.msg ~= " file:" ~ name; | |
178 throw e; | |
179 } | |
0 | 180 } |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
200
diff
changeset
|
181 public static ResourceBundle getBundleFromData( String data ){ |
84
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
182 return new ResourceBundle( data ); |
00a333240696
FileDialog, sync dwthelper with dwt-linux, some TCHAR issues
Frank Benoit <benoit@tionex.de>
parents:
0
diff
changeset
|
183 } |
0 | 184 } |
185 | |
186 |