blob: 203e2770de5e5b3e76b7c508b9de93f2e5e17420 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2015 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.ui.examples;
import java.util.List;
import java.util.Random;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.CheckedListDialogField;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField;
public class CheckBoxExample {
private Shell fShell;
public CheckBoxExample() {
}
public CheckBoxExample close () {
if ((fShell != null) && (!fShell.isDisposed ())) fShell.dispose ();
fShell= null;
return this;
}
public CheckBoxExample open () {
fShell= new Shell ();
fShell.setText("Message Dialog Example");
fShell.setLayout(new GridLayout());
Adapter adapter= new Adapter();
String[] addButtons= new String[] {
/* 0 */ "Add1",
/* 1 */ "Check 0",
/* 2 */ "Print",
/* 3 */ null,
/* 4 */ "Check All",
/* 5 */ "Uncheck All",
/* 6 */ null,
/* 7 */ "Remove"
};
CheckedListDialogField<String> list= new CheckedListDialogField<>(adapter, addButtons, new LabelProvider());
list.setCheckAllButtonIndex(4);
list.setUncheckAllButtonIndex(5);
list.setRemoveButtonIndex(7);
list.setLabelText("List: ");
LayoutUtil.doDefaultLayout(fShell, new DialogField[] { list }, false);
fShell.setSize(400,500);
fShell.open ();
return this;
}
private static Random fgRandom= new Random();
private class Adapter implements IStringButtonAdapter, IDialogFieldListener, IListAdapter<String> {
// -------- IStringButtonAdapter
@Override
public void changeControlPressed(DialogField field) {
}
// -------- IListAdapter
@Override
public void customButtonPressed(ListDialogField<String> field, int index) {
if (field instanceof CheckedListDialogField) {
CheckedListDialogField<String> list= (CheckedListDialogField<String>)field;
if (index == 0) {
list.addElement("element-" + (fgRandom.nextInt() % 1000));
} else if (index == 2) {
System.out.println("---- printing all");
List<String> checked= list.getCheckedElements();
for (int i= 0; i < checked.size(); i++) {
System.out.println(checked.get(i).toString());
}
} else {
list.setChecked(list.getElement(0), true);
}
}
}
@Override
public void selectionChanged(ListDialogField<String> field) {}
// -------- IDialogFieldListener
@Override
public void dialogFieldChanged(DialogField field) {
}
@Override
public void doubleClicked(ListDialogField<String> field) {
}
}
public CheckBoxExample run () {
Display display= fShell.getDisplay ();
while (!fShell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
return this;
}
public static void main(java.lang.String[] args) {
new CheckBoxExample().open().run().close();
}
}