Example usage for com.google.gwt.json.client JSONValue isObject

List of usage examples for com.google.gwt.json.client JSONValue isObject

Introduction

In this page you can find the example usage for com.google.gwt.json.client JSONValue isObject.

Prototype

public JSONObject isObject() 

Source Link

Document

Returns non-null if this JSONValue is really a JSONObject.

Usage

From source file:org.ow2.proactive_grid_cloud_portal.rm.client.monitoring.views.SourceHostsView.java

License:Open Source License

public void load() {
    final RMServiceAsync rm = controller.getRMService();
    final RMModel model = controller.getModel();
    final String mbeanname = MonitoringSourceView.MBEAN_NAME_PREFIX + "-" + nsname;
    final List<String> mbeanAttrs = new ArrayList<String>();
    mbeanAttrs.add("Summary");

    setWidth100();//from   w w  w . j  a  v  a 2  s  .  c om

    final LoginModel loginModel = LoginModel.getInstance();

    rm.getNodeMBeansInfo(loginModel.getSessionId(), url, mbeanname, mbeanAttrs, new AsyncCallback<String>() {
        public void onSuccess(String result) {

            // Result should look like this: 
            // {"ProActiveResourceManager:name=IaasMonitoring-OPENSTACK_NS_26599":
            // [{"name":"Summary","value":
            // {
            // "host2":{
            //    "cpu.usage":"0.25",
            //    "vmsinfo": {"vm1":{"cpu.usage":"0.25","mem.usage":"0.35"},"vm2":{"cpu.usage":"0.25","mem.usage":"0.35"}},
            //    "mem.usage":"0.35"},
            // "host1":{
            //    "cpu.usage":"0.25",
            //    "vmsinfo": {"vm1":{"cpu.usage":"0.25","mem.usage":"0.35"},"vm2":{"cpu.usage":"0.25","mem.usage":"0.35"}},
            //    "mem.usage":"0.35"}
            // }}]
            // }

            if (!loginModel.isLoggedIn())
                return;

            VLayout allpane = new VLayout();

            JSONObject hosts;
            try {
                JSONObject object = controller.parseJSON(result).isObject();
                JSONValue mbeaninfo = null;
                for (String key : object.keySet())
                    mbeaninfo = object.get(key);
                JSONArray array = mbeaninfo.isArray();
                JSONObject nsinfo = array.get(0).isObject();
                JSONValue masbueno = nsinfo.get("value");
                hosts = masbueno.isObject();
            } catch (Exception e) {
                // Failure. Could not parse the JSON.
                Label label = new Label("Error parsing the response.");
                label.setHeight(50);
                allpane.addMember(label);
                return;
            }

            if (hosts != null) {
                for (String hostname : hosts.keySet()) {

                    VLayout hostpane = new VLayout();
                    Label label = new Label("<nobr style='font-weight:bold;'> Host " + hostname + "<nobr>");
                    label.setHeight(50);
                    hostpane.addMember(label);

                    JSONObject hostc = hosts.get(hostname).isObject();

                    DetailViewer hostdetails = generateDetails(hostc);

                    hostpane.addMember(hostdetails);

                    allpane.addMember(hostpane);

                    JSONObject vms = hostc.get("vmsinfo").isObject();
                    if (vms != null) {
                        for (String vmname : vms.keySet()) {
                            JSONObject vmc = vms.get(vmname).isObject();
                            if (vmc != null) {
                                DetailViewer vmdetails = generateDetails(vmc);
                                VLayout vmlay = new VLayout();
                                Label vmlabel = new Label("Virtual machine " + vmname);
                                vmlabel.setHeight(50);
                                vmlay.addMember(vmlabel);
                                vmlay.addMember(vmdetails);
                                allpane.addMember(vmlay);
                            }
                        }
                    }
                }

                if (currpane != null)
                    removeMember(currpane);

                addMember(allpane);
                currpane = allpane;
            }
        }

        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.RMController.java

License:Open Source License

/**
 * Perform the server call to fetch RRD history statistics
 *//*from w  w  w  . j  a  v a  2  s .  c  om*/
private void fetchStatHistory() {
    String range = "";
    String[] sources = new String[] { "BusyNodesCount", "FreeNodesCount", "DownNodesCount",
            "AvailableNodesCount", "AverageActivity" };
    long updateFreq = Range.YEAR_1.getUpdateFrequency();
    boolean changedRange = false;
    for (String src : sources) {
        if (model.getStatHistory(src) != null
                && !model.getStatHistory(src).range.equals(model.getRequestedStatHistoryRange(src))) {
            changedRange = true;
        }

        Range r = model.getRequestedStatHistoryRange(src);
        range += r.getChar();
        if (r.getUpdateFrequency() < updateFreq)
            updateFreq = r.getUpdateFrequency();
    }

    final long now = System.currentTimeMillis();
    final long dt = now - this.lastStatHistReq;

    // do not update stats every 5sec if the graphed range is large
    if (dt > updateFreq * 1000 || changedRange) {
        this.lastStatHistReq = now;

        this.statHistReq = rm.getStatHistory(LoginModel.getInstance().getSessionId(), range,
                new AsyncCallback<String>() {
                    @Override
                    public void onSuccess(String result) {

                        JSONValue val = RMController.this.parseJSON(result);
                        JSONObject obj = val.isObject();

                        HashMap<String, StatHistory> stats = new HashMap<String, StatHistory>();
                        for (String source : obj.keySet()) {
                            JSONArray arr = obj.get(source).isArray();

                            ArrayList<Double> values = new ArrayList<Double>();
                            for (int i = 0; i < arr.size(); i++) {
                                JSONValue dval = arr.get(i);
                                if (dval.isNumber() != null) {
                                    values.add(dval.isNumber().doubleValue());
                                } else if (i < arr.size() - 1) {
                                    values.add(Double.NaN);
                                }

                            }
                            StatHistory st = new StatHistory(source, values,
                                    model.getRequestedStatHistoryRange(source));
                            stats.put(source, st);
                        }
                        model.setStatHistory(stats);
                        LogModel.getInstance().logMessage(
                                "Updated Statistics History in " + (System.currentTimeMillis() - now) + "ms");
                    }

                    @Override
                    public void onFailure(Throwable caught) {
                        if (JSONUtils.getJsonErrorCode(caught) == 401) {
                            teardown("You have been disconnected from the server.");
                        } else {
                            error("Failed to fetch Statistics History: "
                                    + JSONUtils.getJsonErrorMessage(caught));
                        }
                    }
                });
    }

    /*
     * max nodes from RRD on RM 
     * not used right now, uncomment if needed
     * 
    List<String> attrs = new ArrayList<String>();
    attrs.add("MaxFreeNodes");
    attrs.add("MaxBusyNodes");
    attrs.add("MaxDownNodes");
    // attrs.add("MaxTotalNodes"); // for some reason there is no Max Total Nodes...
            
    rm.getMBeanInfo(model.getSessionId(),
      "ProActiveResourceManager:name=RuntimeData", attrs,
      new AsyncCallback<String>() {
            
         @Override
         public void onFailure(Throwable caught) {
            error("Failed to get MBean Info: "
                  + getJsonErrorMessage(caught));
            
         }
            
         @Override
         public void onSuccess(String result) {
            JSONArray arr = JSONParser.parseStrict(result)
                  .isArray();
            for (int i = 0; i < arr.size(); i++) {
               String name = arr.get(i).isObject().get("name")
                     .isString().stringValue();
               int value = (int) arr.get(i).isObject()
                     .get("value").isNumber().doubleValue();
               if (name.equals("MaxFreeNodes")) {
                  model.setMaxNumFree(value);
               } else if (name.equals("MaxBusyNodes")) {
                  model.setMaxNumBusy(value);
               } else if (name.equals("MaxDownNodes")) {
                  model.setMaxNumDown(value);
               }
            }
            
         }
      });
     */
}

From source file:org.ow2.proactive_grid_cloud_portal.scheduler.client.json.SchedulerJSONUtils.java

License:Open Source License

protected static JSONObject getObject(JSONValue value) throws JSONException {
    JSONObject jsonObject = value.isObject();
    if (jsonObject == null) {
        throw new JSONException("Expected JSON Object: " + value.toString());
    }//from  w  w  w  .j av a2 s.c  o m
    return jsonObject;
}

From source file:org.ow2.proactive_grid_cloud_portal.scheduler.client.json.SchedulerJSONUtils.java

License:Open Source License

public static Job getJobInfoFromJson(String jsonString) throws JSONException {
    JSONValue val = parseJSON(jsonString);
    JSONObject jsonJobInfo = val.isObject();
    if (jsonJobInfo == null) {
        throw new JSONException("Expected JSON Object: " + jsonString);
    }/*  w  ww  .j  a  v  a 2s. co m*/

    return Job.parseJSONInfo(jsonJobInfo);
}

From source file:org.ow2.proactive_grid_cloud_portal.scheduler.client.SubmitWindow.java

License:Open Source License

/**
 * internal layout creation//  w w w .j av  a 2s. co  m
 * 
 * <pre>
 * +- Window ------------------+
 * |+- VLayout ---------------+|
 * ||+- Label --------+       || <-- error messages
 * ||+----------------+       ||     when applicable
 * ||+- Layout --------------+||
 * |||+- FormPanel ---------+|||
 * ||||+- VerticalPanel ---+||||
 * ||||| form fields       ||||| <-- GWT form wrapped
 * ||||+-------------------+||||     in SmartGWT layout
 * |||+---------------------+|||
 * ||+-----------------------+||
 * ||+- DynamicForm ---------+||     SmartGWT form, check
 * ||| form fields           ||| <-- to enable variable edition 
 * ||+-----------------------+||
 * ||           +- IButton --+|| <-- submit button
 * ||           +------------+||
 * |+-------------------------+|
 * +---------------------------+
 * </pre>
 * 
 * If the <code>Edit variables</code> checkbox is checked,
 * the {@link UploadServlet} called by the GWT form will return the content
 * of the job descriptor, and we will create a new form to edit the
 * variables so that we may submit the job to a second servlet, {@link SubmitEditServlet}.
 * If the {@link SubmitEditServlet} submission fails, we get back in the same state
 * as before the first click to Submit
 * 
 * 
 */
private void build() {

    /* mixing GWT's native FormPanel with SmartGWT containers,
     * because SmartGWT's form somehow sucks when not using the datasource stuff
     * as a result the layout is a bit messy */

    // root page of the window
    final VLayout layout = new VLayout();
    layout.setMargin(10);
    layout.setWidth100();
    layout.setHeight100();

    // buttons 
    final HLayout buttons = new HLayout();
    buttons.setMembersMargin(5);
    buttons.setHeight(20);
    buttons.setWidth100();
    buttons.setAlign(Alignment.RIGHT);

    final IButton uploadButton = new IButton("Submit");
    uploadButton.setIcon(Images.instance.ok_16().getSafeUri().asString());

    final IButton cancelButton = new IButton("Cancel");
    cancelButton.setIcon(Images.instance.cancel_16().getSafeUri().asString());
    cancelButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            SubmitWindow.this.window.hide();
            SubmitWindow.this.destroy();
        }
    });

    buttons.setMembers(uploadButton, cancelButton);

    // holds the form fields
    VerticalPanel formContent = new VerticalPanel();
    Hidden hiddenField = new Hidden();
    hiddenField.setName("sessionId");
    hiddenField.setValue(LoginModel.getInstance().getSessionId());
    formContent.add(hiddenField);

    final FileUpload fileUpload = new FileUpload();
    fileUpload.setName("job");
    final Hidden editField = new Hidden("edit");
    editField.setValue("0");

    formContent.add(fileUpload);
    formContent.add(editField);

    // actual form      
    final FormPanel formPanel = new FormPanel();
    formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    formPanel.setMethod(FormPanel.METHOD_POST);
    formPanel.setAction(GWT.getModuleBaseURL() + "uploader");
    formPanel.add(formContent);
    formPanel.setWidth("350px");
    formPanel.setHeight("30px");

    // wraps the GWT component so that we may show/hide it
    final HLayout formWrapper = new HLayout();
    formWrapper.setAlign(Alignment.CENTER);
    formWrapper.setHeight(30);
    formWrapper.addChild(formPanel);

    // error messages when applicable
    final Label label = new Label("Submit an XML Job Descriptor:");
    label.setHeight(30);
    label.setWidth100();

    // shown during submission
    final Label waitLabel = new Label("Please wait...");
    waitLabel.setHeight(30);
    waitLabel.setIcon("loading.gif");
    waitLabel.setWidth100();
    waitLabel.setAlign(Alignment.CENTER);

    final CheckboxItem edit = new CheckboxItem("edit", "Edit variables definitions");
    final DynamicForm editForm = new DynamicForm();
    editForm.setHeight100();
    editForm.setColWidths(20, "*");
    editForm.setFields(edit);

    layout.addMember(label);
    layout.addMember(formWrapper);
    layout.addMember(editForm);
    layout.addMember(buttons);

    this.window = new Window();
    this.window.setTitle("Submit Job");
    this.window.setShowMinimizeButton(false);
    this.window.setIsModal(true);
    this.window.setShowModalMask(true);
    this.window.addItem(layout);
    this.window.setWidth(420);
    this.window.setHeight(180);
    this.window.centerInPage();
    this.window.setCanDragResize(true);

    // click the upload button :
    // hide the form, show a 'please wait' label,
    // wait for the form's callback
    uploadButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
        public void onClick(ClickEvent e) {
            editField.setValue(edit.getValueAsBoolean() ? "1" : "0");

            formPanel.submit();

            layout.removeMember(label);
            layout.removeMember(formWrapper);
            layout.removeMember(editForm);
            layout.removeMember(buttons);

            layout.addMember(waitLabel);
        }
    });

    // form callback : silently close the window if no error,
    // else display message and allow new submission
    formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {

        public void onSubmitComplete(SubmitCompleteEvent event) {
            String fn = fileUpload.getFilename();

            // chrome workaround
            final String fileName = fn.replace("C:\\fakepath\\", "");
            String res = event.getResults();
            boolean isError = false;

            try {
                JSONValue js = JSONParser.parseStrict(res);
                JSONObject obj = js.isObject();
                /* 
                 * submission with no edition successful, result is the job id 
                 */
                if (obj.get("id") != null && obj.get("id").isNumber() != null) {
                    int id = (int) obj.get("id").isNumber().doubleValue();
                    SubmitWindow.this.destroy();
                    LogModel.getInstance().logMessage("Successfully submitted job " + fileName + ": " + id);
                    controller.getExecutionController().getJobsController().addSubmittingJob(id, fileName);
                }
                /*
                 *  submission with edition:
                 */
                else if (obj.get("jobEdit") != null && obj.get("jobEdit").isString() != null) {
                    String val = obj.get("jobEdit").isString().stringValue();
                    String job = new String(
                            org.ow2.proactive_grid_cloud_portal.common.shared.Base64Utils.fromBase64(val));
                    final Map<String, String> variables = readVars(job);

                    // presentation form
                    final DynamicForm varForm = new DynamicForm();
                    final FormItem[] fields = new FormItem[variables.size()];
                    final Hidden[] _fields = new Hidden[variables.size()];
                    int i = 0;
                    final VerticalPanel hiddenPane = new VerticalPanel();
                    for (Entry<String, String> var : variables.entrySet()) {
                        TextItem t = new TextItem(var.getKey(), var.getKey());
                        t.setValue(var.getValue());
                        t.setWidth(240);

                        _fields[i] = new Hidden("var_" + var.getKey());
                        hiddenPane.add(_fields[i]);
                        fields[i] = t;
                        i++;
                    }
                    varForm.setFields(fields);
                    varForm.setWidth100();
                    varForm.setHeight100();

                    // actual form used to POST
                    final FormPanel fpanel = new FormPanel();
                    fpanel.setMethod(FormPanel.METHOD_POST);
                    fpanel.setAction(GWT.getModuleBaseURL() + "submitedit");
                    hiddenPane.add(new Hidden("job", job));
                    hiddenPane.add(new Hidden("sessionId", LoginModel.getInstance().getSessionId()));
                    fpanel.setWidget(hiddenPane);
                    final Layout fpanelWrapper = new Layout();
                    fpanelWrapper.addMember(fpanel);

                    label.setContents(
                            "Edit the variable definitions for job <strong>" + fileName + "</strong>");

                    final HLayout buttons2 = new HLayout();
                    buttons2.setWidth100();
                    buttons2.setHeight(20);
                    buttons2.setAlign(Alignment.RIGHT);
                    buttons2.setMembersMargin(5);
                    final IButton reset = new IButton("Reset");
                    reset.setIcon(Images.instance.clear_16().getSafeUri().asString());
                    reset.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            for (FormItem it : fields) {
                                String key = it.getName();
                                String val = variables.get(key);
                                it.setValue(val);
                            }
                        }
                    });
                    final IButton submit2 = new IButton("Submit");
                    submit2.setIcon(Images.instance.ok_16().getSafeUri().asString());
                    submit2.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            for (int i = 0; i < fields.length; i++) {
                                String val = "";
                                if (fields[i].getValue() != null) {
                                    val = fields[i].getValue().toString();
                                }
                                _fields[i].setValue(val);
                            }

                            fpanel.submit();

                            layout.removeMember(label);
                            layout.removeMember(varForm);
                            layout.removeMember(buttons2);
                            layout.removeMember(fpanelWrapper);

                            layout.addMember(waitLabel);
                            layout.reflow();
                        }
                    });
                    final IButton cancel2 = new IButton("Cancel");
                    cancel2.setIcon(Images.instance.cancel_16().getSafeUri().asString());
                    cancel2.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                            SubmitWindow.this.window.hide();
                            SubmitWindow.this.destroy();
                        }
                    });

                    buttons2.setMembers(reset, submit2, cancel2);

                    fpanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
                        public void onSubmitComplete(SubmitCompleteEvent event) {
                            String res = event.getResults();
                            boolean failure = false;
                            try {
                                JSONValue val = controller.parseJSON(res);
                                if (val.isObject() != null && val.isObject().containsKey("id")) {
                                    int id = (int) val.isObject().get("id").isNumber().doubleValue();
                                    SubmitWindow.this.destroy();
                                    LogModel.getInstance()
                                            .logMessage("Successfully submitted job " + fileName + ": " + id);
                                    controller.getExecutionController().getJobsController().addSubmittingJob(id,
                                            fileName);
                                } else {
                                    failure = true;
                                }
                            } catch (JSONException e) {
                                failure = true;
                            }

                            if (failure) {
                                String msg = JSONUtils.getJsonErrorMessage(res);
                                layout.removeMember(waitLabel);

                                label.setContents(
                                        "<span style='color:red; font-weight:bold'>Job submission failed:</span><br>"
                                                + "<span style=''>" + msg + "</span>");

                                layout.addMember(label);
                                layout.addMember(formWrapper);
                                layout.addMember(editForm);
                                layout.addMember(buttons);
                                layout.reflow();
                                LogModel.getInstance().logImportantMessage("Failed to submit job: " + msg);
                            }
                        }
                    });

                    layout.removeMember(waitLabel);
                    layout.addMember(label);
                    layout.addMember(varForm);
                    layout.addMember(fpanelWrapper);
                    layout.addMember(buttons2);
                    layout.setMargin(10);
                    layout.reflow();

                } else {
                    isError = true;
                }
            } catch (JSONException t) {
                isError = true;
            }

            /* 
             * submission failure 
             */
            if (isError) {
                String msg = JSONUtils.getJsonErrorMessage(res);
                layout.removeMember(waitLabel);

                label.setContents("<span style='color:red; font-weight:bold'>Job submission failed:</span><br>"
                        + "<span style=''>" + msg + "</span>");

                layout.addMember(label);
                layout.addMember(formWrapper);
                layout.addMember(editForm);
                layout.addMember(buttons);
                layout.reflow();
                LogModel.getInstance().logImportantMessage("Failed to submit job: " + msg);
            }
        }
    });
}

