X-Git-Url: http://secure.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/filters/CustomFiltersDialog.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/filters/CustomFiltersDialog.java
deleted file mode 100644
index 8060d76..0000000
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/filters/CustomFiltersDialog.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package net.sourceforge.phpdt.internal.ui.filters;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.Stack;
-import java.util.StringTokenizer;
-
-import net.sourceforge.phpdt.internal.ui.IJavaHelpContextIds;
-import net.sourceforge.phpdt.internal.ui.util.SWTUtil;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-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.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-public class CustomFiltersDialog extends SelectionDialog {
-
- private static final String SEPARATOR = ","; //$NON-NLS-1$
-
- private String fViewId;
-
- private boolean fEnablePatterns;
-
- private String[] fPatterns;
-
- private String[] fEnabledFilterIds;
-
- private FilterDescriptor[] fBuiltInFilters;
-
- private CheckboxTableViewer fCheckBoxList;
-
- private Button fEnableUserDefinedPatterns;
-
- private Text fUserDefinedPatterns;
-
- private Stack fFilterDescriptorChangeHistory;
-
- /**
- * Creates a dialog to customize Java element filters.
- *
- * @param shell
- * the parent shell
- * @param viewId
- * the id of the view
- * @param enablePatterns
- * true
if pattern filters are enabled
- * @param patterns
- * the filter patterns
- * @param enabledFilterIds
- * the Ids of the enabled filters
- */
- public CustomFiltersDialog(Shell shell, String viewId,
- boolean enablePatterns, String[] patterns, String[] enabledFilterIds) {
-
- super(shell);
- Assert.isNotNull(viewId);
- Assert.isNotNull(patterns);
- Assert.isNotNull(enabledFilterIds);
-
- fViewId = viewId;
- fPatterns = patterns;
- fEnablePatterns = enablePatterns;
- fEnabledFilterIds = enabledFilterIds;
-
- fBuiltInFilters = FilterDescriptor.getFilterDescriptors(fViewId);
- fFilterDescriptorChangeHistory = new Stack();
- setShellStyle(getShellStyle() | SWT.RESIZE);
- }
-
- protected void configureShell(Shell shell) {
- setTitle(FilterMessages.getString("CustomFiltersDialog.title")); //$NON-NLS-1$
- setMessage(FilterMessages
- .getString("CustomFiltersDialog.filterList.label")); //$NON-NLS-1$
- super.configureShell(shell);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(shell,
- IJavaHelpContextIds.CUSTOM_FILTERS_DIALOG);
- }
-
- /**
- * Overrides method in Dialog
- *
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(Composite)
- */
- protected Control createDialogArea(Composite parent) {
- initializeDialogUnits(parent);
- // create a composite with standard margins and spacing
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
- layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
- layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
- layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
- composite.setFont(parent.getFont());
- Composite group = composite;
-
- // Checkbox
- fEnableUserDefinedPatterns = new Button(group, SWT.CHECK);
- fEnableUserDefinedPatterns.setFocus();
- fEnableUserDefinedPatterns.setText(FilterMessages
- .getString("CustomFiltersDialog.enableUserDefinedPattern")); //$NON-NLS-1$
-
- // Pattern field
- fUserDefinedPatterns = new Text(group, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
- | GridData.GRAB_HORIZONTAL);
- data.widthHint = convertWidthInCharsToPixels(59);
- fUserDefinedPatterns.setLayoutData(data);
- String patterns = convertToString(fPatterns, SEPARATOR);
- fUserDefinedPatterns.setText(patterns);
-
- // Info text
- final Label info = new Label(group, SWT.LEFT);
- info.setText(FilterMessages
- .getString("CustomFiltersDialog.patternInfo")); //$NON-NLS-1$
-
- // Enabling / disabling of pattern group
- fEnableUserDefinedPatterns.setSelection(fEnablePatterns);
- fUserDefinedPatterns.setEnabled(fEnablePatterns);
- info.setEnabled(fEnablePatterns);
- fEnableUserDefinedPatterns.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- boolean state = fEnableUserDefinedPatterns.getSelection();
- fUserDefinedPatterns.setEnabled(state);
- info.setEnabled(fEnableUserDefinedPatterns.getSelection());
- if (state)
- fUserDefinedPatterns.setFocus();
- }
- });
-
- // Filters provided by extension point
- if (fBuiltInFilters.length > 0)
- createCheckBoxList(group);
-
- applyDialogFont(parent);
- return parent;
- }
-
- private void createCheckBoxList(Composite parent) {
- // Filler
- new Label(parent, SWT.NONE);
-
- Label info = new Label(parent, SWT.LEFT);
- info.setText(FilterMessages
- .getString("CustomFiltersDialog.filterList.label")); //$NON-NLS-1$
-
- fCheckBoxList = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = fCheckBoxList.getTable().getItemHeight() * 10;
- fCheckBoxList.getTable().setLayoutData(data);
-
- fCheckBoxList.setLabelProvider(createLabelPrivder());
- fCheckBoxList.setContentProvider(new ArrayContentProvider());
-
- fCheckBoxList.setInput(fBuiltInFilters);
- setInitialSelections(getEnabledFilterDescriptors());
-
- List initialSelection = getInitialElementSelections();
- if (initialSelection != null && !initialSelection.isEmpty())
- checkInitialSelections();
-
- // Description
- info = new Label(parent, SWT.LEFT);
- info.setText(FilterMessages
- .getString("CustomFiltersDialog.description.label")); //$NON-NLS-1$
- final Text description = new Text(parent, SWT.LEFT | SWT.WRAP
- | SWT.MULTI | SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = convertHeightInCharsToPixels(3);
- description.setLayoutData(data);
- fCheckBoxList
- .addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection instanceof IStructuredSelection) {
- Object selectedElement = ((IStructuredSelection) selection)
- .getFirstElement();
- if (selectedElement instanceof FilterDescriptor)
- description
- .setText(((FilterDescriptor) selectedElement)
- .getDescription());
- }
- }
- });
- fCheckBoxList.addCheckStateListener(new ICheckStateListener() {
- /*
- * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
- */
- public void checkStateChanged(CheckStateChangedEvent event) {
- Object element = event.getElement();
- if (element instanceof FilterDescriptor) {
- // renew if already touched
- if (fFilterDescriptorChangeHistory.contains(element))
- fFilterDescriptorChangeHistory.remove(element);
- fFilterDescriptorChangeHistory.push(element);
- }
- }
- });
-
- addSelectionButtons(parent);
- }
-
- private void addSelectionButtons(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);
-
- // Select All button
- String label = FilterMessages
- .getString("CustomFiltersDialog.SelectAllButton.label"); //$NON-NLS-1$
- Button selectButton = createButton(buttonComposite,
- IDialogConstants.SELECT_ALL_ID, label, false);
- SWTUtil.setButtonDimensionHint(selectButton);
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- fCheckBoxList.setAllChecked(true);
- fFilterDescriptorChangeHistory.clear();
- for (int i = 0; i < fBuiltInFilters.length; i++)
- fFilterDescriptorChangeHistory.push(fBuiltInFilters[i]);
- }
- };
- selectButton.addSelectionListener(listener);
-
- // De-select All button
- label = FilterMessages
- .getString("CustomFiltersDialog.DeselectAllButton.label"); //$NON-NLS-1$
- Button deselectButton = createButton(buttonComposite,
- IDialogConstants.DESELECT_ALL_ID, label, false);
- SWTUtil.setButtonDimensionHint(deselectButton);
- listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- fCheckBoxList.setAllChecked(false);
- fFilterDescriptorChangeHistory.clear();
- for (int i = 0; i < fBuiltInFilters.length; i++)
- fFilterDescriptorChangeHistory.push(fBuiltInFilters[i]);
- }
- };
- deselectButton.addSelectionListener(listener);
- }
-
- private void checkInitialSelections() {
- Iterator itemsToCheck = getInitialElementSelections().iterator();
- while (itemsToCheck.hasNext())
- fCheckBoxList.setChecked(itemsToCheck.next(), true);
- }
-
- protected void okPressed() {
- if (fBuiltInFilters != null) {
- ArrayList result = new ArrayList();
- for (int i = 0; i < fBuiltInFilters.length; ++i) {
- if (fCheckBoxList.getChecked(fBuiltInFilters[i]))
- result.add(fBuiltInFilters[i]);
- }
- setResult(result);
- }
- super.okPressed();
- }
-
- private ILabelProvider createLabelPrivder() {
- return new LabelProvider() {
- public Image getImage(Object element) {
- return null;
- }
-
- public String getText(Object element) {
- if (element instanceof FilterDescriptor)
- return ((FilterDescriptor) element).getName();
- else
- return null;
- }
- };
- }
-
- // ---------- result handling ----------
-
- protected void setResult(List newResult) {
- super.setResult(newResult);
- if (fUserDefinedPatterns.getText().length() > 0) {
- fEnablePatterns = fEnableUserDefinedPatterns.getSelection();
- fPatterns = convertFromString(fUserDefinedPatterns.getText(),
- SEPARATOR);
- } else {
- fEnablePatterns = false;
- fPatterns = new String[0];
- }
- }
-
- /**
- * @return the patterns which have been entered by the user
- */
- public String[] getUserDefinedPatterns() {
- return fPatterns;
- }
-
- /**
- * @return the Ids of the enabled built-in filters
- */
- public String[] getEnabledFilterIds() {
- Object[] result = getResult();
- Set enabledIds = new HashSet(result.length);
- for (int i = 0; i < result.length; i++)
- enabledIds.add(((FilterDescriptor) result[i]).getId());
- return (String[]) enabledIds.toArray(new String[enabledIds.size()]);
- }
-
- /**
- * @return true
if the user-defined patterns are disabled
- */
- public boolean areUserDefinedPatternsEnabled() {
- return fEnablePatterns;
- }
-
- /**
- * @return a stack with the filter descriptor check history
- * @since 3.0
- */
- public Stack getFilterDescriptorChangeHistory() {
- return fFilterDescriptorChangeHistory;
- }
-
- private FilterDescriptor[] getEnabledFilterDescriptors() {
- FilterDescriptor[] filterDescs = fBuiltInFilters;
- List result = new ArrayList(filterDescs.length);
- List enabledFilterIds = Arrays.asList(fEnabledFilterIds);
- for (int i = 0; i < filterDescs.length; i++) {
- String id = filterDescs[i].getId();
- if (enabledFilterIds.contains(id))
- result.add(filterDescs[i]);
- }
- return (FilterDescriptor[]) result.toArray(new FilterDescriptor[result
- .size()]);
- }
-
- public static String[] convertFromString(String patterns, String separator) {
- StringTokenizer tokenizer = new StringTokenizer(patterns, separator,
- true);
- int tokenCount = tokenizer.countTokens();
- List result = new ArrayList(tokenCount);
- boolean escape = false;
- boolean append = false;
- while (tokenizer.hasMoreTokens()) {
- String token = tokenizer.nextToken().trim();
- if (separator.equals(token)) {
- if (!escape)
- escape = true;
- else {
- addPattern(result, separator);
- append = true;
- }
- } else {
- if (!append)
- result.add(token);
- else
- addPattern(result, token);
- append = false;
- escape = false;
- }
- }
- return (String[]) result.toArray(new String[result.size()]);
- }
-
- private static void addPattern(List list, String pattern) {
- if (list.isEmpty())
- list.add(pattern);
- else {
- int index = list.size() - 1;
- list.set(index, ((String) list.get(index)) + pattern);
- }
- }
-
- public static String convertToString(String[] patterns, String separator) {
- int length = patterns.length;
- StringBuffer strBuf = new StringBuffer();
- if (length > 0)
- strBuf.append(escapeSeparator(patterns[0], separator));
- else
- return ""; //$NON-NLS-1$
- int i = 1;
- while (i < length) {
- strBuf.append(separator);
- strBuf.append(" "); //$NON-NLS-1$
- strBuf.append(escapeSeparator(patterns[i++], separator));
- }
- return strBuf.toString();
- }
-
- private static String escapeSeparator(String pattern, String separator) {
- int length = pattern.length();
- StringBuffer buf = new StringBuffer(length);
- for (int i = 0; i < length; i++) {
- char ch = pattern.charAt(i); //$NON-NLS-1$
- if (separator.equals(String.valueOf(ch)))
- buf.append(ch);
- buf.append(ch);
- }
- return buf.toString();
-
- }
-}