Example usage for com.google.gwt.user.client.ui VerticalPanel getWidgetCount

List of usage examples for com.google.gwt.user.client.ui VerticalPanel getWidgetCount

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui VerticalPanel getWidgetCount.

Prototype

int getWidgetCount();

Source Link

Document

Gets the number of child widgets in this panel.

Usage

From source file:com.bearsoft.gwt.ui.containers.Toolbar.java

public Toolbar() {
    super();//from  w  w w.  jav a  2 s .co m
    getElement().addClassName("toolbar");
    chevron.getElement().addClassName("toolbar-chevron");
    content.setHgap(0);
    content.getElement().addClassName("toolbar-content");
    getElement().getStyle().setPosition(Style.Position.RELATIVE);
    content.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    content.getElement().getStyle().setHeight(100, Style.Unit.PCT);
    content.getElement().getStyle().setDisplay(Style.Display.INLINE_BLOCK);
    content.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN);
    chevron.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    chevron.getElement().getStyle().setHeight(100, Style.Unit.PCT);
    setWidget(content);
    getElement().appendChild(chevron.getElement());
    chevron.addDomHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            final Map<Widget, String> lefts = new HashMap<>();
            final Map<Widget, String> rights = new HashMap<>();
            final Map<Widget, String> widths = new HashMap<>();
            final Map<Widget, String> positions = new HashMap<>();
            final Map<Widget, String> margins = new HashMap<>();
            final VerticalPanel vp = new VerticalPanel();
            vp.getElement().addClassName("toolbar-chevron-menu");
            Widget[] widgets = new Widget[content.getWidgetCount()];
            for (int i = 0; i < widgets.length; i++) {
                widgets[i] = content.getWidget(i);
            }
            for (int i = 0; i < widgets.length; i++) {
                Widget iw = widgets[i];
                int rightMost = iw.getElement().getOffsetLeft() + iw.getElement().getOffsetWidth();
                int bottomMost = iw.getElement().getOffsetTop() + iw.getElement().getOffsetHeight();
                int parentWidth = iw.getElement().getParentElement().getOffsetWidth();
                int parentHeight = iw.getElement().getParentElement().getOffsetHeight();
                if (rightMost <= 0 || iw.getElement().getOffsetLeft() >= parentWidth || bottomMost <= 0
                        || iw.getElement().getOffsetTop() >= parentHeight) {
                    lefts.put(iw, iw.getElement().getStyle().getLeft());
                    rights.put(iw, iw.getElement().getStyle().getRight());
                    widths.put(iw, iw.getElement().getStyle().getWidth());
                    positions.put(iw, iw.getElement().getStyle().getPosition());
                    margins.put(iw, iw.getElement().getStyle().getMarginLeft());

                    SimplePanel sp = new SimplePanel();
                    sp.getElement().addClassName("toolbar-chevron-menu-item");
                    sp.getElement().getStyle().setPadding(0, Style.Unit.PX);
                    sp.getElement().getStyle().setBorderWidth(0, Style.Unit.PX);
                    sp.getElement().getStyle().setPosition(Style.Position.RELATIVE);
                    sp.setWidget(iw);
                    vp.add(sp);
                }
            }
            if (vp.getWidgetCount() > 0) {
                PopupPanel pp = new PopupPanel(true);
                pp.getElement().getStyle().setPadding(0, Style.Unit.PX);
                pp.setWidget(vp);
                pp.setAnimationEnabled(false);
                pp.addCloseHandler(new CloseHandler<PopupPanel>() {

                    @Override
                    public void onClose(CloseEvent<PopupPanel> event) {
                        Widget[] widgets = new Widget[vp.getWidgetCount()];
                        for (int i = 0; i < widgets.length; i++) {
                            widgets[i] = vp.getWidget(i);
                        }
                        for (int i = 0; i < widgets.length; i++) {
                            Widget w = widgets[i];
                            assert w instanceof SimplePanel;
                            Widget iw = ((SimplePanel) w).getWidget();
                            String oldLeft = lefts.remove(iw);
                            if (oldLeft != null && !oldLeft.isEmpty()) {
                                iw.getElement().getStyle().setProperty("left", oldLeft);
                            } else {
                                iw.getElement().getStyle().clearLeft();
                            }
                            String oldRight = rights.remove(iw);
                            if (oldRight != null && !oldRight.isEmpty()) {
                                iw.getElement().getStyle().setProperty("right", oldRight);
                            } else {
                                iw.getElement().getStyle().clearRight();
                            }
                            String oldPosition = positions.remove(iw);
                            if (oldPosition != null && !oldPosition.isEmpty()) {
                                iw.getElement().getStyle().setProperty("position", oldPosition);
                            } else {
                                iw.getElement().getStyle().clearPosition();
                            }
                            String oldWidth = widths.remove(iw);
                            if (oldWidth != null && !oldWidth.isEmpty()) {
                                iw.getElement().getStyle().setProperty("width", oldWidth);
                            } else {
                                iw.getElement().getStyle().clearWidth();
                            }
                            String oldMargin = margins.remove(iw);
                            if (oldMargin != null && !oldMargin.isEmpty()) {
                                iw.getElement().getStyle().setProperty("marginLeft", oldMargin);
                            } else {
                                iw.getElement().getStyle().clearMarginLeft();
                            }
                            content.add(iw);
                        }
                        content.onResize();
                    }

                });
                pp.showRelativeTo(chevron);
                Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                    @Override
                    public void execute() {
                        for (int i = 0; i < vp.getWidgetCount(); i++) {
                            Widget w = vp.getWidget(i);
                            assert w instanceof SimplePanel;
                            SimplePanel sp = (SimplePanel) w;
                            Widget iw = sp.getWidget();
                            int width = sp.getElement().getOffsetWidth();
                            int height = iw.getElement().getOffsetHeight();
                            sp.getElement().getStyle().setWidth(width, Style.Unit.PX);
                            sp.getElement().getStyle().setHeight(height, Style.Unit.PX);
                            iw.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
                            iw.getElement().getStyle().setLeft(0, Style.Unit.PX);
                            iw.getElement().getStyle().setRight(0, Style.Unit.PX);
                            iw.getElement().getStyle().clearWidth();
                            iw.getElement().getStyle().clearMarginLeft();
                            //if (iw instanceof FocusWidget) {
                            iw.getElement().getStyle().clearRight();
                            iw.getElement().getStyle().setWidth(100, Style.Unit.PCT);
                            com.bearsoft.gwt.ui.CommonResources.INSTANCE.commons().ensureInjected();
                            iw.getElement().addClassName(
                                    com.bearsoft.gwt.ui.CommonResources.INSTANCE.commons().borderSized());
                            //}
                            if (iw instanceof RequiresResize) {
                                ((RequiresResize) iw).onResize();
                            }
                        }
                    }
                });
            }
        }
    }, ClickEvent.getType());
    getElement().<XElement>cast().addResizingTransitionEnd(this);
}

From source file:com.dimdim.conference.ui.common.client.list.ListPanel.java

License:Open Source License

/**
 * The list entry needs to tell the list in which display panel the entry should
 * go. This is done through the display rank. 1 for first, 2 for second, 3 for
 * third and sticky and 4 for the rest. This way if the need be the same can be
 * implemented for the resource list should be need ever arise. Also the 
 * //from   ww w  .j  a v  a 2s.c o  m
 * @param listEntry
 */
public void addEntryPanel(ListEntry listEntry) {
    //Window.alert("adding panel for entry:"+listEntry.id);
    //Window.alert("adding panel for entry:"+listEntry);
    ListEntryPanel listEntryPanel = null;
    if (listEntry instanceof UserListEntry && !(listEntry instanceof UserListEntryWithClicks)) {
        //Window.alert("adding instanceof UserListEntry");
        listEntryPanel = new ListEntryPanelWithoutClicks(listEntry);
    } else {
        //Window.alert("not an instanceof UserListEntry");
        listEntryPanel = new ListEntryPanel(listEntry);
    }

    listEntryPanel.setListPanel(this);

    this.listEntriesTable.put(listEntry.getId(), listEntryPanel);
    //      this.listEntryPanels.addElement(listEntryPanel);

    VerticalPanel sectionPanel = getSectionPanel(listEntry.getDisplayRank());
    if (sectionPanel != this.firstEntryPanel || sectionPanel.getWidgetCount() > 0) {
        listEntryPanel.addStyleName("list-entry-panel-gap");
    }
    this.addEntryPanelToSection(sectionPanel, listEntryPanel);
}

