Created a separated 'externaltools' plugin
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / externaltools / internal / dialog / ExternalToolVariableForm.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/internal/dialog/ExternalToolVariableForm.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/internal/dialog/ExternalToolVariableForm.java
deleted file mode 100644 (file)
index 5a9de70..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-package net.sourceforge.phpdt.externaltools.internal.dialog;
-
-/**********************************************************************
-Copyright (c) 2002 IBM Corp. and others. All rights reserved.
-This file is 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:
-**********************************************************************/
-
-import net.sourceforge.phpdt.externaltools.group.IGroupDialogPage;
-import net.sourceforge.phpdt.externaltools.internal.registry.ExternalToolVariable;
-import net.sourceforge.phpdt.externaltools.model.ToolUtil;
-import net.sourceforge.phpdt.externaltools.variable.IVariableComponent;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-
-/**
- * Visual grouping of controls that allows the user to
- * select a variable and configure it with extra
- * information.
- */
-public class ExternalToolVariableForm {
-       private static final int VISIBLE_ITEM_COUNT = 9;
-       
-       private String variableListLabelText;
-       private ExternalToolVariable[] variables;
-       private IVariableComponent[] components;
-       private IGroupDialogPage page;
-       
-       private Label variableListLabel;
-       private List variableList;
-       private Composite variableComposite;
-       private StackLayout variableLayout;
-       private int activeComponentIndex = -1;
-       
-       /**
-        * Creates the visual grouping
-        * 
-        * @param variableListLabelText the label text to use for identifying the list of variables
-        * @param variables the collection of variables to display to the user
-        */
-       public ExternalToolVariableForm(String variableListLabelText, ExternalToolVariable[] variables) {
-               super();
-               this.variableListLabelText = variableListLabelText;
-               this.variables = variables;
-               this.components = new IVariableComponent[variables.length];
-       }
-
-       public Composite createContents(Composite parent, IGroupDialogPage page) {
-               Font font = parent.getFont();
-               
-               this.page = page;
-               
-               Composite mainComposite = new Composite(parent, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               layout.marginWidth = 0;
-               layout.marginHeight = 0;
-               layout.numColumns = 1;
-               GridData data = new GridData(GridData.FILL_BOTH);
-               mainComposite.setLayout(layout);
-               mainComposite.setLayoutData(data);
-
-               variableListLabel = new Label(mainComposite, SWT.NONE);
-               variableListLabel.setText(variableListLabelText);
-               data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               data.horizontalSpan = 1;
-               variableListLabel.setLayoutData(data);
-               variableListLabel.setFont(font);
-               
-               variableList = new List(mainComposite, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-               data = new GridData(GridData.FILL_HORIZONTAL);
-               data.heightHint = variableList.getItemHeight() * VISIBLE_ITEM_COUNT;
-               variableList.setLayoutData(data);
-               variableList.setFont(font);
-
-               variableComposite = new Composite(mainComposite, SWT.NONE);
-               variableLayout = new StackLayout();
-               variableLayout.marginWidth = 0;
-               variableLayout.marginHeight = 0;
-               data = new GridData(GridData.FILL_BOTH);
-               variableComposite.setLayout(variableLayout);
-               variableComposite.setLayoutData(data);
-               variableComposite.setFont(font);
-               
-               createVariableComponents(data);
-               
-               populateVariableList();
-               
-               variableList.addSelectionListener(new SelectionAdapter() {
-                       public void widgetSelected(SelectionEvent e) {
-                               updateVariableComposite(null, false);
-                       }
-               });
-               
-               setEnabled(true);
-               return mainComposite;
-       }
-       
-       /**
-        * Creates the visual component for each variable
-        * and determine the initial size so the form
-        * can be layout properly.
-        */
-       private void createVariableComponents(GridData data) {
-               for (int i = 0; i < variables.length; i++) {
-                       ExternalToolVariable var = variables[i];
-                       components[i] = var.getComponent();
-                       components[i].createContents(variableComposite, var.getTag(), page);
-                       Control control = components[i].getControl();
-                       if (control != null) {
-                               Point newSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-                               data.widthHint = Math.max(newSize.x, data.widthHint);
-                               data.heightHint = Math.max(newSize.y, data.heightHint);
-                       }
-               }
-       }
-       
-       /**
-        * Returns the formatted variable or <code>null</code> if
-        * none selected.
-        */
-       public String getSelectedVariable() {
-               if (activeComponentIndex != -1) {
-                       String varValue = components[activeComponentIndex].getVariableValue();
-                       return ToolUtil.buildVariableTag(variables[activeComponentIndex].getTag(), varValue);
-               }
-
-               return null;
-       }
-
-       /**
-        * Returns whether the current variable selection is
-        * valid, including the selected variable value.
-        */
-       public boolean isValid() {
-               if (activeComponentIndex != -1)
-                       return components[activeComponentIndex].isValid();
-               
-               return true;
-       }
-
-       private void populateVariableList() {
-               String[] items = new String[variables.length];
-               StringBuffer buffer = new StringBuffer(80);
-               for (int i = 0; i < variables.length; i++) {
-                       ToolUtil.buildVariableTag(variables[i].getTag(), null, buffer);
-                       buffer.append(" - "); //$NON-NLS-1$
-                       buffer.append(variables[i].getDescription());
-                       items[i] = buffer.toString();
-                       buffer.setLength(0);
-               }
-               variableList.setItems(items);
-       }
-
-       public void selectVariable(String varName, String varValue) {   
-               if (varName != null && varName.length() > 0) {
-                       for (int i = 0; i < variables.length; i++) {
-                               if (varName.equals(variables[i].getTag())) {
-                                       variableList.select(i);
-                                       updateVariableComposite(varValue, true);
-                                       return;
-                               }
-                       }
-               }
-               
-               variableList.deselectAll();
-               updateVariableComposite(varValue, false);
-       }
-       
-       private void setComponentVisible(int index) {
-               if (index == -1)
-                       variableLayout.topControl = null;
-               else
-                       variableLayout.topControl = components[index].getControl();
-               variableComposite.layout();
-       }
-       
-       /**
-        * Enables or disables the variable form controls.
-        */
-       public void setEnabled(boolean enabled) {
-               variableListLabel.setEnabled(enabled);
-               variableList.setEnabled(enabled);
-               if (enabled && variableList.getSelection().length == 0) {
-                       if (variableList.getItemCount() > 0) {
-                               variableList.select(0);
-                               activeComponentIndex= 0;
-                       }
-               }
-               variableComposite.setVisible(enabled);
-       }
-       
-       private void updateVariableComposite(String value, boolean setValue) {
-               activeComponentIndex = variableList.getSelectionIndex();
-               setComponentVisible(activeComponentIndex);
-               if (activeComponentIndex != -1 && setValue)
-                       components[activeComponentIndex].setVariableValue(value);
-       }
-
-       /**
-        * Validates the current variable selection is and
-        * its value are acceptable.
-        */
-       public void validate() {
-               if (activeComponentIndex != -1)
-                       components[activeComponentIndex].validate();
-       }
-}