Example usage for com.google.gwt.coreext.client JSOArray create

List of usage examples for com.google.gwt.coreext.client JSOArray create

Introduction

In this page you can find the example usage for com.google.gwt.coreext.client JSOArray create.

Prototype

public static native <M> JSOArray<M> create() ;

Source Link

Document

Constructs a new one.

Usage

From source file:com.google.speedtracer.client.HotKey.java

License:Apache License

private static EventListenerRemover addEventListeners() {
    final JSOArray<Handler> stack = JSOArray.create();
    final EventListenerRemover downRemover = Event.addEventListener(KeyDownEvent.NAME, Document.get(),
            new EventListener() {
                public void handleEvent(Event event) {
                    final Data data = handlers.get(event.getKeyCode());
                    if (data == null || !event.getCtrlKey()) {
                        return;
                    }/*  ww w.j a v  a 2s. c  om*/
                    Handler handler = data.getHandler();
                    handler.onKeyDown(new KeyDownEvent(handler, event));
                    stack.push(handler);
                    event.preventDefault();
                }
            });

    final EventListenerRemover upRemover = Event.addEventListener(KeyUpEvent.NAME, Document.get(),
            new EventListener() {
                public void handleEvent(Event event) {
                    if (stack.peek() == null) {
                        return;
                    }

                    final Handler handler = stack.pop();
                    handler.onKeyUp(new KeyUpEvent(handler, event));
                }
            });

    return new EventListenerRemover() {
        public void remove() {
            downRemover.remove();
            upRemover.remove();
        }
    };
}

From source file:com.google.speedtracer.client.model.AppStatsServerEvent.java

License:Apache License

private static JSOArray<UiEvent> toServerEvents(JSOArray<ApiEvent> apiEvents, double startTime) {
    final JSOArray<UiEvent> uiEvents = JSOArray.create();
    for (int i = 0, n = apiEvents.size(); i < n; ++i) {
        final ApiEvent apiEvent = apiEvents.get(i);
        uiEvents.push(ServerEvent.create(ServerEvent.TYPE, startTime + apiEvent.getStartTimeOffset(),
                apiEvent.getDuration(), ServerEvent.createDataBag(createLabel(apiEvent), "API"),
                JSOArray.<UiEvent>create()));
    }/*from ww  w  .j a  v  a  2 s .c  o  m*/
    return uiEvents;
}

From source file:com.google.speedtracer.client.model.DataDispatcher.java

License:Apache License

/**
 * Clears the store of saved EventRecords. Relies on v8 garbage collecting
 * appropriately.//from  w w w .j  a  va 2 s. c  o  m
 */
public void clear() {
    // Shift the sequence base offset.
    sequenceBase += eventRecords.size();
    // Replace the existing global event index.
    eventRecords = new ArrayList<EventRecord>();
    // Replace the backing String store.
    traceDataCopy = JSOArray.create();
    // Clear any state in the event dispatchers;
    for (int i = 0, n = eventDispatchers.size(); i < n; i++) {
        eventDispatchers.get(i).clearData();
    }
}

From source file:com.google.speedtracer.client.model.NetworkEventDispatcher.java

License:Apache License

private void insertRedirectCandidate(String identifier, NetworkResource previousResource) {
    // We have a redirect.
    JSOArray<NetworkResource> redirectQueue = redirects.get(identifier);
    if (redirectQueue == null) {
        redirectQueue = JSOArray.create().cast();
        redirects.put(identifier, redirectQueue);
    }// w  w  w  . ja va 2  s  .  c  om
    redirectQueue.push(previousResource);
}

From source file:com.google.speedtracer.client.model.SpringInsightServerEvent.java

License:Apache License

