1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package net.sf.bluecove;
26
27 import java.util.Enumeration;
28 import java.util.Vector;
29
30 import javax.microedition.lcdui.Choice;
31 import javax.microedition.lcdui.ChoiceGroup;
32 import javax.microedition.lcdui.Command;
33 import javax.microedition.lcdui.CommandListener;
34 import javax.microedition.lcdui.Displayable;
35 import javax.microedition.lcdui.Form;
36 import javax.microedition.lcdui.Item;
37 import javax.microedition.lcdui.TextField;
38
39 import org.bluecove.tester.log.Logger;
40
41 import net.sf.bluecove.util.BooleanVar;
42 import net.sf.bluecove.util.IntVar;
43 import net.sf.bluecove.util.StringVar;
44
45 public class BlueCoveTestConfigurationForm extends Form implements CommandListener {
46
47 Command okCommand = new Command("Ok", Command.OK, 2);
48
49 Command cancelCommand = new Command("Cancel", Command.CANCEL, 3);
50
51 Vector configItems = new Vector();
52
53 private static final String[] booleanStrings = new String[] { "on" };
54
55 private class ConfigurationComponent {
56 String name;
57
58 Item guiComponent;
59
60 Object configField;
61 }
62
63 BlueCoveTestConfigurationForm() {
64 super("Configuration");
65
66 addCommand(okCommand);
67 addCommand(cancelCommand);
68 setCommandListener(this);
69
70 buildFields();
71
72 }
73
74 public void commandAction(Command c, Displayable d) {
75 if (c == okCommand) {
76 saveConfig();
77 BlueCoveTestMIDlet.showMain();
78 } else if (c == cancelCommand) {
79 BlueCoveTestMIDlet.showMain();
80 }
81
82 }
83
84 private void buildFields() {
85 addConfig("deviceClassFilter", Configuration.deviceClassFilter);
86 addConfig("discoverDevicesComputers", Configuration.discoverDevicesComputers);
87 addConfig("discoverDevicesPhones", Configuration.discoverDevicesPhones);
88 addConfig("getDeviceFriendlyName", Configuration.discoveryGetDeviceFriendlyName);
89 addConfig("listedDevicesOnly", Configuration.listedDevicesOnly);
90
91
92 addConfig("useShortUUID", Configuration.useShortUUID);
93 addConfig("useServiceClassExtUUID", Configuration.useServiceClassExtUUID);
94 addConfig("clientContinuous", Configuration.clientContinuous);
95 addConfig("clientContinuousDiscovery", Configuration.clientContinuousDiscovery);
96
97
98
99
100 addConfig("srvConnectedAccept", Configuration.serverAcceptWhileConnected);
101
102 addConfig("authenticate", Configuration.authenticate);
103 addConfig("encrypt", Configuration.encrypt);
104
105 addConfig("RFCOMM", Configuration.testRFCOMM);
106 addConfig("TEST_CASE_FIRST", Configuration.TEST_CASE_FIRST);
107 addConfig("TEST_CASE_LAST", Configuration.TEST_CASE_LAST);
108 addConfig("STERSS_TEST_CASE", Configuration.STERSS_TEST_CASE);
109 addConfig("L2CAP", Configuration.testL2CAP);
110 addConfig("authenticateOBEX", Configuration.authenticateOBEX);
111 addConfig("tcp obex", Configuration.testServerOBEX_TCP);
112 addConfig("test Srvc Attr", Configuration.testServiceAttributes);
113 addConfig("test Ignore Broken Srv Attr", Configuration.testIgnoreNotWorkingServiceAttributes);
114 addConfig("test All Srv Attr", Configuration.testAllServiceAttributes);
115
116 }
117
118 private void addConfig(String name, Object var) {
119 ConfigurationComponent cc = new ConfigurationComponent();
120 cc.configField = var;
121 cc.name = name;
122 if (var instanceof BooleanVar) {
123 ChoiceGroup c = new ChoiceGroup(name, Choice.MULTIPLE, booleanStrings, null);
124 c.setSelectedIndex(0, ((BooleanVar) var).booleanValue());
125 cc.guiComponent = c;
126 } else if (var instanceof StringVar) {
127 cc.guiComponent = new TextField(name, var.toString(), 128, TextField.ANY);
128 } else if (var instanceof IntVar) {
129 cc.guiComponent = new TextField(name, var.toString(), 5, TextField.DECIMAL);
130 } else {
131 Logger.error("Unsupported type " + cc.name + " " + var.getClass().getName());
132 return;
133 }
134 configItems.addElement(cc);
135 append(cc.guiComponent);
136 }
137
138 private void saveConfig() {
139 for (Enumeration en = configItems.elements(); en.hasMoreElements();) {
140 ConfigurationComponent cc = (ConfigurationComponent) en.nextElement();
141 if (cc.configField instanceof BooleanVar) {
142 ((BooleanVar) cc.configField).setValue(((ChoiceGroup) cc.guiComponent).isSelected(0));
143 } else if (cc.configField instanceof StringVar) {
144 ((StringVar) cc.configField).setValue(((TextField) cc.guiComponent).getString());
145 } else if (cc.configField instanceof IntVar) {
146 ((IntVar) cc.configField).setValue(((TextField) cc.guiComponent).getString());
147 }
148 }
149 }
150
151 }