diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/MultipleInputDialog.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/MultipleInputDialog.java | 339 |
1 files changed, 0 insertions, 339 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/MultipleInputDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/MultipleInputDialog.java deleted file mode 100644 index 51c6753b4..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/MultipleInputDialog.java +++ /dev/null @@ -1,339 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui; - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.debug.internal.core.IInternalDebugCoreConstants; -import org.eclipse.debug.ui.StringVariableSelectionDialog; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -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.DirectoryDialog; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; - -public class MultipleInputDialog extends Dialog { - protected static final String FIELD_NAME = "FIELD_NAME"; //$NON-NLS-1$ - protected static final int TEXT = 100; - protected static final int BROWSE = 101; - protected static final int VARIABLE = 102; - - protected Composite panel; - - protected List fieldList = new ArrayList(); - protected List controlList = new ArrayList(); - protected List validators = new ArrayList(); - protected Map valueMap = new HashMap(); - - private String title; - - - - public MultipleInputDialog(Shell shell, String title) { - super(shell); - this.title = title; - setShellStyle(getShellStyle() | SWT.RESIZE); - } - - /* (non-Javadoc) - * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) - */ - protected void configureShell(Shell shell) { - super.configureShell(shell); - if (title != null) { - shell.setText(title); - } - - } - - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite) - */ - protected Control createButtonBar(Composite parent) { - Control bar = super.createButtonBar(parent); - validateFields(); - return bar; - } - - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) - */ - protected Control createDialogArea(Composite parent) { - Composite container = (Composite)super.createDialogArea(parent); - container.setLayout(new GridLayout(2, false)); - container.setLayoutData(new GridData(GridData.FILL_BOTH)); - - panel = new Composite(container, SWT.NONE); - GridLayout layout = new GridLayout(2, false); - panel.setLayout(layout); - panel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - for (Iterator i = fieldList.iterator(); i.hasNext();) { - FieldSummary field = (FieldSummary)i.next(); - switch(field.type) { - case TEXT: - createTextField(field.name, field.initialValue, field.allowsEmpty); - break; - case BROWSE: - createBrowseField(field.name, field.initialValue, field.allowsEmpty); - break; - case VARIABLE: - createVariablesField(field.name, field.initialValue, field.allowsEmpty); - break; - } - } - - fieldList = null; // allow it to be gc'd - Dialog.applyDialogFont(container); - return container; - } - - public void addBrowseField(String labelText, String initialValue, boolean allowsEmpty) { - fieldList.add(new FieldSummary(BROWSE, labelText, initialValue, allowsEmpty)); - } - public void addTextField(String labelText, String initialValue, boolean allowsEmpty) { - fieldList.add(new FieldSummary(TEXT, labelText, initialValue, allowsEmpty)); - } - public void addVariablesField(String labelText, String initialValue, boolean allowsEmpty) { - fieldList.add(new FieldSummary(VARIABLE, labelText, initialValue, allowsEmpty)); - } - - protected void createTextField(String labelText, String initialValue, boolean allowEmpty) { - Label label = new Label(panel, SWT.NONE); - label.setText(labelText); - label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - - final Text text = new Text(panel, SWT.SINGLE | SWT.BORDER); - text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - text.setData(FIELD_NAME, labelText); - - // make sure rows are the same height on both panels. - label.setSize(label.getSize().x, text.getSize().y); - - if (initialValue != null) { - text.setText(initialValue); - } - - if (!allowEmpty) { - validators.add(new Validator() { - public boolean validate() { - return !text.getText().equals(IInternalDebugCoreConstants.EMPTY_STRING); - } - }); - text.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent e) { - validateFields(); - } - }); - } - - controlList.add(text); - } - - protected void createBrowseField(String labelText, String initialValue, boolean allowEmpty) { - Label label = new Label(panel, SWT.NONE); - label.setText(labelText); - label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - - Composite comp = new Composite(panel, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.marginHeight=0; - layout.marginWidth=0; - comp.setLayout(layout); - comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - final Text text = new Text(comp, SWT.SINGLE | SWT.BORDER); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.widthHint = 200; - text.setLayoutData(data); - text.setData(FIELD_NAME, labelText); - - // make sure rows are the same height on both panels. - label.setSize(label.getSize().x, text.getSize().y); - - if (initialValue != null) { - text.setText(initialValue); - } - - if (!allowEmpty) { - validators.add(new Validator() { - public boolean validate() { - return !text.getText().equals(IInternalDebugCoreConstants.EMPTY_STRING); - } - }); - - text.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent e) { - validateFields(); - } - }); - } - - Button button = createButton(comp, IDialogConstants.IGNORE_ID, DebugUIMessages.MultipleInputDialog_6, false); - button.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - DirectoryDialog dialog = new DirectoryDialog(getShell()); - dialog.setMessage(DebugUIMessages.MultipleInputDialog_7); - String currentWorkingDir = text.getText(); - if (!currentWorkingDir.trim().equals(IInternalDebugCoreConstants.EMPTY_STRING)) { - File path = new File(currentWorkingDir); - if (path.exists()) { - dialog.setFilterPath(currentWorkingDir); - } - } - - String selectedDirectory = dialog.open(); - if (selectedDirectory != null) { - text.setText(selectedDirectory); - } - } - }); - - controlList.add(text); - - } - - - public void createVariablesField(String labelText, String initialValue, boolean allowEmpty) { - Label label = new Label(panel, SWT.NONE); - label.setText(labelText); - label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - - Composite comp = new Composite(panel, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.marginHeight=0; - layout.marginWidth=0; - comp.setLayout(layout); - comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - final Text text = new Text(comp, SWT.SINGLE | SWT.BORDER); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.widthHint = 200; - text.setLayoutData(data); - text.setData(FIELD_NAME, labelText); - - // make sure rows are the same height on both panels. - label.setSize(label.getSize().x, text.getSize().y); - - if (initialValue != null) { - text.setText(initialValue); - } - - if (!allowEmpty) { - validators.add(new Validator() { - public boolean validate() { - return !text.getText().equals(IInternalDebugCoreConstants.EMPTY_STRING); - } - }); - - text.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent e) { - validateFields(); - } - }); - } - - Button button = createButton(comp, IDialogConstants.IGNORE_ID, DebugUIMessages.MultipleInputDialog_8, false); - button.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - StringVariableSelectionDialog dialog = new StringVariableSelectionDialog(getShell()); - int code = dialog.open(); - if (code == IDialogConstants.OK_ID) { - String variable = dialog.getVariableExpression(); - if (variable != null) { - text.insert(variable); - } - } - } - }); - - controlList.add(text); - - } - - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#okPressed() - */ - protected void okPressed() { - for (Iterator i = controlList.iterator(); i.hasNext(); ) { - Control control = (Control)i.next(); - if (control instanceof Text) { - valueMap.put(control.getData(FIELD_NAME), ((Text)control).getText()); - } - } - controlList = null; - super.okPressed(); - } - - - /* (non-Javadoc) - * @see org.eclipse.jface.window.Window#open() - */ - public int open() { - applyDialogFont(panel); - return super.open(); - } - - public Object getValue(String key) { - return valueMap.get(key); - } - - public String getStringValue(String key) { - return (String) getValue(key); - } - - public void validateFields() { - for(Iterator i = validators.iterator(); i.hasNext(); ) { - Validator validator = (Validator) i.next(); - if (!validator.validate()) { - getButton(IDialogConstants.OK_ID).setEnabled(false); - return; - } - } - getButton(IDialogConstants.OK_ID).setEnabled(true); - } - - protected class FieldSummary { - int type; - String name; - String initialValue; - boolean allowsEmpty; - - public FieldSummary(int type, String name, String initialValue, boolean allowsEmpty) { - this.type = type; - this.name = name; - this.initialValue = initialValue; - this.allowsEmpty = allowsEmpty; - } - } - - protected class Validator { - boolean validate() { - return true; - } - } -} |