+++ /dev/null
-package net.sourceforge.phpdt.externaltools.internal.registry;
-
-/**********************************************************************
-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.model.ExternalToolsModelMessages;
-import net.sourceforge.phpdt.externaltools.variable.IVariableComponent;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * Abtract representation of the different variables.
- */
-public abstract class ExternalToolVariable {
- private static final IVariableComponent defaultComponent = new DefaultVariableComponent(false);
-
- private String tag;
- private String description;
- private IConfigurationElement element;
-
- /**
- * Creates an variable definition
- *
- * @param tag the variable tag
- * @param description a short description of what the variable will expand to
- * @param element the configuration element
- */
- /*package*/ ExternalToolVariable(String tag, String description, IConfigurationElement element) {
- super();
- this.tag = tag;
- this.description = description;
- this.element = element;
- }
-
- /**
- * Creates an instance of the class specified by
- * the given element attribute name. Can return
- * <code>null</code> if none or if problems creating
- * the instance.
- */
- protected final Object createObject(String attributeName) {
- try {
- return element.createExecutableExtension(attributeName);
- } catch (CoreException e) {
- PHPeclipsePlugin.getDefault().getLog().log(e.getStatus());
- return null;
- }
- }
-
- /**
- * Returns the component class to allow
- * visual editing of the variable's value.
- */
- public final IVariableComponent getComponent() {
- String className = element.getAttribute(ExternalToolVariableRegistry.TAG_COMPONENT_CLASS);
- if (className == null || className.trim().length() == 0)
- return defaultComponent;
-
- Object component = createObject(ExternalToolVariableRegistry.TAG_COMPONENT_CLASS);
- if (component == null)
- return new DefaultVariableComponent(true);
- else
- return (IVariableComponent)component;
- }
-
- /**
- * Returns the variable's description
- */
- public final String getDescription() {
- return description;
- }
-
- /**
- * Returns the variable's tag
- */
- public final String getTag() {
- return tag;
- }
-
-
- /**
- * Default variable component implementation which does not
- * allow variable value editing visually.
- */
- private static final class DefaultVariableComponent implements IVariableComponent {
- private boolean showError = false;
- private Label message = null;
-
- public DefaultVariableComponent(boolean showError) {
- super();
- this.showError = showError;
- }
-
- /* (non-Javadoc)
- * Method declared on IVariableComponent.
- */
- public Control getControl() {
- return message;
- }
-
- /* (non-Javadoc)
- * Method declared on IVariableComponent.
- */
- public void createContents(Composite parent, String varTag, IGroupDialogPage page) {
- if (showError) {
- message = new Label(parent, SWT.NONE);
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- message.setLayoutData(data);
- message.setFont(parent.getFont());
- message.setText(ExternalToolsModelMessages.getString("ExternalToolVariable.componentErrorMessage")); //$NON-NLS-1$
- message.setForeground(JFaceColors.getErrorText(message.getDisplay()));
- }
- }
-
- /* (non-Javadoc)
- * Method declared on IVariableComponent.
- */
- public String getVariableValue() {
- return null;
- }
-
- /* (non-Javadoc)
- * Method declared on IVariableComponent.
- */
- public boolean isValid() {
- return true;
- }
-
- /* (non-Javadoc)
- * Method declared on IVariableComponent.
- */
- public void setVariableValue(String varValue) {
- }
-
- /* (non-Javadoc)
- * Method declared on IVariableComponent.
- */
- public void validate() {
- }
- }
-}