From source file:org.pentaho.gwt.widgets.client.filechooser.JsonToRepositoryFileTreeConverter.java

License:Open Source License

private static final RepositoryFileTree processChildren(RepositoryFileTree parent,
        JSONObject jsoFolderContents) {/*from w w  w. j a va  2 s  . c  o m*/
    JSONValue jsvChildren = jsoFolderContents.get("children");
    List<RepositoryFileTree> children = new ArrayList<RepositoryFileTree>();
    if (jsvChildren != null) {
        JSONArray jsaChildren = jsvChildren.isArray();
        for (int i = 0; i < jsaChildren.size(); i++) {
            RepositoryFileTree repositoryFileTree = new RepositoryFileTree();
            JSONObject child = jsaChildren.get(i).isObject();

            // process the folder name for the children, or the individual file as a single child
            JSONValue childValue = child.get("file");
            RepositoryFile repositoryFile = new RepositoryFile(childValue.isObject());
            repositoryFileTree.setFile(repositoryFile);
            if (!repositoryFile.isFolder()) {
                // Adding single file to the tree
                children.add(repositoryFileTree);
            } else {
                // process the children, if any
                childValue = child.get("children");
                if (childValue != null) {
                    RepositoryFileTree childChildren = processChildren(repositoryFileTree, child);
                    // System.out.println("Adding folder " + childChildren.getFile().getPath()
                    // + " to " + parent.getFile().getPath());
                    children.add(childChildren);
                } else {
                    // we have to add empty folders too
                    repositoryFileTree.setChildren(new ArrayList<RepositoryFileTree>());
                    children.add(repositoryFileTree);
                }
            }
        }
    }
    parent.setChildren(children);
    return parent;
}

