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); } } }); }