Example usage for com.google.gwt.user.client.ui ToggleButton ToggleButton

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

Introduction

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

Prototype

public ToggleButton(String upText, String downText) 

Source Link

Document

Constructor for ToggleButton.

Usage

From source file:burrito.client.crud.widgets.CrudRichTextArea.java

License:Apache License

public CrudRichTextArea(String value) {
    textArea = new FormattedRichTextArea();
    textArea.setHTML(value);//  w  ww .j  a v  a  2  s  .c  o m
    formatter = textArea.getFormatter();
    richTextDock.add(createCommandsArea(), DockPanel.NORTH);
    textArea.addKeyDownHandler(new KeyDownHandler() {

        public void onKeyDown(KeyDownEvent event) {
            toggleButtons();
            checkForKeyBoardCombinations(event);
        }
    });
    textArea.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            toggleButtons();
        }
    });
    textAreaWrapper.setWidget(textArea);
    richTextDock.add(textAreaWrapper, DockPanel.CENTER);
    HTML richTextHeader = new HTML(labels.richText());
    richTextHeader.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (rawVisible) {
                textArea.setHTML(raw.getText());
                textAreaWrapper.clear();
                textAreaWrapper.setWidget(textArea);
            }
            rawVisible = false;
        }
    });
    tabPanel.add(richTextDock, richTextHeader);
    HTML rawHeader = new HTML(labels.rawHtml());
    rawHeader.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (!rawVisible) {
                raw.setText(textArea.getHTML());
            }
            rawVisible = true;
        }
    });
    tabPanel.add(raw, rawHeader);

    imagePicker = new ImagePickerPopup(800, 800, false);
    imagePicker.addSaveHandler(new ImagePickerPopup.SaveHandler() {

        public void saved(String value) {
            formatter.insertImage("/blobstore/image?key=" + value);
        }
    });

    wrapper.add(tabPanel);

    ToggleButton maximize = new ToggleButton(labels.maximize(), labels.minimize());
    maximize.addClickHandler(new ClickHandler() {
        boolean max = false;

        public void onClick(ClickEvent event) {
            if (max) {
                raw.setSize("400px", "250px");
                textArea.setSize("400px", "250px");

            } else {
                raw.setSize("800px", "440px");
                textArea.setSize("800px", "440px");
            }
            max = !max;
        }
    });
    maximize.setWidth("80px");
    wrapper.add(maximize);
    initWidget(wrapper);
    addStyleName("k5-CrudRichTextArea");
    raw.setSize("400px", "250px");
    textArea.setSize("400px", "250px");
    tabPanel.selectTab(0);
}

From source file:burrito.client.crud.widgets.CrudRichTextArea.java

License:Apache License

private Widget createCommandsArea() {
    HorizontalPanel hp = new HorizontalPanel();
    this.bold = new ToggleButton(new Image(GWT.getModuleBaseURL() + "images/format-text-bold.png"),
            new ClickHandler() {

                public void onClick(ClickEvent event) {
                    formatter.toggleBold();
                }/*ww  w . jav  a2 s  . co  m*/
            });
    bold.setTitle(labels.bold());
    hp.add(bold);

    this.italics = new ToggleButton(new Image(GWT.getModuleBaseURL() + "images/format-text-italic.png"),
            new ClickHandler() {

                public void onClick(ClickEvent event) {
                    formatter.toggleItalic();
                }
            });
    italics.setTitle(labels.italic());
    hp.add(italics);

    this.strikethrough = new ToggleButton(
            new Image(GWT.getModuleBaseURL() + "images/format-text-strikethrough.png"), new ClickHandler() {

                public void onClick(ClickEvent event) {
                    formatter.toggleStrikethrough();
                }
            });
    strikethrough.setTitle(labels.strikethrough());
    hp.add(strikethrough);

    this.underline = new ToggleButton(new Image(GWT.getModuleBaseURL() + "images/format-text-underline.png"),
            new ClickHandler() {

                public void onClick(ClickEvent event) {
                    formatter.toggleUnderline();
                }
            });
    underline.setTitle(labels.underline());
    hp.add(underline);

    PushButton image = new PushButton(new Image(GWT.getModuleBaseURL() + "images/image-x-generic.png"),
            new ClickHandler() {

                public void onClick(ClickEvent event) {
                    imagePicker.center();
                    imagePicker.show();
                }
            });
    image.setTitle(labels.insertImage());
    hp.add(image);

    PushButton link = new PushButton(labels.link(), new ClickHandler() {

        public void onClick(ClickEvent event) {
            formatter.createLink(Window.prompt(labels.pasteLinkHere(), null));
        }
    });
    link.setTitle(labels.insertLink());
    hp.add(link);

    for (CrudRichTextPlugin control : PLUGGED_IN_CONTROLLERS) {
        hp.add(control.getWidget(formatter));
    }

    return hp;

}

