OrderedLayout layoutUpper = new OrderedLayout();
OrderedLayout layoutLower = new OrderedLayout();
+ demoWindow = new Window("Feature Test Window");
+ demoWindow.addListener(this);
+ demoWindow.setWidth(400);
+ demoWindow.setHeight(200);
+ demoWindow.setTheme("default");
+
layoutUpper.addComponent(addButton);
layoutUpper.addComponent(removeButton);
- createDemoWindow();
updateWinStatus();
// Properties
propertyPanel.dependsOn(addButton);
propertyPanel.dependsOn(removeButton);
windowProperties = propertyPanel.createBeanPropertySet(new String[] {
- "width", "height", "name", "border", "theme", "scrollable",
- "scrollOffsetX", "scrollOffsetY" });
+ "width", "height", "name", "theme", "border", "scrollable", });
windowProperties.replaceWithSelect("border", new Object[] {
new Integer(Window.BORDER_DEFAULT),
new Integer(Window.BORDER_NONE),
new Integer(Window.BORDER_MINIMAL) }, new Object[] { "Default",
"None", "Minimal" });
+ // Disabled, not applicable for default theme
+ windowProperties.getField("border").setEnabled(false);
+
propertyPanel.addProperties("Window Properties", windowProperties);
+ windowProperties.getField("width").setDescription(
+ "Minimum width is 100");
+ windowProperties.getField("height").setDescription(
+ "Minimum height is 100");
setJavadocURL("ui/Window.html");
return "Window";
}
- private void createDemoWindow() {
- demoWindow = new Window("Feature Test Window");
- demoWindow.addListener(this);
- // Set window default properties
- demoWindow.setWidth(500);
- demoWindow.setHeight(200);
- demoWindow.setVisible(true);
- demoWindow.setEnabled(true);
- demoWindow.setBorder(Window.BORDER_DEFAULT);
- demoWindow.setReadOnly(false);
- demoWindow.setImmediate(false);
- demoWindow.setIcon(null);
- demoWindow.setComponentError(null);
- demoWindow.setDescription("This is an example description.");
- }
-
public void addWin() {
+
+ propertyPanel.commit();
+
getApplication().addWindow(demoWindow);
+
demoWindow.removeAllComponents();
+
demoWindow
.addComponent(new Label(
"<br /><br />This is a new window created by <em>Add to "
+ " close this window or select <em>Remove from"
+ " application</em> from the Feature Browser window.",
Label.CONTENT_XHTML));
+ // prevent user to change window name tag (after window is created)
+ windowProperties.getField("name").setEnabled(false);
+ windowProperties.getField("name").setReadOnly(true);
demoWindow.setVisible(true);
updateWinStatus();
}
public void delWin() {
getApplication().removeWindow(demoWindow);
- createDemoWindow();
+ // allow user to change window name tag (before window is created)
+ windowProperties.getField("name").setEnabled(true);
+ windowProperties.getField("name").setReadOnly(false);
updateWinStatus();
}
allProperties.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID);
allProperties.setPageLength(0);
updatePropertyList();
+
}
/** Add a formful of properties to property panel */
setButton.dependsOn(properties);
discardButton.dependsOn(properties);
properties.setWriteThrough(false);
+ // TODO change this to false, and test it is suitable for FeatureBrowser
+ // demo
properties.setReadThrough(true);
// Maintain property lists
// Add created fields to property panel
addProperties("Component Basics", set);
+
+ // Customization for Window component
+ if (objectToConfigure instanceof Window) {
+ disableField(set.getField("enabled"), new Boolean(true));
+ disableField(set.getField("visible"), new Boolean(true));
+ disableField(set.getField("componentError"));
+ disableField(set.getField("icon"));
+
+ }
}
/** Add properties for selecting */
/** Field special properties */
private void addFieldProperties() {
- // TODO verify that bug #211 is fixed
+ // TODO bug #211 states that setFocus works only for Button and
+ // Textfield UI components
Form set = new Form(new GridLayout(COLUMNS, 1));
set.addField("focus", new Button("Focus", objectToConfigure, "focus"));
set.getField("focus").setDescription(
}
// Commit all changed on all forms
if (event.getButton() == setButton) {
- for (Iterator i = forms.iterator(); i.hasNext();)
- ((Form) i.next()).commit();
+ commit();
}
// Discard all changed on all forms
public Table getAllProperties() {
return allProperties;
}
+
+ protected void commit() {
+ for (Iterator i = forms.iterator(); i.hasNext();)
+ ((Form) i.next()).commit();
+ }
+
+ private void disableField(Field field) {
+ field.setEnabled(false);
+ field.setReadOnly(true);
+ }
+
+ private void disableField(Field field, Object value) {
+ field.setValue(value);
+ disableField(field);
+ }
+
}