From source file:org.pentaho.mantle.client.dialogs.scheduling.ScheduleEditor.java

License:Open Source License

private void populateTimeZonePicker() {

    String url = ScheduleHelper.getFullyQualifiedURL() + "api/system/timezones"; //$NON-NLS-1$
    RequestBuilder timeZonesRequest = new RequestBuilder(RequestBuilder.GET, url);
    timeZonesRequest.setHeader("accept", "application/json"); //$NON-NLS-1$ //$NON-NLS-2$
    timeZonesRequest.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
    try {//from w  w w.j a va2  s  . com
        timeZonesRequest.sendRequest(null, new RequestCallback() {

            @Override
            public void onResponseReceived(Request request, Response response) {
                timeZonePicker.clear();
                String responseText = response.getText();
                JSONValue value = JSONParser.parseLenient(responseText);
                JSONObject object = value.isObject();
                value = object.get("timeZones");
                JSONValue serverTZvalue = object.get("serverTzId");
                JSONString serverTZIdString = serverTZvalue.isString();
                String serverTZId = serverTZIdString.stringValue();
                object = value.isObject();
                value = object.get("entry");
                JSONArray timeZonesJSONArray = value.isArray();
                for (int i = 0; i < timeZonesJSONArray.size(); i++) {
                    JSONValue entryValue = timeZonesJSONArray.get(i);
                    JSONObject entryObject = entryValue.isObject();
                    JSONValue keyValue = entryObject.get("key");
                    JSONValue theValue = entryObject.get("value");
                    String key = keyValue.isString().stringValue();
                    String valueForKey = theValue.isString().stringValue();
                    timeZonePicker.addItem(valueForKey, key);
                }
                for (int i = 0; i < timeZonePicker.getItemCount(); i++) {
                    if (timeZonePicker.getValue(i).equalsIgnoreCase(serverTZId)) {
                        timeZonePicker.setSelectedIndex(i);
                        break;
                    }
                }
            }

            @Override
            public void onError(Request request, Throwable exception) {
                // TODO Auto-generated method stub

            }

        });
    } catch (RequestException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:org.pentaho.mantle.client.solutionbrowser.fileproperties.GeneralPanel.java

License:Open Source License

/**
 * Accept metadata response object and parse for use in General panel
 * /*from  w  ww.  j  a  v  a 2s .  co  m*/
 * @param response
 */
protected void setMetadataResponse(Response response) {
    JSONObject json = (JSONObject) JSONParser.parseLenient(response.getText());
    if (json != null) {
        JSONArray arr = (JSONArray) json.get("stringKeyStringValueDto");
        for (int i = 0; i < arr.size(); i++) {
            JSONValue arrVal = arr.get(i);
            String key = arrVal.isObject().get("key").isString().stringValue();
            if (key != null && SolutionBrowserPanel.getInstance().isAdministrator()) {
                if (key.equals(org.pentaho.platform.api.repository2.unified.RepositoryFile.SCHEDULABLE_KEY)
                        && !fileSummary.isFolder()
                        || key.equals(org.pentaho.platform.api.repository2.unified.RepositoryFile.HIDDEN_KEY)) {
                    String value = arrVal.isObject().get("value").isString().stringValue();
                    if (key.startsWith(METADATA_PERM_PREFIX)) {
                        JSONObject nv = new JSONObject();
                        nv.put(key, new JSONString(value));
                        metadataPerms.add(nv);
                    }
                }
            }
        }
        for (final JSONObject nv : metadataPerms) {
            Set<String> keys = nv.keySet();
            for (final String key : keys) {
                if (key != null && SolutionBrowserPanel.getInstance().isAdministrator()) {
                    if (key.equals(org.pentaho.platform.api.repository2.unified.RepositoryFile.SCHEDULABLE_KEY)
                            && !fileSummary.isFolder()
                            || key.equals(
                                    org.pentaho.platform.api.repository2.unified.RepositoryFile.HIDDEN_KEY)) {
                        final CheckBox cb = new CheckBox(
                                Messages.getString(key.substring(METADATA_PERM_PREFIX.length()).toLowerCase()));
                        cb.setWordWrap(false);
                        cb.setValue(Boolean.parseBoolean(nv.get(key).isString().stringValue()));
                        cb.addClickHandler(new ClickHandler() {
                            @Override
                            public void onClick(ClickEvent event) {
                                dirty = true;
                                nv.put(key, new JSONString(cb.getValue().toString()));
                            }
                        });
                        metadataPermsPanel.add(cb);
                    }
                }
            }
        }
    }
}

From source file:org.pentaho.ui.database.event.DataHandler.java

License:Open Source License

private void gatherErrors(Response response) {
    if (response.getStatusCode() == Response.SC_OK && !response.getText().equalsIgnoreCase("null")) { //$NON-NLS-1$
        String message = ""; //$NON-NLS-1$
        final JSONValue jsonValue = JSONParser.parseStrict(response.getText());
        final String keyItems = "items"; //$NON-NLS-1$
        final String starter = "* "; //$NON-NLS-1$
        if (jsonValue.isObject() != null && jsonValue.isObject().containsKey(keyItems)) {
            final JSONValue items = jsonValue.isObject().get(keyItems);
            if (items.isArray() != null) {
                for (int i = 0; i < items.isArray().size(); i++) {
                    message = message.concat(starter).concat(items.isArray().get(i).isString().stringValue())
                            .concat(LINE_SEPARATOR);
                }//from   w w  w .j ava  2 s. com
            } else if (items.isString() != null) {
                message = message.concat(starter).concat(items.isString().stringValue()).concat(LINE_SEPARATOR);
            } else {
                message = message.concat(starter).concat(items.toString()).concat(LINE_SEPARATOR);
            }
        } else {
            message = message.concat(starter).concat(jsonValue.toString()).concat(LINE_SEPARATOR);
        }
        showMessage(messages.getString("DataHandler.CHECK_PARAMS_TITLE"), message, false); //$NON-NLS-1$
    } else {
        showMessage(messages.getString("DataHandler.ERROR_MESSAGE_TITLE"), response.getStatusText(), //$NON-NLS-1$
                response.getStatusText().length() > 300);
    }
}

From source file:org.rest.client.activity.AboutActivity.java

License:Apache License

private void getAppVersion() {
    clientFactory.getChromeMessagePassing().postMessage("getManifest", "", new BackgroundPageCallback() {

        @Override// www. java  2  s.  c  o  m
        public void onSuccess(String result) {
            try {
                JSONValue value = JSONParser.parseStrict(result);
                ManifestDetails manifest = value.isObject().getJavaScriptObject().cast();
                if (view != null) {
                    view.setManifest(manifest);
                } else {
                    if (RestClient.isDebug()) {
                        Log.warn("View is null. cant set manifest data.");
                    }
                }
            } catch (Exception e) {
                if (RestClient.isDebug()) {
                    Log.warn("Can't parse manifest info", e);
                }
            }

        }

        @Override
        public void onError(String message) {
            if (RestClient.isDebug()) {
                Log.error("Unknown error occured: " + message);
            }
        }
    });
}