List of usage examples for com.google.gwt.json.client JSONValue isObject
public JSONObject isObject()
From source file:org.opennms.features.gwt.snmpselect.list.client.rest.DefaultSnmpInterfaceRestService.java
License:Open Source License
protected List<SnmpCellListItem> parseJSONData(final String jsonString) { final List<SnmpCellListItem> cellList = new ArrayList<SnmpCellListItem>(); final JSONValue value = JSONParser.parseStrict(jsonString); final JSONObject obj = value.isObject(); final JSONArray arr = value.isArray(); JsArray<SnmpCellListItem> jsArray = null; if (obj != null) { jsArray = createJsArray(obj.getJavaScriptObject()); } else if (arr != null) { jsArray = createJsArray(arr.getJavaScriptObject()); } else {//from w w w . j av a2s . c o m doLog(jsonString + " does not parse as an array or object!", value); } if (jsArray != null) { for (int i = 0; i < jsArray.length(); i++) { cellList.add(jsArray.get(i)); } } return cellList; }
From source file:org.opennms.features.node.list.gwt.client.NodeRestResponseMapper.java
License:Open Source License
public static List<IpInterface> createIpInterfaceData(String jsonString) { final List<IpInterface> ipIfaceList = new ArrayList<IpInterface>(); final JSONValue value = JSONParser.parseStrict(jsonString); JSONObject obj = value.isObject(); JSONArray arr = value.isArray();/*from w ww .j a v a2s. com*/ JsArray<IpInterface> ipIfaces = null; if (obj != null) { ipIfaces = createIpInterfaceData(obj.getJavaScriptObject()); } else if (arr != null) { ipIfaces = createIpInterfaceData(arr.getJavaScriptObject()); } else { doLog(jsonString + " did not parse as an object or array!", value); } if (ipIfaces != null) { for (int i = 0; i < ipIfaces.length(); i++) { ipIfaceList.add(ipIfaces.get(i)); } } doLog("ip interfaces:", ipIfaceList); return ipIfaceList; }
From source file:org.opennms.features.node.list.gwt.client.NodeRestResponseMapper.java
License:Open Source License
public static List<PhysicalInterface> createSnmpInterfaceData(String jsonString) { final List<PhysicalInterface> physIfaceList = new ArrayList<PhysicalInterface>(); final JSONValue value = JSONParser.parseStrict(jsonString); final JSONObject obj = value.isObject(); final JSONArray arr = value.isArray(); JsArray<PhysicalInterface> snmpIfaces = null; if (obj != null) { snmpIfaces = createSnmpInterfaceData(obj.getJavaScriptObject()); } else if (arr != null) { snmpIfaces = createSnmpInterfaceData(arr.getJavaScriptObject()); } else {/* w w w .j av a2s . c om*/ doLog(jsonString + " did not parse as an object or array!", value); } if (snmpIfaces != null) { for (int i = 0; i < snmpIfaces.length(); i++) { physIfaceList.add(snmpIfaces.get(i)); } } doLog("physical interfaces:", physIfaceList); return physIfaceList; }
From source file:org.openremote.modeler.client.gxtextends.NestedJsonLoadResultReader.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//from ww w. j a v a 2s . com public D read(Object loadConfig, Object data) { JSONObject jsonRoot = null; if (data instanceof JavaScriptObject) { jsonRoot = new JSONObject((JavaScriptObject) data); } else { jsonRoot = (JSONObject) JSONParser.parse((String) data); } // You can specify root using dot separate. eg, vendors.vendor String[] roots = myModelType.getRoot().split("\\."); JSONValue rootValue = null; JSONArray root = null; for (int i = 0; i < roots.length; i++) { rootValue = jsonRoot.get(roots[i]); if (i == roots.length - 1) { if (rootValue instanceof JSONObject) { root = new JSONArray(); root.set(0, rootValue); } else { root = (JSONArray) rootValue; } } else { jsonRoot = (JSONObject) jsonRoot.get(roots[i]); } } int size = root.size(); ArrayList<ModelData> models = new ArrayList<ModelData>(); for (int i = 0; i < size; i++) { JSONObject obj = (JSONObject) root.get(i); ModelData model = newModelInstance(); for (int j = 0; j < myModelType.getFieldCount(); j++) { DataField field = myModelType.getField(j); String name = field.getName(); Class type = field.getType(); String map = field.getMap() != null ? field.getMap() : field.getName(); JSONValue value = obj.get(map); if (value == null) { continue; } if (value.isArray() != null) { // nothing } else if (value.isBoolean() != null) { model.set(name, value.isBoolean().booleanValue()); } else if (value.isNumber() != null) { if (type != null) { Double d = value.isNumber().doubleValue(); if (type.equals(Integer.class)) { model.set(name, d.intValue()); } else if (type.equals(Long.class)) { model.set(name, d.longValue()); } else if (type.equals(Float.class)) { model.set(name, d.floatValue()); } else { model.set(name, d); } } else { // convert no type number to string. model.set(name, value.isNumber().toString()); } } else if (value.isObject() != null) { // nothing } else if (value.isString() != null) { String s = value.isString().stringValue(); if (type != null) { if (type.equals(Date.class)) { if (field.getFormat().equals("timestamp")) { Date d = new Date(Long.parseLong(s) * 1000); model.set(name, d); } else { DateTimeFormat format = DateTimeFormat.getFormat(field.getFormat()); Date d = format.parse(s); model.set(name, d); } } } else { model.set(name, s); } } else if (value.isNull() != null) { model.set(name, null); } } models.add(model); } int totalCount = models.size(); if (myModelType.getTotalName() != null) { totalCount = getTotalCount(jsonRoot); } return (D) createReturnData(loadConfig, models, totalCount); }
From source file:org.ow2.proactive_grid_cloud_portal.common.client.LoginPage.java
License:Open Source License
/** * @return the forms and widgets for plain login/password authentication */// w w w .j av a 2s.co m private Layout getPlainAuth() { /* smartGWT forms don't allow simple multipart file upload, * so we use a smartGWT form for login/password/checkbox, * a pure GWT form for file upload, and upon submission, * put the fields from the first form as hidden fields of the * pure GWT form. It's a bit convoluted but like this we get * the pretty widgets and the nice features */ TextItem loginField = new TextItem("login", "User"); loginField.setRequired(true); PasswordItem passwordField = new PasswordItem("password", "Password"); passwordField.setRequired(true); final CheckboxItem moreField = new CheckboxItem("useSSH", "Use SSH private key"); moreField.setValue(false); // smartGWT form: only used to input the data before filling the hidden fields // in the other form with it final DynamicForm form = new DynamicForm(); form.setFields(loginField, passwordField, moreField); form.hideItem("useSSH"); // pure GWT form for uploading, will be used to contact the servlet // even if no ssh key is used final FileUpload fileUpload = new FileUpload(); fileUpload.setName("sshkey"); final Hidden hiddenUser = new Hidden("username"); final Hidden hiddenPass = new Hidden("password"); final FormPanel formPanel = new FormPanel(); formPanel.setEncoding(FormPanel.ENCODING_MULTIPART); formPanel.setMethod(FormPanel.METHOD_POST); formPanel.setAction(GWT.getModuleBaseURL() + "login"); final VerticalPanel vpan = new VerticalPanel(); vpan.add(hiddenUser); vpan.add(hiddenPass); vpan.add(fileUpload); formPanel.setWidget(vpan); formPanel.setWidth("100%"); formPanel.setHeight("30px"); final HLayout formWrapper = new HLayout(); formWrapper.setAlign(Alignment.CENTER); formWrapper.addChild(formPanel); formWrapper.setWidth100(); formWrapper.addDrawHandler(new DrawHandler() { public void onDraw(DrawEvent event) { // took me half a day to find this hack: // if the form is added to the page in a hidden element, // it is never created and submission fails without callback. // it needs to be visible so that it is created once, then // we can safely hide it and still use it if (disableFormWrapper) { disableFormWrapper = false; formWrapper.setVisible(false); } } }); // hide/show the ssh key upload input moreField.addChangedHandler(new ChangedHandler() { public void onChanged(ChangedEvent event) { if (moreField.getValueAsBoolean()) { //formWrapper.setVisible(true); formWrapper.animateShow(AnimationEffect.FLY); } else { //formWrapper.setVisible(false); formWrapper.animateHide(AnimationEffect.FLY); formPanel.reset(); } } }); // prevent form validation if no ssh key is selected Validator moreVal = new CustomValidator() { @Override protected boolean condition(Object value) { if (moreField.getValueAsBoolean()) { String file = fileUpload.getFilename(); return (file != null && file.length() > 0); } else { return true; } } }; moreVal.setErrorMessage("No file selected"); moreField.setValidators(moreVal); final Runnable advancedVisibilityChanged = new Runnable() { @Override public void run() { if (!moreField.getVisible()) { authSelLayout.setVisible(true); form.showItem("useSSH"); optsLabel.setIcon(Images.instance.close_16().getSafeUri().asString()); optsLabel.setContents( "<nobr style='color:#003168;font-size: 1.2em;" + "cursor:pointer'>less options</nobr>"); } else { authTypeSelectForm.setValue("Mode", "Basic"); switchPlainCredForm.run(); authSelLayout.setVisible(false); form.hideItem("useSSH"); formWrapper.animateHide(AnimationEffect.FLY); moreField.setValue(false); formPanel.reset(); optsLabel.setIcon(Images.instance.expand_16().getSafeUri().asString()); optsLabel.setContents( "<nobr style='color:#003168;font-size: 1.2em;" + "cursor:pointer'>more options</nobr>"); } } }; optsLabel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { advancedVisibilityChanged.run(); } }); String cacheLogin = Settings.get().getSetting(controller.getLoginSettingKey()); if (cacheLogin != null) { form.setValue("login", cacheLogin); } final IButton okButton = new IButton(); okButton.setShowDisabled(false); okButton.setIcon(Images.instance.connect_16().getSafeUri().asString()); okButton.setTitle("Connect"); okButton.setWidth(120); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if (!form.validate()) return; String login = form.getValueAsString("login"); String pw = form.getValueAsString("password"); hiddenUser.setValue(login); hiddenPass.setValue(pw); okButton.setIcon("loading.gif"); okButton.setTitle("Connecting..."); form.disable(); formWrapper.disable(); authTypeSelectForm.disable(); okButton.disable(); // only submit once the the error message is hidden so we don't try to show it (on form response) // while the effect is played resulting in the message hidden staying hidden if (errorLabel.isDrawn() && errorLabel.isVisible()) { errorLabel.animateHide(AnimationEffect.FLY, new AnimationCallback() { @Override public void execute(boolean earlyFinish) { formPanel.submit(); } }); } else { formPanel.submit(); } } }); formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() { public void onSubmitComplete(SubmitCompleteEvent event) { String res = new HTML(event.getResults()).getText(); boolean fail = false; try { JSONValue val = controller.parseJSON(res); JSONObject obj = val.isObject(); if (obj != null && obj.containsKey("sessionId")) { String sess = obj.isObject().get("sessionId").isString().stringValue(); controller.login(sess, form.getValueAsString("login")); } else { fail = true; } } catch (Throwable t) { fail = true; } if (fail) { String err = JSONUtils.getJsonErrorMessage(res); int sta = JSONUtils.getJsonErrorCode(res); if (sta != -1) err += " (" + sta + ")"; errorLabel.setContents("<span style='color:red;'>Could not login: " + err + "</span>"); errorLabel.animateShow(AnimationEffect.FLY); okButton.setIcon(Images.instance.connect_16().getSafeUri().asString()); okButton.setTitle("Connect"); formWrapper.enable(); form.enable(); authTypeSelectForm.enable(); okButton.enable(); } } }); form.addItemKeyPressHandler(new ItemKeyPressHandler() { public void onItemKeyPress(ItemKeyPressEvent event) { if ("Enter".equals(event.getKeyName())) { okButton.fireEvent(new ClickEvent(null)); } } }); Layout formLayout = new VLayout(); formLayout.setWidth100(); formLayout.setMembersMargin(10); formLayout.addMember(form); formLayout.addMember(formWrapper); HLayout buttonBar = new HLayout(); buttonBar.setWidth100(); buttonBar.setAlign(Alignment.CENTER); buttonBar.addMember(okButton); formLayout.addMember(buttonBar); return formLayout; }
From source file:org.ow2.proactive_grid_cloud_portal.common.client.LoginPage.java
License:Open Source License
/** * @return the forms and widgets for credentials authentication *///from www .ja v a 2 s. c om private Layout getCredAuth() { final FileUpload fileUpload = new FileUpload(); fileUpload.setName("credential"); // actual form final FormPanel formPanel = new FormPanel(); formPanel.setEncoding(FormPanel.ENCODING_MULTIPART); formPanel.setMethod(FormPanel.METHOD_POST); formPanel.setAction(GWT.getModuleBaseURL() + "login"); formPanel.add(fileUpload); formPanel.setWidth("100%"); formPanel.setHeight("30px"); // wraps the GWT component so that we may show/hide it final VLayout formWrapper = new VLayout(); formWrapper.setAlign(Alignment.CENTER); formWrapper.addMember(formPanel); formWrapper.setWidth100(); formWrapper.setMargin(10); final IButton okButton = new IButton(); okButton.setShowDisabled(false); okButton.setIcon(Images.instance.connect_16().getSafeUri().asString()); okButton.setTitle("Connect"); okButton.setWidth(120); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { errorLabel.animateHide(AnimationEffect.FLY); okButton.setIcon("loading.gif"); okButton.setTitle("Connecting..."); formWrapper.disable(); authTypeSelectForm.disable(); okButton.disable(); // submits the form to LoginServlet formPanel.submit(); } }); formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() { public void onSubmitComplete(SubmitCompleteEvent event) { String res = event.getResults(); boolean fail = false; try { JSONValue val = controller.parseJSON(res); JSONObject obj = val.isObject(); if (obj != null && obj.containsKey("sessionId")) { String sess = obj.isObject().get("sessionId").isString().stringValue(); controller.login(sess, null); } else { fail = true; } } catch (Throwable t) { fail = true; } if (fail) { String err = JSONUtils.getJsonErrorMessage(res); errorLabel.setContents("<span style='color:red;'>Could not login: " + err + "</span>"); errorLabel.animateShow(AnimationEffect.FLY); okButton.setIcon(Images.instance.connect_16().getSafeUri().asString()); okButton.setTitle("Connect"); formWrapper.enable(); authTypeSelectForm.enable(); okButton.enable(); } } }); Label createCred = new Label( "<nobr style='color:#003168;font-size: 1.2em;cursor:pointer'>" + "Create credentials</nobr>"); createCred.setHeight(20); createCred.setAlign(Alignment.CENTER); createCred.setIcon(Images.instance.key_16().getSafeUri().asString()); createCred.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { CredentialsWindow win = new CredentialsWindow(); win.show(); } }); formWrapper.addMember(createCred); Layout formLayout = new VLayout(); formLayout.setWidth100(); formLayout.setMembersMargin(10); formLayout.addMember(formWrapper); HLayout buttonBar = new HLayout(); buttonBar.setWidth100(); buttonBar.setAlign(Alignment.CENTER); buttonBar.addMember(okButton); formLayout.addMember(buttonBar); return formLayout; }
From source file:org.ow2.proactive_grid_cloud_portal.rm.client.monitoring.charts.MBeanChart.java
License:Open Source License
public void processHistoryResult(String result) { // removing internal escaping result = result.replace("\\\"", "\""); result = result.replace("\"{", "{"); result = result.replace("}\"", "}"); JSONValue resultVal = controller.parseJSON(result); JSONObject json = resultVal.isObject(); if (json == null) { return;// w w w.j a v a 2 s. c o m } loadTable.removeRows(0, loadTable.getNumberOfRows()); long now = new Date().getTime() / 1000; long dur = timeRange.getDuration(); long size = getJsonInternalSize(json); long step = dur / size; for (int i = 0; i < size; i++) { double[] slice = getJsonSlice(json, i); long t = now - dur + step * i; DateTimeFormat.PredefinedFormat format = timeRange.getFormat(); String timeStamp = DateTimeFormat.getFormat(format).format(new Date(t * 1000)); loadTable.addRow(); loadTable.setValue(i, 0, timeStamp); for (int sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { loadTable.setValue(i, sliceIndex + 1, formatValue(slice[sliceIndex])); } } loadChart.draw(loadTable, loadOpts); }
From source file:org.ow2.proactive_grid_cloud_portal.rm.client.monitoring.charts.MBeanSourceDetailedView.java
License:Open Source License
public void reload() { DetailViewerField[] fields = new DetailViewerField[attrs.size()]; for (int i = 0; i < fields.length; i++) { fields[i] = new DetailViewerField(attrs.get(i)); }// ww w. j av a2 s. c o m setFields(fields); final RMServiceAsync rm = controller.getRMService(); final RMModel model = controller.getModel(); final long t = System.currentTimeMillis(); final LoginModel loginModel = LoginModel.getInstance(); // loading runtime info rm.getNodeMBeanInfo(loginModel.getSessionId(), jmxServerUrl, mbean, attrs, new AsyncCallback<String>() { public void onSuccess(String result) { if (extraCallback != null) { extraCallback.onSuccess(result); } if (!loginModel.isLoggedIn()) return; LogModel.getInstance() .logMessage("Fetched JVM Runtime info in " + (System.currentTimeMillis() - t) + "ms"); JSONArray array = controller.parseJSON(result).isArray(); if (array != null) { DetailViewerRecord dv = new DetailViewerRecord(); for (int i = 0; i < array.size(); i++) { try { JSONObject property = array.get(i).isObject(); String name = property.get("name").isString().stringValue(); JSONValue value = property.get("value"); String valueStr = ""; if (value.isString() != null) { valueStr = value.isString().stringValue(); } else if (value.isNumber() != null) { valueStr = value.isNumber().toString(); } else if (value.isArray() != null) { JSONArray values = value.isArray(); for (int j = 0; j < values.size(); j++) valueStr += values.get(j).isString().stringValue() + " "; } else if (value.isObject() != null) { valueStr = value.toString(); } else { valueStr = value.toString(); } dv.setAttribute(name, valueStr); } catch (Exception e) { // ignore it } } setData(new DetailViewerRecord[] { dv }); } } public void onFailure(Throwable caught) { if (extraCallback != null) { String errmessage = caught.getMessage(); if (caught instanceof RestServerException && errmessage.contains(MonitoringSourceView.NO_MONITORING_INFO_EXCEPTION_STRING)) { extraCallback .onFailure(new Exception("Node Source monitoring information " + "not available.")); } else if (caught instanceof RestServerException && errmessage.contains(MonitoringSourceView.ACCESS_DENIED_EXCEPTION_STRING)) { extraCallback.onFailure(new Exception( "The current user is not authorized to get Node Source monitoring information. ")); } else { extraCallback.onFailure(caught); } } if (JSONUtils.getJsonErrorCode(caught) == 401) { LogModel.getInstance().logMessage("You have been disconnected from the server."); } } }); }
From source file:org.ow2.proactive_grid_cloud_portal.rm.client.monitoring.charts.NetworkAreaChart.java
License:Open Source License
public void processHistoryResult(String result) { // removing internal escaping result = result.replace("\\\"", "\""); result = result.replace("\"{", "{"); result = result.replace("}\"", "}"); JSONValue resultVal = controller.parseJSON(result); JSONObject json = resultVal.isObject(); if (json == null) { return;// ww w. j a v a 2 s. co m } loadTable.removeRows(0, loadTable.getNumberOfRows()); long now = new Date().getTime() / 1000; long dur = timeRange.getDuration(); int size = getJsonInternalSize(json); long step = dur / size; for (int i = 1; i < size; i++) { double[] slice = getJsonSlice(json, i); if (i == 1) { time = new long[slice.length]; txBytes = new long[slice.length]; } long t = now - dur + step * (i - 1); String timeStamp = DateTimeFormat.getFormat(PredefinedFormat.HOUR24_MINUTE).format(new Date(t * 1000)); loadTable.addRow(); loadTable.setValue(i - 1, 0, timeStamp); for (int j = 0; j < slice.length; j++) { long value = (long) slice[j]; if (i > 1) { double bytePerSec = (value - txBytes[j]) / (t - time[j]); double kbPerSec = bytePerSec / 1024; if (kbPerSec < 0) { // rx counter is reset kbPerSec = 0; } loadTable.setValue(i - 1, j + 1, (long) kbPerSec); } txBytes[j] = value; time[j] = t; } } loadChart.draw(loadTable, loadOpts); }
From source file:org.ow2.proactive_grid_cloud_portal.rm.client.monitoring.charts.NetworkDetailedAreaChart.java
License:Open Source License
public void processHistoryResult(String result) { // removing internal escaping result = result.replace("\\\"", "\""); result = result.replace("\"{", "{"); result = result.replace("}\"", "}"); JSONValue resultVal = controller.parseJSON(result); JSONObject json = resultVal.isObject(); if (json == null) { return;/*from w w w . jav a 2 s . c o m*/ } loadTable.removeRows(0, loadTable.getNumberOfRows()); long now = new Date().getTime() / 1000; long dur = timeRange.getDuration(); int size = getJsonInternalSize(json); long step = dur / size; for (int i = 1; i < size; i++) { double[] slice = getJsonSlice(json, i); if (i == 1) { time = new long[slice.length]; history = new long[slice.length]; } long t = now - dur + step * (i - 1); String timeStamp = DateTimeFormat.getFormat(PredefinedFormat.HOUR24_MINUTE).format(new Date(t * 1000)); loadTable.addRow(); loadTable.setValue(i - 1, 0, timeStamp); for (int j = 0; j < slice.length; j++) { long value = (long) slice[j]; if (i > 1) { double bytePerSec = (value - history[j]) / (t - time[j]); double kbPerSec = bytePerSec / 1024; if (kbPerSec < 0) { // rx counter is reset kbPerSec = 0; } loadTable.setValue(i - 1, j + 1, (long) kbPerSec); } history[j] = value; time[j] = t; } } loadChart.draw(loadTable, loadOpts); }