List of usage examples for org.eclipse.swt.widgets Button getEnabled
public boolean getEnabled()
true
if the receiver is enabled, and false
otherwise. From source file:org.eclipse.swt.examples.controlexample.Tab.java
/** * Creates and opens the "Listener selection" dialog. *//*from ww w . j a v a2s .c o m*/ void createListenerSelectionDialog() { final Shell dialog = new Shell(shell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.APPLICATION_MODAL); dialog.setText(ControlExample.getResourceString("Select_Listeners")); dialog.setLayout(new GridLayout(2, false)); final Table table = new Table(dialog, SWT.BORDER | SWT.V_SCROLL | SWT.CHECK); GridData data = new GridData(GridData.FILL_BOTH); data.verticalSpan = 3; table.setLayoutData(data); for (int i = 0; i < EVENT_INFO.length; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(EVENT_INFO[i].name); item.setChecked(eventsFilter[i]); } final String[] customNames = getCustomEventNames(); for (int i = 0; i < customNames.length; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(customNames[i]); item.setChecked(eventsFilter[EVENT_INFO.length + i]); } Button selectAll = new Button(dialog, SWT.PUSH); selectAll.setText(ControlExample.getResourceString("Select_All")); selectAll.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); selectAll.addSelectionListener(widgetSelectedAdapter(e -> { TableItem[] items = table.getItems(); for (int i = 0; i < EVENT_INFO.length; i++) { items[i].setChecked(true); } for (int i = 0; i < customNames.length; i++) { items[EVENT_INFO.length + i].setChecked(true); } })); Button deselectAll = new Button(dialog, SWT.PUSH); deselectAll.setText(ControlExample.getResourceString("Deselect_All")); deselectAll.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); deselectAll.addSelectionListener(widgetSelectedAdapter(e -> { TableItem[] items = table.getItems(); for (int i = 0; i < EVENT_INFO.length; i++) { items[i].setChecked(false); } for (int i = 0; i < customNames.length; i++) { items[EVENT_INFO.length + i].setChecked(false); } })); final Button editEvent = new Button(dialog, SWT.PUSH); editEvent.setText(ControlExample.getResourceString("Edit_Event")); editEvent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING)); editEvent.addSelectionListener(widgetSelectedAdapter(e -> { Point pt = editEvent.getLocation(); pt = e.display.map(editEvent, null, pt); int index = table.getSelectionIndex(); if (getExampleWidgets().length > 0 && index != -1) { createEditEventDialog(dialog, pt.x, pt.y, index); } })); editEvent.setEnabled(false); table.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int fields = 0; int index = table.getSelectionIndex(); if (index != -1 && index < EVENT_INFO.length) { // TODO: Allow custom widgets to specify event info fields = (EVENT_INFO[index].settableFields); } editEvent.setEnabled(fields != 0); } @Override public void widgetDefaultSelected(SelectionEvent e) { if (editEvent.getEnabled()) { Point pt = editEvent.getLocation(); pt = e.display.map(editEvent, null, pt); int index = table.getSelectionIndex(); if (getExampleWidgets().length > 0 && index != -1 && index < EVENT_INFO.length) { createEditEventDialog(dialog, pt.x, pt.y, index); } } } }); new Label(dialog, SWT.NONE); /* Filler */ Button ok = new Button(dialog, SWT.PUSH); ok.setText(ControlExample.getResourceString("OK")); dialog.setDefaultButton(ok); ok.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); ok.addSelectionListener(widgetSelectedAdapter(e -> { TableItem[] items = table.getItems(); for (int i = 0; i < EVENT_INFO.length; i++) { eventsFilter[i] = items[i].getChecked(); } for (int i = 0; i < customNames.length; i++) { eventsFilter[EVENT_INFO.length + i] = items[EVENT_INFO.length + i].getChecked(); } dialog.dispose(); })); dialog.pack(); /* * If the preferred size of the dialog is too tall for the display, * then reduce the height, so that the vertical scrollbar will appear. */ Rectangle bounds = dialog.getBounds(); Rectangle trim = dialog.computeTrim(0, 0, 0, 0); Rectangle clientArea = display.getClientArea(); if (bounds.height > clientArea.height) { dialog.setSize(bounds.width, clientArea.height - trim.height); } dialog.setLocation(bounds.x, clientArea.y); dialog.open(); while (!dialog.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } }