Example usage for com.google.gwt.core.client JsArrayString get

List of usage examples for com.google.gwt.core.client JsArrayString get

Introduction

In this page you can find the example usage for com.google.gwt.core.client JsArrayString get.

Prototype

public final native String get(int index) ;

Source Link

Document

Gets the value at a given index.

Usage

From source file:com.vaadin.client.UIDL.java

License:Apache License

/**
 * Gets the value of the named String[] variable as a Set of Strings.
 * /*from w  w  w  .j  a  v  a  2s .  c  om*/
 * @param name
 *            the name of the variable
 * @return the value of the variable
 */
public Set<String> getStringArrayVariableAsSet(final String name) {
    final HashSet<String> s = new HashSet<String>();
    JsArrayString a = var().getJSStringArray(name);
    for (int i = 0; i < a.length(); i++) {
        s.add(a.get(i));
    }
    return s;
}

From source file:com.vaadin.client.ValueMap.java

License:Apache License

public Set<String> getKeySet() {
    final HashSet<String> attrs = new HashSet<String>();
    JsArrayString attributeNamesArray = getKeyArray();
    for (int i = 0; i < attributeNamesArray.length(); i++) {
        attrs.add(attributeNamesArray.get(i));
    }/*from  ww w  .ja va2s  .c  o m*/
    return attrs;
}

From source file:com.vaadin.client.ValueMap.java

License:Apache License

public String[] getStringArray(final String name) {
    JsArrayString stringArrayAttribute = getJSStringArray(name);
    final String[] s = new String[stringArrayAttribute.length()];
    for (int i = 0; i < stringArrayAttribute.length(); i++) {
        s[i] = stringArrayAttribute.get(i);
    }//from   w  w w.j  a v a 2 s.  c o m
    return s;
}

From source file:com.vaadin.client.ValueMap.java

License:Apache License

public int[] getIntArray(final String name) {
    JsArrayString stringArrayAttribute = getJSStringArray(name);
    final int[] s = new int[stringArrayAttribute.length()];
    for (int i = 0; i < stringArrayAttribute.length(); i++) {
        s[i] = Integer.parseInt(stringArrayAttribute.get(i));
    }//from  w ww .  j av  a  2 s .  com
    return s;
}

From source file:com.vaadin.terminal.gwt.client.ApplicationConfiguration.java

License:Open Source License

public void addComponentMappings(ValueMap valueMap, WidgetSet widgetSet) {
    JsArrayString keyArray = valueMap.getKeyArray();
    for (int i = 0; i < keyArray.length(); i++) {
        String key = keyArray.get(i).intern();
        int value = valueMap.getInt(key);
        classes[value] = widgetSet.getImplementationByClassName(key);
        if (classes[value] == VUnknownComponent.class) {
            if (unknownComponents == null) {
                unknownComponents = new HashMap<String, String>();
            }// w ww .j  ava 2 s.  c o m
            unknownComponents.put("" + value, key);
        } else if (key == "com.vaadin.ui.Root") {
            windowId = "" + value;
        }
    }
}

From source file:com.vaadin.terminal.gwt.client.ApplicationConnection.java

License:Open Source License

