1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpeclipse / obfuscator / export / WizardObfuscatorResourceExportPage1.java
diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/obfuscator/export/WizardObfuscatorResourceExportPage1.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/obfuscator/export/WizardObfuscatorResourceExportPage1.java
deleted file mode 100644 (file)
index 276c8e5..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are 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:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package net.sourceforge.phpeclipse.obfuscator.export;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.dialogs.WizardExportResourcesPage;
-
-/**
- * Page 1 of the base resource export-to-file-system Wizard
- */
-/* package */
-class WizardObfuscatorResourceExportPage1 extends WizardExportResourcesPage
-               implements Listener {
-
-       // widgets
-       private Combo destinationNameField;
-
-       private Button destinationBrowseButton;
-
-       protected Button overwriteExistingFilesCheckbox;
-
-       // protected Button createDirectoryStructureButton;
-       // protected Button createSelectionOnlyButton;
-
-       // constants
-       private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
-       // dialog store id constants
-       private static final String STORE_DESTINATION_NAMES_ID = "WizardObfuscatorResourceExportPage1.STORE_DESTINATION_NAMES_ID"; //$NON-NLS-1$
-
-       private static final String STORE_OVERWRITE_EXISTING_FILES_ID = "WizardObfuscatorResourceExportPage1.STORE_OVERWRITE_EXISTING_FILES_ID"; //$NON-NLS-1$
-       // private static final String STORE_CREATE_STRUCTURE_ID =
-       // "WizardObfuscatorResourceExportPage1.STORE_CREATE_STRUCTURE_ID";
-       // //$NON-NLS-1$
-
-       // messages
-       private static final String SELECT_DESTINATION_MESSAGE = ObfuscatorExportMessages
-                       .getString("FileExport.selectDestinationMessage"); //$NON-NLS-1$
-
-       private static final String SELECT_DESTINATION_TITLE = ObfuscatorExportMessages
-                       .getString("FileExport.selectDestinationTitle"); //$NON-NLS-1$
-
-       /**
-        * Create an instance of this class
-        */
-       protected WizardObfuscatorResourceExportPage1(String name,
-                       IStructuredSelection selection) {
-               super(name, selection);
-       }
-
-       /**
-        * Create an instance of this class
-        */
-       public WizardObfuscatorResourceExportPage1(IStructuredSelection selection) {
-               this("fileSystemExportPage1", selection); //$NON-NLS-1$
-               setTitle(ObfuscatorExportMessages
-                               .getString("ObfuscatorTransfer.fileSystemTitle")); //$NON-NLS-1$
-               setDescription(ObfuscatorExportMessages
-                               .getString("FileExport.exportLocalFileSystem")); //$NON-NLS-1$
-       }
-
-       /**
-        * Add the passed value to self's destination widget's history
-        * 
-        * @param value
-        *            java.lang.String
-        */
-       protected void addDestinationItem(String value) {
-               destinationNameField.add(value);
-       }
-
-       /**
-        * (non-Javadoc) Method declared on IDialogPage.
-        */
-       public void createControl(Composite parent) {
-               super.createControl(parent);
-               giveFocusToDestination();
-               // WorkbenchHelp.setHelp(
-               // getControl(),
-               // IDataTransferHelpContextIds.FILE_SYSTEM_EXPORT_WIZARD_PAGE);
-       }
-
-       /**
-        * Create the export destination specification widgets
-        * 
-        * @param parent
-        *            org.eclipse.swt.widgets.Composite
-        */
-       protected void createDestinationGroup(Composite parent) {
-
-               Font font = parent.getFont();
-               // destination specification group
-               Composite destinationSelectionGroup = new Composite(parent, SWT.NONE);
-               GridLayout layout = new GridLayout();
-               layout.numColumns = 3;
-               destinationSelectionGroup.setLayout(layout);
-               destinationSelectionGroup.setLayoutData(new GridData(
-                               GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-               destinationSelectionGroup.setFont(font);
-
-               Label destinationLabel = new Label(destinationSelectionGroup, SWT.NONE);
-               destinationLabel.setText(getDestinationLabel());
-               destinationLabel.setFont(font);
-
-               // destination name entry field
-               destinationNameField = new Combo(destinationSelectionGroup, SWT.SINGLE
-                               | SWT.BORDER);
-               destinationNameField.addListener(SWT.Modify, this);
-               destinationNameField.addListener(SWT.Selection, this);
-               GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                               | GridData.GRAB_HORIZONTAL);
-               data.widthHint = SIZING_TEXT_FIELD_WIDTH;
-               destinationNameField.setLayoutData(data);
-               destinationNameField.setFont(font);
-
-               // destination browse button
-               destinationBrowseButton = new Button(destinationSelectionGroup,
-                               SWT.PUSH);
-               destinationBrowseButton.setText(ObfuscatorExportMessages
-                               .getString("ObfuscatorTransfer.browse")); //$NON-NLS-1$
-               destinationBrowseButton.addListener(SWT.Selection, this);
-               destinationBrowseButton.setFont(font);
-               setButtonLayoutData(destinationBrowseButton);
-
-               new Label(parent, SWT.NONE); // vertical spacer
-       }
-
-       /**
-        * Create the buttons in the options group.
-        */
-
-       protected void createOptionsGroupButtons(Group optionsGroup) {
-
-               Font font = optionsGroup.getFont();
-               createOverwriteExisting(optionsGroup, font);
-
-               // createDirectoryStructureOptions(optionsGroup, font);
-       }
-
-       /**
-        * Create the buttons for the group that determine if the entire or selected
-        * directory structure should be created.
-        * 
-        * @param optionsGroup
-        * @param font
-        */
-       // protected void createDirectoryStructureOptions(
-       // Group optionsGroup,
-       // Font font) {
-       // // create directory structure radios
-       // createDirectoryStructureButton =
-       // new Button(optionsGroup, SWT.RADIO | SWT.LEFT);
-       // createDirectoryStructureButton.setText(ObfuscatorExportMessages.getString("FileExport.createDirectoryStructure"));
-       // //$NON-NLS-1$
-       // createDirectoryStructureButton.setSelection(false);
-       // createDirectoryStructureButton.setFont(font);
-       //
-       // // create directory structure radios
-       // createSelectionOnlyButton =
-       // new Button(optionsGroup, SWT.RADIO | SWT.LEFT);
-       // createSelectionOnlyButton.setText(
-       // ObfuscatorExportMessages.getString(
-       // "FileExport.createSelectedDirectories"));//$NON-NLS-1$
-       // createSelectionOnlyButton.setSelection(true);
-       // createSelectionOnlyButton.setFont(font);
-       // }
-       /**
-        * Create the button for checking if we should ask if we are going to
-        * overwrite existing files.
-        * 
-        * @param optionsGroup
-        * @param font
-        */
-       protected void createOverwriteExisting(Group optionsGroup, Font font) {
-               // overwrite... checkbox
-               overwriteExistingFilesCheckbox = new Button(optionsGroup, SWT.CHECK
-                               | SWT.LEFT);
-               overwriteExistingFilesCheckbox.setText(ObfuscatorExportMessages
-                               .getString("ExportFile.overwriteExisting")); //$NON-NLS-1$
-               overwriteExistingFilesCheckbox.setFont(font);
-       }
-
-       /**
-        * Attempts to ensure that the specified directory exists on the local file
-        * system. Answers a boolean indicating success.
-        * 
-        * @return boolean
-        * @param directory
-        *            java.io.File
-        */
-       protected boolean ensureDirectoryExists(File directory) {
-               if (!directory.exists()) {
-                       if (!queryYesNoQuestion(ObfuscatorExportMessages
-                                       .getString("ObfuscatorTransfer.createTargetDirectory"))) //$NON-NLS-1$
-                               return false;
-
-                       if (!directory.mkdirs()) {
-                               displayErrorDialog(ObfuscatorExportMessages
-                                               .getString("ObfuscatorTransfer.directoryCreationError")); //$NON-NLS-1$
-                               giveFocusToDestination();
-                               return false;
-                       }
-               }
-
-               return true;
-       }
-
-       /**
-        * If the target for export does not exist then attempt to create it. Answer
-        * a boolean indicating whether the target exists (ie.- if it either
-        * pre-existed or this method was able to create it)
-        * 
-        * @return boolean
-        */
-       protected boolean ensureTargetIsValid(File targetDirectory) {
-               if (targetDirectory.exists() && !targetDirectory.isDirectory()) {
-                       displayErrorDialog(ObfuscatorExportMessages
-                                       .getString("FileExport.directoryExists")); //$NON-NLS-1$
-                       giveFocusToDestination();
-                       return false;
-               }
-
-               return ensureDirectoryExists(targetDirectory);
-       }
-
-       /**
-        * Set up and execute the passed Operation. Answer a boolean indicating
-        * success.
-        * 
-        * @return boolean
-        */
-       protected boolean executeExportOperation(ObfuscatorExportOperation op) {
-               // op.setCreateLeadupStructure(
-               // createDirectoryStructureButton.getSelection());
-               op.setOverwriteFiles(overwriteExistingFilesCheckbox.getSelection());
-
-               try {
-                       getContainer().run(true, true, op);
-               } catch (InterruptedException e) {
-                       return false;
-               } catch (InvocationTargetException e) {
-                       displayErrorDialog(e.getTargetException());
-                       return false;
-               }
-
-               IStatus status = op.getStatus();
-               if (!status.isOK()) {
-                       ErrorDialog.openError(getContainer().getShell(),
-                                       ObfuscatorExportMessages
-                                                       .getString("ObfuscatorTransfer.exportProblems"), //$NON-NLS-1$
-                                       null, // no special message
-                                       status);
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
-        * The Finish button was pressed. Try to do the required work now and answer
-        * a boolean indicating success. If false is returned then the wizard will
-        * not close.
-        * 
-        * @return boolean
-        */
-       public boolean finish() {
-               if (!ensureTargetIsValid(new File(getDestinationValue())))
-                       return false;
-
-               List resourcesToExport = getWhiteCheckedResources();
-
-               // Save dirty editors if possible but do not stop if not all are saved
-               saveDirtyEditors();
-               // about to invoke the operation so save our state
-               saveWidgetValues();
-
-               if (resourcesToExport.size() > 0)
-                       return executeExportOperation(new ObfuscatorExportOperation(null,
-                                       resourcesToExport, getDestinationValue(), this));
-
-               MessageDialog.openInformation(getContainer().getShell(),
-                               ObfuscatorExportMessages
-                                               .getString("ObfuscatorTransfer.information"), //$NON-NLS-1$
-                               ObfuscatorExportMessages.getString("FileExport.noneSelected")); //$NON-NLS-1$
-
-               return false;
-       }
-
-       /**
-        * Answer the string to display in self as the destination type
-        * 
-        * @return java.lang.String
-        */
-       protected String getDestinationLabel() {
-               return ObfuscatorExportMessages.getString("FileExport.toDirectory"); //$NON-NLS-1$
-       }
-
-       /**
-        * Answer the contents of self's destination specification widget
-        * 
-        * @return java.lang.String
-        */
-       protected String getDestinationValue() {
-               return destinationNameField.getText().trim();
-       }
-
-       /**
-        * Set the current input focus to self's destination entry field
-        */
-       protected void giveFocusToDestination() {
-               destinationNameField.setFocus();
-       }
-
-       /**
-        * Open an appropriate destination browser so that the user can specify a
-        * source to import from
-        */
-       protected void handleDestinationBrowseButtonPressed() {
-               DirectoryDialog dialog = new DirectoryDialog(getContainer().getShell(),
-                               SWT.SAVE);
-               dialog.setMessage(SELECT_DESTINATION_MESSAGE);
-               dialog.setText(SELECT_DESTINATION_TITLE);
-               dialog.setFilterPath(getDestinationValue());
-               String selectedDirectoryName = dialog.open();
-
-               if (selectedDirectoryName != null) {
-                       setErrorMessage(null);
-                       setDestinationValue(selectedDirectoryName);
-               }
-       }
-
-       /**
-        * Handle all events and enablements for widgets in this page
-        * 
-        * @param e
-        *            Event
-        */
-       public void handleEvent(Event e) {
-               Widget source = e.widget;
-
-               if (source == destinationBrowseButton)
-                       handleDestinationBrowseButtonPressed();
-
-               updatePageCompletion();
-       }
-
-       /**
-        * Hook method for saving widget values for restoration by the next instance
-        * of this class.
-        */
-       protected void internalSaveWidgetValues() {
-               // update directory names history
-               IDialogSettings settings = getDialogSettings();
-               if (settings != null) {
-                       String[] directoryNames = settings
-                                       .getArray(STORE_DESTINATION_NAMES_ID);
-                       if (directoryNames == null)
-                               directoryNames = new String[0];
-
-                       directoryNames = addToHistory(directoryNames, getDestinationValue());
-                       settings.put(STORE_DESTINATION_NAMES_ID, directoryNames);
-
-                       // options
-                       settings.put(STORE_OVERWRITE_EXISTING_FILES_ID,
-                                       overwriteExistingFilesCheckbox.getSelection());
-
-                       // settings.put(
-                       // STORE_CREATE_STRUCTURE_ID,
-                       // createDirectoryStructureButton.getSelection());
-
-               }
-       }
-
-       /**
-        * Hook method for restoring widget values to the values that they held last
-        * time this wizard was used to completion.
-        */
-       protected void restoreWidgetValues() {
-               IDialogSettings settings = getDialogSettings();
-               if (settings != null) {
-                       String[] directoryNames = settings
-                                       .getArray(STORE_DESTINATION_NAMES_ID);
-                       if (directoryNames == null)
-                               return; // ie.- no settings stored
-
-                       // destination
-                       setDestinationValue(directoryNames[0]);
-                       for (int i = 0; i < directoryNames.length; i++)
-                               addDestinationItem(directoryNames[i]);
-
-                       // options
-                       overwriteExistingFilesCheckbox.setSelection(settings
-                                       .getBoolean(STORE_OVERWRITE_EXISTING_FILES_ID));
-
-                       // boolean createDirectories =
-                       // settings.getBoolean(STORE_CREATE_STRUCTURE_ID);
-                       // createDirectoryStructureButton.setSelection(createDirectories);
-                       // createSelectionOnlyButton.setSelection(!createDirectories);
-               }
-       }
-
-       /**
-        * Set the contents of the receivers destination specification widget to the
-        * passed value
-        * 
-        */
-       protected void setDestinationValue(String value) {
-               destinationNameField.setText(value);
-       }
-
-       /**
-        * Answer a boolean indicating whether the receivers destination
-        * specification widgets currently all contain valid values.
-        */
-       protected boolean validateDestinationGroup() {
-               String destinationValue = getDestinationValue();
-               if (destinationValue.length() == 0) {
-                       setMessage(destinationEmptyMessage());
-                       return false;
-               }
-
-               String conflictingContainer = getConflictingContainerNameFor(destinationValue);
-               if (conflictingContainer == null)
-                       setErrorMessage(""); //$NON-NLS-1$
-               else {
-                       setErrorMessage(ObfuscatorExportMessages.format(
-                                       "FileExport.conflictingContainer", //$NON-NLS-1$
-                                       new Object[] { conflictingContainer }));
-                       giveFocusToDestination();
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
-        * Get the message used to denote an empty destination.
-        */
-       protected String destinationEmptyMessage() {
-               return ObfuscatorExportMessages
-                               .getString("FileExport.destinationEmpty"); //$NON-NLS-1$
-       }
-
-       /**
-        * Returns the name of a container with a location that encompasses
-        * targetDirectory. Returns null if there is no conflict.
-        * 
-        * @param targetDirectory
-        *            the path of the directory to check.
-        * @return the conflicting container name or <code>null</code>
-        */
-       protected String getConflictingContainerNameFor(String targetDirectory) {
-
-               IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-               IPath testPath = new Path(targetDirectory);
-
-               if (root.getFullPath().isPrefixOf(testPath))
-                       return ObfuscatorExportMessages.getString("FileExport.rootName"); //$NON-NLS-1$
-
-               IProject[] projects = root.getProjects();
-
-               for (int i = 0; i < projects.length; i++) {
-                       if (projects[i].getFullPath().isPrefixOf(testPath))
-                               return projects[i].getName();
-               }
-
-               return null;
-
-       }
-
-}