private static ServerEvent toServerEvent(NetworkResource resource, double traceStartTime, Frame frame) {
    final JSOArray<Frame> frames = frame.getChildren();
    final JSOArray<UiEvent> events = JSOArray.create();
    for (int i = 0, n = frames.size(); i < n; ++i) {
        events.push(toServerEvent(resource, traceStartTime, frames.get(i)));
    }//from   ww  w  . java 2s .  co  m
    final double startTime = resource.getStartTime();
    final Range range = frame.getRange();
    final Operation operation = frame.getOperation();
    return ServerEvent.create(EventRecordType.SERVER_EVENT, startTime + (range.getStart() - traceStartTime),
            range.getDuration(), ServerEvent.createDataBag(operation.getLabel(), operation.getType()), events);
}

From source file:com.google.speedtracer.client.model.UiEvent.java

License:Apache License

private static <T> T apply(LeafFirstTraversal<T> visitor, UiEvent event) {
    final JSOArray<T> values = JSOArray.create();
    final JSOArray<UiEvent> children = event.getChildren();
    for (int i = 0, n = children.size(); i < n; ++i) {
        values.push(apply(visitor, children.get(i)));
    }// w w  w.j  a v  a 2 s.  c  om
    return visitor.visit(event, values);
}

From source file:com.google.speedtracer.client.view.Controller.java

License:Apache License

public Controller(Container parent, DataDispatcher dataDispatcher, final Monitor monitor, Resources resources) {
    super(parent);
    this.resources = resources;
    this.dataDispatcher = dataDispatcher;
    this.monitor = monitor;

    controllerContainer = getContainer();
    Css css = resources.controllerCss();

    setStyleName(css.base());/*  www .  j a v  a2 s.c om*/

    recordStopButton = new ToggleButton(controllerContainer, css);
    recordStopButton.setStyleName(css.control() + " " + css.recordStopButton() + " " + css.control());
    this.setIsRecording(true);
    recordStopButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            setIsRecordingTitle(recordStopButton.isDown());
            Controller.this.monitor.setIsRecording(recordStopButton.isDown());
        }
    });

    final Button resetButton = new Button(controllerContainer);
    resetButton.setStyleName(css.control() + " " + css.resetButton());
    resetButton.getElement().setAttribute("title", "Discard Data and Reset");
    resetButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            doReset();
        }
    });

    final Button saveButton = new Button(controllerContainer);
    saveButton.setStyleName(css.control() + " " + css.saveButton());
    saveButton.getElement().setAttribute("title", "Save Data to a File");
    saveButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            Controller me = Controller.this;
            saveRecords(getVisitedUrls(), monitor.getVersion(), me.dataDispatcher.getTraceCopy());
        }

        // TODO(jaimeyap): Revisit this since it is kinda yucky to be using a
        // view component as a model.
        private JSOArray<String> getVisitedUrls() {
            JSOArray<String> visitedUrls = JSOArray.create();
            int numberVisited = pages.getOptionCount();
            for (int i = 0; i < numberVisited; i++) {
                visitedUrls.push(getPageUrlForIndex(i));
            }
            return visitedUrls;
        }
    });

    infoScreen = new InfoScreen(this, css);

    final Button zoomOutButton = new Button(controllerContainer);
    zoomOutButton.setStyleName(css.control() + " " + css.zoomOutButton());
    zoomOutButton.getElement().setAttribute("title", "Zoom Out");
    zoomOutButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            overviewTimeline.zoom(-2);
        }
    });

    final Button zoomInButton = new Button(controllerContainer);
    zoomInButton.setStyleName(css.control() + " " + css.zoomInButton());
    zoomInButton.getElement().setAttribute("title", "Zoom In");
    zoomInButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            overviewTimeline.zoom(2);
        }
    });

    final Button zoomAllButton = new Button(controllerContainer);
    zoomAllButton.setStyleName(css.control() + " " + css.zoomAllButton());
    zoomAllButton.getElement().setAttribute("title", "Zoom All");
    zoomAllButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            overviewTimeline.zoomAll();
        }
    });

    // TODO(jaimeyap): Is this the best way to do the capability detection?
    if (hasSetProfilingOptionsApi()) {
        final Button settingsButton = new Button(controllerContainer);
        settingsButton.setStyleName(css.control() + " " + css.settingsButton());
        settingsButton.getElement().setAttribute("title", "Set Profiling Options");
        profilingOptions = ProfilingOptionsPanel.create(getElement(), settingsButton.getAbsoluteLeft() + 10,
                settingsButton.getOffsetHeight(), dataDispatcher);
        settingsButton.addClickListener(new ClickListener() {
            public void onClick(ClickEvent event) {
                profilingOptions.show();
            }
        });
    }

    pages = new Select(controllerContainer);
    pages.setStyleName(css.control() + " " + css.pageSelect());
    pages.addChangeListener(new ChangeListener() {
        public void onChange(ChangeEvent event) {
            int selected = pages.getSelectedIndex();
            Controller.this.monitor.setStateForPageAtIndex(selected);
            // If we are not selecting the most resent ApplicationState, we should
            // disable the record/stop button
            if (selected != Controller.this.monitor.getNumberOfPagesViewed() - 1) {
                recordStopButton.getElement().setPropertyBoolean("disabled", true);
            } else {
                recordStopButton.getElement().setPropertyBoolean("disabled", false);
            }
        }
    });

    final Button reportButton = new Button(controllerContainer);
    reportButton.setStyleName(css.control() + " " + css.reportButton());
    reportButton.getElement().setAttribute("title", "Display the Hintlet Report");
    reportButton.addClickListener(new ClickListener() {
        public void onClick(ClickEvent event) {
            reportDialog.setVisible(true);
        }
    });

    // In mock mode, this will add a button to interact with the mock model.
    if (ClientConfig.isMockMode()) {
        new MockTestDataPanel().addButtonToController(resources, this, controllerContainer);
    }

    final Anchor helpButton = new Anchor(controllerContainer);
    final Element helpButtonElem = helpButton.getElement();
    helpButton.setStyleName(css.helpButton());
    helpButton.setHref(Constants.HELP_URL);
    helpButtonElem.setAttribute("title", "Help");
    helpButtonElem.setAttribute("target", "_blank");
}

