|
23 | 23 | import org.httprpc.sierra.VerticalAlignment; |
24 | 24 |
|
25 | 25 | import javax.swing.Icon; |
| 26 | +import javax.swing.JComponent; |
26 | 27 | import javax.swing.JMenu; |
27 | 28 | import javax.swing.JMenuBar; |
28 | 29 | import javax.swing.JPanel; |
|
35 | 36 | import java.awt.Font; |
36 | 37 | import java.awt.Image; |
37 | 38 | import java.io.File; |
| 39 | +import java.io.FileInputStream; |
38 | 40 | import java.io.FileOutputStream; |
39 | 41 | import java.io.IOException; |
40 | 42 | import java.io.Writer; |
|
44 | 46 | import java.util.HashSet; |
45 | 47 | import java.util.List; |
46 | 48 | import java.util.Map; |
| 49 | +import java.util.Properties; |
47 | 50 |
|
48 | 51 | import static org.httprpc.sierra.UILoader.*; |
49 | 52 |
|
@@ -250,7 +253,26 @@ private void declareAttributeList(String tag, Class<?> type, Writer writer) thro |
250 | 253 | writer.append(";>\n"); |
251 | 254 | } |
252 | 255 |
|
| 256 | + @SuppressWarnings("unchecked") |
253 | 257 | public static void main(String[] args) throws Exception { |
| 258 | + if (args.length > 0) { |
| 259 | + var bindings = new Properties(); |
| 260 | + |
| 261 | + var directory = new File(System.getProperty("user.dir")); |
| 262 | + var file = new File(directory, args[0]); |
| 263 | + |
| 264 | + try (var inputStream = new FileInputStream(file)) { |
| 265 | + bindings.load(inputStream); |
| 266 | + } |
| 267 | + |
| 268 | + for (var entry : bindings.entrySet()) { |
| 269 | + var tag = (String)entry.getKey(); |
| 270 | + var type = (Class<? extends JComponent>)Class.forName((String)entry.getValue()); |
| 271 | + |
| 272 | + UILoader.bind(tag, type, () -> null); |
| 273 | + } |
| 274 | + } |
| 275 | + |
254 | 276 | var typeSet = new HashSet<Class<?>>(); |
255 | 277 |
|
256 | 278 | var tags = new HashMap<Class<?>, String>(); |
|
0 commit comments