Created a separated 'externaltools' plugin
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / externaltools / variable / ResourceComponent.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/variable/ResourceComponent.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/externaltools/variable/ResourceComponent.java
deleted file mode 100644 (file)
index 143a6e6..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-package net.sourceforge.phpdt.externaltools.variable;
-
-/**********************************************************************
-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.model.ToolUtil;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-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.Group;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Visual component to edit the resource type variable
- * value.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- */
-public class ResourceComponent implements IVariableComponent {
-       private IGroupDialogPage page;
-       private boolean isValid = true;
-       
-       protected Group mainGroup;
-       protected Button selectedResourceButton;
-       protected Button specificResourceButton;
-       protected TreeViewer resourceList;
-       private IResource selectedResource;
-       
-       /**
-        * Creates the component
-        */
-       public ResourceComponent() {
-               super();
-       }
-
-       /* (non-Javadoc)
-        * Method declared on IVariableComponent.
-        */
-       public void createContents(Composite parent, String varTag, IGroupDialogPage page) {
-               this.page = page;
-               
-               // main composite
-               mainGroup = new Group(parent, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               layout.marginWidth = 0;
-               layout.marginHeight = 0;
-               layout.numColumns = 1;
-               GridData gridData = new GridData(GridData.FILL_BOTH);
-               mainGroup.setLayout(layout);
-               mainGroup.setLayoutData(gridData);
-               mainGroup.setFont(parent.getFont());
-               mainGroup.setText(ToolUtil.buildVariableTag(varTag, null));
-               
-               createSelectedResourceOption();
-               createSpecificResourceOption();
-               createResourceList();
-               
-               updateResourceListEnablement();
-       }
-
-       /**
-        * Creates the list of resources.
-        */
-       protected void createResourceList() {
-               Tree tree = new Tree(mainGroup, SWT.SINGLE | SWT.BORDER);
-               GridData data = new GridData(GridData.FILL_BOTH);
-               data.heightHint = tree.getItemHeight() * getInitialVisibleItemCount();
-               tree.setLayoutData(data);
-               tree.setFont(mainGroup.getFont());
-               
-               resourceList = new TreeViewer(tree);
-               resourceList.addSelectionChangedListener(new ISelectionChangedListener() {
-                       public void selectionChanged(SelectionChangedEvent event) {
-                               validateResourceListSelection();
-                               selectedResource= (IResource) ((IStructuredSelection)event.getSelection()).getFirstElement();
-                       }
-               });
-               resourceList.setContentProvider(new WorkbenchContentProvider());
-               resourceList.setLabelProvider(new WorkbenchLabelProvider());
-               resourceList.setInput(ResourcesPlugin.getWorkspace().getRoot());
-       }
-       
-       /**
-        * Creates the option button for using the selected
-        * resource.
-        */
-       protected void createSelectedResourceOption() {
-               selectedResourceButton = new Button(mainGroup, SWT.RADIO);
-               selectedResourceButton.setText(ExternalToolsModelMessages.getString("ResourceComponent.selectedResLabel")); //$NON-NLS-1$
-               GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               selectedResourceButton.setLayoutData(data);
-               selectedResourceButton.setFont(mainGroup.getFont());
-               selectedResourceButton.setSelection(true);
-       }
-       
-       /**
-        * Creates the option button for using a specific
-        * resource.
-        */
-       protected void createSpecificResourceOption() {
-               specificResourceButton = new Button(mainGroup, SWT.RADIO);
-               specificResourceButton.setText(ExternalToolsModelMessages.getString("ResourceComponent.specificResLabel")); //$NON-NLS-1$
-               GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               specificResourceButton.setLayoutData(data);
-               specificResourceButton.setFont(mainGroup.getFont());
-               specificResourceButton.setSelection(false);
-               
-               specificResourceButton.addSelectionListener(new SelectionAdapter() {
-                       public void widgetSelected(SelectionEvent e) {
-                               updateResourceListEnablement();
-                       }
-               });
-       }
-       
-       /* (non-Javadoc)
-        * Method declared on IVariableComponent.
-        */
-       public Control getControl() {
-               return mainGroup;
-       }
-
-       /**
-        * Returns the dialog page this component is part of
-        */
-       protected final IGroupDialogPage getPage() {
-               return page;
-       }
-       
-       /* (non-Javadoc)
-        * Method declared on IVariableComponent.
-        */
-       public String getVariableValue() {
-               if (selectedResourceButton != null && selectedResourceButton.getSelection())
-                       return null;
-               
-               if (resourceList != null) {
-                       if (selectedResource != null)
-                               return selectedResource.getFullPath().toString();
-               }
-               
-               return null;
-       }
-
-       /**
-        * Returns the number of items to be visible in the
-        * resource list. This will determine the initial height.
-        */
-       protected int getInitialVisibleItemCount() {
-               return 10;
-       }
-       
-       /* (non-Javadoc)
-        * Method declared on IVariableComponent.
-        */
-       public boolean isValid() {
-               return isValid;
-       }
-
-       /**
-        * Sets whether the component's values are all valid.
-        * Updates the components's page valid state. No action
-        * taken if new valid state same as current one.
-        * 
-        * @param isValid <code>true</code> if all values valid,
-        *              <code>false</code> otherwise
-        */
-       protected final void setIsValid(boolean isValid) {
-               if (this.isValid != isValid) {
-                       this.isValid = isValid;
-                       this.page.updateValidState();
-               }
-       }
-       
-       /**
-        * Updates the enablement of the resource list if needed
-        */
-       protected void updateResourceListEnablement() {
-               if (specificResourceButton != null && resourceList != null)
-                       resourceList.getTree().setEnabled(specificResourceButton.getSelection());
-       }
-       
-       /* (non-Javadoc)
-        * Method declared on IVariableComponent.
-        */
-       public void setVariableValue(String varValue) {
-               if (varValue == null || varValue.length() == 0) {
-                       if (selectedResourceButton != null)
-                               selectedResourceButton.setSelection(true);
-                       if (specificResourceButton != null)
-                               specificResourceButton.setSelection(false);
-                       if (resourceList != null)
-                               resourceList.getTree().setEnabled(false);
-               } else {
-                       if (selectedResourceButton != null)
-                               selectedResourceButton.setSelection(false);
-                       if (specificResourceButton != null)
-                               specificResourceButton.setSelection(true);
-                       if (resourceList != null) {
-                               resourceList.getTree().setEnabled(true);
-                               IResource member = ResourcesPlugin.getWorkspace().getRoot().findMember(varValue);
-                               if (member != null)
-                                       resourceList.setSelection(new StructuredSelection(member), true);
-                               else
-                                       resourceList.setSelection(StructuredSelection.EMPTY);
-                       }
-               }
-       }
-       
-       /* (non-Javadoc)
-        * Method declared on IVariableComponent.
-        */
-       public void validate() {
-               if (specificResourceButton != null && specificResourceButton.getSelection()) {
-                       validateResourceListSelection();
-               }
-
-               getPage().setMessage(null, IMessageProvider.NONE);
-               setIsValid(true);
-       }
-
-       /**
-        * Returns whether that the resource list selection is valid.
-        * If the list was not created, returns <code>true</code>.
-        * 
-        * @return <code>true</code> to continue validating other
-        *      fields, <code>false</code> to stop.
-        */
-       protected boolean validateResourceListSelection() {
-               if (resourceList == null)
-                       return true;
-
-               if (resourceList.getSelection().isEmpty()) {
-                       getPage().setMessage(ExternalToolsModelMessages.getString("ResourceComponent.selectionRequired"), IMessageProvider.WARNING); //$NON-NLS-1$
-                       setIsValid(false);
-                       return false;
-               }
-               
-               return true;
-       }
-}