OLD | NEW |
1 package autotest.afe; | 1 package autotest.afe; |
2 | 2 |
3 import autotest.afe.create.CreateJobViewPresenter.JobCreateListener; | 3 import autotest.afe.CreateJobView.JobCreateListener; |
4 import autotest.common.SimpleCallback; | 4 import autotest.common.SimpleCallback; |
5 import autotest.common.Utils; | 5 import autotest.common.Utils; |
6 import autotest.common.table.DataSource; | 6 import autotest.common.table.DataSource; |
| 7 import autotest.common.table.DataTable; |
| 8 import autotest.common.table.DynamicTable; |
| 9 import autotest.common.table.RpcDataSource; |
| 10 import autotest.common.table.SelectionManager; |
| 11 import autotest.common.table.SimpleFilter; |
| 12 import autotest.common.table.TableDecorator; |
7 import autotest.common.table.DataSource.DataCallback; | 13 import autotest.common.table.DataSource.DataCallback; |
8 import autotest.common.table.DataSource.Query; | 14 import autotest.common.table.DataSource.Query; |
9 import autotest.common.table.DataSource.SortDirection; | 15 import autotest.common.table.DataSource.SortDirection; |
10 import autotest.common.table.DataTable; | |
11 import autotest.common.table.DynamicTable; | |
12 import autotest.common.table.DynamicTable.DynamicTableListener; | 16 import autotest.common.table.DynamicTable.DynamicTableListener; |
13 import autotest.common.table.RpcDataSource; | |
14 import autotest.common.table.SelectionManager; | |
15 import autotest.common.table.SelectionManager.SelectableRowFilter; | 17 import autotest.common.table.SelectionManager.SelectableRowFilter; |
16 import autotest.common.table.SimpleFilter; | |
17 import autotest.common.table.TableDecorator; | |
18 import autotest.common.ui.ContextMenu; | 18 import autotest.common.ui.ContextMenu; |
19 import autotest.common.ui.DetailView; | 19 import autotest.common.ui.DetailView; |
20 import autotest.common.ui.NotifyManager; | 20 import autotest.common.ui.NotifyManager; |
21 import autotest.common.ui.TableActionsPanel.TableActionsListener; | 21 import autotest.common.ui.TableActionsPanel.TableActionsListener; |
22 | 22 |
23 import com.google.gwt.event.dom.client.ClickEvent; | 23 import com.google.gwt.event.dom.client.ClickEvent; |
24 import com.google.gwt.event.dom.client.ClickHandler; | 24 import com.google.gwt.event.dom.client.ClickHandler; |
25 import com.google.gwt.json.client.JSONArray; | 25 import com.google.gwt.json.client.JSONArray; |
26 import com.google.gwt.json.client.JSONBoolean; | 26 import com.google.gwt.json.client.JSONBoolean; |
27 import com.google.gwt.json.client.JSONObject; | 27 import com.google.gwt.json.client.JSONObject; |
28 import com.google.gwt.json.client.JSONString; | 28 import com.google.gwt.json.client.JSONString; |
29 import com.google.gwt.json.client.JSONValue; | 29 import com.google.gwt.json.client.JSONValue; |
30 import com.google.gwt.user.client.Command; | 30 import com.google.gwt.user.client.Command; |
31 import com.google.gwt.user.client.ui.Button; | 31 import com.google.gwt.user.client.ui.Button; |
32 import com.google.gwt.user.client.ui.CheckBox; | 32 import com.google.gwt.user.client.ui.CheckBox; |
33 | 33 |
34 import java.util.List; | 34 import java.util.List; |
35 | 35 |
36 public class HostDetailView extends DetailView | 36 public class HostDetailView extends DetailView |
37 implements DataCallback, TableActionsListener, Selec
tableRowFilter { | 37 implements DataCallback, TableActionsListener, Selec
tableRowFilter { |
38 private static final String[][] HOST_JOBS_COLUMNS = { | 38 private static final String[][] HOST_JOBS_COLUMNS = { |
39 {DataTable.WIDGET_COLUMN, ""}, {"type", "Type"}, {"job__id", "Job ID
"}, | 39 {DataTable.WIDGET_COLUMN, ""}, {"type", "Type"}, {"job__id", "Job ID
"}, |
40 {"job_owner", "Job Owner"}, {"job_name", "Job Name"}, {"started_on",
"Time started"}, | 40 {"job_owner", "Job Owner"}, {"job_name", "Job Name"}, {"started_on",
"Time started"}, |
41 {"status", "Status"} | 41 {"status", "Status"} |
42 }; | 42 }; |
43 public static final int JOBS_PER_PAGE = 20; | 43 public static final int JOBS_PER_PAGE = 20; |
44 | 44 |
45 public interface HostDetailListener { | 45 public interface HostDetailListener { |
46 public void onJobSelected(int jobId); | 46 public void onJobSelected(int jobId); |
47 } | 47 } |
48 | 48 |
49 private static class HostQueueEntryDataSource extends RpcDataSource { | 49 private static class HostQueueEntryDataSource extends RpcDataSource { |
50 public HostQueueEntryDataSource() { | 50 public HostQueueEntryDataSource() { |
51 super("get_host_queue_entries", "get_num_host_queue_entries"); | 51 super("get_host_queue_entries", "get_num_host_queue_entries"); |
52 } | 52 } |
53 | 53 |
54 @Override | 54 @Override |
55 protected List<JSONObject> handleJsonResult(JSONValue result) { | 55 protected List<JSONObject> handleJsonResult(JSONValue result) { |
56 List<JSONObject> resultArray = super.handleJsonResult(result); | 56 List<JSONObject> resultArray = super.handleJsonResult(result); |
57 for (JSONObject row : resultArray) { | 57 for (JSONObject row : resultArray) { |
58 // get_host_queue_entries() doesn't return type, so fill it in f
or consistency with | 58 // get_host_queue_entries() doesn't return type, so fill it in f
or consistency with |
59 // get_host_queue_entries_and_special_tasks() | 59 // get_host_queue_entries_and_special_tasks() |
60 row.put("type", new JSONString("Job")); | 60 row.put("type", new JSONString("Job")); |
61 } | 61 } |
62 return resultArray; | 62 return resultArray; |
63 } | 63 } |
64 } | 64 } |
65 | 65 |
66 private static class HostJobsTable extends DynamicTable { | 66 private static class HostJobsTable extends DynamicTable { |
67 private static final DataSource normalDataSource = new HostQueueEntryDat
aSource(); | 67 private static final DataSource normalDataSource = new HostQueueEntryDat
aSource(); |
68 private static final DataSource dataSourceWithSpecialTasks = | 68 private static final DataSource dataSourceWithSpecialTasks = |
69 new RpcDataSource("get_host_queue_entries_and_special_tasks", | 69 new RpcDataSource("get_host_queue_entries_and_special_tasks", |
70 "get_num_host_queue_entries_and_special_tasks"); | 70 "get_num_host_queue_entries_and_special_tasks"); |
71 | 71 |
72 private SimpleFilter hostFilter = new SimpleFilter(); | 72 private SimpleFilter hostFilter = new SimpleFilter(); |
73 private String hostname; | 73 private String hostname; |
74 | 74 |
75 public HostJobsTable() { | 75 public HostJobsTable() { |
76 super(HOST_JOBS_COLUMNS, normalDataSource); | 76 super(HOST_JOBS_COLUMNS, normalDataSource); |
77 addFilter(hostFilter); | 77 addFilter(hostFilter); |
78 } | 78 } |
79 | 79 |
80 public void setHostname(String hostname) { | 80 public void setHostname(String hostname) { |
81 this.hostname = hostname; | 81 this.hostname = hostname; |
82 updateFilter(); | 82 updateFilter(); |
83 } | 83 } |
84 | 84 |
85 private void updateFilter() { | 85 private void updateFilter() { |
86 String key; | 86 String key; |
87 if (getDataSource() == normalDataSource) { | 87 if (getDataSource() == normalDataSource) { |
88 key = "host__hostname"; | 88 key = "host__hostname"; |
89 sortOnColumn("job__id", SortDirection.DESCENDING); | 89 sortOnColumn("job__id", SortDirection.DESCENDING); |
90 } else { | 90 } else { |
91 key = "hostname"; | 91 key = "hostname"; |
92 clearSorts(); | 92 clearSorts(); |
93 } | 93 } |
94 | 94 |
95 hostFilter.clear(); | 95 hostFilter.clear(); |
96 hostFilter.setParameter(key, new JSONString(hostname)); | 96 hostFilter.setParameter(key, new JSONString(hostname)); |
97 } | 97 } |
98 | 98 |
99 public void setSpecialTasksEnabled(boolean enabled) { | 99 public void setSpecialTasksEnabled(boolean enabled) { |
100 if (enabled) { | 100 if (enabled) { |
101 setDataSource(dataSourceWithSpecialTasks); | 101 setDataSource(dataSourceWithSpecialTasks); |
102 } else { | 102 } else { |
103 setDataSource(normalDataSource); | 103 setDataSource(normalDataSource); |
104 } | 104 } |
105 | 105 |
106 updateFilter(); | 106 updateFilter(); |
107 } | 107 } |
108 | 108 |
109 @Override | 109 @Override |
110 protected void preprocessRow(JSONObject row) { | 110 protected void preprocessRow(JSONObject row) { |
111 JSONObject job = row.get("job").isObject(); | 111 JSONObject job = row.get("job").isObject(); |
112 JSONString blank = new JSONString(""); | 112 JSONString blank = new JSONString(""); |
113 JSONString jobId = blank, owner = blank, name = blank; | 113 JSONString jobId = blank, owner = blank, name = blank; |
114 if (job != null) { | 114 if (job != null) { |
115 int id = (int) job.get("id").isNumber().doubleValue(); | 115 int id = (int) job.get("id").isNumber().doubleValue(); |
116 jobId = new JSONString(Integer.toString(id)); | 116 jobId = new JSONString(Integer.toString(id)); |
117 owner = job.get("owner").isString(); | 117 owner = job.get("owner").isString(); |
118 name = job.get("name").isString(); | 118 name = job.get("name").isString(); |
119 } | 119 } |
120 | 120 |
121 row.put("job__id", jobId); | 121 row.put("job__id", jobId); |
122 row.put("job_owner", owner); | 122 row.put("job_owner", owner); |
123 row.put("job_name", name); | 123 row.put("job_name", name); |
124 } | 124 } |
125 } | 125 } |
126 | 126 |
127 private String hostname = ""; | 127 private String hostname = ""; |
128 private DataSource hostDataSource = new HostDataSource(); | 128 private DataSource hostDataSource = new HostDataSource(); |
129 private HostJobsTable jobsTable = new HostJobsTable(); | 129 private HostJobsTable jobsTable = new HostJobsTable(); |
130 private TableDecorator tableDecorator = new TableDecorator(jobsTable); | 130 private TableDecorator tableDecorator = new TableDecorator(jobsTable); |
131 private HostDetailListener hostDetailListener = null; | 131 private HostDetailListener hostDetailListener = null; |
132 private JobCreateListener jobCreateListener = null; | 132 private JobCreateListener jobCreateListener = null; |
133 private SelectionManager selectionManager; | 133 private SelectionManager selectionManager; |
134 | 134 |
135 private JSONObject currentHostObject; | 135 private JSONObject currentHostObject; |
136 | 136 |
137 private Button lockButton = new Button(); | 137 private Button lockButton = new Button(); |
138 private Button reverifyButton = new Button("Reverify"); | 138 private Button reverifyButton = new Button("Reverify"); |
139 private Button reinstallButton = new Button("Reinstall"); | 139 private Button reinstallButton = new Button("Reinstall"); |
140 private CheckBox showSpecialTasks = new CheckBox(); | 140 private CheckBox showSpecialTasks = new CheckBox(); |
141 | 141 |
142 public HostDetailView(HostDetailListener hostDetailListener, | 142 public HostDetailView(HostDetailListener hostDetailListener, |
143 JobCreateListener jobCreateListener) { | 143 JobCreateListener jobCreateListener) { |
144 this.hostDetailListener = hostDetailListener; | 144 this.hostDetailListener = hostDetailListener; |
145 this.jobCreateListener = jobCreateListener; | 145 this.jobCreateListener = jobCreateListener; |
146 } | 146 } |
147 | 147 |
148 @Override | 148 @Override |
149 public String getElementId() { | 149 public String getElementId() { |
150 return "view_host"; | 150 return "view_host"; |
151 } | 151 } |
152 | 152 |
153 @Override | 153 @Override |
154 protected String getFetchControlsElementId() { | 154 protected String getFetchControlsElementId() { |
155 return "view_host_fetch_controls"; | 155 return "view_host_fetch_controls"; |
156 } | 156 } |
157 | 157 |
158 @Override | 158 @Override |
159 protected String getDataElementId() { | 159 protected String getDataElementId() { |
160 return "view_host_data"; | 160 return "view_host_data"; |
161 } | 161 } |
162 | 162 |
163 @Override | 163 @Override |
164 protected String getTitleElementId() { | 164 protected String getTitleElementId() { |
165 return "view_host_title"; | 165 return "view_host_title"; |
166 } | 166 } |
167 | 167 |
168 @Override | 168 @Override |
169 protected String getNoObjectText() { | 169 protected String getNoObjectText() { |
170 return "No host selected"; | 170 return "No host selected"; |
171 } | 171 } |
172 | 172 |
173 @Override | 173 @Override |
174 protected String getObjectId() { | 174 protected String getObjectId() { |
175 return hostname; | 175 return hostname; |
176 } | 176 } |
177 | 177 |
178 @Override | 178 @Override |
179 protected void setObjectId(String id) { | 179 protected void setObjectId(String id) { |
180 if (id.length() == 0) { | 180 if (id.length() == 0) |
181 throw new IllegalArgumentException(); | 181 throw new IllegalArgumentException(); |
182 } | |
183 this.hostname = id; | 182 this.hostname = id; |
184 } | 183 } |
185 | 184 |
186 @Override | 185 @Override |
187 protected void fetchData() { | 186 protected void fetchData() { |
188 JSONObject params = new JSONObject(); | 187 JSONObject params = new JSONObject(); |
189 params.put("hostname", new JSONString(hostname)); | 188 params.put("hostname", new JSONString(hostname)); |
190 params.put("valid_only", JSONBoolean.getInstance(false)); | 189 params.put("valid_only", JSONBoolean.getInstance(false)); |
191 hostDataSource.query(params, this); | 190 hostDataSource.query(params, this); |
192 } | 191 } |
193 | 192 |
194 @Override | 193 @Override |
195 public void handleTotalResultCount(int totalCount) {} | 194 public void handleTotalResultCount(int totalCount) {} |
196 | 195 |
197 @Override | 196 @Override |
198 public void onQueryReady(Query query) { | 197 public void onQueryReady(Query query) { |
199 query.getPage(null, null, null, this); | 198 query.getPage(null, null, null, this); |
200 } | 199 } |
201 | 200 |
202 public void handlePage(List<JSONObject> data) { | 201 public void handlePage(List<JSONObject> data) { |
203 try { | 202 try { |
204 currentHostObject = Utils.getSingleObjectFromList(data); | 203 currentHostObject = Utils.getSingleObjectFromList(data); |
205 } | 204 } |
206 catch (IllegalArgumentException exc) { | 205 catch (IllegalArgumentException exc) { |
207 NotifyManager.getInstance().showError("No such host found"); | 206 NotifyManager.getInstance().showError("No such host found"); |
208 resetPage(); | 207 resetPage(); |
209 return; | 208 return; |
210 } | 209 } |
211 | 210 |
212 String lockedText = Utils.jsonToString(currentHostObject.get(HostDataSou
rce.LOCKED_TEXT)); | 211 String lockedText = Utils.jsonToString(currentHostObject.get(HostDataSou
rce.LOCKED_TEXT)); |
213 if (currentHostObject.get("locked").isBoolean().booleanValue()) { | 212 if (currentHostObject.get("locked").isBoolean().booleanValue()) { |
214 String lockedBy = Utils.jsonToString(currentHostObject.get("locked_b
y")); | 213 String lockedBy = Utils.jsonToString(currentHostObject.get("locked_b
y")); |
215 String lockedTime = Utils.jsonToString(currentHostObject.get("lock_t
ime")); | 214 String lockedTime = Utils.jsonToString(currentHostObject.get("lock_t
ime")); |
216 lockedText += ", by " + lockedBy + " on " + lockedTime; | 215 lockedText += ", by " + lockedBy + " on " + lockedTime; |
217 } | 216 } |
218 | 217 |
219 showField(currentHostObject, "status", "view_host_status"); | 218 showField(currentHostObject, "status", "view_host_status"); |
220 showField(currentHostObject, "platform", "view_host_platform"); | 219 showField(currentHostObject, "platform", "view_host_platform"); |
221 showField(currentHostObject, HostDataSource.HOST_ACLS, "view_host_acls")
; | 220 showField(currentHostObject, HostDataSource.HOST_ACLS, "view_host_acls")
; |
222 showField(currentHostObject, HostDataSource.OTHER_LABELS, "view_host_lab
els"); | 221 showField(currentHostObject, HostDataSource.OTHER_LABELS, "view_host_lab
els"); |
223 showText(lockedText, "view_host_locked"); | 222 showText(lockedText, "view_host_locked"); |
224 showField(currentHostObject, "protection", "view_host_protection"); | 223 showField(currentHostObject, "protection", "view_host_protection"); |
225 String pageTitle = "Host " + hostname; | 224 String pageTitle = "Host " + hostname; |
226 updateLockButton(); | 225 updateLockButton(); |
227 displayObjectData(pageTitle); | 226 displayObjectData(pageTitle); |
228 | 227 |
229 jobsTable.setHostname(hostname); | 228 jobsTable.setHostname(hostname); |
230 jobsTable.refresh(); | 229 jobsTable.refresh(); |
231 } | 230 } |
232 | 231 |
233 @Override | 232 @Override |
234 public void initialize() { | 233 public void initialize() { |
235 super.initialize(); | 234 super.initialize(); |
236 | 235 |
237 jobsTable.setRowsPerPage(JOBS_PER_PAGE); | 236 jobsTable.setRowsPerPage(JOBS_PER_PAGE); |
238 jobsTable.setClickable(true); | 237 jobsTable.setClickable(true); |
239 jobsTable.addListener(new DynamicTableListener() { | 238 jobsTable.addListener(new DynamicTableListener() { |
240 public void onRowClicked(int rowIndex, JSONObject row, boolean isRig
htClick) { | 239 public void onRowClicked(int rowIndex, JSONObject row, boolean isRig
htClick) { |
241 if (isJobRow(row)) { | 240 if (isJobRow(row)) { |
242 JSONObject job = row.get("job").isObject(); | 241 JSONObject job = row.get("job").isObject(); |
243 int jobId = (int) job.get("id").isNumber().doubleValue(); | 242 int jobId = (int) job.get("id").isNumber().doubleValue(); |
244 hostDetailListener.onJobSelected(jobId); | 243 hostDetailListener.onJobSelected(jobId); |
245 } else { | 244 } else { |
246 String resultsPath = Utils.jsonToString(row.get("execution_p
ath")); | 245 String resultsPath = Utils.jsonToString(row.get("execution_p
ath")); |
247 Utils.openUrlInNewWindow(Utils.getRetrieveLogsUrl(resultsPat
h)); | 246 Utils.openUrlInNewWindow(Utils.getRetrieveLogsUrl(resultsPat
h)); |
248 } | 247 } |
249 } | 248 } |
250 | 249 |
251 public void onTableRefreshed() {} | 250 public void onTableRefreshed() {} |
252 }); | 251 }); |
253 tableDecorator.addPaginators(); | 252 tableDecorator.addPaginators(); |
254 selectionManager = tableDecorator.addSelectionManager(false); | 253 selectionManager = tableDecorator.addSelectionManager(false); |
255 selectionManager.setSelectableRowFilter(this); | 254 selectionManager.setSelectableRowFilter(this); |
256 jobsTable.setWidgetFactory(selectionManager); | 255 jobsTable.setWidgetFactory(selectionManager); |
257 tableDecorator.addTableActionsPanel(this, true); | 256 tableDecorator.addTableActionsPanel(this, true); |
258 tableDecorator.addControl("Show verifies, repairs and cleanups", showSpe
cialTasks); | 257 tableDecorator.addControl("Show verifies, repairs and cleanups", showSpe
cialTasks); |
259 addWidget(tableDecorator, "view_host_jobs_table"); | 258 addWidget(tableDecorator, "view_host_jobs_table"); |
260 | 259 |
261 showSpecialTasks.addClickHandler(new ClickHandler() { | 260 showSpecialTasks.addClickHandler(new ClickHandler() { |
262 public void onClick(ClickEvent event) { | 261 public void onClick(ClickEvent event) { |
263 jobsTable.setSpecialTasksEnabled(showSpecialTasks.getValue()); | 262 jobsTable.setSpecialTasksEnabled(showSpecialTasks.getValue()); |
264 jobsTable.refresh(); | 263 jobsTable.refresh(); |
265 } | 264 } |
266 }); | 265 }); |
267 | 266 |
268 lockButton.addClickHandler(new ClickHandler() { | 267 lockButton.addClickHandler(new ClickHandler() { |
269 public void onClick(ClickEvent event) { | 268 public void onClick(ClickEvent event) { |
270 boolean locked = currentHostObject.get("locked").isBoolean().bool
eanValue(); | 269 boolean locked = currentHostObject.get("locked").isBoolean().bool
eanValue(); |
271 changeLock(!locked); | 270 changeLock(!locked); |
272 } | 271 } |
273 }); | 272 }); |
274 addWidget(lockButton, "view_host_lock_button"); | 273 addWidget(lockButton, "view_host_lock_button"); |
275 | 274 |
276 reverifyButton.addClickHandler(new ClickHandler() { | 275 reverifyButton.addClickHandler(new ClickHandler() { |
277 public void onClick(ClickEvent event) { | 276 public void onClick(ClickEvent event) { |
278 JSONObject params = new JSONObject(); | 277 JSONObject params = new JSONObject(); |
279 | 278 |
280 params.put("id", currentHostObject.get("id")); | 279 params.put("id", currentHostObject.get("id")); |
281 AfeUtils.callReverify(params, new SimpleCallback() { | 280 AfeUtils.callReverify(params, new SimpleCallback() { |
282 public void doCallback(Object source) { | 281 public void doCallback(Object source) { |
283 refresh(); | 282 refresh(); |
284 } | 283 } |
285 }, "Host " + hostname); | 284 }, "Host " + hostname); |
286 } | 285 } |
287 }); | 286 }); |
288 addWidget(reverifyButton, "view_host_reverify_button"); | 287 addWidget(reverifyButton, "view_host_reverify_button"); |
289 | 288 |
290 reinstallButton.addClickHandler(new ClickHandler() { | 289 reinstallButton.addClickHandler(new ClickHandler() { |
291 public void onClick(ClickEvent event) { | 290 public void onClick(ClickEvent event) { |
292 JSONArray array = new JSONArray(); | 291 JSONArray array = new JSONArray(); |
293 array.set(0, new JSONString(hostname)); | 292 array.set(0, new JSONString(hostname)); |
294 AfeUtils.scheduleReinstall(array, hostname, jobCreateListener); | 293 AfeUtils.scheduleReinstall(array, hostname, jobCreateListener); |
295 } | 294 } |
296 }); | 295 }); |
297 addWidget(reinstallButton, "view_host_reinstall_button"); | 296 addWidget(reinstallButton, "view_host_reinstall_button"); |
298 } | 297 } |
299 | 298 |
300 public void onError(JSONObject errorObject) { | 299 public void onError(JSONObject errorObject) { |
301 // RPC handler will display error | 300 // RPC handler will display error |
302 } | 301 } |
303 | 302 |
304 public ContextMenu getActionMenu() { | 303 public ContextMenu getActionMenu() { |
305 ContextMenu menu = new ContextMenu(); | 304 ContextMenu menu = new ContextMenu(); |
306 menu.addItem("Abort job entries", new Command() { | 305 menu.addItem("Abort job entries", new Command() { |
307 public void execute() { | 306 public void execute() { |
308 abortSelectedQueueEntries(); | 307 abortSelectedQueueEntries(); |
309 } | 308 } |
310 }); | 309 }); |
311 return menu; | 310 return menu; |
312 } | 311 } |
313 | 312 |
314 private void abortSelectedQueueEntries() { | 313 private void abortSelectedQueueEntries() { |
315 AfeUtils.abortHostQueueEntries(selectionManager.getSelectedObjects(), ne
w SimpleCallback() { | 314 AfeUtils.abortHostQueueEntries(selectionManager.getSelectedObjects(), ne
w SimpleCallback() { |
316 public void doCallback(Object source) { | 315 public void doCallback(Object source) { |
317 refresh(); | 316 refresh(); |
318 } | 317 } |
319 }); | 318 }); |
320 } | 319 } |
321 | 320 |
322 private void updateLockButton() { | 321 private void updateLockButton() { |
323 boolean locked = currentHostObject.get("locked").isBoolean().booleanValu
e(); | 322 boolean locked = currentHostObject.get("locked").isBoolean().booleanValu
e(); |
324 if (locked) { | 323 if (locked) { |
325 lockButton.setText("Unlock"); | 324 lockButton.setText("Unlock"); |
326 } else { | 325 } else { |
327 lockButton.setText("Lock"); | 326 lockButton.setText("Lock"); |
328 } | 327 } |
329 } | 328 } |
330 | 329 |
331 private void changeLock(final boolean lock) { | 330 private void changeLock(final boolean lock) { |
332 JSONArray hostIds = new JSONArray(); | 331 JSONArray hostIds = new JSONArray(); |
333 hostIds.set(0, currentHostObject.get("id")); | 332 hostIds.set(0, currentHostObject.get("id")); |
334 | 333 |
335 AfeUtils.changeHostLocks(hostIds, lock, "Host " + hostname, new SimpleCa
llback() { | 334 AfeUtils.changeHostLocks(hostIds, lock, "Host " + hostname, new SimpleCa
llback() { |
336 public void doCallback(Object source) { | 335 public void doCallback(Object source) { |
337 refresh(); | 336 refresh(); |
338 } | 337 } |
339 }); | 338 }); |
340 } | 339 } |
341 | 340 |
342 private boolean isJobRow(JSONObject row) { | 341 private boolean isJobRow(JSONObject row) { |
343 String type = Utils.jsonToString(row.get("type")); | 342 String type = Utils.jsonToString(row.get("type")); |
344 return type.equals("Job"); | 343 return type.equals("Job"); |
345 } | 344 } |
346 | 345 |
347 public boolean isRowSelectable(JSONObject row) { | 346 public boolean isRowSelectable(JSONObject row) { |
348 return isJobRow(row); | 347 return isJobRow(row); |
349 } | 348 } |
350 } | 349 } |
OLD | NEW |