1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / util / ResourceSelector.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/ResourceSelector.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/ResourceSelector.java
new file mode 100644 (file)
index 0000000..42e78de
--- /dev/null
@@ -0,0 +1,96 @@
+package net.sourceforge.phpdt.internal.ui.util;
+
+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.Shell;
+import org.eclipse.swt.widgets.Text;
+
+public abstract class ResourceSelector {
+       protected final static String EMPTY_STRING = "";
+
+       protected Composite composite;
+
+       protected Button browseButton;
+
+       protected Text textField;
+
+       protected String browseDialogMessage = EMPTY_STRING;
+
+       protected String browseDialogTitle = EMPTY_STRING;
+
+       protected String validatedSelectionText = EMPTY_STRING;
+
+       public ResourceSelector(Composite parent) {
+               composite = new Composite(parent, SWT.NONE);
+               GridLayout compositeLayout = new GridLayout();
+               compositeLayout.marginWidth = 0;
+               compositeLayout.marginHeight = 0;
+               compositeLayout.numColumns = 2;
+               composite.setLayout(compositeLayout);
+
+               textField = new Text(composite, SWT.SINGLE | SWT.BORDER);
+               textField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+               textField.addModifyListener(new ModifyListener() {
+                       public void modifyText(ModifyEvent e) {
+                               validatedSelectionText = validateResourceSelection();
+                       }
+               });
+
+               browseButton = new Button(composite, SWT.PUSH);
+               browseButton.setText("Browse...");
+               browseButton.addSelectionListener(new SelectionAdapter() {
+                       public void widgetSelected(SelectionEvent e) {
+                               handleBrowseSelected();
+                       }
+               });
+       }
+
+       protected abstract void handleBrowseSelected();
+
+       protected abstract String validateResourceSelection();
+
+       protected Shell getShell() {
+               return composite.getShell();
+       }
+
+       public void setLayoutData(Object layoutData) {
+               composite.setLayoutData(layoutData);
+       }
+
+       public void addModifyListener(ModifyListener aListener) {
+               textField.addModifyListener(aListener);
+       }
+
+       public void setBrowseDialogMessage(String aMessage) {
+               browseDialogMessage = aMessage;
+       }
+
+       public void setBrowseDialogTitle(String aTitle) {
+               browseDialogTitle = aTitle;
+       }
+
+       public void setEnabled(boolean enabled) {
+               composite.setEnabled(enabled);
+               textField.setEnabled(enabled);
+               browseButton.setEnabled(enabled);
+       }
+
+       public String getSelectionText() {
+               return textField.getText();
+       }
+
+       public String getValidatedSelectionText() {
+               return validatedSelectionText;
+       }
+
+       public void setSelectionText(String newText) {
+               textField.setText(newText);
+       }
+}