protected void handleUIDLMessage(final Date start, final String jsonText, final ValueMap json) {
    // Handle redirect
    if (json.containsKey("redirect")) {
        String url = json.getValueMap("redirect").getString("url");
        VConsole.log("redirecting to " + url);
        redirect(url);//from ww  w .j av a 2 s  .c om
        return;
    }

    // Get security key
    if (json.containsKey(UIDL_SECURITY_TOKEN_ID)) {
        uidlSecurityKey = json.getString(UIDL_SECURITY_TOKEN_ID);
    }

    if (json.containsKey("resources")) {
        ValueMap resources = json.getValueMap("resources");
        JsArrayString keyArray = resources.getKeyArray();
        int l = keyArray.length();
        for (int i = 0; i < l; i++) {
            String key = keyArray.get(i);
            resourcesMap.put(key, resources.getAsString(key));
        }
    }

    if (json.containsKey("typeMappings")) {
        configuration.addComponentMappings(json.getValueMap("typeMappings"), widgetSet);
    }

    Command c = new Command() {
        public void execute() {
            VConsole.dirUIDL(json, configuration);

            if (json.containsKey("locales")) {
                // Store locale data
                JsArray<ValueMap> valueMapArray = json.getJSValueMapArray("locales");
                LocaleService.addLocales(valueMapArray);
            }

            boolean repaintAll = false;
            ValueMap meta = null;
            if (json.containsKey("meta")) {
                meta = json.getValueMap("meta");
                if (meta.containsKey("repaintAll")) {
                    repaintAll = true;
                    view.clear();
                    idToPaintableDetail.clear();
                    if (meta.containsKey("invalidLayouts")) {
                        validatingLayouts = true;
                        zeroWidthComponents = new HashSet<Paintable>();
                        zeroHeightComponents = new HashSet<Paintable>();
                    }
                }
                if (meta.containsKey("timedRedirect")) {
                    final ValueMap timedRedirect = meta.getValueMap("timedRedirect");
                    redirectTimer = new Timer() {
                        @Override
                        public void run() {
                            redirect(timedRedirect.getString("url"));
                        }
                    };
                    sessionExpirationInterval = timedRedirect.getInt("interval");
                }
            }

            if (redirectTimer != null) {
                redirectTimer.schedule(1000 * sessionExpirationInterval);
            }

            // Process changes
            JsArray<ValueMap> changes = json.getJSValueMapArray("changes");

            ArrayList<Paintable> updatedWidgets = new ArrayList<Paintable>();
            relativeSizeChanges.clear();
            componentCaptionSizeChanges.clear();

            int length = changes.length();
            for (int i = 0; i < length; i++) {
                try {
                    final UIDL change = changes.get(i).cast();
                    final UIDL uidl = change.getChildUIDL(0);
                    // TODO optimize
                    final Paintable paintable = getPaintable(uidl.getId());
                    if (paintable != null) {
                        paintable.updateFromUIDL(uidl, ApplicationConnection.this);
                        // paintable may have changed during render to
                        // another
                        // implementation, use the new one for updated
                        // widgets map
                        updatedWidgets.add(idToPaintableDetail.get(uidl.getId()).getComponent());
                    } else {
                        if (!uidl.getTag().equals(configuration.getEncodedWindowTag())) {
                            VConsole.error("Received update for " + uidl.getTag()
                                    + ", but there is no such paintable (" + uidl.getId() + ") rendered.");
                        } else {
                            String pid = uidl.getId();
                            if (!idToPaintableDetail.containsKey(pid)) {
                                registerPaintable(pid, view);
                            }
                            // VView does not call updateComponent so we
                            // register any event listeners here
                            ComponentDetail cd = idToPaintableDetail.get(pid);
                            cd.registerEventListenersFromUIDL(uidl);

                            // Finally allow VView to update itself
                            view.updateFromUIDL(uidl, ApplicationConnection.this);
                        }
                    }
                } catch (final Throwable e) {
                    VConsole.error(e);
                }
            }

            if (json.containsKey("dd")) {
                // response contains data for drag and drop service
                VDragAndDropManager.get().handleServerResponse(json.getValueMap("dd"));
            }

            // Check which widgets' size has been updated
            Set<Paintable> sizeUpdatedWidgets = new HashSet<Paintable>();

            updatedWidgets.addAll(relativeSizeChanges);
            sizeUpdatedWidgets.addAll(componentCaptionSizeChanges);

            for (Paintable paintable : updatedWidgets) {
                ComponentDetail detail = idToPaintableDetail.get(getPid(paintable));
                Widget widget = (Widget) paintable;
                Size oldSize = detail.getOffsetSize();
                Size newSize = new Size(widget.getOffsetWidth(), widget.getOffsetHeight());

                if (oldSize == null || !oldSize.equals(newSize)) {
                    sizeUpdatedWidgets.add(paintable);
                    detail.setOffsetSize(newSize);
                }

            }

            Util.componentSizeUpdated(sizeUpdatedWidgets);

            if (meta != null) {
                if (meta.containsKey("appError")) {
                    ValueMap error = meta.getValueMap("appError");
                    String html = "";
                    if (error.containsKey("caption") && error.getString("caption") != null) {
                        html += "<h1>" + error.getAsString("caption") + "</h1>";
                    }
                    if (error.containsKey("message") && error.getString("message") != null) {
                        html += "<p>" + error.getAsString("message") + "</p>";
                    }
                    String url = null;
                    if (error.containsKey("url")) {
                        url = error.getString("url");
                    }

                    if (html.length() != 0) {
                        /* 45 min */
                        VNotification n = VNotification.createNotification(1000 * 60 * 45);
                        n.addEventListener(new NotificationRedirect(url));
                        n.show(html, VNotification.CENTERED_TOP, VNotification.STYLE_SYSTEM);
                    } else {
                        redirect(url);
                    }
                    applicationRunning = false;
                }
                if (validatingLayouts) {
                    VConsole.printLayoutProblems(meta, ApplicationConnection.this, zeroHeightComponents,
                            zeroWidthComponents);
                    zeroHeightComponents = null;
                    zeroWidthComponents = null;
                    validatingLayouts = false;

                }
            }

            if (repaintAll) {
                /*
                 * idToPaintableDetail is already cleanded at the start of
                 * the changeset handling, bypass cleanup.
                 */
                unregistryBag.clear();
            } else {
                purgeUnregistryBag();
            }

            // TODO build profiling for widget impl loading time

            final long prosessingTime = (new Date().getTime()) - start.getTime();
            VConsole.log(" Processing time was " + String.valueOf(prosessingTime) + "ms for "
                    + jsonText.length() + " characters of JSON");
            VConsole.log("Referenced paintables: " + idToPaintableDetail.size());

            endRequest();

        }
    };
    ApplicationConfiguration.runWhenWidgetsLoaded(c);
}