From source file:com.google.appengine.demos.sticky.client.Buttons.java

License:Apache License

/**
 * Creates a {@link ToggleButton} with the specified face images and
 * stylename./*from  w  w w .  ja  v  a2  s.  com*/
 *
 * @param upImage
 *          the image to be used on the up face
 * @param styleName
 *          the stylename to use for the widget
 * @param handler
 *          a click handler to which to bind the button
 * @return the button
 */
public static ToggleButton createToggleButtonWithImageStates(Image upImage, String styleName,
        ClickHandler handler) {
    final ToggleButton button = new ToggleButton(upImage, handler);
    button.setStyleName(styleName);
    return button;
}

From source file:com.google.gwt.examples.ToggleButtonExample.java

License:Apache License

public void onModuleLoad() {
    // Make a new button that does something when you click it.
    final ToggleButton toggleButton = new ToggleButton("Up", "Down");
    toggleButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (toggleButton.isDown()) {
                Window.alert("I have been toggled down");
            } else {
                Window.alert("I have been toggled up");
            }/* w  ww .  j  a  v  a2  s  .  c o m*/
        }
    });

    // In a real application, you would have to have css styles defined for
    // gwt-ToggleButton-up,gwt-ToggleButton-up-hovering,gwt-ToggleButton-up-disabled,
    // gwt-ToggleButton-down,.gwt-ToggleButton-down-hovering,.gwt-ToggleButton-down-disabled

    // Add the ToggleButton to the root panel.
    RootPanel.get().add(toggleButton);
}

From source file:com.google.gwt.maps.testing.client.maps.OverlayViewMapWidget.java

License:Apache License

private void draw() {
    // This is just to show the effect of behind the scenes
    final ToggleButton groundOverlayBtn = new ToggleButton("Clear Ground Overlay", "Add Ground Overlay");
    groundOverlayBtn.setStyleName("toggleButton");
    groundOverlayBtn.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (groundOverlayBtn.isDown()) {
                groundOverlay.setMap(null);
            } else {
                groundOverlay.setMap(mapWidget);
            }/* w  ww. j av  a  2  s  .  c om*/
        }
    });

    final ToggleButton customOverlayBtn = new ToggleButton("Clear custom Overlay", "Add custom Overlay");
    customOverlayBtn.setStyleName("toggleButton");
    customOverlayBtn.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (customOverlayBtn.isDown()) {
                htmlOverlayMessage.getElement().removeFromParent();
            } else {
                customOverlayView.setMap(mapWidget);
            }
        }
    });

    final ToggleButton overlayViewBtn = new ToggleButton("Remove Overlay View", "Add Overlay View");
    overlayViewBtn.setStyleName("toggleButton");
    overlayViewBtn.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (overlayViewBtn.isDown()) {
                customOverlayView.setMap(null);
            } else {
                customOverlayView.setMap(mapWidget);
            }
        }
    });

    HorizontalPanel hp = new HorizontalPanel();
    hp.add(overlayViewBtn);
    hp.add(groundOverlayBtn);
    hp.add(customOverlayBtn);

    pWidget.clear();
    pWidget.add(hp);

    htmlOverlayMessage = new VerticalPanel();
    htmlOverlayMessage.setStyleName("customOverlay");

    drawMap();
    drawOverlay_Generic_OverlayView();
    drawOverlay_GroundOverlay();
}

From source file:com.google.gwt.widgetideas.demo.collapsiblepanel.client.CollapsiblePanelDemo.java

License:Apache License

