plugins/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/projectimport/WrtProjectLocationWizardPage.java
author Eugene Ostroukhov <eugeneo@symbian.org>
Thu, 02 Sep 2010 15:18:58 -0700
changeset 484 f5df819c1852
parent 483 109da596fa9d
permissions -rw-r--r--
Checkstyle was used to review coding conventions
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     1
/**
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     2
 * Copyright (c) 2009 Symbian Foundation and/or its subsidiary(-ies).
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     3
 * All rights reserved.
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     5
 * under the terms of the License "Eclipse Public License v1.0"
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     8
 *
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
     9
 * Initial Contributors:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    10
 * Symbian Foundation - initial contribution.
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    11
 * Contributors:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    12
 * Description:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    13
 * Overview:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    14
 * Details:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    15
 * Platforms/Drives/Compatibility:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    16
 * Assumptions/Requirement/Pre-requisites:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    17
 * Failures and causes:
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    18
 */
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    19
package org.symbian.tools.wrttools.wizards.projectimport;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    20
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    21
import java.io.File;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    22
import java.io.IOException;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    23
import java.lang.reflect.InvocationTargetException;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    24
import java.text.MessageFormat;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    25
import java.util.ArrayList;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    26
import java.util.Collection;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    27
import java.util.HashSet;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    28
import java.util.Iterator;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    29
import java.util.List;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    30
import java.util.Set;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    31
import java.util.zip.ZipException;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    32
import java.util.zip.ZipFile;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    33
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    34
import org.eclipse.core.resources.IProject;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    35
import org.eclipse.core.resources.IProjectDescription;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    36
import org.eclipse.core.resources.ResourcesPlugin;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    37
import org.eclipse.core.runtime.CoreException;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    38
import org.eclipse.core.runtime.IProgressMonitor;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    39
import org.eclipse.core.runtime.IStatus;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    40
import org.eclipse.core.runtime.OperationCanceledException;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    41
import org.eclipse.core.runtime.Path;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    42
import org.eclipse.core.runtime.Status;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    43
import org.eclipse.core.runtime.SubProgressMonitor;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    44
import org.eclipse.jface.dialogs.Dialog;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    45
import org.eclipse.jface.dialogs.ErrorDialog;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    46
import org.eclipse.jface.dialogs.IDialogConstants;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    47
import org.eclipse.jface.dialogs.IDialogSettings;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    48
import org.eclipse.jface.dialogs.MessageDialog;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    49
import org.eclipse.jface.layout.PixelConverter;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    50
import org.eclipse.jface.operation.IRunnableWithProgress;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    51
import org.eclipse.jface.viewers.CheckStateChangedEvent;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    52
import org.eclipse.jface.viewers.CheckboxTreeViewer;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    53
import org.eclipse.jface.viewers.ICheckStateListener;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    54
import org.eclipse.jface.viewers.IColorProvider;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    55
import org.eclipse.jface.viewers.ITreeContentProvider;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    56
import org.eclipse.jface.viewers.LabelProvider;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    57
import org.eclipse.jface.viewers.Viewer;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    58
import org.eclipse.jface.viewers.ViewerComparator;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    59
import org.eclipse.jface.wizard.WizardPage;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    60
import org.eclipse.osgi.util.NLS;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    61
import org.eclipse.swt.SWT;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    62
import org.eclipse.swt.events.FocusAdapter;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    63
import org.eclipse.swt.events.SelectionAdapter;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    64
import org.eclipse.swt.events.SelectionEvent;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    65
import org.eclipse.swt.events.TraverseEvent;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    66
import org.eclipse.swt.events.TraverseListener;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    67
import org.eclipse.swt.graphics.Color;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    68
import org.eclipse.swt.layout.GridData;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    69
import org.eclipse.swt.layout.GridLayout;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    70
import org.eclipse.swt.widgets.Button;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    71
import org.eclipse.swt.widgets.Composite;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    72
import org.eclipse.swt.widgets.DirectoryDialog;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    73
import org.eclipse.swt.widgets.FileDialog;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    74
import org.eclipse.swt.widgets.Label;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    75
import org.eclipse.swt.widgets.Text;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    76
import org.eclipse.ui.actions.WorkspaceModifyOperation;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    77
import org.eclipse.ui.dialogs.IOverwriteQuery;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    78
import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    79
import org.eclipse.ui.internal.ide.StatusUtil;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    80
import org.eclipse.ui.internal.wizards.datatransfer.ArchiveFileManipulations;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    81
import org.eclipse.ui.internal.wizards.datatransfer.DataTransferMessages;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    82
import org.eclipse.ui.internal.wizards.datatransfer.ILeveledImportStructureProvider;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    83
import org.eclipse.ui.internal.wizards.datatransfer.TarException;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    84
import org.eclipse.ui.internal.wizards.datatransfer.TarFile;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    85
import org.eclipse.ui.internal.wizards.datatransfer.TarLeveledStructureProvider;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    86
import org.eclipse.ui.internal.wizards.datatransfer.ZipLeveledStructureProvider;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    87
import org.eclipse.ui.statushandlers.StatusManager;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    88
import org.eclipse.ui.wizards.datatransfer.ImportOperation;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    89
import org.symbian.tools.wrttools.Activator;
204
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
    90
import org.symbian.tools.wrttools.util.CoreUtil;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    91
import org.symbian.tools.wrttools.util.ProjectUtils;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    92
482
2973198ae2a9 Cleaned up unused code
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 470
diff changeset
    93
