List of usage examples for com.google.gwt.coreext.client JSOArray push
public final native void push(T pathStr) ;
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; }//from w w w . ja va 2 s . c o m 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())); }/* www. ja v a 2s . c om*/ return uiEvents; }
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 ww .ja v a2 s .c o m 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. ja va 2 s . c o 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 va 2s .c o m 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());//from w w w. j a va 2 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.visualizations.view.EventWaterfallRowDetails.java
License:Apache License
/** * Goes to concrete implementation to construct details map for an event. * /*from w ww . jav a2 s. co m*/ * @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; }