private Panel createSchoolNavBar() {
    ToggleButton toggler = new ToggleButton("Directory (click to pin)", "Directory (click to collapse)");
    toggler.setStyleName("CollapsibleToggle");
    controlButton = toggler;//from   w ww  . jav  a  2s  .co  m

    MyStackPanel wrapper = new MyStackPanel();
    FlowPanel navBar = new FlowPanel();
    navBar.setSize("200px", "100%");

    HorizontalPanel panel = new HorizontalPanel();
    panel.setWidth("100%");

    panel.setCellHorizontalAlignment(controlButton, HasHorizontalAlignment.ALIGN_LEFT);

    panel.add(controlButton);
    panel.setCellWidth(controlButton, "1px");
    panel.setCellHorizontalAlignment(controlButton, HorizontalPanel.ALIGN_CENTER);

    navBar.add(panel);

    panel.setStyleName("nav-Tree-title");
    wrapper = new MyStackPanel();
    wrapper.setHeight("250px");

    final FastTree contents = new FastTree();
    wrapper.add(contents, "<b>People</b>", true);

    wrapper.add(new Label("None"), "<b>Academics</b>", true);
    navBar.add(wrapper);

    FastTreeItem students = contents.addItem("Students");
    students.addItem("Jill");
    students.addItem("Jack");
    students.addItem("Molly");
    students.addItem("Ms. Muffat");

    FastTreeItem teachers = contents.addItem("Teachers");
    teachers.addItem("Mrs Black");
    teachers.addItem("Mr White");

    FastTreeItem admin = contents.addItem("Administrators");
    admin.addItem("The Soup Nazi");
    admin.addItem("The Grand High Supreme Master Pubba");
    return navBar;
}

From source file:com.mecatran.otp.gwt.client.view.ItinerarySummaryWidget.java

License:Open Source License

public ItinerarySummaryWidget(ItineraryBean itinerary, ClickHandler closeHandler, ClickHandler pinHandler) {
    VerticalPanel rootPanel = new VerticalPanel();

    // Addresses and close button top line
    HorizontalPanel departureAndButtonsPanel = new HorizontalPanel();
    departureAndButtonsPanel.addStyleName("itinerary-topbar-panel");
    rootPanel.add(departureAndButtonsPanel);

    // Departure and arrival time and addresses
    Grid departureAndArrivalPanel = new Grid(2, 2);
    departureAndArrivalPanel.addStyleName("itinerary-addresses-panel");
    departureAndButtonsPanel.add(departureAndArrivalPanel);
    departureAndButtonsPanel.setCellWidth(departureAndArrivalPanel, "100%");
    Label departureTimeLabel = new Label(FormatUtils.formatTime(itinerary.getDepartureTime()));
    departureTimeLabel.addStyleName("itinerary-departure-time");
    Label arrivalTimeLabel = new Label(FormatUtils.formatTime(itinerary.getArrivalTime()));
    arrivalTimeLabel.addStyleName("itinerary-arrival-time");
    String[] formattedAddresses = FormatUtils.formatAddresses(itinerary.getStartAddress(),
            itinerary.getEndAddress());/*from   www  . ja va  2  s . c o  m*/
    // TODO Use HTML::setStyleName() ?
    HTML departureAddressLabel = new HTML(
            "<div class='itinerary-address-inner'>" + formattedAddresses[0] + "</div>");
    departureAddressLabel.addStyleName("itinerary-address");
    HTML arrivalAddressLabel = new HTML(
            "<div class='itinerary-address-inner'>" + formattedAddresses[1] + "</div>");
    arrivalAddressLabel.addStyleName("itinerary-address");
    departureAndArrivalPanel.setWidget(0, 0, departureTimeLabel);
    departureAndArrivalPanel.setWidget(0, 1, departureAddressLabel);
    departureAndArrivalPanel.setWidget(1, 0, arrivalTimeLabel);
    departureAndArrivalPanel.setWidget(1, 1, arrivalAddressLabel);
    departureAndArrivalPanel.getColumnFormatter().setWidth(1, "100%");
    departureAndArrivalPanel.getCellFormatter().setVerticalAlignment(0, 1, HasVerticalAlignment.ALIGN_TOP);
    departureAndArrivalPanel.getCellFormatter().setVerticalAlignment(1, 1, HasVerticalAlignment.ALIGN_TOP);

    // Buttons panel
    VerticalPanel buttonsPanel = new VerticalPanel();
    departureAndButtonsPanel.add(buttonsPanel);
    buttonsPanel.setCellHorizontalAlignment(buttonsPanel, HasHorizontalAlignment.ALIGN_RIGHT);

    // Close button
    PushButton closeButton = new PushButton(new Image(PlannerResources.INSTANCE.closeButtonPng()));
    closeButton.addStyleName("itinerary-close-button");
    closeButton.addClickHandler(closeHandler);
    buttonsPanel.add(closeButton);

    // Pin button
    pinButton = new ToggleButton(new Image(PlannerResources.INSTANCE.noFavoritePng()),
            new Image(PlannerResources.INSTANCE.favoritePng()));
    pinButton.addStyleName("itinerary-pin-button");
    pinButton.addClickHandler(pinHandler);
    buttonsPanel.add(pinButton);

    // Date, duration and travel mode summary
    HorizontalPanel timesAndSummaryPanel = new HorizontalPanel();
    timesAndSummaryPanel.setWidth("100%");
    timesAndSummaryPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    rootPanel.add(timesAndSummaryPanel);

    // Date and duration
    VerticalPanel dateAndDurationPanel = new VerticalPanel();
    dateAndDurationPanel.addStyleName("itinerary-date-duration-panel");
    timesAndSummaryPanel.add(dateAndDurationPanel);
    String departureDate = FormatUtils.formatDate(itinerary.getDepartureTime());
    String duration = FormatUtils.formatDuration(itinerary.getDurationSeconds());
    Label departureDateLabel = new Label(departureDate);
    departureDateLabel.addStyleName("itinerary-departure-date");
    dateAndDurationPanel.add(departureDateLabel);
    HTML durationLabel = new HTML(duration);
    durationLabel.addStyleName("itinerary-duration");
    dateAndDurationPanel.add(durationLabel);

    // Travel modes
    Panel modesAndLinksPanel = new VerticalPanel();
    timesAndSummaryPanel.add(modesAndLinksPanel);
    timesAndSummaryPanel.setCellWidth(modesAndLinksPanel, "100%");
    ItineraryModeLineWidget modeLine = new ItineraryModeLineWidget(itinerary);
    modeLine.addStyleName("itinerary-modeline-panel");
    modesAndLinksPanel.add(modeLine);

    // Links (show details, print)
    HorizontalPanel linksPanel = new HorizontalPanel();
    showHideDetailsLink = new Anchor(I18nUtils.tr("show.itinerary.details"));
    showHideDetailsLink.addStyleName("itinerary-details-show-hide");
    linksPanel.add(showHideDetailsLink);
    printLink = new Anchor(I18nUtils.tr("print.itinerary"));
    printLink.addStyleName("itinerary-details-print-link");
    linksPanel.add(printLink);
    modesAndLinksPanel.add(linksPanel);

    initWidget(rootPanel);
}

From source file:net.cbtltd.client.form.OrganizationForm.java

License:Open Source License

