public CompositeToggleButton(String leftText, String rightText, final boolean ask) {
    holder = new HorizontalPanel();
    holder.setStyleName("tae-Composite-ToggleButton");
    holder.addStyleName("no-Padding");
    initWidget(holder);
    left = new com.google.gwt.user.client.ui.ToggleButton(leftText);
    left.setStylePrimaryName("tae-Composite-ToggleButton-Left");
    holder.add(left);
    right = new com.google.gwt.user.client.ui.ToggleButton(rightText);
    right.setStylePrimaryName("tae-Composite-ToggleButton-Right");
    holder.add(right);
    left.addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            if (ask) {
              new ConfirmDialog(
                  new ConfirmDialog.RequiresUserResponse() {

                    @Override
                    public void onResponse(boolean response) {
                      if (response) {
                        setValue(true, true);
                      } else {
                        setValue(false, true);
                      }
                    }
                  },
                  "Are you sure you want to change task status?",
                  "YES",
                  "NO");
            } else {
              setValue(true, true);
            }
          }
        });
    right.addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            if (ask) {
              new ConfirmDialog(
                  new ConfirmDialog.RequiresUserResponse() {

                    @Override
                    public void onResponse(boolean response) {
                      if (response) {
                        setValue(false, true);
                      } else {
                        setValue(true, true);
                      }
                    }
                  },
                  "Are you sure you want to change task status?",
                  "YES",
                  "NO");
            } else {
              setValue(false, true);
            }
          }
        });
  }