From source file:com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper.java

License:Open Source License

public boolean html5DragDrop(VHtml5DragEvent event) {
    if (dropHandler == null || !currentlyValid) {
        return true;
    }//  www.  ja va2  s.  com
    try {

        VTransferable transferable = vaadinDragEvent.getTransferable();

        JsArrayString types = event.getTypes();
        for (int i = 0; i < types.length(); i++) {
            String type = types.get(i);
            if (isAcceptedType(type)) {
                String data = event.getDataAsText(type);
                if (data != null) {
                    transferable.setData(type, data);
                }
            }
        }

        int fileCount = event.getFileCount();
        if (fileCount > 0) {
            transferable.setData("filecount", fileCount);
            for (int i = 0; i < fileCount; i++) {
                final int fileId = filecounter++;
                final VHtml5File file = event.getFile(i);
                transferable.setData("fi" + i, "" + fileId);
                transferable.setData("fn" + i, file.getName());
                transferable.setData("ft" + i, file.getType());
                transferable.setData("fs" + i, file.getSize());
                queueFilePost(fileId, file);
            }

        }

        VDragAndDropManager.get().endDrag();
        vaadinDragEvent = null;
        try {
            event.preventDefault();
            event.stopPropagation();
        } catch (Exception e) {
            // VConsole.log("IE9 fails");
        }
        return false;
    } catch (Exception e) {
        GWT.getUncaughtExceptionHandler().onUncaughtException(e);
        return true;
    }

}

From source file:com.vaadin.terminal.gwt.client.ui.VOrderedLayout.java

License:Open Source License

private double getExpandRatio(String pid) {
    if (expandRatioSum < 0) {
        expandRatioSum = 0;/*from w w w  . j  av a  2 s  .c  om*/
        JsArrayString keyArray = expandRatios.getKeyArray();
        int length = keyArray.length();
        for (int i = 0; i < length; i++) {
            expandRatioSum += expandRatios.getRawNumber(keyArray.get(i));
        }
        if (expandRatioSum == 0) {
            // by default split equally among components
            defaultExpandRatio = 1.0 / widgetToComponentContainer.size();
        } else {
            defaultExpandRatio = 0;
        }
    }
    if (expandRatios.containsKey(pid)) {
        return expandRatios.getRawNumber(pid) / expandRatioSum;
    } else {
        return defaultExpandRatio;
    }
}

From source file:com.vaadin.v7.client.connectors.JavaScriptRendererConnector.java

License:Apache License