private FlowPanel createWorkflow() {
    final FlowPanel panel = new FlowPanel();
    final HTML workflowText = new HTML(CONSTANTS.workflowText());
    panel.add(workflowText);/*w w w.j av a  2 s . c om*/
    final String[] WORKFLOW_DATES = { Reservation.FROMDATE, Reservation.DATE, Reservation.TODATE };
    final ArrayList<NameId> DATENAMES = NameId.getList(CONSTANTS.workflowDates(), WORKFLOW_DATES);

    workflowGrid = new GridField<Workflow>(this, null, CONSTANTS.workflowHeaders(),
            Reservation.WORKFLOW_STATES.length, tab++) {

        @Override
        public void setRowValue(int row, Workflow value) {

            CheckBox enabledField = new CheckBox(getStatename(value.getState()));
            enabledField.setFormValue(value.getState());
            enabledField.setValue(value.getEnabled());
            enabledField.addStyleName(OrganizationForm.CSS.workflowState());
            workflowGrid.setWidget(row, 0, enabledField);

            IntegerField durationField = new IntegerField(this, null, null, 0);
            durationField.setValue(value.getDuration());
            durationField.setFieldStyle(OrganizationForm.CSS.workflowDuration());
            workflowGrid.setWidget(row, 1, durationField);

            workflowGrid.setText(row, 2, value.getUnit().toString());

            ToggleButton priorField = new ToggleButton(OrganizationForm.CONSTANTS.workflowLabelAfter(),
                    OrganizationForm.CONSTANTS.workflowLabelBefore());
            priorField.setDown(value.getPrior());
            priorField.addStyleName(OrganizationForm.CSS.workflowWhen());
            workflowGrid.setWidget(row, 3, priorField);

            ListField datenameField = new ListField(this, null, DATENAMES, null, false, 0);
            datenameField.setValue(value.getDatename());
            datenameField.setFieldStyle(OrganizationForm.CSS.workflowDatename());
            workflowGrid.setWidget(row, 4, datenameField);
        }

        @Override
        public Workflow getRowValue(int row) {
            CheckBox enabledField = (CheckBox) workflowGrid.getWidget(row, 0);
            IntegerField durationField = (IntegerField) workflowGrid.getWidget(row, 1);
            ToggleButton priorField = (ToggleButton) workflowGrid.getWidget(row, 3);
            ListField datenameField = (ListField) workflowGrid.getWidget(row, 4);
            Workflow value = new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
                    enabledField.getFormValue(), enabledField.getValue(), priorField.isDown(),
                    datenameField.getValue(), Time.DAY.name(), durationField.getValue());
            //Window.alert("getRowValue " + value);
            return value;
        }
    };

    ArrayList<Workflow> defaultValue = new ArrayList<Workflow>();
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[0], true, false, Reservation.DATE, Time.DAY.name(), 2));//RESERVED
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[1], true, false, Reservation.DATE, Time.DAY.name(), 3));//CONFIRMED
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[2], true, true, Reservation.FROMDATE, Time.DAY.name(), 35));//FULLYPAID
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[3], true, true, Reservation.FROMDATE, Time.DAY.name(), 7));//BRIEFED
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[4], true, true, Reservation.FROMDATE, Time.DAY.name(), 1));//ARRIVED
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[5], true, true, Reservation.TODATE, Time.DAY.name(), 2));//PREDEPARTED
    defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(),
            Reservation.WORKFLOW_STATES[6], true, true, Reservation.TODATE, Time.DAY.name(), 7));//DEPARTED
    //      defaultValue.add(new Workflow(organizationField.getId(), NameId.Type.Reservation.name(), Reservation.WORKFLOW_STATES[7], true, false, Reservation.TODATE, Time.DAY.name(), 7));//DEPARTED
    workflowGrid.setDefaultValue(defaultValue);

    panel.add(workflowGrid);
    return panel;
}

From source file:org.gwtopenmaps.demo.openlayers.client.examples.drawfeature.DrawPolygonWithHolesExample.java

License:Apache License