From source file:com.dimdim.conference.ui.common.client.list.ListPanel.java

License:Open Source License

protected void showPageSection(VerticalPanel sectionPanel, int start, int num, boolean hideAllFirst) {
    //      Window.alert("Showing page:"+start+"-"+num);
    /*/*from www  . j  a v a  2 s  .c om*/
    if (hideAllFirst)
    {
       for (int i=0; i<size; i++)
       {
    Widget w = sectionPanel.getWidget(i);
    //            Window.alert("Showing widget:"+w);
    w.removeStyleName("list-entry-panel-gap");
    w.setVisible(false);
       }
    }
    */
    //   First remove the entries from the scrollable section.
    int size = sectionPanel.getWidgetCount();
    //      Window.alert("Number of visible panels -- "+size);
    for (int i = size - 1; i >= 0; i--) {
        try {
            sectionPanel.remove(i);
        } catch (Exception e) {
            Window.alert(e.getMessage());
        }
    }

    //   Now add the panels from the panels vector into the display panel
    //   Here i<size
    //      int maxScrollable = this.getNumberOfScrollableEntries();
    size = this.scrollablePanels.size();
    for (int i = 0; i < size; i++) {
        //         Window.alert("Panel -- "+i);
        ListEntryPanel lep = (ListEntryPanel) this.scrollablePanels.elementAt(i);
        if (i < start) {
            //            Window.alert("Setting panel non visible");
            lep.setPanelVisible(false);
        } else if (i < start + num) {
            //            Window.alert("Settng panel visible");
            lep.setPanelVisible(true);
            this.scrollableEntriesPanel.add(lep);
            this.scrollableEntriesPanel.setCellWidth(lep, "100%");
        } else {
            //            Window.alert("Setting panel non visible");
            lep.setPanelVisible(false);
        }
    }
    /*
    for (int i=start; i<start+maxScrollable && i<start+num && i<size; i++)
    {
       ListEntryPanel lep = (ListEntryPanel)this.scrollablePanels.elementAt(i);
    //         Window.alert("Showing widget:"+w);
    //         w.addStyleName("list-entry-panel-gap");
       this.scrollableEntriesPanel.add(lep);
       this.scrollableEntriesPanel.setCellWidth(lep,"100%");
    }
    */
}

From source file:com.eas.widgets.containers.Toolbar.java

public void showOverflowPopup() {
    final Map<Widget, String> lefts = new HashMap<>();
    final Map<Widget, String> rights = new HashMap<>();
    final Map<Widget, String> widths = new HashMap<>();
    final Map<Widget, String> positions = new HashMap<>();
    final Map<Widget, String> margins = new HashMap<>();
    final VerticalPanel vp = new VerticalPanel();
    vp.getElement().addClassName("toolbar-chevron-menu");
    Widget[] widgets = new Widget[content.getWidgetCount()];
    for (int i = 0; i < widgets.length; i++) {
        widgets[i] = content.getWidget(i);
    }/*from w  w  w .j av  a  2s  .c  om*/
    for (int i = 0; i < widgets.length; i++) {
        Widget iw = widgets[i];
        int rightMost = iw.getElement().getOffsetLeft() + iw.getElement().getOffsetWidth();
        int bottomMost = iw.getElement().getOffsetTop() + iw.getElement().getOffsetHeight();
        int parentWidth = iw.getElement().getParentElement().getClientWidth();
        int parentHeight = iw.getElement().getParentElement().getClientHeight();
        if (rightMost <= 0 || iw.getElement().getOffsetLeft() >= parentWidth || bottomMost <= 0
                || iw.getElement().getOffsetTop() >= parentHeight) {
            lefts.put(iw, iw.getElement().getStyle().getLeft());
            rights.put(iw, iw.getElement().getStyle().getRight());
            widths.put(iw, iw.getElement().getStyle().getWidth());
            positions.put(iw, iw.getElement().getStyle().getPosition());
            margins.put(iw, iw.getElement().getStyle().getMarginLeft());
            iw.getElement().getStyle().setHeight(parentHeight, Style.Unit.PX);

            SimplePanel sp = new SimplePanel();
            sp.getElement().addClassName("toolbar-chevron-menu-item");
            sp.getElement().getStyle().setPadding(0, Style.Unit.PX);
            sp.getElement().getStyle().setBorderWidth(0, Style.Unit.PX);
            sp.getElement().getStyle().setPosition(Style.Position.RELATIVE);
            sp.setWidget(iw);
            vp.add(sp);
        }
    }
    if (vp.getWidgetCount() > 0) {
        overflowPopup = new PopupPanel(true);
        overflowPopup.setStyleName("toolbar-chevron-popup");
        overflowPopup.setWidget(vp);
        overflowPopup.setAnimationEnabled(false);
        overflowPopup.addCloseHandler(new CloseHandler<PopupPanel>() {

            @Override
            public void onClose(CloseEvent<PopupPanel> event) {
                overflowPopup = null;
                Widget[] widgets = new Widget[vp.getWidgetCount()];
                for (int i = 0; i < widgets.length; i++) {
                    widgets[i] = vp.getWidget(i);
                }
                for (int i = 0; i < widgets.length; i++) {
                    Widget w = widgets[i];
                    assert w instanceof SimplePanel;
                    Widget iw = ((SimplePanel) w).getWidget();
                    String oldLeft = lefts.remove(iw);
                    if (oldLeft != null && !oldLeft.isEmpty()) {
                        iw.getElement().getStyle().setProperty("left", oldLeft);
                    } else {
                        iw.getElement().getStyle().clearLeft();
                    }
                    String oldRight = rights.remove(iw);
                    if (oldRight != null && !oldRight.isEmpty()) {
                        iw.getElement().getStyle().setProperty("right", oldRight);
                    } else {
                        iw.getElement().getStyle().clearRight();
                    }
                    String oldPosition = positions.remove(iw);
                    if (oldPosition != null && !oldPosition.isEmpty()) {
                        iw.getElement().getStyle().setProperty("position", oldPosition);
                    } else {
                        iw.getElement().getStyle().clearPosition();
                    }
                    String oldWidth = widths.remove(iw);
                    if (oldWidth != null && !oldWidth.isEmpty()) {
                        iw.getElement().getStyle().setProperty("width", oldWidth);
                    } else {
                        iw.getElement().getStyle().clearWidth();
                    }
                    String oldMargin = margins.remove(iw);
                    if (oldMargin != null && !oldMargin.isEmpty()) {
                        iw.getElement().getStyle().setProperty("marginLeft", oldMargin);
                    } else {
                        iw.getElement().getStyle().clearMarginLeft();
                    }
                    iw.getElement().getStyle().setHeight(100, Style.Unit.PCT);
                    content.add(iw);
                }
                content.onResize();
            }

        });
        overflowPopup.setPopupPosition(chevron.getAbsoluteLeft(), chevron.getAbsoluteTop());
        overflowPopup.showRelativeTo(chevron);
        Scheduler.get().scheduleDeferred(new ScheduledCommand() {

            @Override
            public void execute() {
                for (int i = 0; i < vp.getWidgetCount(); i++) {
                    Widget w = vp.getWidget(i);
                    assert w instanceof SimplePanel;
                    SimplePanel sp = (SimplePanel) w;
                    Widget iw = sp.getWidget();
                    int width = sp.getElement().getOffsetWidth();
                    int height = iw.getElement().getOffsetHeight();
                    sp.getElement().getStyle().setWidth(width, Style.Unit.PX);
                    sp.getElement().getStyle().setHeight(height, Style.Unit.PX);
                    iw.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
                    iw.getElement().getStyle().setLeft(0, Style.Unit.PX);
                    iw.getElement().getStyle().setRight(0, Style.Unit.PX);
                    iw.getElement().getStyle().clearWidth();
                    iw.getElement().getStyle().clearMarginLeft();
                    // if (iw instanceof FocusWidget) {
                    iw.getElement().getStyle().clearRight();
                    iw.getElement().getStyle().setWidth(100, Style.Unit.PCT);
                    com.eas.ui.CommonResources.INSTANCE.commons().ensureInjected();
                    iw.getElement().addClassName(com.eas.ui.CommonResources.INSTANCE.commons().borderSized());
                    // }
                    if (iw instanceof RequiresResize) {
                        ((RequiresResize) iw).onResize();
                    }
                }
            }
        });
    }
}

From source file:com.ephesoft.gxt.core.client.ui.widget.ScreenNavigatorWidget.java

License:Open Source License

private void changeSecondWidgetVisibilty(boolean shouldVisible) {
    for (int index = 0; index < innerVerticalPanel.getWidgetCount(); index++) {
        VerticalPanel verticalPanel = (VerticalPanel) innerVerticalPanel.getWidget(index);
        for (int count = 0; count < verticalPanel.getWidgetCount(); count++) {
            VerticalPanel verticalPanel1 = (VerticalPanel) verticalPanel.getWidget(count);
            for (int widgetCount = 0; widgetCount < verticalPanel1.getWidgetCount(); widgetCount++) {
                HorizontalPanel horizontalPanel = (HorizontalPanel) verticalPanel1.getWidget(widgetCount);
                Widget widget = horizontalPanel.getWidget(1);
                if (widget instanceof MenuBarWidget) {
                    MenuBarWidget menuBar = (MenuBarWidget) horizontalPanel.getWidget(1);
                    if (shouldVisible) {
                        widget.setVisible(shouldVisible);
                    } else {
                        if (!menuBar.isSelectedMenu()) {
                            widget.setVisible(shouldVisible);
                        }/*from w  w w . ja v a  2s  .  co m*/
                        menuBar.setSelectedMenu(false);
                    }
                }
                if (widget instanceof Label) {
                    widget.setVisible(shouldVisible);
                }
            }
        }
    }
}

From source file:com.fullmetalgalaxy.client.game.tabmenu.WgtMessages.java

License:Open Source License

private void initMsgList(VerticalPanel p_panel) {
    for (AnEvent event : GameEngine.model().getGame().getLogs()) {
        if (event instanceof EbEvtMessage) {
            p_panel.add(new WgtPlayerMessage(GameEngine.model().getGame(), (EbEvtMessage) event));
        }//  w w  w. ja v a  2 s . co  m
    }
    if (p_panel.getWidgetCount() == 0) {
        p_panel.add(new Label(MAppBoard.s_messages.noMessages()));
    }
    p_panel.add(m_text);
    m_text.setPixelSize(400, 60);
    m_text.addBlurHandler(this);
}

From source file:com.google.testing.testify.risk.frontend.client.riskprovider.impl.BugRiskProvider.java

License:Apache License

/**
 * Returns a {@code Widget} to show when an Attribute x Component pair is clicked.
 *//*from   w  w w . j a  va2  s  .co  m*/
@Override
public Widget onClick(CapabilityIntersectionData targetCell) {
    VerticalPanel content = new VerticalPanel();
    long attributeId = targetCell.getParentAttribute().getAttributeId();
    long componentId = targetCell.getParentComponent().getComponentId();

    for (Bug bug : lookupByComponent.get(componentId)) {
        String linkText = "Component - " + Long.toString(bug.getExternalId()) + ": " + bug.getTitle();
        Anchor anchor = new Anchor(linkText, bug.getBugUrl());
        content.add(anchor);
    }
    for (Bug bug : lookupByAttribute.get(attributeId)) {
        String linkText = "Attribute - " + Long.toString(bug.getExternalId()) + ": " + bug.getTitle();
        Anchor anchor = new Anchor(linkText, bug.getBugUrl());
        content.add(anchor);
    }
    for (Capability capability : targetCell.getCapabilities()) {
        long capabilityId = capability.getCapabilityId();
        for (Bug bug : lookupByCapability.get(capabilityId)) {
            String linkText = "Capability - " + Long.toString(bug.getExternalId()) + ": " + bug.getTitle();
            Anchor anchor = new Anchor(linkText, bug.getBugUrl());
            content.add(anchor);
        }
    }
    String labelText = "Unassigned - " + unassignedBugs.size();
    Label label = new Label(labelText);
    content.add(label);

    if (content.getWidgetCount() == 0) {
        content.add(new Label("No bugs associated with this cell."));
    }
    return content;
}

From source file:com.google.testing.testify.risk.frontend.client.view.widgets.SortableVerticalPanel.java

License:Apache License

/**
 * Returns a generic DragHandler for notification of drag events.
 *//*  w  w w  .j ava2 s  . co  m*/
private DragHandler createDragHandler(final VerticalPanel verticalPanel) {
    // TODO(chrsmith): Provide a way to hook into events. (Required to preserve ordering.)
    return new DragHandler() {
        @Override
        public void onDragEnd(DragEndEvent event) {
            List<Widget> widgetList = Lists.newArrayList();
            for (int index = 0; index < verticalPanel.getWidgetCount(); index++) {
                widgetList.add(verticalPanel.getWidget(index));
            }
            fireEvent(new WidgetsReorderedEvent(widgetList));
        }

        @Override
        public void onDragStart(DragStartEvent event) {
        }

        @Override
        public void onPreviewDragEnd(DragEndEvent event) {
        }

        @Override
        public void onPreviewDragStart(DragStartEvent event) {
        }
    };
}

From source file:com.hazelcast.monitor.client.InstanceChartPanel.java

License:Open Source License

public void handle(ChangeEvent e) {
    InstanceStatistics event = (InstanceStatistics) e;
    if (super.name == null || !super.name.equals(event.getName())) {
        return;//w  ww  .ja va 2  s .c om
    }
    VerticalPanel vPanel = (VerticalPanel) disclosurePanel.getContent();
    Label label = (Label) vPanel.getWidget(0);
    label.setText("Size: " + event.getSize() + " | Total Throughput: " + event.getTotalOPS());
    if (vPanel.getWidgetCount() < 2) {
        HorizontalPanel horizontalPanel = new HorizontalPanel();
        horizontalPanel.add(createAbsPanelWithImage());
        horizontalPanel.add(createAbsPanelWithImage());
        horizontalPanel.setBorderWidth(0);
        vPanel.add(horizontalPanel);
    }
    HorizontalPanel horizontalPanel = (HorizontalPanel) vPanel.getWidget(1);
    Image sizeChart = (Image) ((AbsolutePanel) horizontalPanel.getWidget(0)).getWidget(0);
    String encodeName = URL.encodeComponent(name);
    sizeChart.setUrl(getServletName() + "?name=" + encodeName + "&type=size&random=" + Math.random() * 10);
    Image opsChart = (Image) ((AbsolutePanel) horizontalPanel.getWidget(1)).getWidget(0);
    opsChart.setUrl(getServletName() + "?name=" + encodeName + "&type=ops&random=" + Math.random() * 10);
}

From source file:com.sun.labs.aura.dbbrowser.client.viz.RepPanel.java

License:Open Source License

public void showStats() {
    ///*from  w w w  .  jav  a  2 s.c  o  m*/
    // If there isn't already a stats display for us, add one.
    VizUI ui = VizUI.getVizUI();
    final VerticalPanel details = ui.getDetailsColumn();
    int numDet = details.getWidgetCount();
    for (int i = 0; i < numDet; i++) {
        Widget w = details.getWidget(i);
        if (w instanceof TimerPanel) {
            TimerPanel t = (TimerPanel) w;
            if (t.getName().equals("rep" + rep.getIdString())) {
                return;
            }
        }
    }

    TimerPanel repStatsPanel = new TimerPanel("rep" + rep.getIdString(), 15) {
        public void redraw() {
            VizServiceAsync service = GWTMainEntryPoint.getVizService();
            final AsyncCallback callback = new AsyncCallback() {
                public void onSuccess(Object result) {
                    RepStats stats = (RepStats) result;
                    displayStats(stats);
                }

                public void onFailure(Throwable caught) {
                    stop();
                    VizUI.alert("Communication failed: " + caught.getMessage());
                }
            };
            service.getRepStats(rep.getIdString(), callback);
        }

        public void displayStats(RepStats stats) {
            clear();
            add(new Label("Stats for Replicant " + rep.getIdString()));
            add(new StyleLabel("Refreshes every 15 seconds", "viz-subText"));

            //
            // Only display the stats selected by the user
            String[] toDisplay = Util.getStatDisplayCodes();
            for (String code : toDisplay) {
                if (stats.contains(code)) {
                    add(new StyleLabel(
                            Util.logCodeToDisplay(code) + " per sec: " + statForm.format(stats.getRate(code))
                                    + " (Avg: " + statForm.format(stats.getTime(code)) + "ms)",
                            "viz-statLabel"));
                }
            }

            StyleLabel close = new StyleLabel("Close", "viz-actionLabel");
            close.addStyleName("viz-closeLabel");

            final TimerPanel container = this;
            close.addClickListener(new ClickListener() {
                public void onClick(Widget arg0) {
                    container.stop();
                    container.removeFromParent();
                }
            });
            add(close);

            StyleLabel reset = new StyleLabel("Reset", "viz-actionLabel");
            add(reset);
            final DialogBox resetConfirm = new DialogBox(true, true);
            FlowPanel contents = new FlowPanel();
            resetConfirm.setWidget(contents);
            contents.add(new Label("Really reset all stats for replicant " + rep.getIdString() + "?"));
            Button resetButton = new Button("Reset " + rep.getIdString());
            resetButton.addClickListener(new ClickListener() {
                public void onClick(Widget w) {
                    resetConfirm.hide();
                    resetStats(container);
                }
            });
            contents.add(resetButton);

            Button resetAllButton = new Button("Reset All Replicants");
            resetAllButton.addClickListener(new ClickListener() {
                public void onClick(Widget arg0) {
                    resetConfirm.hide();
                    resetStats(null);
                }
            });
            contents.add(resetAllButton);

            resetConfirm.setPopupPosition(reset.getAbsoluteLeft(), reset.getAbsoluteTop());
            reset.addClickListener(new ClickListener() {
                @Override
                public void onClick(Widget sender) {
                    resetConfirm.show();
                }
            });
        }

    };
    repStatsPanel.setStylePrimaryName("viz-detailsPanel");
    details.add(repStatsPanel);
    repStatsPanel.start();
}