@SuppressWarnings({ "restriction", "unchecked", "rawtypes" })
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
    94
public class WrtProjectLocationWizardPage extends WizardPage implements IOverwriteQuery {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
    95
    private final class ProjectLabelProvider extends LabelProvider implements IColorProvider {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
    96
        public Color getBackground(Object element) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
    97
            return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
    98
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
    99
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   100
        public Color getForeground(Object element) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   101
            ProjectRecord projectRecord = (ProjectRecord) element;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   102
            if (projectRecord.hasConflicts()) {
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   103
                return getShell().getDisplay().getSystemColor(SWT.COLOR_GRAY);
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   104
            }
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   105
            return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   106
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   107
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   108
        public String getText(Object element) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   109
            return ((ProjectRecord) element).getProjectLabel();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   110
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   111
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   112
266
f0f78f7ebf4d Several minor bugfixes
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 204
diff changeset
   113
    // constant from WizardArchiveFileResourceImportPage1
f0f78f7ebf4d Several minor bugfixes
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 204
diff changeset
   114
    private static final String[] FILE_IMPORT_MASK = { "*.zip;*.tar;*.tar.gz;*.tgz;*.wgz", "*.*" }; //$NON-NLS-1$ //$NON-NLS-2$
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   115
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   116
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   117
     * The name of the folder containing metadata information for the workspace.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   118
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   119
    public static final String METADATA_FOLDER = ".metadata"; //$NON-NLS-1$
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   120
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   121
    // Keep track of the archive that we browsed to last time
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   122
    // the wizard was invoked.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   123
    private static String previouslyBrowsedArchive = ""; //$NON-NLS-1$
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   124
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   125
    // Keep track of the directory that we browsed to last time
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   126
    // the wizard was invoked.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   127
    private static String previouslyBrowsedDirectory = ""; //$NON-NLS-1$
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   128
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   129
    private static final String STORE_ARCHIVE_SELECTED = "WizardProjectsImportPage.STORE_ARCHIVE_SELECTED"; //$NON-NLS-1$
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   130
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   131
    private Text archivePathField;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   132
    private Button browseArchivesButton;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   133
    private Button browseDirectoriesButton;
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   134
    private List createdProjects;
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   135
    private Text directoryPathField;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   136
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   137
    // The last time that the file or folder at the selected path was modified
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   138
    // to mimize searches
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   139
    private long lastModified;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   140
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   141
    // The last selected path to minimize searches
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   142
    private String lastPath;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   143
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   144
    private Button projectFromArchiveRadio;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   145
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   146
    private Button projectFromDirectoryRadio;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   147
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   148
    private CheckboxTreeViewer projectsList;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   149
    private ProjectRecord[] selectedProjects = new ProjectRecord[0];
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   150
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   151
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   152
     * The import structure provider.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   153
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   154
     * @since 3.4
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   155
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   156
    private ILeveledImportStructureProvider structureProvider;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   157
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   158
    private IProject[] wsProjects;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   159
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   160
    public WrtProjectLocationWizardPage() {
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   161
        super("projectlocation", "Import WRT Projects", null);
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   162
        setDescription("Import existing WRT project created in any IDEs");
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   163
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   164
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   165
    private void archiveRadioSelected() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   166
        if (projectFromArchiveRadio.getSelection()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   167
            directoryPathField.setEnabled(false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   168
            browseDirectoriesButton.setEnabled(false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   169
            archivePathField.setEnabled(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   170
            browseArchivesButton.setEnabled(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   171
            updateProjectsList(archivePathField.getText());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   172
            archivePathField.setFocus();
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   173
        }
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   174
    }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   175
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   176
    public List<IProject> getCreatedProjects() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   177
        return createdProjects;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   178
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   179
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   180
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   181
     * Collect the list of .project files that are under directory into files.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   182
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   183
     * @param files
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   184
     * @param directory
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   185
     * @param directoriesVisited
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   186
     *            Set of canonical paths of directories, used as recursion guard
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   187
     * @param monitor
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   188
     *            The monitor to report to
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   189
     * @return boolean <code>true</code> if the operation was completed.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   190
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   191
    private boolean collectProjectFilesFromDirectory(Collection files, File directory, Set directoriesVisited,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   192
            IProgressMonitor monitor) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   193
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   194
        if (monitor.isCanceled()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   195
            return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   196
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   197
        monitor.subTask(NLS.bind(DataTransferMessages.WizardProjectsImportPage_CheckingMessage, directory.getPath()));
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   198
        File[] contents = directory.listFiles();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   199
        if (contents == null) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   200
            return false;
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   201
        }
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   202
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   203
        // Initialize recursion guard for recursive symbolic links
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   204
        if (directoriesVisited == null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   205
            directoriesVisited = new HashSet();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   206
            try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   207
                directoriesVisited.add(directory.getCanonicalPath());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   208
            } catch (IOException exception) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   209
                StatusManager.getManager().handle(
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   210
                        StatusUtil.newStatus(IStatus.ERROR, exception.getLocalizedMessage(), exception));
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   211
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   212
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   213
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   214
        File dotProjectFile = ProjectUtils.isWrtProject(contents);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   215
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   216
        if (dotProjectFile != null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   217
            files.add(dotProjectFile);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   218
            // don't search sub-directories since we can't have nested
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   219
            // projects
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   220
            return true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   221
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   222
        // no project description found, so recurse into sub-directories
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   223
        for (int i = 0; i < contents.length; i++) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   224
            if (contents[i].isDirectory()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   225
                if (!contents[i].getName().equals(METADATA_FOLDER)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   226
                    try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   227
                        String canonicalPath = contents[i].getCanonicalPath();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   228
                        if (!directoriesVisited.add(canonicalPath)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   229
                            // already been here --> do not recurse
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   230
                            continue;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   231
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   232
                    } catch (IOException exception) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   233
                        StatusManager.getManager().handle(
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   234
                                StatusUtil.newStatus(IStatus.ERROR, exception.getLocalizedMessage(), exception));
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   235
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   236
                    }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   237
                    collectProjectFilesFromDirectory(files, contents[i], directoriesVisited, monitor);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   238
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   239
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   240
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   241
        return true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   242
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   243
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   244
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   245
     * Collect the list of .project files that are under directory into files.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   246
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   247
     * @param files
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   248
     * @param monitor
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   249
     *            The monitor to report to
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   250
     * @return boolean <code>true</code> if the operation was completed.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   251
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   252
    private boolean collectProjectFilesFromProvider(Collection files, Object entry, int level, IProgressMonitor monitor) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   253
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   254
        if (monitor.isCanceled()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   255
            return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   256
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   257
        monitor.subTask(NLS.bind(DataTransferMessages.WizardProjectsImportPage_CheckingMessage,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   258
                structureProvider.getLabel(entry)));
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   259
        List children = structureProvider.getChildren(entry);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   260
        if (children == null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   261
            children = new ArrayList(1);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   262
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   263
        Iterator childrenEnum = children.iterator();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   264
        ProjectRecord projectRecord = null;
204
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   265
        Object infoPlist = null;
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   266
        Object dotProject = null;
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   267
        while (childrenEnum.hasNext()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   268
            Object child = childrenEnum.next();
204
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   269
            String elementLabel = structureProvider.getLabel(child);
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   270
            if (structureProvider.isFolder(child)) {
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   271
                collectProjectFilesFromProvider(files, child, level + 1, monitor);
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   272
            } else if (elementLabel.equalsIgnoreCase(IProjectDescription.DESCRIPTION_FILE_NAME)) {
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   273
                dotProject = child;
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   274
            } else if (elementLabel.equalsIgnoreCase(CoreUtil.METADATA_FILE)) {
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   275
                infoPlist = child;
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   276
            }
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   277
        }
204
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   278
        if (infoPlist != null) {
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   279
            projectRecord = new ArchivedProject(infoPlist, dotProject, entry, level, structureProvider);
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   280
            files.add(projectRecord);
fff9c0c94fa4 Import wizard can now import files from any IDE - either filesystem projects or ZIP files
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 203
diff changeset
   281
        }
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   282
        return true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   283
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   284
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   285
    public void createControl(Composite parent) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   286
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   287
        initializeDialogUnits(parent);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   288
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   289
        Composite workArea = new Composite(parent, SWT.NONE);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   290
        setControl(workArea);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   291
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   292
        workArea.setLayout(new GridLayout());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   293
        workArea.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   294
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   295
        createProjectsRoot(workArea);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   296
        createProjectsList(workArea);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   297
        restoreWidgetValues();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   298
        Dialog.applyDialogFont(workArea);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   299
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   300
        updateProjectsList(directoryPathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   301
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   302
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   303
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   304
     * Create the project described in record. If it is successful return true.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   305
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   306
     * @param record
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   307
     * @return boolean <code>true</code> if successful
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   308
     * @throws InterruptedException
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   309
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   310
    private boolean createExistingProject(final ProjectRecord record, IProgressMonitor monitor)
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   311
            throws InvocationTargetException, InterruptedException {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   312
        monitor.beginTask(MessageFormat.format("Creating {0}", record.getProjectName()), IProgressMonitor.UNKNOWN);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   313
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   314
        try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   315
            IProject project = ProjectUtils.createWrtProject(record.getProjectName(), null, new SubProgressMonitor(
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   316
                    monitor, 10));
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   317
            createdProjects.add(project);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   318
            ImportOperation operation = record.getImportOperation(project, structureProvider, this);
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   319
            if (operation != null) {
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   320
                operation.setContext(getShell());
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   321
                operation.run(monitor);
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   322
            }
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   323
            return true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   324
        } catch (CoreException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   325
            Activator.log(e);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   326
            return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   327
        } finally {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   328
            monitor.done();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   329
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   330
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   331
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   332
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   333
     * Create the selected projects
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   334
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   335
     * @return boolean <code>true</code> if all project creations were
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   336
     *         successful.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   337
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   338
    public boolean createProjects() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   339
        saveWidgetValues();
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   340
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   341
        final Object[] selected = projectsList.getCheckedElements();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   342
        createdProjects = new ArrayList();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   343
        WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   344
            protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   345
                try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   346
                    monitor.beginTask("", selected.length);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   347
                    if (monitor.isCanceled()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   348
                        throw new OperationCanceledException();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   349
                    }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   350
                    for (int i = 0; i < selected.length; i++) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   351
                        createExistingProject((ProjectRecord) selected[i], new SubProgressMonitor(monitor, 1));
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   352
                    }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   353
                } finally {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   354
                    monitor.done();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   355
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   356
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   357
        };
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   358
        // run the new project creation operation
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   359
        try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   360
            getContainer().run(true, true, op);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   361
        } catch (InterruptedException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   362
            return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   363
        } catch (InvocationTargetException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   364
            // one of the steps resulted in a core exception
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   365
            Throwable t = e.getTargetException();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   366
            String message = DataTransferMessages.WizardExternalProjectImportPage_errorMessage;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   367
            IStatus status;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   368
            if (t instanceof CoreException) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   369
                status = ((CoreException) t).getStatus();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   370
            } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   371
                status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, 1, message, t);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   372
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   373
            ErrorDialog.openError(getShell(), message, null, status);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   374
            return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   375
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   376
        ArchiveFileManipulations.closeStructureProvider(structureProvider, getShell());
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   377
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   378
        return true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   379
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   380
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   381
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   382
     * Create the checkbox list for the found projects.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   383
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   384
     * @param workArea
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   385
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   386
    private void createProjectsList(Composite workArea) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   387
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   388
        Label title = new Label(workArea, SWT.NONE);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   389
        title.setText(DataTransferMessages.WizardProjectsImportPage_ProjectsListTitle);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   390
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   391
        Composite listComposite = new Composite(workArea, SWT.NONE);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   392
        GridLayout layout = new GridLayout();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   393
        layout.numColumns = 2;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   394
        layout.marginWidth = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   395
        layout.makeColumnsEqualWidth = false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   396
        listComposite.setLayout(layout);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   397
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   398
        listComposite
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   399
                .setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH));
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   400
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   401
        projectsList = new CheckboxTreeViewer(listComposite, SWT.BORDER);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   402
        GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   403
        gridData.widthHint = new PixelConverter(projectsList.getControl()).convertWidthInCharsToPixels(25);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   404
        gridData.heightHint = new PixelConverter(projectsList.getControl()).convertHeightInCharsToPixels(10);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   405
        projectsList.getControl().setLayoutData(gridData);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   406
        projectsList.setContentProvider(new ITreeContentProvider() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   407
            public void dispose() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   408
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   409
            public Object[] getChildren(Object parentElement) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   410
                return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   411
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   412
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   413
            public Object[] getElements(Object inputElement) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   414
                return getProjectRecords();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   415
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   416
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   417
            public Object getParent(Object element) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   418
                return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   419
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   420
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   421
            public boolean hasChildren(Object element) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   422
                return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   423
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   424
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   425
            public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   426
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   427
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   428
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   429
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   430
        projectsList.setLabelProvider(new ProjectLabelProvider());
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   431
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   432
        projectsList.addCheckStateListener(new ICheckStateListener() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   433
            public void checkStateChanged(CheckStateChangedEvent event) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   434
                ProjectRecord element = (ProjectRecord) event.getElement();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   435
                if (element.hasConflicts()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   436
                    projectsList.setChecked(element, false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   437
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   438
                setPageComplete(projectsList.getCheckedElements().length > 0);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   439
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   440
        });
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   441
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   442
        projectsList.setInput(this);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   443
        projectsList.setComparator(new ViewerComparator());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   444
        createSelectionButtons(listComposite);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   445
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   446
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   447
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   448
     * Create the area where you select the root directory for the projects.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   449
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   450
     * @param workArea
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   451
     *            Composite
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   452
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   453
    private void createProjectsRoot(Composite workArea) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   454
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   455
        // project specification group
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   456
        Composite projectGroup = new Composite(workArea, SWT.NONE);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   457
        GridLayout layout = new GridLayout();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   458
        layout.numColumns = 3;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   459
        layout.makeColumnsEqualWidth = false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   460
        layout.marginWidth = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   461
        projectGroup.setLayout(layout);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   462
        projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   463
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   464
        // new project from directory radio button
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   465
        projectFromDirectoryRadio = new Button(projectGroup, SWT.RADIO);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   466
        projectFromDirectoryRadio.setText(DataTransferMessages.WizardProjectsImportPage_RootSelectTitle);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   467
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   468
        // project location entry field
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   469
        this.directoryPathField = new Text(projectGroup, SWT.BORDER);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   470
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   471
        GridData directoryPathData = new GridData(SWT.FILL, SWT.NONE, true, false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   472
        directoryPathData.widthHint = new PixelConverter(directoryPathField).convertWidthInCharsToPixels(25);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   473
        directoryPathField.setLayoutData(directoryPathData);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   474
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   475
        directoryPathField.setText(ProjectUtils.getDefaultAptanaLocation());
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   476
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   477
        // browse button
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   478
        browseDirectoriesButton = new Button(projectGroup, SWT.PUSH);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   479
        browseDirectoriesButton.setText(DataTransferMessages.DataTransfer_browse);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   480
        setButtonLayoutData(browseDirectoriesButton);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   481
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   482
        // new project from archive radio button
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   483
        projectFromArchiveRadio = new Button(projectGroup, SWT.RADIO);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   484
        projectFromArchiveRadio.setText(DataTransferMessages.WizardProjectsImportPage_ArchiveSelectTitle);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   485
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   486
        // project location entry field
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   487
        archivePathField = new Text(projectGroup, SWT.BORDER);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   488
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   489
        GridData archivePathData = new GridData(SWT.FILL, SWT.NONE, true, false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   490
        archivePathData.widthHint = new PixelConverter(archivePathField).convertWidthInCharsToPixels(25);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   491
        archivePathField.setLayoutData(archivePathData); // browse button
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   492
        browseArchivesButton = new Button(projectGroup, SWT.PUSH);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   493
        browseArchivesButton.setText(DataTransferMessages.DataTransfer_browse);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   494
        setButtonLayoutData(browseArchivesButton);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   495
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   496
        projectFromDirectoryRadio.setSelection(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   497
        archivePathField.setEnabled(false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   498
        browseArchivesButton.setEnabled(false);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   499
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   500
        browseDirectoriesButton.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   501
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   502
                handleLocationDirectoryButtonPressed();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   503
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   504
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   505
        });
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   506
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   507
        browseArchivesButton.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   508
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   509
                handleLocationArchiveButtonPressed();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   510
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   511
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   512
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   513
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   514
        directoryPathField.addTraverseListener(new TraverseListener() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   515
            public void keyTraversed(TraverseEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   516
                if (e.detail == SWT.TRAVERSE_RETURN) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   517
                    e.doit = false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   518
                    updateProjectsList(directoryPathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   519
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   520
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   521
        });
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   522
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   523
        directoryPathField.addFocusListener(new FocusAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   524
            public void focusLost(org.eclipse.swt.events.FocusEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   525
                updateProjectsList(directoryPathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   526
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   527
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   528
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   529
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   530
        archivePathField.addTraverseListener(new TraverseListener() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   531
            public void keyTraversed(TraverseEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   532
                if (e.detail == SWT.TRAVERSE_RETURN) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   533
                    e.doit = false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   534
                    updateProjectsList(archivePathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   535
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   536
            }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   537
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   538
        });
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   539
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   540
        archivePathField.addFocusListener(new FocusAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   541
            public void focusLost(org.eclipse.swt.events.FocusEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   542
                updateProjectsList(archivePathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   543
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   544
        });
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   545
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   546
        projectFromDirectoryRadio.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   547
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   548
                directoryRadioSelected();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   549
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   550
        });
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   551
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   552
        projectFromArchiveRadio.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   553
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   554
                archiveRadioSelected();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   555
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   556
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   557
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   558
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   559
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   560
     * Create the selection buttons in the listComposite.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   561
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   562
     * @param listComposite
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   563
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   564
    private void createSelectionButtons(Composite listComposite) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   565
        Composite buttonsComposite = new Composite(listComposite, SWT.NONE);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   566
        GridLayout layout = new GridLayout();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   567
        layout.marginWidth = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   568
        layout.marginHeight = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   569
        buttonsComposite.setLayout(layout);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   570
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   571
        buttonsComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   572
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   573
        Button selectAll = new Button(buttonsComposite, SWT.PUSH);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   574
        selectAll.setText(DataTransferMessages.DataTransfer_selectAll);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   575
        selectAll.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   576
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   577
                for (int i = 0; i < selectedProjects.length; i++) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   578
                    if (selectedProjects[i].hasConflicts()) {
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   579
                        projectsList.setChecked(selectedProjects[i], false);
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   580
                    } else {
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   581
                        projectsList.setChecked(selectedProjects[i], true);
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   582
                    }
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   583
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   584
                setPageComplete(projectsList.getCheckedElements().length > 0);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   585
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   586
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   587
        Dialog.applyDialogFont(selectAll);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   588
        setButtonLayoutData(selectAll);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   589
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   590
        Button deselectAll = new Button(buttonsComposite, SWT.PUSH);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   591
        deselectAll.setText(DataTransferMessages.DataTransfer_deselectAll);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   592
        deselectAll.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   593
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   594
                projectsList.setCheckedElements(new Object[0]);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   595
                setPageComplete(false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   596
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   597
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   598
        Dialog.applyDialogFont(deselectAll);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   599
        setButtonLayoutData(deselectAll);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   600
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   601
        Button refresh = new Button(buttonsComposite, SWT.PUSH);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   602
        refresh.setText(DataTransferMessages.DataTransfer_refresh);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   603
        refresh.addSelectionListener(new SelectionAdapter() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   604
            public void widgetSelected(SelectionEvent e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   605
                if (projectFromDirectoryRadio.getSelection()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   606
                    updateProjectsList(directoryPathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   607
                } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   608
                    updateProjectsList(archivePathField.getText().trim());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   609
                }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   610
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   611
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   612
        Dialog.applyDialogFont(refresh);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   613
        setButtonLayoutData(refresh);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   614
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   615
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   616
    private void directoryRadioSelected() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   617
        if (projectFromDirectoryRadio.getSelection()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   618
            directoryPathField.setEnabled(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   619
            browseDirectoriesButton.setEnabled(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   620
            archivePathField.setEnabled(false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   621
            browseArchivesButton.setEnabled(false);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   622
            updateProjectsList(directoryPathField.getText());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   623
            directoryPathField.setFocus();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   624
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   625
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   626
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   627
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   628
     * Display an error dialog with the specified message.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   629
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   630
     * @param message
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   631
     *            the error message
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   632
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   633
    protected void displayErrorDialog(String message) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   634
        MessageDialog.open(MessageDialog.ERROR, getContainer().getShell(), getErrorDialogTitle(), message, SWT.SHEET);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   635
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   636
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   637
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   638
     * Get the title for an error dialog. Subclasses should override.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   639
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   640
    protected String getErrorDialogTitle() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   641
        return IDEWorkbenchMessages.WizardExportPage_internalErrorTitle;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   642
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   643
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   644
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   645
     * Method used for test suite.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   646
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   647
     * @return Button the Import from Directory RadioButton
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   648
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   649
    public Button getProjectFromDirectoryRadio() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   650
        return projectFromDirectoryRadio;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   651
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   652
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   653
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   654
     * Get the array of project records that can be imported from the source
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   655
     * workspace or archive, selected by the user. If a project with the same
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   656
     * name exists in both the source workspace and the current workspace, then
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   657
     * the hasConflicts flag would be set on that project record.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   658
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   659
     * Method declared public for test suite.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   660
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   661
     * @return ProjectRecord[] array of projects that can be imported into the
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   662
     *         workspace
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   663
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   664
    public ProjectRecord[] getProjectRecords() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   665
        List projectRecords = new ArrayList();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   666
        for (int i = 0; i < selectedProjects.length; i++) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   667
            if (isProjectInWorkspace(selectedProjects[i].getProjectName())) {
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   668
                selectedProjects[i].setHasConflicts(true);
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   669
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   670
            projectRecords.add(selectedProjects[i]);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   671
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   672
        return (ProjectRecord[]) projectRecords.toArray(new ProjectRecord[projectRecords.size()]);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   673
    }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   674
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   675
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   676
     * Retrieve all the projects in the current workspace.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   677
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   678
     * @return IProject[] array of IProject in the current workspace
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   679
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   680
    private IProject[] getProjectsInWorkspace() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   681
        if (wsProjects == null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   682
            wsProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   683
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   684
        return wsProjects;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   685
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   686
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   687
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   688
     * Method used for test suite.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   689
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   690
     * @return CheckboxTreeViewer the viewer containing all the projects found
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   691
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   692
    public CheckboxTreeViewer getProjectsList() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   693
        return projectsList;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   694
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   695
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   696
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   697
     * Answer a handle to the zip file currently specified as being the source.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   698
     * Return null if this file does not exist or is not of valid format.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   699
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   700
    private TarFile getSpecifiedTarSourceFile(String fileName) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   701
        if (fileName.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   702
            return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   703
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   704
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   705
        try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   706
            return new TarFile(fileName);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   707
        } catch (TarException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   708
            displayErrorDialog(DataTransferMessages.TarImport_badFormat);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   709
        } catch (IOException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   710
            displayErrorDialog(DataTransferMessages.ZipImport_couldNotRead);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   711
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   712
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   713
        archivePathField.setFocus();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   714
        return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   715
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   716
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   717
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   718
     * Answer a handle to the zip file currently specified as being the source.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   719
     * Return null if this file does not exist or is not of valid format.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   720
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   721
    private ZipFile getSpecifiedZipSourceFile(String fileName) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   722
        if (fileName.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   723
            return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   724
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   725
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   726
        try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   727
            return new ZipFile(fileName);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   728
        } catch (ZipException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   729
            displayErrorDialog(DataTransferMessages.ZipImport_badFormat);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   730
        } catch (IOException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   731
            displayErrorDialog(DataTransferMessages.ZipImport_couldNotRead);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   732
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   733
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   734
        archivePathField.setFocus();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   735
        return null;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   736
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   737
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   738
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   739
     * The browse button has been selected. Select the location.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   740
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   741
    protected void handleLocationArchiveButtonPressed() {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   742
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   743
        FileDialog dialog = new FileDialog(archivePathField.getShell(), SWT.SHEET);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   744
        dialog.setFilterExtensions(FILE_IMPORT_MASK);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   745
        dialog.setText(DataTransferMessages.WizardProjectsImportPage_SelectArchiveDialogTitle);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   746
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   747
        String fileName = archivePathField.getText().trim();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   748
        if (fileName.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   749
            fileName = previouslyBrowsedArchive;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   750
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   751
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   752
        if (fileName.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   753
            dialog.setFilterPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   754
        } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   755
            File path = new File(fileName).getParentFile();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   756
            if (path != null && path.exists()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   757
                dialog.setFilterPath(path.toString());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   758
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   759
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   760
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   761
        String selectedArchive = dialog.open();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   762
        if (selectedArchive != null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   763
            previouslyBrowsedArchive = selectedArchive;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   764
            archivePathField.setText(previouslyBrowsedArchive);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   765
            updateProjectsList(selectedArchive);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   766
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   767
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   768
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   769
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   770
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   771
     * The browse button has been selected. Select the location.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   772
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   773
    protected void handleLocationDirectoryButtonPressed() {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   774
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   775
        DirectoryDialog dialog = new DirectoryDialog(directoryPathField.getShell(), SWT.SHEET);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   776
        dialog.setMessage(DataTransferMessages.WizardProjectsImportPage_SelectDialogTitle);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   777
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   778
        String dirName = directoryPathField.getText().trim();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   779
        if (dirName.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   780
            dirName = previouslyBrowsedDirectory;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   781
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   782
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   783
        if (dirName.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   784
            dialog.setFilterPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   785
        } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   786
            File path = new File(dirName);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   787
            if (path.exists()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   788
                dialog.setFilterPath(new Path(dirName).toOSString());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   789
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   790
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   791
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   792
        String selectedDirectory = dialog.open();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   793
        if (selectedDirectory != null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   794
            previouslyBrowsedDirectory = selectedDirectory;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   795
            directoryPathField.setText(previouslyBrowsedDirectory);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   796
            updateProjectsList(selectedDirectory);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   797
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   798
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   799
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   800
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   801
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   802
     * Determine if the project with the given name is in the current workspace.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   803
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   804
     * @param projectName
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   805
     *            String the project name to check
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   806
     * @return boolean true if the project with the given name is in this
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   807
     *         workspace
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   808
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   809
    private boolean isProjectInWorkspace(String projectName) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   810
        if (projectName == null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   811
            return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   812
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   813
        IProject[] workspaceProjects = getProjectsInWorkspace();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   814
        for (int i = 0; i < workspaceProjects.length; i++) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   815
            if (projectName.equals(workspaceProjects[i].getName())) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   816
                return true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   817
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   818
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   819
        return false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   820
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   821
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   822
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   823
     * Performs clean-up if the user cancels the wizard without doing anything
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   824
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   825
    public void performCancel() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   826
        ArchiveFileManipulations.closeStructureProvider(structureProvider, getShell());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   827
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   828
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   829
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   830
     * The <code>WizardDataTransfer</code> implementation of this
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   831
     * <code>IOverwriteQuery</code> method asks the user whether the existing
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   832
     * resource at the given path should be overwritten.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   833
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   834
     * @param pathString
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   835
     * @return the user's reply: one of <code>"YES"</code>, <code>"NO"</code>,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   836
     *         <code>"ALL"</code>, or <code>"CANCEL"</code>
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   837
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   838
    public String queryOverwrite(String pathString) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   839
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   840
        Path path = new Path(pathString);
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   841
292
d1d1c556b0d1 Bug 2431 - Import gives incorrect warning
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 266
diff changeset
   842
        if (path.segmentCount() > 1 && ".settings".equals(path.segment(1))) {
d1d1c556b0d1 Bug 2431 - Import gives incorrect warning
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 266
diff changeset
   843
            return NO;
d1d1c556b0d1 Bug 2431 - Import gives incorrect warning
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 266
diff changeset
   844
        }
d1d1c556b0d1 Bug 2431 - Import gives incorrect warning
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 266
diff changeset
   845
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   846
        String messageString;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   847
        // Break the message up if there is a file name and a directory
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   848
        // and there are at least 2 segments.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   849
        if (path.getFileExtension() == null || path.segmentCount() < 2) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   850
            messageString = NLS.bind(IDEWorkbenchMessages.WizardDataTransfer_existsQuestion, pathString);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   851
        } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   852
            messageString = NLS.bind(IDEWorkbenchMessages.WizardDataTransfer_overwriteNameAndPathQuestion,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   853
                    path.lastSegment(), path.removeLastSegments(1).toOSString());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   854
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   855
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   856
        final MessageDialog dialog = new MessageDialog(getContainer().getShell(), IDEWorkbenchMessages.Question, null,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   857
                messageString, MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   858
                        IDialogConstants.YES_TO_ALL_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.NO_TO_ALL_LABEL,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   859
                        IDialogConstants.CANCEL_LABEL }, 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   860
            protected int getShellStyle() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   861
                return super.getShellStyle() | SWT.SHEET;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   862
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   863
        };
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   864
        String[] response = new String[] { YES, ALL, NO, NO_ALL, CANCEL };
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   865
        // run in syncExec because callback is from an operation,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   866
        // which is probably not running in the UI thread.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   867
        getControl().getDisplay().syncExec(new Runnable() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   868
            public void run() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   869
                dialog.open();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   870
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   871
        });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   872
        return dialog.getReturnCode() < 0 ? CANCEL : response[dialog.getReturnCode()];
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   873
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   874
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   875
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   876
     * Use the dialog store to restore widget values to the values that they
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   877
     * held last time this wizard was used to completion, or alternatively, if
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   878
     * an initial path is specified, use it to select values.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   879
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   880
     * Method declared public only for use of tests.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   881
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   882
    public void restoreWidgetValues() {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   883
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   884
        // First, check to see if we have resore settings, and
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   885
        // take care of the checkbox
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   886
        IDialogSettings settings = getDialogSettings();
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   887
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   888
        // Second, check to see if we don't have an initial path,
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   889
        // and if we do have restore settings. If so, set the
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   890
        // radio selection properly to restore settings
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   891
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   892
        if (settings != null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   893
            // radio selection
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   894
            boolean archiveSelected = settings.getBoolean(STORE_ARCHIVE_SELECTED);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   895
            projectFromDirectoryRadio.setSelection(!archiveSelected);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   896
            projectFromArchiveRadio.setSelection(archiveSelected);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   897
            if (archiveSelected) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   898
                archiveRadioSelected();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   899
            } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   900
                directoryRadioSelected();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   901
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   902
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   903
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   904
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   905
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   906
     * Since Finish was pressed, write widget values to the dialog store so that
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   907
     * they will persist into the next invocation of this wizard page.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   908
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   909
     * Method declared public only for use of tests.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   910
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   911
    public void saveWidgetValues() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   912
        IDialogSettings settings = getDialogSettings();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   913
        if (settings != null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   914
            settings.put(STORE_ARCHIVE_SELECTED, projectFromArchiveRadio.getSelection());
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   915
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   916
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   917
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   918
    /*
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   919
     * (non-Javadoc) Method declared on IDialogPage. Set the focus on path
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   920
     * fields when page becomes visible.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   921
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   922
    public void setVisible(boolean visible) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   923
        super.setVisible(visible);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   924
        if (visible && this.projectFromDirectoryRadio.getSelection()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   925
            this.directoryPathField.setFocus();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   926
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   927
        if (visible && this.projectFromArchiveRadio.getSelection()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   928
            this.archivePathField.setFocus();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   929
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   930
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   931
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   932
    /**
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   933
     * Update the list of projects based on path. Method declared public only
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   934
     * for test suite.
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
   935
     *
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   936
     * @param path
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   937
     */
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   938
    public void updateProjectsList(final String path) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   939
        // on an empty path empty selectedProjects
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   940
        if (path == null || path.length() == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   941
            setMessage("Select a directory to search for existing WRT projects.");
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   942
            selectedProjects = new ProjectRecord[0];
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   943
            projectsList.refresh(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   944
            projectsList.setCheckedElements(selectedProjects);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   945
            setPageComplete(projectsList.getCheckedElements().length > 0);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   946
            lastPath = path;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   947
            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   948
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   949
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   950
        final File directory = new File(path);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   951
        long modified = directory.lastModified();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   952
        if (path.equals(lastPath) && lastModified == modified) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   953
            // since the file/folder was not modified and the path did not
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   954
            // change, no refreshing is required
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   955
            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   956
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   957
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   958
        lastPath = path;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   959
        lastModified = modified;
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   960
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   961
        // We can't access the radio button from the inner class so get the
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   962
        // status beforehand
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   963
        final boolean dirSelected = this.projectFromDirectoryRadio.getSelection();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   964
        try {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   965
            getContainer().run(true, true, new IRunnableWithProgress() {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   966
                public void run(IProgressMonitor monitor) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   967
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   968
                    monitor.beginTask(DataTransferMessages.WizardProjectsImportPage_SearchingMessage, 100);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   969
                    selectedProjects = new ProjectRecord[0];
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   970
                    Collection files = new ArrayList();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   971
                    monitor.worked(10);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   972
                    if (!dirSelected && ArchiveFileManipulations.isTarFile(path)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   973
                        TarFile sourceTarFile = getSpecifiedTarSourceFile(path);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   974
                        if (sourceTarFile == null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   975
                            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   976
                        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   977
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   978
                        structureProvider = new TarLeveledStructureProvider(sourceTarFile);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   979
                        Object child = structureProvider.getRoot();
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   980
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   981
                        if (!collectProjectFilesFromProvider(files, child, 0, monitor)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   982
                            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   983
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   984
                        Iterator filesIterator = files.iterator();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   985
                        selectedProjects = new ProjectRecord[files.size()];
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   986
                        int index = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   987
                        monitor.worked(50);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   988
                        monitor.subTask(DataTransferMessages.WizardProjectsImportPage_ProcessingMessage);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   989
                        while (filesIterator.hasNext()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   990
                            selectedProjects[index++] = (ProjectRecord) filesIterator.next();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   991
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   992
                    } else if (!dirSelected && ArchiveFileManipulations.isZipFile(path)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   993
                        ZipFile sourceFile = getSpecifiedZipSourceFile(path);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   994
                        if (sourceFile == null) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   995
                            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   996
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   997
                        structureProvider = new ZipLeveledStructureProvider(sourceFile);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
   998
                        Object child = structureProvider.getRoot();
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
   999
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1000
                        if (!collectProjectFilesFromProvider(files, child, 0, monitor)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1001
                            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1002
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1003
                        Iterator filesIterator = files.iterator();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1004
                        selectedProjects = new ProjectRecord[files.size()];
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1005
                        int index = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1006
                        monitor.worked(50);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1007
                        monitor.subTask(DataTransferMessages.WizardProjectsImportPage_ProcessingMessage);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1008
                        while (filesIterator.hasNext()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1009
                            selectedProjects[index++] = (ProjectRecord) filesIterator.next();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1010
                        }
484
f5df819c1852 Checkstyle was used to review coding conventions
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 483
diff changeset
  1011
                    } else if (dirSelected && directory.isDirectory()) {
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1012
                        if (!collectProjectFilesFromDirectory(files, directory, null, monitor)) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1013
                            return;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1014
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1015
                        Iterator filesIterator = files.iterator();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1016
                        selectedProjects = new ProjectRecord[files.size()];
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1017
                        int index = 0;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1018
                        monitor.worked(50);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1019
                        monitor.subTask(DataTransferMessages.WizardProjectsImportPage_ProcessingMessage);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1020
                        while (filesIterator.hasNext()) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1021
                            File file = (File) filesIterator.next();
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1022
                            selectedProjects[index] = new FileSystemProject(file);
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1023
                            index++;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1024
                        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1025
                    } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1026
                        monitor.worked(60);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1027
                    }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1028
                    monitor.done();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1029
                }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1030
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1031
            });
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1032
        } catch (InvocationTargetException e) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1033
            Activator.log(e.getMessage(), e);
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1034
        } catch (InterruptedException e) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1035
            // Nothing to do if the user interrupts.
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1036
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1037
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1038
        projectsList.refresh(true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1039
        ProjectRecord[] projects = getProjectRecords();
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1040
        boolean displayWarning = false;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1041
        for (int i = 0; i < projects.length; i++) {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1042
            if (projects[i].hasConflicts()) {
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1043
                displayWarning = true;
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1044
                projectsList.setGrayed(projects[i], true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1045
            } else {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1046
                projectsList.setChecked(projects[i], true);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1047
            }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1048
        }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1049
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1050
        if (displayWarning) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1051
            setMessage(DataTransferMessages.WizardProjectsImportPage_projectsInWorkspace, WARNING);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1052
        } else {
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1053
            setMessage("Select a directory to search for existing WRT projects.");
483
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1054
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1055
        setPageComplete(projectsList.getCheckedElements().length > 0);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1056
        if (selectedProjects.length == 0) {
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1057
            setMessage(DataTransferMessages.WizardProjectsImportPage_noProjectsToImport, WARNING);
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1058
        }
109da596fa9d Fixed relevant FindBug messages
Eugene Ostroukhov <eugeneo@symbian.org>
parents: 482
diff changeset
  1059
    }
203
bb3a18c4e037 Refactoring, some messages were updated
Eugene Ostroukhov <eugeneo@symbian.org>
parents:
diff changeset
  1060
}