package rocks.inspectit.ui.rcp.property.control.impl; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import rocks.inspectit.shared.cs.cmr.property.configuration.impl.BooleanProperty; import rocks.inspectit.ui.rcp.property.IPropertyUpdateListener; import rocks.inspectit.ui.rcp.property.control.AbstractPropertyControl; /** * {@link AbstractPropertyControl} for the boolean property. * * @author Ivan Senic * */ public class BooleanPropertyControl extends AbstractPropertyControl<BooleanProperty, Boolean> { /** * Button for on/off. */ private Button button; /** * Default constructor. * * @param property * Property. * @param propertyUpdateListener * Property update listener to report updates to. */ public BooleanPropertyControl(BooleanProperty property, IPropertyUpdateListener propertyUpdateListener) { super(property, propertyUpdateListener); } /** * {@inheritDoc} */ @Override public Control createControl(Composite parent) { button = new Button(parent, SWT.TOGGLE); button.setSelection(property.getValue().booleanValue()); updateText(); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { updateText(); sendPropertyUpdateEvent(Boolean.valueOf(button.getSelection())); } }); return button; } /** * {@inheritDoc} */ @Override protected void showDefaultValue() { button.setSelection(property.getDefaultValue().booleanValue()); updateText(); } /** * Updates the text in the button. */ private void updateText() { if (button.getSelection()) { button.setText("On"); } else { button.setText("Off"); } } }