X-Git-Url: http://secure.phpeclipse.com 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 index 5a9de70..0000000 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/internal/dialog/ExternalToolVariableForm.java +++ /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 null 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(); - } -}