From source file:com.google.speedtracer.client.view.TimelineMarks.java

License:Apache License

public void clear() {
    getElement().setInnerHTML("");
    marks = JSOArray.create();
}

From source file:com.google.speedtracer.client.visualizations.view.EventWaterfallRowDetails.java

License:Apache License

/**
 * Goes to concrete implementation to construct details map for an event.
 * /*from  ww w. j a  v a2  s.c  om*/
 * @param e the {@link UiEvent}
 * @return the details Map for the UiEvent
 */
private IterableFastStringMap<CellRenderer> getDetailsMapForEvent(UiEvent e) {
    final IterableFastStringMap<CellRenderer> details = new IterableFastStringMap<CellRenderer>();

    details.put("Description", new StringCellRenderer(e.getHelpString()));
    details.put("@", new StringCellRenderer(TimeStampFormatter.formatMilliseconds(e.getTime())));
    if (e.getDuration() > 0) {
        details.put("Duration",
                new StringCellRenderer(TimeStampFormatter.formatMilliseconds(e.getDuration(), 3)));
    }

    String currentAppUrl = eventWaterfall.getVisualization().getModel().getDataDispatcher().getTabDescription()
            .getUrl();

    // This is the stackTrace output by newer versions of WebKit.
    JSOArray<StackFrame> stackTrace = e.getStackTrace();
    if (stackTrace != null) {
        details.put("Stack Trace", new StackTraceRenderer(stackTrace, symbolClickListener, this, currentAppUrl,
                this, true, resources));
    }
    // This is the caller location output by older versions of WebKit.
    // TODO(jaimeyap): remove this once stack trace API reaches Chromium beta.
    if (e.hasCallLocation()) {
        stackTrace = JSOArray.create();
        stackTrace.push(StackFrame.create(e.getCallerScriptName(), e.getCallerFunctionName(),
                e.getCallerScriptLine(), 0));
        details.put("Caused by", new StackTraceRenderer(stackTrace, symbolClickListener, this, currentAppUrl,
                this, true, resources));
    }

    switch (e.getType()) {
    case TimerFiredEvent.TYPE:
        TimerInstalled timerData = eventWaterfall.getSourceDispatcher()
                .getTimerMetaData(e.<TimerInstalled>cast().getTimerId());
        populateDetailsForTimerInstall(timerData, details);
        break;
    case TimerInstalled.TYPE:
        populateDetailsForTimerInstall(e.<TimerInstalled>cast(), details);
        break;
    case TimerCleared.TYPE:
        details.put("Cleared Timer Id", new StringCellRenderer(e.<TimerCleared>cast().getTimerId() + ""));
        break;
    case PaintEvent.TYPE:
        PaintEvent paintEvent = e.cast();
        details.put("Origin", new StringCellRenderer(paintEvent.getX() + ", " + paintEvent.getY()));
        details.put("Size", new StringCellRenderer(paintEvent.getWidth() + " x " + paintEvent.getHeight()));
        break;
    case ParseHtmlEvent.TYPE:
        ParseHtmlEvent parseHtmlEvent = e.cast();
        details.put("Line Number", new StringCellRenderer(parseHtmlEvent.getStartLine() + ""));
        details.put("Length", new StringCellRenderer(parseHtmlEvent.getLength() + " characters"));
        break;
    case EvalScript.TYPE:
        EvalScript scriptTagEvent = e.cast();
        details.put("Url", new StringCellRenderer(scriptTagEvent.getURL()));
        details.put("Line Number", new StringCellRenderer(scriptTagEvent.getLineNumber() + ""));
        break;
    case XhrReadyStateChangeEvent.TYPE:
        XhrReadyStateChangeEvent xhrEvent = e.cast();
        details.put("Ready State", new StringCellRenderer(xhrEvent.getReadyState() + ""));
        details.put("Url", new StringCellRenderer(xhrEvent.getUrl()));
        break;
    case XhrLoadEvent.TYPE:
        details.put("Url", new StringCellRenderer(e.<XhrLoadEvent>cast().getUrl()));
        break;
    case LogEvent.TYPE:
        LogEvent logEvent = e.cast();
        details.put("Message", new StringCellRenderer(logEvent.getMessage()));
        break;
    case JavaScriptExecutionEvent.TYPE:
        JavaScriptExecutionEvent jsExecEvent = e.cast();
        JSOArray<StackFrame> function = JSOArray.create();
        function.push(
                StackFrame.create(jsExecEvent.getScriptName(), "[unknown]", jsExecEvent.getScriptLine(), 0));
        details.put("Function Call", new StackTraceRenderer(function, symbolClickListener, this, currentAppUrl,
                this, true, resources));
        break;
    case ResourceDataReceivedEvent.TYPE:
        ResourceDataReceivedEvent dataRecEvent = e.cast();
        DataDispatcher dataDispatcher = eventWaterfall.getVisualization().getModel().getDataDispatcher();
        NetworkEventDispatcher networkDispatcher = dataDispatcher.getNetworkEventDispatcher();
        NetworkResource resource = networkDispatcher.getResource(dataRecEvent.getRequestId());
        if (resource != null) {
            String resourceUrlStr = resource.getLastPathComponent();
            resourceUrlStr = "".equals(resourceUrlStr) ? resource.getUrl() : resourceUrlStr;
            details.put("Processing Resource", new StringCellRenderer(resourceUrlStr));
        }
        break;
    default:
        break;
    }

    if (e.getOverhead() > 0) {
        details.put("Overhead",
                new StringCellRenderer(TimeStampFormatter.formatMilliseconds(e.getOverhead(), 2)));
    }

    if (CustomEvent.isCustomEvent(e.getType())) {
        // Render key-value pairs for the custom event.
        // Simply iterate over the custom data on the CustomEvent.
        CustomEvent customEvent = e.cast();
        DataBag customData = customEvent.getCustomData();
        customData.iterate(new IterationCallback() {
            public void onIteration(String key, String value) {
                details.put(key, new StringCellRenderer(value));
            }
        });
    }

    return details;
}