Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java438
1 files changed, 0 insertions, 438 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java
deleted file mode 100644
index 5e3317424..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/TagetLocationSelectionDialog.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-/**
- * Select the target location that will be the parent of the selected projects.
- * The behavior of the dialog differs between 1 project and multiple projects.
- * For one project, the location specified is the location of the project and
- * the project name can be modified. For multiple projects, it is the parent
- * location which is specified.
- */
-public class TagetLocationSelectionDialog extends SelectionDialog {
-
- // widgets
- private Text projectNameField;
- private Text locationPathField;
- private Label locationLabel;
- private Label statusMessageLabel;
- private Button browseButton;
-
- // state
- private boolean useDefaults = true;
- private IProject[] targetProjects;
- private String newProjectName;
- private String targetLocation;
-
- // constants
- private static final int SIZING_TEXT_FIELD_WIDTH = 250;
-
- /**
- * Constructor.
- * @param parentShell
- */
- public TagetLocationSelectionDialog(Shell parentShell, String title, IProject targetProject) {
- this(parentShell, title, new IProject[] { targetProject });
- }
-
- /**
- * Constructor.
- * @param parentShell
- */
- public TagetLocationSelectionDialog(Shell parentShell, String title, IProject[] targetProjects) {
- super(parentShell);
- setTitle(title);
- this.targetProjects = targetProjects;
- if (targetProjects.length == 1) newProjectName = targetProjects[0].getName();
- }
-
- /* (non-Javadoc)
- * Method declared on Dialog.
- */
- protected Control createDialogArea(Composite parent) {
- // page group
- Composite composite = (Composite) super.createDialogArea(parent);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- if (isSingleCheckout())
- createProjectNameGroup(composite);
- createProjectLocationGroup(composite);
-
- //Add in a label for status messages if required
- statusMessageLabel = new Label(composite, SWT.NONE);
- statusMessageLabel.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Dialog.applyDialogFont(parent);
- return composite;
- }
-
- /**
- * Creates the project name specification controls.
- *
- * @param parent the parent composite
- */
- private void createProjectNameGroup(Composite parent) {
- // project specification group
- Composite projectGroup = new Composite(parent,SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- projectGroup.setLayout(layout);
- projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // new project label
- Label projectLabel = new Label(projectGroup,SWT.NONE);
- projectLabel.setText(Policy.bind("TargetLocationSelectionDialog.projectNameLabel")); //$NON-NLS-1$
-
- // new project name entry field
- projectNameField = new Text(projectGroup, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = SIZING_TEXT_FIELD_WIDTH;
- projectNameField.setLayoutData(data);
-
- // Set the initial value first before listener
- // to avoid handling an event during the creation.
- projectNameField.setText(getNewProjectName());
- projectNameField.selectAll();
-
- createNameListener();
-
- }
-
- /**
- * Create the listener that is used to validate the entries for the receiver
- */
- private void createNameListener() {
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- newProjectName = projectNameField.getText();
- setLocationForSelection(false);
- applyValidationResult(checkValid());
- }
- };
-
- this.projectNameField.addListener(SWT.Modify, listener);
- }
-
- /**
- * Set the location to the default location if we are set to useDefaults.
- */
- private void setLocationForSelection(boolean changed) {
- if (useDefaults) {
- IPath defaultPath = null;
- if (isSingleCheckout()) {
- try {
- defaultPath = getSingleProject().getDescription().getLocation();
- } catch (CoreException e) {
- // ignore
- }
- if (defaultPath == null) {
- defaultPath = Platform.getLocation().append(getSingleProject().getName());
- }
- } else {
- defaultPath = Platform.getLocation();
- }
- locationPathField.setText(defaultPath.toOSString());
- targetLocation = null;
- } else if (changed) {
- IPath location = null;
- try {
- location = this.targetProjects[0].getDescription().getLocation();
- } catch (CoreException e) {
- // ignore the exception
- }
- if (location == null) {
- targetLocation = null;
- locationPathField.setText(""); //$NON-NLS-1$
- } else {
- if (isSingleCheckout()) {
- targetLocation = location.toOSString();
- } else {
- targetLocation = location.removeLastSegments(1).toOSString();
- }
- locationPathField.setText(targetLocation);
- }
- }
- }
-
- /**
- * Creates the project location specification controls.
- *
- * @param parent the parent composite
- */
- private final void createProjectLocationGroup(Composite parent) {
-
- // project specification group
- Composite projectGroup = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- projectGroup.setLayout(layout);
- projectGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- final Button useDefaultsButton =
- new Button(projectGroup, SWT.CHECK | SWT.RIGHT);
- useDefaultsButton.setText(Policy.bind("TargetLocationSelectionDialog.useDefaultLabel")); //$NON-NLS-1$
- useDefaultsButton.setSelection(this.useDefaults);
- GridData buttonData = new GridData();
- buttonData.horizontalSpan = 3;
- useDefaultsButton.setLayoutData(buttonData);
-
- createUserSpecifiedProjectLocationGroup(projectGroup, !this.useDefaults);
-
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- useDefaults = useDefaultsButton.getSelection();
- browseButton.setEnabled(!useDefaults);
- locationPathField.setEnabled(!useDefaults);
- locationLabel.setEnabled(!useDefaults);
- setLocationForSelection(true);
- }
- };
- useDefaultsButton.addSelectionListener(listener);
- }
-
- /**
- * Creates the project location specification controls.
- *
- * @return the parent of the widgets created
- * @param projectGroup the parent composite
- * @param enabled - sets the initial enabled state of the widgets
- */
- private Composite createUserSpecifiedProjectLocationGroup(Composite projectGroup, boolean enabled) {
-
- // location label
- locationLabel = new Label(projectGroup, SWT.NONE);
- if (isSingleCheckout()) {
- locationLabel.setText(Policy.bind("TargetLocationSelectionDialog.locationLabel")); //$NON-NLS-1$
- } else {
- locationLabel.setText(Policy.bind("TargetLocationSelectionDialog.parentDirectoryLabel")); //$NON-NLS-1$
- }
- locationLabel.setEnabled(enabled);
-
- // project location entry field
- locationPathField = new Text(projectGroup, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = SIZING_TEXT_FIELD_WIDTH;
- locationPathField.setLayoutData(data);
- locationPathField.setEnabled(enabled);
-
- // browse button
- this.browseButton = new Button(projectGroup, SWT.PUSH);
- this.browseButton.setText(Policy.bind("TargetLocationSelectionDialog.browseLabel")); //$NON-NLS-1$
- this.browseButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- handleLocationBrowseButtonPressed();
- }
- });
- this.browseButton.setEnabled(enabled);
- setButtonLayoutData(this.browseButton);
-
- // Set the initial value first before listener
- // to avoid handling an event during the creation.
- setLocationForSelection(true);
- createLocationListener();
- return projectGroup;
-
- }
-
- /**
- * Open an appropriate directory browser
- */
- private void handleLocationBrowseButtonPressed() {
- DirectoryDialog dialog = new DirectoryDialog(locationPathField.getShell());
- if (isSingleCheckout()) {
- dialog.setMessage(Policy.bind("TargetLocationSelectionDialog.messageForSingle", newProjectName)); //$NON-NLS-1$
- } else {
- dialog.setMessage(Policy.bind("TargetLocationSelectionDialog.messageForMulti", new Integer(targetProjects.length).toString())); //$NON-NLS-1$
- }
-
- String dirName = locationPathField.getText();
- if (!dirName.equals("")) {//$NON-NLS-1$
- File path = new File(dirName);
- if (path.exists())
- dialog.setFilterPath(dirName);
- }
-
- String selectedDirectory = dialog.open();
- if (selectedDirectory != null) {
- if (targetProjects.length == 1) {
- locationPathField.setText(new Path(selectedDirectory).append(newProjectName).toOSString());
- } else {
- locationPathField.setText(new Path(selectedDirectory).toOSString());
- }
- }
- targetLocation = locationPathField.getText();
- }
-
- /**
- * Method isSingleCheckout.
- * @return boolean
- */
- private boolean isSingleCheckout() {
- return targetProjects.length == 1;
- }
-
- private IProject getSingleProject() {
- if (newProjectName == null || newProjectName.length() == 0 || targetProjects[0].getName().equals(newProjectName))
- return targetProjects[0];
- else
- return ResourcesPlugin.getWorkspace().getRoot().getProject(newProjectName);
- }
-
- /**
- * Create the listener that is used to validate the location entered by the iser
- */
- private void createLocationListener() {
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- applyValidationResult(checkValid());
- }
- };
-
- this.locationPathField.addListener(SWT.Modify, listener);
- }
-
- /**
- * Check the message. If it is null then continue otherwise inform the user via the
- * status value and disable the OK.
- * @param message - the error message to show if it is not null.
- */
- private void applyValidationResult(String errorMsg) {
-
- if (errorMsg == null) {
- statusMessageLabel.setText("");//$NON-NLS-1$
- getOkButton().setEnabled(true);
- } else {
- statusMessageLabel.setForeground(
- JFaceColors.getErrorText(
- statusMessageLabel.getDisplay()));
- statusMessageLabel.setText(errorMsg);
- getOkButton().setEnabled(false);
- }
- }
- /**
- * Check whether the entries are valid. If so return null. Otherwise
- * return a string that indicates the problem.
- */
- private String checkValid() {
- if (isSingleCheckout()) {
- String valid = checkValidName();
- if (valid != null)
- return valid;
- }
- return checkValidLocation();
- }
- /**
- * Check if the entry in the widget location is valid. If it is valid return null. Otherwise
- * return a string that indicates the problem.
- */
- private String checkValidLocation() {
-
- if (useDefaults) {
- targetLocation = null;
- return null;
- } else {
- targetLocation = locationPathField.getText();
- if (targetLocation.equals("")) {//$NON-NLS-1$
- return(Policy.bind("TagetLocationSelectionDialog.locationEmpty")); //$NON-NLS-1$
- }
- else{
- IPath path = new Path("");//$NON-NLS-1$
- if (!path.isValidPath(targetLocation)) {
- return Policy.bind("TagetLocationSelectionDialog.invalidLocation"); //$NON-NLS-1$
- }
- }
-
- if (isSingleCheckout()) {
- IStatus locationStatus =
- ResourcesPlugin.getWorkspace().validateProjectLocation(
- getSingleProject(),
- new Path(targetLocation));
-
- if (!locationStatus.isOK())
- return locationStatus.getMessage();
- } else {
- for (int i = 0; i < targetProjects.length; i++) {
- ResourcesPlugin.getWorkspace().validateProjectLocation(
- targetProjects[i],
- new Path(targetLocation).append(targetProjects[i].getName()));
- }
- }
-
- return null;
- }
- }
- /**
- * Check if the entries in the widget are valid. If they are return null otherwise
- * return a string that indicates the problem.
- */
- private String checkValidName() {
-
- newProjectName = this.projectNameField.getText();
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IStatus nameStatus = workspace.validateName(newProjectName, IResource.PROJECT);
- if (!nameStatus.isOK())
- return nameStatus.getMessage();
-// IProject newProject = workspace.getRoot().getProject(newProjectName);
-// if (newProject.exists()) {
-// return Policy.bind("TagetLocationSelectionDialog.alreadyExists", newProjectName); //$NON-NLS-1$
-// }
-
- return null;
- }
-
- /**
- * @return String
- */
- public String getNewProjectName() {
- return newProjectName;
- }
-
- /**
- * @return String
- */
- public String getTargetLocation() {
- return targetLocation;
- }
-
-}

Back to the top