1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpdt / internal / ui / dialogs / CheckedTreeSelectionDialog.java
diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/dialogs/CheckedTreeSelectionDialog.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/dialogs/CheckedTreeSelectionDialog.java
deleted file mode 100644 (file)
index deb47fc..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-package net.sourceforge.phpdt.internal.ui.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import net.sourceforge.phpdt.internal.ui.viewsupport.ContainerCheckedTreeViewer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * A class to select elements out of a tree structure.
- */
-public class CheckedTreeSelectionDialog extends SelectionStatusDialog {
-
-       private CheckboxTreeViewer fViewer;
-
-       private ILabelProvider fLabelProvider;
-
-       private ITreeContentProvider fContentProvider;
-
-       private ISelectionValidator fValidator = null;
-
-       private ViewerSorter fSorter;
-
-       private String fEmptyListMessage = "No entries available";
-
-       private IStatus fCurrStatus = new StatusInfo();
-
-       private List fFilters;
-
-       private Object fInput;
-
-       private boolean fIsEmpty;
-
-       private int fWidth = 60;
-
-       private int fHeight = 18;
-
-       private boolean fContainerMode;
-
-       private Object[] fExpandedElements;
-
-       /**
-        * Constructs an instance of <code>ElementTreeSelectionDialog</code>.
-        * 
-        * @param labelProvider
-        *            the label provider to render the entries
-        * @param contentProvider
-        *            the content provider to evaluate the tree structure
-        */
-       public CheckedTreeSelectionDialog(Shell parent,
-                       ILabelProvider labelProvider, ITreeContentProvider contentProvider) {
-               super(parent);
-
-               fLabelProvider = labelProvider;
-               fContentProvider = contentProvider;
-
-               setResult(new ArrayList(0));
-               setStatusLineAboveButtons(true);
-
-               fContainerMode = false;
-               fExpandedElements = null;
-
-               int shellStyle = getShellStyle();
-               setShellStyle(shellStyle | SWT.MAX | SWT.RESIZE);
-       }
-
-       /**
-        * If set, the checked /gray state of containers (inner nodes) is derived
-        * from the checked state of its leaf nodes.
-        * 
-        * @param containerMode
-        *            The containerMode to set
-        */
-       public void setContainerMode(boolean containerMode) {
-               fContainerMode = containerMode;
-       }
-
-       /**
-        * Sets the initial selection. Convenience method.
-        * 
-        * @param selection
-        *            the initial selection.
-        */
-       public void setInitialSelection(Object selection) {
-               setInitialSelections(new Object[] { selection });
-       }
-
-       /**
-        * Sets the message to be displayed if the list is empty.
-        * 
-        * @param message
-        *            the message to be displayed.
-        */
-       public void setEmptyListMessage(String message) {
-               fEmptyListMessage = message;
-       }
-
-       /**
-        * Sets the sorter used by the tree viewer.
-        */
-       public void setSorter(ViewerSorter sorter) {
-               fSorter = sorter;
-       }
-
-       /**
-        * Adds a filter to the tree viewer.
-        * 
-        * @param filter
-        *            a filter.
-        */
-       public void addFilter(ViewerFilter filter) {
-               if (fFilters == null)
-                       fFilters = new ArrayList(4);
-
-               fFilters.add(filter);
-       }
-
-       /**
-        * Sets an optional validator to check if the selection is valid. The
-        * validator is invoked whenever the selection changes.
-        * 
-        * @param validator
-        *            the validator to validate the selection.
-        */
-       public void setValidator(ISelectionValidator validator) {
-               fValidator = validator;
-       }
-
-       /**
-        * Sets the tree input.
-        * 
-        * @param input
-        *            the tree input.
-        */
-       public void setInput(Object input) {
-               fInput = input;
-       }
-
-       /**
-        * Expands the tree
-        */
-       public void setExpandedElements(Object[] elements) {
-               fExpandedElements = elements;
-       }
-
-       /**
-        * Sets the size of the tree in unit of characters.
-        * 
-        * @param width
-        *            the width of the tree.
-        * @param height
-        *            the height of the tree.
-        */
-       public void setSize(int width, int height) {
-               fWidth = width;
-               fHeight = height;
-       }
-
-       protected void updateOKStatus() {
-               if (!fIsEmpty) {
-                       if (fValidator != null) {
-                               fCurrStatus = fValidator.validate(fViewer.getCheckedElements());
-                               updateStatus(fCurrStatus);
-                       } else if (!fCurrStatus.isOK()) {
-                               fCurrStatus = new StatusInfo();
-                       }
-               } else {
-                       fCurrStatus = new StatusInfo(IStatus.ERROR, fEmptyListMessage);
-               }
-               updateStatus(fCurrStatus);
-       }
-
-       /*
-        * @see Window#open()
-        */
-       public int open() {
-               fIsEmpty = evaluateIfTreeEmpty(fInput);
-               BusyIndicator.showWhile(null, new Runnable() {
-                       public void run() {
-                               access$superOpen();
-                       }
-               });
-
-               return getReturnCode();
-       }
-
-       private void access$superOpen() {
-               super.open();
-       }
-
-       /**
-        * Handles cancel button pressed event.
-        */
-       protected void cancelPressed() {
-               setResult(null);
-               super.cancelPressed();
-       }
-
-       /*
-        * @see SelectionStatusDialog#computeResult()
-        */
-       protected void computeResult() {
-               setResult(Arrays.asList(fViewer.getCheckedElements()));
-       }
-
-       /*
-        * @see Window#create()
-        */
-       public void create() {
-               super.create();
-
-               List initialSelections = getInitialElementSelections();
-               if (initialSelections != null) {
-                       fViewer.setCheckedElements(initialSelections.toArray());
-               }
-
-               if (fExpandedElements != null) {
-                       fViewer.setExpandedElements(fExpandedElements);
-               }
-
-               updateOKStatus();
-       }
-
-       /*
-        * @see Dialog#createDialogArea(Composite)
-        */
-       protected Control createDialogArea(Composite parent) {
-               Composite composite = (Composite) super.createDialogArea(parent);
-
-               Label messageLabel = createMessageArea(composite);
-               Control treeWidget = createTreeViewer(composite);
-               Control buttonComposite = createSelectionButtons(composite);
-
-               GridData data = new GridData(GridData.FILL_BOTH);
-               data.widthHint = convertWidthInCharsToPixels(fWidth);
-               data.heightHint = convertHeightInCharsToPixels(fHeight);
-               treeWidget.setLayoutData(data);
-
-               if (fIsEmpty) {
-                       messageLabel.setEnabled(false);
-                       treeWidget.setEnabled(false);
-                       buttonComposite.setEnabled(false);
-               }
-
-               return composite;
-       }
-
-       private Tree createTreeViewer(Composite parent) {
-               if (fContainerMode) {
-                       fViewer = new ContainerCheckedTreeViewer(parent, SWT.BORDER);
-               } else {
-                       fViewer = new CheckboxTreeViewer(parent, SWT.BORDER);
-               }
-
-               fViewer.setContentProvider(fContentProvider);
-               fViewer.setLabelProvider(fLabelProvider);
-               fViewer.addCheckStateListener(new ICheckStateListener() {
-                       public void checkStateChanged(CheckStateChangedEvent event) {
-                               updateOKStatus();
-                       }
-               });
-
-               fViewer.setSorter(fSorter);
-               if (fFilters != null) {
-                       for (int i = 0; i != fFilters.size(); i++)
-                               fViewer.addFilter((ViewerFilter) fFilters.get(i));
-               }
-
-               fViewer.setInput(fInput);
-
-               return fViewer.getTree();
-       }
-
-       /**
-        * Add the selection and deselection buttons to the dialog.
-        * 
-        * @param composite
-        *            org.eclipse.swt.widgets.Composite
-        */
-       private Composite createSelectionButtons(Composite composite) {
-
-               Composite buttonComposite = new Composite(composite, SWT.RIGHT);
-               GridLayout layout = new GridLayout();
-               layout.numColumns = 2;
-               buttonComposite.setLayout(layout);
-               GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END
-                               | GridData.GRAB_HORIZONTAL);
-               data.grabExcessHorizontalSpace = true;
-               composite.setData(data);
-
-               Button selectButton = createButton(buttonComposite,
-                               IDialogConstants.SELECT_ALL_ID, "Select &All", false);
-
-               SelectionListener listener = new SelectionAdapter() {
-                       public void widgetSelected(SelectionEvent e) {
-                               fViewer
-                                               .setCheckedElements(fContentProvider
-                                                               .getElements(fInput));
-                               updateOKStatus();
-                       }
-               };
-               selectButton.addSelectionListener(listener);
-
-               Button deselectButton = createButton(buttonComposite,
-                               IDialogConstants.DESELECT_ALL_ID, "&Deselect All", false);
-
-               listener = new SelectionAdapter() {
-                       public void widgetSelected(SelectionEvent e) {
-                               fViewer.setCheckedElements(new Object[0]);
-                               updateOKStatus();
-                       }
-               };
-               deselectButton.addSelectionListener(listener);
-               return buttonComposite;
-       }
-
-       private boolean evaluateIfTreeEmpty(Object input) {
-               Object[] elements = fContentProvider.getElements(input);
-               if (elements.length > 0) {
-                       if (fFilters != null) {
-                               for (int i = 0; i < fFilters.size(); i++) {
-                                       ViewerFilter curr = (ViewerFilter) fFilters.get(i);
-                                       elements = curr.filter(fViewer, input, elements);
-                               }
-                       }
-               }
-               return elements.length == 0;
-       }
-
-}
\ No newline at end of file