@Override
public void buildPanel() {
    // create some MapOptions
    MapOptions defaultMapOptions = new MapOptions();
    defaultMapOptions.setNumZoomLevels(16);

    // Create a MapWidget
    MapWidget mapWidget = new MapWidget("514px", "258px", defaultMapOptions);
    // Create a WMS layer as base layer
    WMSParams wmsParams = new WMSParams();
    wmsParams.setFormat("image/png");
    wmsParams.setLayers("basic");
    wmsParams.setStyles("");

    WMSOptions wmsLayerParams = new WMSOptions();
    wmsLayerParams.setUntiled();/*from w  w  w .j a  v a 2s  .co m*/
    wmsLayerParams.setTransitionEffect(TransitionEffect.RESIZE);

    String wmsUrl = "http://vmap0.tiles.osgeo.org/wms/vmap0";
    WMS wmsLayer = new WMS("Basic WMS", wmsUrl, wmsParams, wmsLayerParams);

    // Add the WMS to the map
    Map map = mapWidget.getMap();
    map.addLayer(wmsLayer);

    // Create the Vector layer on which the user can draw new widgets
    final Vector vectorLayer = new Vector("Vector layer");
    map.addLayer(vectorLayer);

    DrawFeatureOptions drawFeatureOptions = new DrawFeatureOptions();
    PolygonHandlerOptions polygonHandlerOptions = new PolygonHandlerOptions();
    polygonHandlerOptions.setHoleModifier(HoleModifier.ctrlKey);
    drawFeatureOptions.setHandlerOptions(polygonHandlerOptions);

    final DrawFeature drawPolygonControl = new DrawFeature(vectorLayer, new PolygonHandler(),
            drawFeatureOptions);

    map.addControl(drawPolygonControl);

    drawPolygonControl.activate();

    // Center and zoom to a location
    map.setCenter(new LonLat(0, 0), 5);

    ToggleButton b = new ToggleButton("Navigate", new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (((ToggleButton) event.getSource()).isDown()) {
                drawPolygonControl.deactivate();
            } else {
                drawPolygonControl.activate();
            }
        }

    });
    b.setSize("80px", "20px");
    contentPanel.add(new HTML("<p>This example shows how to draw a polygon with one or more holes.</p>" + "<p>"
            + "<li>Draw a polygon.</li>" + "<li>Press key Control (Ctrl), hold it and draw a hole.</li>"));
    contentPanel.add(mapWidget);
    contentPanel.add(b);

    initWidget(contentPanel);

    mapWidget.getElement().getFirstChildElement().getStyle().setZIndex(0); // force the map to fall behind popups
}

From source file:org.gwtopenmaps.demo.openlayers.client.examples.drawfeature.DrawRegularPolygonExample.java

License:Apache License

@Override
public void buildPanel() {
    // create some MapOptions
    MapOptions defaultMapOptions = new MapOptions();
    defaultMapOptions.setNumZoomLevels(16);

    // Create a MapWidget
    MapWidget mapWidget = new MapWidget("514px", "258px", defaultMapOptions);
    // Create a WMS layer as base layer
    WMSParams wmsParams = new WMSParams();
    wmsParams.setFormat("image/png");
    wmsParams.setLayers("basic");
    wmsParams.setStyles("");

    WMSOptions wmsLayerParams = new WMSOptions();
    wmsLayerParams.setUntiled();//from   ww  w .  j  a v  a 2  s.  c  o  m
    wmsLayerParams.setTransitionEffect(TransitionEffect.RESIZE);

    String wmsUrl = "http://vmap0.tiles.osgeo.org/wms/vmap0";
    WMS wmsLayer = new WMS("Basic WMS", wmsUrl, wmsParams, wmsLayerParams);

    // Add the WMS to the map
    Map map = mapWidget.getMap();
    map.addLayer(wmsLayer);

    // Create the Vector layer on which the user can draw new widgets
    final Vector vectorLayer = new Vector("Vector layer");
    map.addLayer(vectorLayer);

    final RegularPolygonHandlerOptions boxHandlerOptions = new RegularPolygonHandlerOptions();
    boxHandlerOptions.setIrregular(true);
    RegularPolygonHandler boxHandler = new RegularPolygonHandler();
    final DrawFeature drawRegularPolygon = new DrawFeature(vectorLayer, boxHandler);
    ((RegularPolygonHandler) drawRegularPolygon.getHandler()).setOptions(boxHandlerOptions);

    map.addControl(drawRegularPolygon);

    drawRegularPolygon.activate();

    // Center and zoom to a location
    map.setCenter(new LonLat(0, 0), 5);

    ToggleButton b = new ToggleButton("Draw Circle", new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (((ToggleButton) event.getSource()).isDown()) {
                boxHandlerOptions.setSides(40);
                ((RegularPolygonHandler) drawRegularPolygon.getHandler()).setOptions(boxHandlerOptions);
            } else {
                boxHandlerOptions.setSides(4);
                ((RegularPolygonHandler) drawRegularPolygon.getHandler()).setOptions(boxHandlerOptions);
            }
        }

    });
    b.setSize("80px", "20px");

    contentPanel.add(mapWidget);
    contentPanel.add(b);

    initWidget(contentPanel);

    mapWidget.getElement().getFirstChildElement().getStyle().setZIndex(0); // force the map to fall behind popups
}