diff options
Diffstat (limited to 'org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java')
-rw-r--r-- | org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java deleted file mode 100644 index d4100355b..000000000 --- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java +++ /dev/null @@ -1,246 +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 org.eclipse.ui.externaltools.internal.ui; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IDoubleClickListener; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ControlEvent; -import org.eclipse.swt.events.ControlListener; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds; -import org.eclipse.ui.externaltools.internal.model.StringMatcher; -import org.eclipse.ui.help.WorkbenchHelp; -import org.eclipse.ui.model.WorkbenchContentProvider; -import org.eclipse.ui.model.WorkbenchLabelProvider; - -/** - * Dialog for selecting a file in the workspace. Derived from - * org.eclipse.ui.dialogs.ResourceSelectionDialog - */ -public class FileSelectionDialog extends MessageDialog { - // the root element to populate the viewer with - private IAdaptable root; - - // the visual selection widget group - private TreeAndListGroup selectionGroup; - // constants - private final static int SIZING_SELECTION_WIDGET_WIDTH = 400; - private final static int SIZING_SELECTION_WIDGET_HEIGHT = 300; - /** - * The file(s) selected by the user. - */ - private IStructuredSelection result = null; - /** - * String matcher used to filter content - */ - private StringMatcher stringMatcher = null; - - private boolean allowMultiselection= false; - /** - * Creates a resource selection dialog rooted at the given element. - * - * @param parentShell - * the parent shell - * @param rootElement - * the root element to populate this dialog with - * @param message - * the message to be displayed at the top of this dialog, or - * <code>null</code> to display a default message - */ - public FileSelectionDialog(Shell parentShell, IAdaptable rootElement, String message) { - super(parentShell, ExternalToolsUIMessages.getString("FileSelectionDialog.Choose_Location_1"), null, message, MessageDialog.NONE, new String[] { ExternalToolsUIMessages.getString("FileSelectionDialog.Ok_2"), ExternalToolsUIMessages.getString("FileSelectionDialog.Cancel_3")}, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - root = rootElement; - setShellStyle(getShellStyle() | SWT.RESIZE); - } - - /** - * Limits the files displayed in this dialog to files matching the given - * pattern. The string can be a filename or a regular expression containing - * '*' for any series of characters or '?' for any single character. - * - * @param pattern - * a pattern used to filter the displayed files or <code>null</code> - * to display all files. If a pattern is supplied, only files - * whose names match the given pattern will be available for - * selection. - * @param ignoreCase - * if true, case is ignored. If the pattern argument is <code>null</code>, - * this argument is ignored. - */ - public void setFileFilter(String pattern, boolean ignoreCase) { - if (pattern != null) { - stringMatcher = new StringMatcher(pattern, ignoreCase, false); - } else { - stringMatcher = null; - } - } - - /* - * (non-Javadoc) Method declared in Window. - */ - protected void configureShell(Shell shell) { - super.configureShell(shell); - WorkbenchHelp.setHelp( - shell, - IExternalToolsHelpContextIds.FILE_SELECTION_DIALOG); - } - - protected void createButtonsForButtonBar(Composite parent) { - super.createButtonsForButtonBar(parent); - initializeDialog(); - } - - /* - * (non-Javadoc) Method declared on Dialog. - */ - protected Control createDialogArea(Composite parent) { - // page group - Composite composite = (Composite) super.createDialogArea(parent); - - //create the input element, which has the root resource - //as its only child - selectionGroup = - new TreeAndListGroup( - composite, - root, - getResourceProvider( - IResource.FOLDER | IResource.PROJECT | IResource.ROOT), - new WorkbenchLabelProvider(), - getResourceProvider(IResource.FILE), - new WorkbenchLabelProvider(), - SWT.NONE, - // since this page has no other significantly-sized - // widgets we need to hardcode the combined widget's - // size, otherwise it will open too small - SIZING_SELECTION_WIDGET_WIDTH, SIZING_SELECTION_WIDGET_HEIGHT, - allowMultiselection); - - composite.addControlListener(new ControlListener() { - public void controlMoved(ControlEvent e) { - } - public void controlResized(ControlEvent e) { - //Also try and reset the size of the columns as appropriate - TableColumn[] columns = - selectionGroup.getListTable().getColumns(); - for (int i = 0; i < columns.length; i++) { - columns[i].pack(); - } - } - }); - - return composite; - } - /** - * Returns a content provider for <code>IResource</code> s that returns - * only children of the given resource type. - */ - private ITreeContentProvider getResourceProvider(final int resourceType) { - return new WorkbenchContentProvider() { - public Object[] getChildren(Object o) { - if (o instanceof IContainer) { - IResource[] members = null; - try { - members = ((IContainer) o).members(); - List accessibleMembers = new ArrayList(members.length); - for (int i = 0; i < members.length; i++) { - IResource resource = members[i]; - if (resource.isAccessible()) { - accessibleMembers.add(resource); - } - } - members = - (IResource[]) accessibleMembers.toArray( - new IResource[accessibleMembers.size()]); - } catch (CoreException e) { - //just return an empty set of children - return new Object[0]; - } - - //filter out the desired resource types - ArrayList results = new ArrayList(); - for (int i = 0; i < members.length; i++) { - //And the test bits with the resource types to see if - // they are what we want - if ((members[i].getType() & resourceType) > 0) { - if (members[i].getType() == IResource.FILE - && stringMatcher != null - && !stringMatcher.match(members[i].getName())) { - continue; - } - results.add(members[i]); - } - } - return results.toArray(); - } - - return new Object[0]; - } - }; - } - /** - * Initializes this dialog's controls. - */ - private void initializeDialog() { - selectionGroup - .addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - getButton(IDialogConstants.OK_ID).setEnabled( - !selectionGroup.getListTableSelection().isEmpty()); - } - }); - selectionGroup.addDoubleClickListener(new IDoubleClickListener() { - public void doubleClick(DoubleClickEvent event) { - buttonPressed(IDialogConstants.OK_ID); - } - }); - - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - - /** - * Returns the file the user chose or <code>null</code> if none. - */ - public IStructuredSelection getResult() { - return result; - } - - protected void buttonPressed(int buttonId) { - if (buttonId == IDialogConstants.OK_ID) { - result= selectionGroup.getListTableSelection(); - } - super.buttonPressed(buttonId); - } - /** - * Sets whether this dialog will allow multi-selection. - * Must be called before <code>open</code> - * @param allowMultiselection whether to allow multi-selection in the dialog - */ - public void setAllowMultiselection(boolean allowMultiselection) { - this.allowMultiselection= allowMultiselection; - } -}
\ No newline at end of file |