X-Git-Url: http://secure.phpeclipse.com 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 index 276c8e5..0000000 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/obfuscator/export/WizardObfuscatorResourceExportPage1.java +++ /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 null - */ - 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; - - } - -}