1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.fosstrak.llrp.commander.dialogs;
23
24 import org.eclipse.jface.dialogs.Dialog;
25 import org.eclipse.jface.window.Window;
26 import org.eclipse.swt.SWT;
27 import org.eclipse.swt.events.SelectionAdapter;
28 import org.eclipse.swt.events.SelectionEvent;
29 import org.eclipse.swt.events.SelectionListener;
30 import org.eclipse.swt.layout.GridData;
31 import org.eclipse.swt.layout.GridLayout;
32 import org.eclipse.swt.widgets.Button;
33 import org.eclipse.swt.widgets.Composite;
34 import org.eclipse.swt.widgets.Control;
35 import org.eclipse.swt.widgets.Event;
36 import org.eclipse.swt.widgets.Label;
37 import org.eclipse.swt.widgets.Listener;
38 import org.eclipse.swt.widgets.Shell;
39 import org.eclipse.swt.widgets.Text;
40 import org.fosstrak.llrp.client.Repository;
41 import org.fosstrak.llrp.commander.ResourceCenter;
42 import org.fosstrak.llrp.commander.views.MessageboxView;
43
44
45
46
47
48
49 public class MessageboxViewOptionsDialog extends Dialog {
50
51
52 private long refreshTime;
53
54
55 private int numberOfMessages;
56
57
58 private MessageboxView mbv;
59
60
61
62
63
64
65 public MessageboxViewOptionsDialog(Shell aShell, MessageboxView mbv) {
66 super(aShell);
67 numberOfMessages = mbv.getDisplayNumMessages();
68 refreshTime = ResourceCenter.getInstance().getMessageBoxRefresh().getRefreshTime();
69 this.mbv = mbv;
70 }
71
72
73
74
75 protected Control createContents(Composite parent) {
76
77 GridLayout layout = new GridLayout();
78 layout.numColumns = 3;
79
80 GridData gridLabel = new GridData(GridData.FILL_BOTH);
81 gridLabel.verticalSpan = 1;
82 gridLabel.horizontalSpan = 1;
83 gridLabel.widthHint = 250;
84 gridLabel.heightHint = 20;
85
86 GridData gridText = new GridData(GridData.FILL_BOTH);
87 gridText.verticalSpan = 1;
88 gridText.horizontalSpan = 2;
89 gridText.widthHint = 150;
90 gridText.heightHint = 20;
91
92 parent.getShell().setLayout(layout);
93 parent.getShell().setText("Messagebox View Options");
94
95 Label lblRefreshTime = new Label(parent, SWT.NONE);
96 lblRefreshTime.setText("Refresh Time (ms):");
97 lblRefreshTime.setLayoutData(gridLabel);
98
99 final Text txtRefreshTime = new Text(parent, SWT.BORDER);
100 txtRefreshTime.setText(String.format("%d", getRefreshTime()));
101 txtRefreshTime.setLayoutData(gridText);
102
103
104 Label lblNMsg = new Label(parent, SWT.NONE);
105 lblNMsg.setText(String.format("Number of Messages (of %d):",
106 ResourceCenter.getInstance().getRepository().count(
107 mbv.getSelectedAdapter(),
108 mbv.getSelectedReader())));
109 lblNMsg.setLayoutData(gridLabel);
110
111 final Text txtNMsg = new Text(parent, SWT.BORDER);
112 txtNMsg.setText(String.format("%d", getNumberOfMessages()));
113 txtNMsg.setLayoutData(gridText);
114
115
116
117
118 GridData gridNoWidthHint = new GridData();
119 gridNoWidthHint.horizontalSpan = 3;
120
121 final Button allMsg = new Button(parent, SWT.CHECK);
122 allMsg.setText("display all messages");
123 allMsg.setLayoutData(gridNoWidthHint);
124 allMsg.setSelection(false);
125 if (Repository.RETRIEVE_ALL == getNumberOfMessages()) {
126 allMsg.setSelection(true);
127 }
128
129
130 allMsg.addSelectionListener(new SelectionListener() {
131 public void widgetDefaultSelected(SelectionEvent arg0) {
132
133 }
134
135 public void widgetSelected(SelectionEvent arg0) {
136 if (allMsg.getSelection()) {
137 txtNMsg.setText(String.format("%d",
138 Repository.RETRIEVE_ALL));
139 } else {
140 txtNMsg.setText(String.format("%d",
141 ResourceCenter.GET_MAX_MESSAGES));
142 }
143 }
144
145 });
146
147 final Button btnOK = new Button(parent, SWT.PUSH);
148 btnOK.setText("OK");
149 btnOK.setFocus();
150 btnOK.setLayoutData(gridLabel);
151
152 btnOK.addSelectionListener(new SelectionAdapter() {
153 public void widgetSelected(SelectionEvent e) {
154 setRefreshTime(Long.parseLong(txtRefreshTime.getText()));
155 setNumberOfMessages(Integer.parseInt(txtNMsg.getText()));
156
157 setReturnCode(Window.OK);
158 close();
159 }
160 });
161
162
163 txtRefreshTime.addListener(SWT.Modify, new Listener() {
164 public void handleEvent(Event event) {
165 try {
166 if ((txtRefreshTime.getText() == null) || (txtRefreshTime.getText().length() < 3)) {
167 btnOK.setEnabled(false);
168 } else {
169 btnOK.setEnabled(true);
170 setRefreshTime(Long.parseLong(txtRefreshTime.getText()));
171 }
172 } catch (Exception e) {
173 btnOK.setEnabled(false);
174 }
175 }
176 });
177
178 txtNMsg.addListener(SWT.Modify, new Listener() {
179 public void handleEvent(Event event) {
180 try {
181 final int n = (new Integer(txtNMsg.getText())).intValue();
182 btnOK.setEnabled(true);
183 setNumberOfMessages(n);
184 if (Repository.RETRIEVE_ALL != n) {
185 allMsg.setSelection(false);
186 } else {
187 allMsg.setSelection(true);
188 }
189 } catch (Exception e) {
190 btnOK.setEnabled(false);
191 }
192 }
193 });
194
195
196
197 final Button btnCancel = new Button(parent, SWT.PUSH);
198 btnCancel.setText("Cancel");
199 btnCancel.setLayoutData(gridLabel);
200 btnCancel.addSelectionListener(new SelectionAdapter() {
201 public void widgetSelected(SelectionEvent e) {
202 setReturnCode(Window.CANCEL);
203 close();
204 }
205 });
206
207 parent.pack();
208 return parent;
209 }
210
211
212
213
214 public void setRefreshTime(long refreshTime) {
215 this.refreshTime = refreshTime;
216 }
217
218
219
220
221 public long getRefreshTime() {
222 return refreshTime;
223 }
224
225
226
227
228 public void setNumberOfMessages(int numberOfMessages) {
229 this.numberOfMessages = numberOfMessages;
230 }
231
232
233
234
235 public int getNumberOfMessages() {
236 return numberOfMessages;
237 }
238 }