|
From: <pat...@us...> - 2010-07-16 02:12:03
|
Revision: 1090
http://cishell.svn.sourceforge.net/cishell/?rev=1090&view=rev
Author: pataphil
Date: 2010-07-16 02:11:57 +0000 (Fri, 16 Jul 2010)
Log Message:
-----------
* Fixed up GUIModel a tiny bit.
Modified Paths:
--------------
trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModel.java
Added Paths:
-----------
trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModelGroup.java
Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModel.java
===================================================================
--- trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModel.java 2010-07-15 08:30:27 UTC (rev 1089)
+++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModel.java 2010-07-16 02:11:57 UTC (rev 1090)
@@ -19,40 +19,44 @@
import org.eclipse.swt.widgets.Widget;
public class GUIModel {
- private Map<String, GUIModelField<?, ? extends Widget, ? extends ModelDataSynchronizer<?>>>
- inputFieldsByName = new HashMap<
- String, GUIModelField<?, ? extends Widget, ? extends ModelDataSynchronizer<?>>>();
+ private Map<String, GUIModelGroup> groups = new HashMap<String, GUIModelGroup>();
public GUIModel() {
}
- public Collection<String> getFieldNames() {
- return this.inputFieldsByName.keySet();
+ public Collection<String> getGroupNames() {
+ return this.groups.keySet();
}
- public Collection<
- GUIModelField<?, ? extends Widget, ? extends ModelDataSynchronizer<?>>> getFields() {
- return this.inputFieldsByName.values();
+ public Collection<GUIModelGroup> getGroups() {
+ return this.groups.values();
}
- public GUIModelField<
- ?, ? extends Widget, ? extends ModelDataSynchronizer<?>> getField(String name) {
- return this.inputFieldsByName.get(name);
+ public GUIModelGroup getGroup(String name) {
+ if (!this.groups.containsKey(name)) {
+ GUIModelGroup newGroup = new GUIModelGroup(name);
+ this.groups.put(name, newGroup);
+
+ return newGroup;
+ } else {
+ return this.groups.get(name);
+ }
}
public GUIModelField<Boolean, Button, CheckBoxDataSynchronizer> addCheckBox(
- String name, boolean on, Composite parent, int style) {
+ String groupName, String name, boolean on, Composite parent, int style) {
Button checkBox = new Button(parent, style | SWT.CHECK);
CheckBoxDataSynchronizer dataSynchronizer = new CheckBoxDataSynchronizer(checkBox, on);
GUIModelField<Boolean, Button, CheckBoxDataSynchronizer> field =
new GUIModelField<Boolean, Button, CheckBoxDataSynchronizer>(
name, on, checkBox, dataSynchronizer);
- addField(field);
+ addField(groupName, field);
return field;
}
public GUIModelField<String, Combo, DropDownDataSynchronizer> addDropDown(
+ String groupName,
String name,
int selectedIndex,
Collection<String> unorderedOptionLabels,
@@ -69,7 +73,7 @@
optionValuesByLabels.get(orderedOptionLabels.get(selectedIndex)),
dropDown,
dataSynchronizer);
- addField(field);
+ addField(groupName, field);
return field;
}
@@ -119,6 +123,7 @@
// TODO: Test this out.
public GUIModelField<String, List, SingleListSelectionDataSynchronizer> addList(
+ String groupName,
String name,
int selectedIndex,
Collection<String> unorderedOptionLabels,
@@ -133,7 +138,7 @@
GUIModelField<String, List, SingleListSelectionDataSynchronizer> field =
new GUIModelField<String, List, SingleListSelectionDataSynchronizer>(
name, list.getItem(selectedIndex), list, dataSynchronizer);
- addField(field);
+ addField(groupName, field);
return field;
}
@@ -147,6 +152,7 @@
// TODO: addStyledText
public GUIModelField<String, Text, TextDataSynchronizer> addText(
+ String groupName,
String name,
String value,
boolean isMultiLined,
@@ -163,21 +169,22 @@
GUIModelField<String, Text, TextDataSynchronizer> field =
new GUIModelField<String, Text, TextDataSynchronizer>(
name, value, text, dataSynchronizer);
- addField(field);
+ addField(groupName, field);
return field;
}
public<T> void addField(
+ String groupName,
GUIModelField<T, ? extends Widget, ? extends ModelDataSynchronizer<?>> field) {
- String fieldName = field.getName();
+ GUIModelGroup group = getGroup(groupName);
+ group.addField(field);
+ }
- if (this.inputFieldsByName.containsKey(fieldName)) {
- String exceptionMessage =
- "A field with the name \"" + fieldName + "\" already exists. Unable to continue.";
- throw new ModelFieldException(exceptionMessage);
+ public<T> void removeField(
+ GUIModelField<T, ? extends Widget, ? extends ModelDataSynchronizer<?>> field) {
+ for (GUIModelGroup group : this.groups.values()) {
+ group.removeField(field);
}
-
- this.inputFieldsByName.put(fieldName, field);
}
}
\ No newline at end of file
Added: trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModelGroup.java
===================================================================
--- trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModelGroup.java (rev 0)
+++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/swt/model/GUIModelGroup.java 2010-07-16 02:11:57 UTC (rev 1090)
@@ -0,0 +1,55 @@
+package org.cishell.utilities.swt.model;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cishell.utilities.swt.model.datasynchronizer.ModelDataSynchronizer;
+import org.eclipse.swt.widgets.Widget;
+
+public class GUIModelGroup {
+ private String name;
+ private Map<String, GUIModelField<?, ? extends Widget, ? extends ModelDataSynchronizer<?>>>
+ inputFieldsByName = new HashMap<
+ String, GUIModelField<?, ? extends Widget, ? extends ModelDataSynchronizer<?>>>();
+
+ public GUIModelGroup(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public Collection<String> getFieldNames() {
+ return this.inputFieldsByName.keySet();
+ }
+
+ public Collection<
+ GUIModelField<?, ? extends Widget, ? extends ModelDataSynchronizer<?>>> getFields() {
+ return this.inputFieldsByName.values();
+ }
+
+ public GUIModelField<
+ ?, ? extends Widget, ? extends ModelDataSynchronizer<?>> getField(String name) {
+ return this.inputFieldsByName.get(name);
+ }
+
+ public<T> void addField(
+ GUIModelField<T, ? extends Widget, ? extends ModelDataSynchronizer<?>> field) {
+ String fieldName = field.getName();
+
+ if (this.inputFieldsByName.containsKey(fieldName)) {
+ String exceptionMessage =
+ "A field with the name \"" + fieldName + "\" already exists. Unable to continue.";
+ throw new ModelFieldException(exceptionMessage);
+ }
+
+ this.inputFieldsByName.put(fieldName, field);
+ }
+
+ public<T> void removeField(
+ GUIModelField<T, ? extends Widget, ? extends ModelDataSynchronizer<?>> field) {
+ this.inputFieldsByName.remove(field);
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|