01: package org.eclipse.ui.examples.jobs.views;
02:
03: import org.eclipse.jface.viewers.TreeViewer;
04: import org.eclipse.swt.SWT;
05: import org.eclipse.swt.events.SelectionAdapter;
06: import org.eclipse.swt.events.SelectionEvent;
07: import org.eclipse.swt.layout.GridData;
08: import org.eclipse.swt.layout.GridLayout;
09: import org.eclipse.swt.widgets.Button;
10: import org.eclipse.swt.widgets.Composite;
11: import org.eclipse.ui.model.WorkbenchLabelProvider;
12: import org.eclipse.ui.part.ViewPart;
13:
14: /**
15: * This sample class demonstrates how to plug-in a new workbench view. The view
16: * shows data obtained from the model. The sample creates a dummy model on the
17: * fly, but a real implementation would connect to the model available either
18: * in this or another plug-in (e.g. the workspace). The view is connected to
19: * the model using a content provider.
20: * <p>
21: * The view uses a label provider to define how model objects should be
22: * presented in the view. Each view can present the same model objects using
23: * different labels and icons, if needed. Alternatively, a single label
24: * provider can be shared between views in order to ensure that objects of the
25: * same type are presented in the same way everywhere.
26: * <p>
27: */
28: public class LazyTreeView extends ViewPart {
29: protected TreeViewer viewer;
30: protected Button serializeButton, batchButton;
31:
32: /* (non-Javadoc)
33: * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
34: */
35: public void createPartControl(Composite top) {
36: Composite parent = new Composite(top, SWT.NONE);
37: GridLayout layout = new GridLayout();
38: layout.marginHeight = 0;
39: layout.marginWidth = 0;
40: parent.setLayout(layout);
41: GridData data = new GridData(GridData.FILL_BOTH);
42: data.grabExcessHorizontalSpace = true;
43: data.grabExcessVerticalSpace = true;
44: parent.setLayoutData(data);
45: // parent.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
46: serializeButton = new Button(parent, SWT.CHECK | SWT.FLAT);
47: serializeButton.setText("Serialize fetch jobs"); //$NON-NLS-1$
48: // serializeButton.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
49: serializeButton.setSelection(SlowElementAdapter
50: .isSerializeFetching());
51: serializeButton.addSelectionListener(new SelectionAdapter() {
52: public void widgetSelected(SelectionEvent e) {
53: SlowElementAdapter.setSerializeFetching(serializeButton
54: .getSelection());
55: }
56: });
57: serializeButton.setLayoutData(new GridData(
58: GridData.FILL_HORIZONTAL));
59: batchButton = new Button(parent, SWT.CHECK | SWT.FLAT);
60: batchButton.setText("Batch returned children"); //$NON-NLS-1$
61: // batchButton.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
62: serializeButton.setSelection(SlowElementAdapter
63: .isBatchFetchedChildren());
64: batchButton.addSelectionListener(new SelectionAdapter() {
65: public void widgetSelected(SelectionEvent e) {
66: SlowElementAdapter.setBatchFetchedChildren(batchButton
67: .getSelection());
68: }
69: });
70: batchButton
71: .setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
72: viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL
73: | SWT.V_SCROLL);
74: viewer.setContentProvider(new DeferredContentProvider());
75: viewer.setLabelProvider(new WorkbenchLabelProvider());
76: viewer.setInput(new SlowElement("root")); //$NON-NLS-1$
77: viewer.getTree()
78: .setLayoutData(new GridData(GridData.FILL_BOTH));
79: }
80:
81: /**
82: * Passing the focus request to the viewer's control.
83: */
84: public void setFocus() {
85: viewer.getControl().setFocus();
86: }
87: }
|