?? swingbuilder.java
字號(hào):
registerFactory("tableModel", new Factory() {
public Object newInstance(Map properties) {
ValueModel model = (ValueModel) properties.remove("model");
if (model == null) {
Object list = properties.remove("list");
if (list == null) {
list = new ArrayList();
}
model = new ValueHolder(list);
}
return new DefaultTableModel(model);
}
});
passThroughNodes.put("tableModel", javax.swing.table.TableModel.class);
registerFactory("propertyColumn", new Factory() {
public Object newInstance(Map properties) {
Object current = getCurrent();
if (current instanceof DefaultTableModel) {
DefaultTableModel model = (DefaultTableModel) current;
Object header = properties.remove("header");
if (header == null) {
header = "";
}
String property = (String) properties.remove("propertyName");
if (property == null) {
throw new IllegalArgumentException("Must specify a property for a propertyColumn");
}
Class type = (Class) properties.remove("type");
if (type == null) {
type = Object.class;
}
return model.addPropertyColumn(header, property, type);
}
else {
throw new RuntimeException("propertyColumn must be a child of a tableModel");
}
}
});
registerFactory("closureColumn", new Factory() {
public Object newInstance(Map properties) {
Object current = getCurrent();
if (current instanceof DefaultTableModel) {
DefaultTableModel model = (DefaultTableModel) current;
Object header = properties.remove("header");
if (header == null) {
header = "";
}
Closure readClosure = (Closure) properties.remove("read");
if (readClosure == null) {
throw new IllegalArgumentException("Must specify 'read' Closure property for a closureColumn");
}
Closure writeClosure = (Closure) properties.remove("write");
Class type = (Class) properties.remove("type");
if (type == null) {
type = Object.class;
}
return model.addClosureColumn(header, readClosure, writeClosure, type);
}
else {
throw new RuntimeException("propertyColumn must be a child of a tableModel");
}
}
});
//Standard Layouts
registerBeanFactory("borderLayout", BorderLayout.class);
registerBeanFactory("cardLayout", CardLayout.class);
registerBeanFactory("flowLayout", FlowLayout.class);
registerBeanFactory("gridBagLayout", GridBagLayout.class);
registerBeanFactory("gridLayout", GridLayout.class);
registerBeanFactory("overlayLayout", OverlayLayout.class);
registerBeanFactory("springLayout", SpringLayout.class);
registerBeanFactory("gridBagConstraints", GridBagConstraints.class);
registerBeanFactory("gbc", GridBagConstraints.class); // shortcut name
// box layout
registerFactory("boxLayout", new Factory() {
public Object newInstance(Map properties)
throws InstantiationException, InstantiationException, IllegalAccessException {
return createBoxLayout(properties);
}
});
// Box related layout components
registerFactory("hbox", new Factory() {
public Object newInstance(Map properties) {
return Box.createHorizontalBox();
}
});
registerFactory("hglue", new Factory() {
public Object newInstance(Map properties) {
return Box.createHorizontalGlue();
}
});
registerFactory("hstrut", new Factory() {
public Object newInstance(Map properties) {
try {
Object num = properties.remove("width");
if (num instanceof Number) {
return Box.createHorizontalStrut(((Number)num).intValue());
} else {
return Box.createHorizontalStrut(6);
}
} catch (RuntimeException re) {
re.printStackTrace(System.out);
throw re;
}
}
});
registerFactory("vbox", new Factory() {
public Object newInstance(Map properties) {
return Box.createVerticalBox();
}
});
registerFactory("vglue", new Factory() {
public Object newInstance(Map properties) {
return Box.createVerticalGlue();
}
});
registerFactory("vstrut", new Factory() {
public Object newInstance(Map properties) {
Object num = properties.remove("height");
if (num instanceof Number) {
return Box.createVerticalStrut(((Number)num).intValue());
} else {
return Box.createVerticalStrut(6);
}
}
});
registerFactory("glue", new Factory() {
public Object newInstance(Map properties) {
return Box.createGlue();
}
});
registerFactory("rigidArea", new Factory() {
public Object newInstance(Map properties) {
Dimension dim;
Object o = properties.remove("size");
if (o instanceof Dimension) {
dim = (Dimension) o;
} else {
int w, h;
o = properties.remove("width");
w = ((o instanceof Number)) ? ((Number)o).intValue() : 6;
o = properties.remove("height");
h = ((o instanceof Number)) ? ((Number)o).intValue() : 6;
dim = new Dimension(w, h);
}
return Box.createRigidArea(dim);
}
});
// table layout
registerBeanFactory("tableLayout", TableLayout.class);
registerFactory("tr", new Factory() {
public Object newInstance(Map properties) {
Object parent = getCurrent();
if (parent instanceof TableLayout) {
return new TableLayoutRow((TableLayout) parent);
}
else {
throw new RuntimeException("'tr' must be within a 'tableLayout'");
}
}
});
registerFactory("td", new Factory() {
public Object newInstance(Map properties) {
Object parent = getCurrent();
if (parent instanceof TableLayoutRow) {
return new TableLayoutCell((TableLayoutRow) parent);
}
else {
throw new RuntimeException("'td' must be within a 'tr'");
}
}
});
}
protected Object createBoxLayout(Map properties) {
Object parent = getCurrent();
if (parent instanceof Container) {
Object axisObject = properties.remove("axis");
int axis = BoxLayout.X_AXIS;
if (axisObject != null) {
Integer i = (Integer) axisObject;
axis = i.intValue();
}
Container target = (Container) parent;
if (target instanceof RootPaneContainer) {
target = ((RootPaneContainer) target).getContentPane();
}
BoxLayout answer = new BoxLayout(target, axis);
// now lets try set the layout property
InvokerHelper.setProperty(parent, "layout", answer);
return answer;
}
else {
throw new RuntimeException("Must be nested inside a Container");
}
}
protected Object createDialog(Map properties) {
JDialog dialog;
Object owner = properties.remove("owner");
// if owner not explicit, use the last window type in the list
if ((owner == null) && !containingWindows.isEmpty()) {
owner = containingWindows.getLast();
}
if (owner instanceof Frame) {
dialog = new JDialog((Frame) owner);
}
else if (owner instanceof Dialog) {
dialog = new JDialog((Dialog) owner);
}
else {
dialog = new JDialog();
}
containingWindows.add(dialog);
return dialog;
}
/**
* Uses 'format," or "value," (in order)
*
*/
protected Object createFormattedTextField(Map properties) {
JFormattedTextField ftf;
if (properties.containsKey("format")) {
ftf = new JFormattedTextField((Format) properties.remove("format"));
}
else if (properties.containsKey("value")) {
ftf = new JFormattedTextField(properties.remove("value"));
}
else {
ftf = new JFormattedTextField();
}
return ftf;
}
protected Object createFrame(Map properties) {
JFrame frame = new JFrame();
containingWindows.add(frame);
return frame;
}
protected Object createWindow(Map properties) {
JWindow window;
Object owner = properties.remove("owner");
// if owner not explicit, use the last window type in the list
if ((owner == null) && !containingWindows.isEmpty()) {
owner = containingWindows.getLast();
}
if (owner instanceof Frame) {
window = new JWindow((Frame) owner);
}
else if (owner instanceof Window) {
window = new JWindow((Window) owner);
}
else {
window = new JWindow();
}
containingWindows.add(window);
return window;
}
protected Object createComboBox(Map properties) {
Object items = properties.remove("items");
if (items instanceof Vector) {
return new JComboBox((Vector) items);
}
else if (items instanceof List) {
List list = (List) items;
return new JComboBox(list.toArray());
}
else if (items instanceof Object[]) {
return new JComboBox((Object[]) items);
}
else {
return new JComboBox();
}
}
protected void registerBeanFactory(String name, final Class beanClass) {
registerFactory(name, new Factory() {
public Object newInstance(Map properties) throws InstantiationException, IllegalAccessException {
return beanClass.newInstance();
}
});
}
protected void registerFactory(String name, Factory factory) {
factories.put(name, factory);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -