Example usage for com.google.gwt.event.logical.shared SelectionHandler SelectionHandler

List of usage examples for com.google.gwt.event.logical.shared SelectionHandler SelectionHandler

Introduction

In this page you can find the example usage for com.google.gwt.event.logical.shared SelectionHandler SelectionHandler.

Prototype

SelectionHandler

Source Link

Usage

From source file:at.ait.dme.yuma.client.Application.java

License:EUPL

/**
 * show the annotation composite//  w ww  .j a  va  2s  . co m
 */
private void showAnnotations() {
    // Create a floating window
    final WindowPanel window = MinMaxWindowPanel.createMinMaxWindowPanel(500, 50, 430, 600);
    window.show();
    window.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            // we do not allow to close this window
            window.show();
        }
    });

    // Parent tab panel 
    TabLayoutPanel tabPanel = new DecoratedTabLayoutPanel();
    tabPanel.setPadding(0);
    showAnnotationsTab(tabPanel);
    if (Application.isInTileMode()) {
        showGeoReferencingTab(tabPanel);
        showExplorationTab(tabPanel);
        tabPanel.addSelectionHandler(new SelectionHandler<Integer>() {

            TiledImageComposite tic = (TiledImageComposite) imageComposite;

            @Override
            public void onSelection(SelectionEvent<Integer> event) {
                if (event.getSelectedItem().intValue() == 0) {
                    // Annotations tab
                    tic.showAnnotationLayer();
                } else if (event.getSelectedItem().intValue() == 1) {
                    // Georeferencing tab
                    tic.showControlPointLayer();
                } else if (event.getSelectedItem().intValue() == 2) {
                    // Exploration tab
                }
            }
        });
    }
    window.setWidget(tabPanel);
}

From source file:at.ait.dme.yuma.suite.apps.image.core.client.treeview.ImageAnnotationEditForm.java

License:EUPL

protected FlowPanel createAddNewTagPanel() {
    FlowPanel container = new FlowPanel();
    container.setStyleName("annotationEditForm-tag");

    Label addTagLabel = new Label(i18n.addTag());
    addTagLabel.setStyleName("annotationEditForm-label");

    HorizontalPanel addTagPanel = new HorizontalPanel();
    final TagSuggestBox newTagTextBox = new TagSuggestBox(10);
    newTagTextBox.setStyleName("annotationEditForm-tag-input");
    newTagTextBox.addSelectionHandler(new SelectionHandler<Suggestion>() {
        @Override/* w  w  w.  jav a  2 s . c  o  m*/
        public void onSelection(SelectionEvent<Suggestion> evt) {
            addTag(newTagTextBox.getTag());
            newTagTextBox.clear();
        }
    });
    addTagPanel.add(newTagTextBox);

    PushButton btnAdd = new PushButton(i18n.add());
    btnAdd.addStyleName("annotationEditForm-tag-btn-add");
    btnAdd.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent evt) {
            addTag(newTagTextBox.getTag());
            newTagTextBox.clear();
        }
    });
    addTagPanel.add(btnAdd);

    PushButton btnBrowse = new PushButton(i18n.browse());
    btnBrowse.addStyleName("annotationEditForm-tag-btn-browse");

    final TagTreePanel tagTreePanel = new TagTreePanel(this);
    btnBrowse.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            WindowPanel window = MinMaxWindowPanel.createMinMaxWindowPanel(200, 200, 350, 450);
            window.setWidget(tagTreePanel);
            window.getHeader().setText(i18n.vocabularyBrowser());
            window.show();
        }
    });
    addTagPanel.add(btnBrowse);

    container.add(addTagLabel);
    container.add(addTagPanel);

    return container;
}

From source file:at.ait.dme.yuma.suite.apps.map.client.YumaMapClient.java

License:EUPL

private void showAnnotations() {
    // Create a floating window
    final WindowPanel window = MinMaxWindowPanel.createMinMaxWindowPanel(500, 50, 430, 500);
    window.show();/*from w  w  w .  j  ava2s .  c o m*/
    window.addCloseHandler(new CloseHandler<PopupPanel>() {
        @Override
        public void onClose(CloseEvent<PopupPanel> event) {
            // we do not allow to close this window
            window.show();
        }
    });

    TabLayoutPanel tabPanel = new DecoratedTabLayoutPanel();
    tabPanel.setPadding(0);
    showAnnotationsTab(tabPanel);

    showGeoReferencingTab(tabPanel);
    showExplorationTab(tabPanel);
    tabPanel.addSelectionHandler(new SelectionHandler<Integer>() {

        TileBasedImageViewer tic = (TileBasedImageViewer) mapViewer;

        @Override
        public void onSelection(SelectionEvent<Integer> event) {
            if (event.getSelectedItem().intValue() == 0) {
                // Annotations tab
                tic.showAnnotationLayer();
            } else if (event.getSelectedItem().intValue() == 1) {
                // Georeferencing tab
                tic.showControlPointLayer();
            } else if (event.getSelectedItem().intValue() == 2) {
                // Exploration tab
            }
        }

    });

    window.setWidget(tabPanel);
}

From source file:cc.alcina.framework.gwt.client.objecttree.ObjectTreeExpandableGridRenderer.java

License:Apache License

@Override
protected void renderToPanel(TreeRenderable renderable, ComplexPanel cp, int depth, boolean soleChild,
        RenderContext renderContext, TreeRenderer parent) {
    super.renderToPanel(renderable, cp, depth, soleChild, renderContext, parent);
    if (depth == 0) {
        cp.remove(ft);/*w w  w.  j a  v a  2  s  .  c o  m*/
        if (useExpandableWidgets) {
            for (Integer level1Row : level1Rows.keySet()) {
                Widget level1ContentWidget = level1Rows.get(level1Row);
                TreeRenderer renderer = ObjectTreeExpandableGridRenderer.this.level1ContentRendererMap
                        .get(level1ContentWidget);
                if (renderer.isAlwaysExpanded()) {
                    continue;
                }
                final ExpandableWidgetWithRendererWrapper expandableWidgetWrapper = new ExpandableWidgetWithRendererWrapper(
                        level1ContentWidget, renderer, renderContext);
                ft.setWidget(level1Row, 1, expandableWidgetWrapper);
                ft.setWidget(level1Row, colCountMax + 1,
                        new ToggleLink("[Change]", "[Finished]", new SelectionHandler<Integer>() {
                            public void onSelection(SelectionEvent<Integer> event) {
                                expandableWidgetWrapper.showExpanded(event.getSelectedItem() == 0);
                                LayoutEvents.get().fireDeferredGlobalRelayout();
                            }
                        }));
                cellFormatter.setVerticalAlignment(level1Row, colCountMax + 1, HasVerticalAlignment.ALIGN_TOP);
            }
        }
        colCountMax += level1Rows.isEmpty() ? 0 : 1;
        // sort later
        String section = null;
        int rowShift = 0;
        String defaultSectionName = renderContext.getString(DEFAULT_SECTION_NAME);
        for (Integer i : level1RendererRows.keySet()) {
            TreeRenderer renderer = level1RendererRows.get(i);
            String rs = renderer.section();
            rs = rs == null ? defaultSectionName : rs;
            if (!CommonUtils.equalsWithNullEquality(rs, section)) {
                section = rs;
                int rowInsert = i + (rowShift++);
                ft.insertRow(rowInsert);
                ft.setWidget(rowInsert, 0, UsefulWidgetFactory.mediumTitleWidget(section));
                cellFormatter.setColSpan(rowInsert, 0, colCountMax);
            }
        }
        cp.add(ft);
    }
    return;
}

From source file:cc.kune.core.client.ui.dialogs.tabbed.AbstractTabbedDialogPanel.java

License:GNU Affero Public License

/**
 * Creates the dialog.// w w w  . jav  a  2 s.c  o  m
 */
private void createDialog() {
    final Builder builder = new BasicTopDialog.Builder(dialogId, autohide, modal, direction).autoscroll(true)
            .icon(iconCls).firstButtonId(firstBtnId).firstButtonTitle(firstBtnTitle).sndButtonTitle(sndBtnTitle)
            .sndButtonId(sndBtnId).title(title);
    if (width != NO_SIZE) {
        builder.width(String.valueOf(width + 20) + "px");
    }
    if (height != NO_SIZE) {
        builder.height(String.valueOf(height + 20) + "px");
    }
    dialog = builder.build();
    if (icon != null) {
        dialog.setTitleIcon(icon);
    }
    messageErrorBar = new MessageToolbar(images, errorLabelId);
    tabPanel = new TabLayoutPanel(25, Unit.PX);
    // tabPanel.addStyleName("oc-noselect");
    dialog.getInnerPanel().add(tabPanel);
    tabPanel.addSelectionHandler(new SelectionHandler<Integer>() {
        @Override
        public void onSelection(final SelectionEvent<Integer> event) {
            Scheduler.get().scheduleDeferred(new ScheduledCommand() {
                @Override
                public void execute() {
                    dialog.showCentered();
                }
            });
        }
    });
    provCollection.createAll();
    if (width != NO_SIZE) {
        tabPanel.setWidth(String.valueOf(width) + "px");
    }
    if (height != NO_SIZE) {
        tabPanel.setHeight(String.valueOf(height) + "px");
    }
    tabPanel.addStyleName("k-tabpanel-aditionalpadding");
    tabPanel.addStyleName("k-tabs");
    dialog.getFirstBtn().addClickHandler(new ClickHandler() {
        @Override
        public void onClick(final ClickEvent event) {
            hide();
        }
    });
}

From source file:cc.kune.events.client.viewer.CalendarViewerPresenter.java

License:GNU Affero Public License

/**
 * Adds the listeners./*from  ww w.jav a 2  s.  c o  m*/
 */
private void addListeners() {
    getView().setOnMouseOverTooltipText(
            i18n.t("Double click to open. Also you can resize or drag&drop this event"));
    getView().addDeleteHandler(new DeleteHandler<Appointment>() {
        @Override
        public void onDelete(final DeleteEvent<Appointment> event) {
            NotifyUser.info(i18n.t(TextUtils.IN_DEVELOPMENT));
            event.setCancelled(true);
        }
    });
    getView().addTimeBlockClickHandler(new TimeBlockClickHandler<Date>() {
        @Override
        public void onTimeBlockClick(final TimeBlockClickEvent<Date> event) {
            // NotifyUser.info("on time block");
            appToEdit = NO_APPOINT;
            onOverDate = event.getTarget();
            updateMenuItems();
            showMenu();
        }
    });
    getView().addMouseOverHandler(new MouseOverHandler<Appointment>() {
        @Override
        public void onMouseOver(final MouseOverEvent<Appointment> event) {
            // NotifyUser.info("on mouse over " +
        }
    });

    getView().addUpdateHandler(new UpdateHandler<Appointment>() {
        @Override
        public void onUpdate(final UpdateEvent<Appointment> event) {
            final boolean editable = session.getCurrentState().getGroupRights().isEditable();
            if (!editable) {
                NotifyUser.error(i18n.t("Only members can update events"));
            }
            event.setCancelled(!editable);
            final Appointment app = event.getTarget();
            final Map<String, String> map = new HashMap<String, String>();
            map.put(ICalConstants.DATE_TIME_START, DateUtils.toString(app.getStart()));
            map.put(ICalConstants.DATE_TIME_END, DateUtils.toString(app.getEnd()));
            contentService.get().setGadgetProperties(session.getUserHash(), new StateToken(app.getId()),
                    EventsToolConstants.TYPE_MEETING_DEF_GADGETNAME, map, new AsyncCallback<Void>() {
                        @Override
                        public void onFailure(final Throwable caught) {
                            event.setCancelled(true);
                        }

                        @Override
                        public void onSuccess(final Void result) {
                        }
                    });
            hideMenu();
        }
    });
    getView().addOpenHandler(new OpenHandler<Appointment>() {
        @Override
        public void onOpen(final OpenEvent<Appointment> event) {
            // NotifyUser.info("open handler");
            updateMenuItems();
            showMenu();
        }
    });
    getView().addSelectionHandler(new SelectionHandler<Appointment>() {
        @Override
        public void onSelection(final SelectionEvent<Appointment> event) {
            appToEdit = event.getSelectedItem();
            onOverDate = event.getSelectedItem().getStart();

            // This is not very usable:
            // updateMenuItems();
            // showMenu();
        }
    });
}

From source file:ch.heftix.mailxel.client.AddressEditBar.java

License:Open Source License

public AddressEditBar(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    // mlPanel = new MultiLinePanel(100, new Label(","), 1);
    mlPanel = new MultiLinePanel(100, null);
    AddressSuggestOracle oracle = new AddressSuggestOracle(mailxelService, mailxelPanel);
    sb = new SuggestBox(oracle);
    sb.setWidth("80px");
    sb.addSelectionHandler(new SelectionHandler<Suggestion>() {

        public void onSelection(SelectionEvent<Suggestion> event) {
            AddressSuggestion s = (AddressSuggestion) event.getSelectedItem();
            AddressTO aTO = s.getAddressTO();
            addAddress(aTO);//from  ww  w  .j  a  v  a 2 s .com
            sb.setValue("");
        }
    });
    Image add = new Image("img/plus.png");
    add.setTitle("add recipient");
    add.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            String tmp = sb.getText();
            if (null != tmp && tmp.length() > 3 && tmp.contains("@")) {
                AddressTO aTO = new AddressTO();
                aTO.address = tmp.trim();
                addAddress(aTO);
                sb.setValue("");
            }
        }
    });

    Image erase = new Image("img/eraser.png");
    erase.setTitle("remove all recipients");
    erase.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            for (DeletableItem<AddressTO> di : items) {
                mlPanel.removeWidget(di);
            }
            items.clear();
        }
    });
    add(sb);
    add(add);
    add(erase);
    add(mlPanel);
}

From source file:ch.sebastienzurfluh.swissmuseum.parcours.client.view.bookletnavigator.InteractiveCarousel.java

License:Open Source License

public InteractiveCarousel(final EventBus eventBus, final Model model) {
    super();/* w w  w  .j a va 2 s  . com*/
    widgetCount = 0;

    addSelectionHandler(new SelectionHandler<Integer>() {
        int previousSelection = -1;

        @Override
        public void onSelection(SelectionEvent<Integer> event) {
            if (previousSelection == -1) {
                previousSelection = event.getSelectedItem();
                deferedSetSelectedPage(1);
            } else {
                if ((event.getSelectedItem() == 0 || event.getSelectedItem() == widgetCount - 1)) {
                    previousSelection = -1;
                    eventBus.fireEvent(new PageChangeRequest(DataReference.SUPER));
                } else if (previousSelection < event.getSelectedItem()) {
                    previousSelection = event.getSelectedItem();

                    // WORKAROUND
                    // get the next page reference (without using the model's dedicated method
                    int i = 0;
                    for (MenuData menuData : model.getAllPageMenusInCurrentGroup()) {
                        if (i == event.getSelectedItem()) {
                            eventBus.fireEvent(new PageChangeRequest(menuData.getReference()));
                            break;
                        }
                        i++;
                    }
                    // END OF WORKAROUND
                } else if (previousSelection > event.getSelectedItem()) {
                    previousSelection = event.getSelectedItem();
                    eventBus.fireEvent(new PageChangeRequest(model.getPreviousPageMenu().getReference()));
                }
            }
        }
    });
}

From source file:ch.unifr.pai.ice.client.ICEMain.java

License:Apache License

@Override
public void onModuleLoad() {

    if (DeviceType.getDeviceType() == DeviceType.MULTICURSOR) {

        /***************************************
         * Get the size of the browser window.
        ***************************************/
        MultiCursorController multiCursor = GWT.create(NoMultiCursorController.class);
        multiCursor.start();/*from ww  w.  j a  va  2 s. c o  m*/

        identifier = String.valueOf(new Date().getTime() / 1000);
        Window.alert("Start experiment: " + identifier);
        RootLayoutPanel.get().add(tabPanel);

        /*
         * tabPanel setup
         */

        //*****************Trainings***************************//
        //tabPanel.add(trainingCheckBoxes, "TA");
        //tabPanel.add(trainingtextEntrySepSpace1Users, "TB");  //tabPanel.add(trainingTextEntry1Space1User, "TB");
        //tabPanel.add(trainingDNdBoxes, "TC");
        //tabPanel.add(trainingLineTracking, "TD");

        //*****************Click Blobs***************************//
        //tabPanel.add(checkBoxes, "A"); 
        //tabPanel.add(checkB2u, "Click blobs 2 users"); 
        tabPanel.add(checkB4u, "Click blobs 4 users");

        //*****************Text Edit****************************//
        //tabPanel.add(textEntrySepSpace1Users, "B"); 
        //tabPanel.add(textEntrySepSpace2Users, "TE multi Space - 2 users");  
        tabPanel.add(textEntrySepSpace4Users, "TE multi Space - 4 users");

        ////******************D&D*********************************//
        //tabPanel.add(dNdBoxes, "C");
        //tabPanel.add(dNdBoxes2S, "D & D 2 spaces"); 
        tabPanel.add(dNdBoxes4S, "D & D 4 spaces");
        //tabPanel.add(dN4dropBoxes, "D & 4 D boxes"); 

        //tabPanel.add(textEntry1Space1User, "B");
        //tabPanel.add(textEntry1Space2Users, "TE 1 Space - 2 users"); 
        //tabPanel.add(textEntry1Space4Users, "TE 1 Space - 4 users");
        //tabPanel.add(lineTracking, "D");
        // tabPanel.add(lineTracking2users, "L tracking 2");
        // tabPanel.add(lineTracking4users, "L tracking 4");   

        tabPanel.selectTab(0);

        if (tabPanel.getWidget(0) instanceof RequireInitialisation) {
            Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                @Override
                public void execute() {
                    ((RequireInitialisation) tabPanel.getWidget(0)).initialise();
                }
            });
        }

        tabPanel.addSelectionHandler(new SelectionHandler<Integer>() {

            @Override
            public void onSelection(SelectionEvent event) {

                Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                    @Override
                    public void execute() {
                        ((RequireInitialisation) tabPanel.getWidget(tabPanel.getSelectedIndex())).initialise();
                    }
                });
            }
        });

        /*
         * re-position of the widgets on the resized window
         */
        Window.addResizeHandler(new ResizeHandler() {
            @Override
            public void onResize(ResizeEvent event) {

            }
        });

    }

    else {

        TouchPadWidget widget = GWT.create(TouchPadWidget.class);
        RootLayoutPanel.get().add(widget);
        //widget.initialize(UUID.get(), null, null);
        widget.start();
    }

}

From source file:ch.unifr.pai.twice.layout.client.eclipseLayout.MiceLayoutTabPanel.java

License:Apache License

/**
 * The constructor creates the panel and adds the necessary drop handlers.
 * //from   www . j ava2s  .c  om
 * @param barHeight
 *            - the height of the tab bar in pixels
 */
public MiceLayoutTabPanel(double barHeight) {
    super(barHeight, Unit.PX);
    RESOURCES.miceLayoutStyle().ensureInjected();
    hoverGhost.addStyleName(RESOURCES.miceLayoutStyle().hoverGhostTab());
    panel = (LayoutPanel) getWidget();
    tabBar = (FlowPanel) panel.getWidget(0);
    deckPanel = (DeckLayoutPanel) panel.getWidget(1);
    tabBarFocus = new FocusPanel(tabBar);
    panel.add(tabBarFocus);
    panel.setWidgetTopHeight(tabBarFocus, 0, Unit.PX, barHeight + 10, Unit.PX);
    panel.setWidgetTopBottom(deckPanel, barHeight + 10, Unit.PX, 0, Unit.PX);

    final FocusPanel southArea = new FocusPanel();
    panel.insert(southArea, 0);
    panel.setWidgetBottomHeight(southArea, 0, Unit.PX, 2, Unit.PX);
    DragNDrop.setDropHandler(southArea, new NewAreaDropHandler(Direction.SOUTH, southArea, this), true);

    final FocusPanel westArea = new FocusPanel();
    panel.insert(westArea, 0);
    panel.setWidgetLeftWidth(westArea, 0, Unit.PX, 2, Unit.PX);
    DragNDrop.setDropHandler(westArea, new NewAreaDropHandler(Direction.WEST, westArea, this), true);

    final FocusPanel eastArea = new FocusPanel();
    panel.insert(eastArea, 0);
    panel.setWidgetRightWidth(eastArea, 0, Unit.PX, 2, Unit.PX);
    DragNDrop.setDropHandler(eastArea, new NewAreaDropHandler(Direction.EAST, eastArea, this), true);

    final FocusPanel northArea = new FocusPanel();
    panel.insert(northArea, 0);
    panel.setWidgetTopHeight(northArea, 0, Unit.PX, 2, Unit.PX);
    DragNDrop.setDropHandler(northArea, new NewAreaDropHandler(Direction.NORTH, northArea, this), true);

    DragNDrop.setDropHandler(tabBarFocus, new DropTargetHandler() {

        /**
         * Handles the drop of a dragged {@link MiceTabLabel} hovering the tab bar
         * 
         * @see ch.unifr.pai.twice.dragndrop.client.intf.DropTargetHandler#onDrop(java.lang.String, com.google.gwt.user.client.ui.Widget,
         *      com.google.gwt.dom.client.Element, com.google.gwt.user.client.Event, java.lang.Double, java.lang.Double)
         */
        @Override
        public boolean onDrop(String deviceId, Widget widget, Element dragProxy, Event event,
                Double intersectionPercentage, Double intersectionPercentageWithTarget) {
            if (widget instanceof MiceTabLabel && !labels.contains(widget)) {
                final MiceTabLabel tab = (MiceTabLabel) widget;
                if (MiceLayoutTabPanel.this != tab.getCurrentParent()) {
                    MiceLayoutTabPanel originalParent = tab.getCurrentParent();
                    add((MiceTabLabel) widget);
                    originalParent.remove(tab);
                }
            }
            return false;
        }

        /**
         * Shows the "ghost" of the dragged {@link MiceTabLabel} when hovering the tab bar
         * 
         * @see ch.unifr.pai.twice.dragndrop.client.intf.DropTargetHandler#onHover(java.lang.String, com.google.gwt.user.client.ui.Widget,
         *      com.google.gwt.dom.client.Element, com.google.gwt.user.client.Event, java.lang.Double, java.lang.Double)
         */
        @Override
        public void onHover(String deviceId, Widget widget, Element dragProxy, Event event,
                Double intersectionPercentage, Double intersectionPercentageWithTarget) {
            if (widget instanceof MiceTabLabel && !labels.contains(widget))
                showHoverGhost(dragProxy);
        }

        /**
         * Hides the "ghost" of the dragged {@link MiceTabLabel} when leaving the area of the tab bar
         * 
         * @see ch.unifr.pai.twice.dragndrop.client.intf.DropTargetHandler#onHoverEnd(java.lang.String, com.google.gwt.user.client.ui.Widget,
         *      com.google.gwt.dom.client.Element, com.google.gwt.user.client.Event)
         */
        @Override
        public void onHoverEnd(String deviceId, Widget widget, Element dragProxy, Event event) {
            if (widget instanceof MiceTabLabel && !labels.contains(widget))
                hideHoverGhost(dragProxy);
        }

        @Override
        public Priority getPriority() {
            return Priority.NORMAL;
        }
    }, true);

    showFullscreenButton = new Image(RESOURCES.fullscreenButton());
    showFullscreenButton.setTitle("show fullscreen");
    showFullscreenButton.setStyleName(RESOURCES.miceLayoutStyle().tabPanelButton());
    showFullscreenButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            setFullscreen(true);
        }
    });

    hideFullscreenButton = new Image(RESOURCES.nofullscreenButton());
    hideFullscreenButton.setTitle("hide fullscreen");
    hideFullscreenButton.setStyleName(RESOURCES.miceLayoutStyle().tabPanelButton());
    hideFullscreenButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            setFullscreen(false);
        }
    });

    Widget tabPanelButtonBar = createTabButtonBar();
    panel.insert(tabPanelButtonBar, 0);
    panel.setWidgetTopHeight(tabPanelButtonBar, 7, Unit.PX, 16, Unit.PX);
    panel.setWidgetRightWidth(tabPanelButtonBar, 5, Unit.PX, 40, Unit.PX);

    addSelectionHandler(new SelectionHandler<Integer>() {

        @Override
        public void onSelection(SelectionEvent<Integer> event) {
            for (int i = 0; i < getWidgetCount(); i++) {
                MiceTabLabel w = (MiceTabLabel) getTabWidget(i);
                if (event.getSelectedItem().equals(i)) {
                    if (!w.isSelected())
                        w.setSelected(true);
                } else {
                    if (w.isSelected())
                        w.setSelected(false);
                }
            }
        }
    });

}