@Override
protected Renderer<Object> createRenderer() {
    helper.ensureJavascriptInited();//from  w w  w. jav a 2 s  .c  om

    if (!hasFunction("render")) {
        throw new RuntimeException(
                "JavaScriptRenderer " + helper.getInitFunctionName() + " must have a function named 'render'");
    }

    final boolean hasInit = hasFunction("init");
    final boolean hasDestroy = hasFunction("destroy");
    final boolean hasOnActivate = hasFunction("onActivate");
    final boolean hasGetConsumedEvents = hasFunction("getConsumedEvents");
    final boolean hasOnBrowserEvent = hasFunction("onBrowserEvent");

    return new ComplexRenderer<Object>() {
        @Override
        public void render(RendererCellReference cell, Object data) {
            if (data instanceof JsonValue) {
                data = Util.json2jso((JsonValue) data);
            }
            render(helper.getConnectorWrapper(), getJsCell(cell), data);
        }

        private JavaScriptObject getJsCell(CellReference<?> cell) {
            updateCellReference(cellReferenceWrapper, cell);
            return cellReferenceWrapper;
        }

        public native void render(JavaScriptObject wrapper, JavaScriptObject cell, Object data)
        /*-{
        wrapper.render(cell, data);
        }-*/;

        @Override
        public void init(RendererCellReference cell) {
            if (hasInit) {
                init(helper.getConnectorWrapper(), getJsCell(cell));
            }
        }

        private native void init(JavaScriptObject wrapper, JavaScriptObject cell)
        /*-{
        wrapper.init(cell);
        }-*/;

        private native void updateCellReference(JavaScriptObject cellWrapper, CellReference<?> target)
        /*-{
        cellWrapper.target = target;
        }-*/;

        @Override
        public void destroy(RendererCellReference cell) {
            if (hasDestroy) {
                destory(helper.getConnectorWrapper(), getJsCell(cell));
            } else {
                super.destroy(cell);
            }
        }

        private native void destory(JavaScriptObject wrapper, JavaScriptObject cell)
        /*-{
        wrapper.destory(cell);
        }-*/;

        @Override
        public boolean onActivate(CellReference<?> cell) {
            if (hasOnActivate) {
                return onActivate(helper.getConnectorWrapper(), getJsCell(cell));
            } else {
                return super.onActivate(cell);
            }
        }

        private native boolean onActivate(JavaScriptObject wrapper, JavaScriptObject cell)
        /*-{
        return !!wrapper.onActivate(cell);
        }-*/;

        @Override
        public Collection<String> getConsumedEvents() {
            if (hasGetConsumedEvents) {
                JsArrayString events = getConsumedEvents(helper.getConnectorWrapper());

                ArrayList<String> list = new ArrayList<String>(events.length());
                for (int i = 0; i < events.length(); i++) {
                    list.add(events.get(i));
                }
                return list;
            } else {
                return super.getConsumedEvents();
            }
        }

        private native JsArrayString getConsumedEvents(JavaScriptObject wrapper)
        /*-{
        var rawEvents = wrapper.getConsumedEvents();
        var events = [];
        for(var i = 0; i < rawEvents.length; i++) {
          events[i] = ""+rawEvents[i];
        }
        return events;
        }-*/;

        @Override
        public boolean onBrowserEvent(CellReference<?> cell, NativeEvent event) {
            if (hasOnBrowserEvent) {
                return onBrowserEvent(helper.getConnectorWrapper(), getJsCell(cell), event);
            } else {
                return super.onBrowserEvent(cell, event);
            }
        }

        private native boolean onBrowserEvent(JavaScriptObject wrapper, JavaScriptObject cell,
                NativeEvent event)
        /*-{
        return !!wrapper.onBrowserEvent(cell, event);
        }-*/;
    };
}

From source file:com.xpn.xwiki.wysiwyg.client.plugin.link.LinkConfig.java

License:Open Source License

/**
 * Fills this object with data from the passed JSON representation.
 * //from  w w w. j av a2s.  c o m
 * @param json the JSON representation of this image config object.
 */
public void fromJSON(String json) {
    JavaScriptObject jsObj = JavaScriptObject.fromJson(json);
    setReference((String) jsObj.get("reference"));
    setUrl((String) jsObj.get("url"));
    setLabel((String) jsObj.get("label"));
    setLabelText((String) jsObj.get("labeltext"));
    setReadOnlyLabel(
            jsObj.get("readonlylabel") != null ? Boolean.parseBoolean((String) jsObj.get("readonlylabel"))
                    : false);
    setType(jsObj.get("type") != null ? LinkType.valueOf((String) jsObj.get("type")) : null);
    // load the link parameters from the remaining parameters
    List<String> processedKeys = Arrays.asList("reference", "url", "label", "labeltext", "readonlylabel",
            "type");
    JsArrayString keys = jsObj.getKeys();
    for (int i = 0; i < keys.length(); i++) {
        if (!processedKeys.contains(keys.get(i))) {
            // add it to the parameters
            parameters.put(keys.get(i).substring(2), jsObj.get(keys.get(i)).toString());
        }
    }
}