import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Text;
public class TabbedShellExample {
Display d;
Shell s;
TabbedShellExample() {
d = new Display();
s = new Shell(d);
s.setSize(250, 200);
s.setText("A Tabbed Shell Example");
s.setLayout(new FillLayout());
TabFolder tf = new TabFolder(s, SWT.BORDER);
TabItem ti1 = new TabItem(tf, SWT.BORDER);
ti1.setText("Option Group");
ti1.setControl(new GroupExample(tf, SWT.SHADOW_ETCHED_IN));
TabItem ti2 = new TabItem(tf, SWT.BORDER);
ti2.setText("Grid");
ti2.setControl(new GridComposite(tf));
TabItem ti3 = new TabItem(tf, SWT.BORDER);
ti3.setText("Text");
Composite c1 = new Composite(tf, SWT.BORDER);
c1.setLayout(new FillLayout());
Text t = new Text(c1, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
ti3.setControl(c1);
TabItem ti4 = new TabItem(tf, SWT.BORDER);
ti4.setText("Settings");
Composite c2 = new Composite(tf, SWT.BORDER);
c2.setLayout(new RowLayout());
Text t2 = new Text(c2, SWT.BORDER | SWT.SINGLE | SWT.WRAP
| SWT.V_SCROLL);
Button b = new Button(c2, SWT.PUSH | SWT.BORDER);
b.setText("Save");
ti4.setControl(c2);
s.open();
while (!s.isDisposed()) {
if (!d.readAndDispatch())
d.sleep();
}
d.dispose();
}
}
class GroupExample extends Composite {
final Button b1;
final Button b2;
final Button b3;
public GroupExample(Composite c, int style) {
super(c, SWT.NO_BACKGROUND);
this.setSize(110, 75);
this.setLayout(new FillLayout());
final Group g = new Group(this, style);
g.setSize(110, 75);
g.setText("Options Group");
b1 = new Button(g, SWT.RADIO);
b1.setBounds(10, 20, 75, 15);
b1.setText("Option One");
b2 = new Button(g, SWT.RADIO);
b2.setBounds(10, 35, 75, 15);
b2.setText("Option Two");
b3 = new Button(g, SWT.RADIO);
b3.setBounds(10, 50, 80, 15);
b3.setText("Option Three");
}
public String getSelected() {
if (b1.getSelection())
return "Option One";
if (b2.getSelection())
return "Option Two";
if (b3.getSelection())
return "Option Three";
return "None Selected";
}
}
class GridComposite extends Composite {
public GridComposite(Composite c) {
super(c, SWT.BORDER);
GridLayout gl = new GridLayout();
gl.numColumns = 3;
this.setLayout(gl);
final Label l1 = new Label(this, SWT.BORDER);
l1.setText("Column One");
final Label l2 = new Label(this, SWT.BORDER);
l2.setText("Column Two");
final Label l3 = new Label(this, SWT.BORDER);
l3.setText("Column Three");
final Text t1 = new Text(this, SWT.SINGLE | SWT.BORDER);
final Text t2 = new Text(this, SWT.SINGLE | SWT.BORDER);
final Text t3 = new Text(this, SWT.SINGLE | SWT.BORDER);
final Text t4 = new Text(this, SWT.SINGLE | SWT.BORDER);
final Text t5 = new Text(this, SWT.SINGLE | SWT.BORDER);
final Text t6 = new Text(this, SWT.SINGLE | SWT.BORDER);
GridData gd = new GridData();
gd.horizontalAlignment = GridData.CENTER;
l1.setLayoutData(gd);
gd = new GridData();
gd.horizontalAlignment = GridData.CENTER;
l2.setLayoutData(gd);
gd = new GridData();
gd.horizontalAlignment = GridData.CENTER;
l3.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
t1.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
t2.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
t3.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
t4.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
t5.setLayoutData(gd);
gd = new GridData(GridData.FILL_HORIZONTAL);
t6.setLayoutData(gd);
}
public static void main(String[] argv) {
new TabbedShellExample();
}
}