Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2003-06-16 20:05:38 +0000
committerMichael Valenta2003-06-16 20:05:38 +0000
commitf2ecc692b51a9ca556aa1abb262a145a80c72c1a (patch)
treee27b2097b6ae9e38a005062dfed2e0011630c178
parent48322c161fc280c50092e4d0a1ae9ea064d059d8 (diff)
downloadeclipse.platform.team-f2ecc692b51a9ca556aa1abb262a145a80c72c1a.tar.gz
eclipse.platform.team-f2ecc692b51a9ca556aa1abb262a145a80c72c1a.tar.xz
eclipse.platform.team-f2ecc692b51a9ca556aa1abb262a145a80c72c1a.zip
Removed CheckoutInto as a separate actin since it is now part of the Checkout As workflow
-rw-r--r--bundles/org.eclipse.team.cvs.ui/plugin.properties5
-rw-r--r--bundles/org.eclipse.team.cvs.ui/plugin.xml8
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutIntoAction.java45
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoProjectSelectionPage.java274
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoWizard.java150
5 files changed, 1 insertions, 481 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.properties b/bundles/org.eclipse.team.cvs.ui/plugin.properties
index a0ba0b2eb..f450b2da1 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.properties
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.properties
@@ -107,10 +107,7 @@ CheckoutAction.label=&Check Out
CheckoutAction.tooltip=Check out a module from the repository to the workspace
CheckoutAsAction.label=Check Out &As...
-CheckoutAsAction.tooltip=Check out a module from the repository to the workspace, specifying project name
-
-CheckoutIntoAction.label=Check Out &Into...
-CheckoutIntoAction.tooltip=Check out a folder from the repository into an existing folder in the workspace
+CheckoutAsAction.tooltip=Check out a module from the repository to the workspace
OpenLogEntryAction.label=&Open
OpenLogEntryAction.tooltip=Open Remote File
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
index c35bb4199..1e7425e02 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.xml
@@ -383,14 +383,6 @@
<objectContribution
objectClass="org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder"
id="org.eclipse.team.ccvs.ui.RemoteFolderContributions">
- <action
- label="%CheckoutIntoAction.label"
- tooltip="%CheckoutIntoAction.tooltip"
- menubarPath="checkoutGroup"
- class="org.eclipse.team.internal.ccvs.ui.actions.CheckoutIntoAction"
- helpContextId="org.eclipse.team.cvs.ui.checkout_into_action_context"
- id="org.eclipse.team.ccvs.ui.checkoutInto">
- </action>
<action
label="%CheckoutAsAction.label"
tooltip="%CheckoutAsAction.tooltip"
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutIntoAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutIntoAction.java
deleted file mode 100644
index b930e6525..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CheckoutIntoAction.java
+++ /dev/null
@@ -1,45 +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.actions;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteModule;
-import org.eclipse.team.internal.ccvs.ui.ResizableWizardDialog;
-import org.eclipse.team.internal.ccvs.ui.wizards.CheckoutIntoWizard;
-
-public class CheckoutIntoAction extends CVSAction {
-
- /**
- * @see CVSAction#execute(IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- final ICVSRemoteFolder remoteFolder = getSelectedRemoteFolders()[0];
- CheckoutIntoWizard wizard = new CheckoutIntoWizard(remoteFolder);
- WizardDialog dialog = new ResizableWizardDialog(shell, wizard);
- dialog.setMinimumPageSize(350, 250);
- dialog.open();
- }
-
- /**
- * @see TeamAction#isEnabled()
- */
- protected boolean isEnabled() throws TeamException {
- ICVSRemoteFolder[] folders = getSelectedRemoteFolders();
- if (getSelectedRemoteFolders().length != 1) return false;
- if (folders[0] instanceof RemoteModule) return false;
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoProjectSelectionPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoProjectSelectionPage.java
deleted file mode 100644
index 0981c781e..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoProjectSelectionPage.java
+++ /dev/null
@@ -1,274 +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.wizards;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.AdaptableResourceList;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Select the target parent folder and folder name for the 'Checkout Into" operation.
- */
-public class CheckoutIntoProjectSelectionPage extends CVSWizardPage {
-
- private TreeViewer tree;
- private Text nameField;
- private Combo filterList;
- private Button recurseCheck;
-
- private IResource[] resources;
- private IResource selection;
- private ICVSRemoteFolder remoteFolder;
- private String folderName;
- private boolean recurse;
- private int filter;
-
-
- /**
- * Constructor for CheckoutIntoProjectSelectionPage.
- * @param pageName
- */
- public CheckoutIntoProjectSelectionPage(String pageName) {
- super(pageName);
- }
-
- /**
- * Constructor for CheckoutIntoProjectSelectionPage.
- * @param pageName
- * @param title
- * @param titleImage
- */
- public CheckoutIntoProjectSelectionPage(String pageName, String title, ImageDescriptor titleImage, String description) {
- super(pageName, title, titleImage, description);
- }
-
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= createComposite(parent, 2);
- setControl(composite);
-
- WorkbenchHelp.setHelp(composite, IHelpContextIds.CHECKOUT_INTO_RESOURCE_SELECTION_PAGE);
-
- createLabel(composite, Policy.bind("CheckoutIntoProjectSelectionPage.name")); //$NON-NLS-1$
- nameField = createTextField(composite);
- nameField.addListener(SWT.Modify, new Listener() {
- public void handleEvent(Event event) {
- folderName = nameField.getText();
- updateWidgetEnablements();
- }
- });
-
- createWrappingLabel(composite, Policy.bind("CheckoutIntoProjectSelectionPage.treeLabel"), 0, 2); //$NON-NLS-1$
-
- tree = createResourceSelectionTree(composite, IResource.PROJECT | IResource.FOLDER, 2 /* horizontal span */);
- tree.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- handleResourceSelection(event);
- }
- });
-
- Composite filterComposite = createComposite(composite, 2);
- GridData data = new GridData();
- data.verticalAlignment = GridData.FILL;
- data.horizontalAlignment = GridData.FILL;
- data.horizontalSpan = 2;
- filterComposite.setLayoutData(data);
- createLabel(filterComposite, Policy.bind("CheckoutIntoProjectSelectionPage.showLabel")); //$NON-NLS-1$
- filterList = createCombo(filterComposite);
- filterList.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- handleFilterSelection();
- }
- });
-
- createWrappingLabel(composite, "", 0, 2); //$NON-NLS-1$
-
- // Should subfolders of the folder be checked out?
- recurseCheck = createCheckBox(composite, Policy.bind("CheckoutIntoProjectSelectionPage.recurse")); //$NON-NLS-1$
- recurseCheck.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- recurse = recurseCheck.getSelection();
- updateWidgetEnablements();
- }
- });
-
- initializeValues();
- updateWidgetEnablements();
- tree.getControl().setFocus();
- }
-
- /**
- * Method initializeValues.
- */
- private void initializeValues() {
- nameField.setText(remoteFolder.getName());
- tree.setInput(ResourcesPlugin.getWorkspace().getRoot());
- recurse = true;
- recurseCheck.setSelection(recurse);
- filter = 0;
- updateTreeContents(filter);
- filterList.add(Policy.bind("CheckoutIntoProjectSelectionPage.showAll")); //$NON-NLS-1$
- filterList.add(Policy.bind("CheckoutIntoProjectSelectionPage.showUnshared")); //$NON-NLS-1$
- filterList.add(Policy.bind("CheckoutIntoProjectSelectionPage.showSameRepo")); //$NON-NLS-1$
- filterList.select(filter);
- }
-
- private void handleResourceSelection(SelectionChangedEvent event) {
- ISelection selection = event.getSelection();
- if (selection.isEmpty()) {
- this.selection = null;
- } else if (selection instanceof IStructuredSelection) {
- this.selection = (IResource)((IStructuredSelection)selection).getFirstElement();
- }
- updateWidgetEnablements();
- }
-
- /**
- * Method updateWidgetEnablement.
- */
- private void updateWidgetEnablements() {
- if (!Path.EMPTY.isValidSegment(folderName)) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("CheckoutIntoProjectSelectionPage.invalidFolderName", folderName)); //$NON-NLS-1$
- return;
- }
- boolean complete = selection != null && selection.getType() != IResource.FILE;
- setErrorMessage(null);
- setPageComplete(complete);
- }
-
- /**
- * Returns the selection.
- * @return IResource
- */
- public IResource getSelection() {
- return selection;
- }
-
- /**
- * Sets the remoteFolder.
- * @param remoteFolder The remoteFolder to set
- */
- public void setRemoteFolder(ICVSRemoteFolder remoteFolder) {
- this.remoteFolder = remoteFolder;
- }
-
- /**
- * Returns the folderName.
- * @return String
- */
- public String getFolderName() {
- return folderName;
- }
-
- private void updateTreeContents(int selected) {
- try {
- if (selected == 0) {
- tree.setInput(new AdaptableResourceList(getProjects(remoteFolder.getFolderSyncInfo().getRoot(), true)));
- } else if (selected == 1) {
- tree.setInput(new AdaptableResourceList(getProjects(null, true)));
- } else if (selected == 2) {
- tree.setInput(new AdaptableResourceList(getProjects(remoteFolder.getFolderSyncInfo().getRoot(), false)));
- }
- } catch (CVSException e) {
- CVSUIPlugin.log(e.getStatus());
- }
- }
-
- /**
- * Method getValidTargetProjects returns the et of projects that match the provided criteria.
- * @return IResource
- */
- private IProject[] getProjects(String root, boolean unshared) throws CVSException {
- List validTargets = new ArrayList();
- try {
- IResource[] projects = ResourcesPlugin.getWorkspace().getRoot().members();
- for (int i = 0; i < projects.length; i++) {
- IResource resource = projects[i];
- if (resource instanceof IProject) {
- IProject project = (IProject) resource;
- if (project.isAccessible()) {
- RepositoryProvider provider = RepositoryProvider.getProvider(project);
- if (provider == null && unshared) {
- validTargets.add(project);
- } else if (provider != null && provider.getID().equals(CVSProviderPlugin.getTypeId())) {
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(project);
- FolderSyncInfo info = cvsFolder.getFolderSyncInfo();
- if (root != null && root.equals(info.getRoot())) {
- validTargets.add(project);
- }
- }
- }
- }
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- return (IProject[]) validTargets.toArray(new IProject[validTargets.size()]);
- }
-
- public IContainer getLocalFolder() {
- if (Path.EMPTY.isValidSegment(folderName)) {
- return ((IContainer)getSelection()).getFolder(new Path(folderName));
- } else {
- return null;
- }
- }
-
- /**
- * Returns the recurse.
- * @return boolean
- */
- public boolean isRecurse() {
- return recurse;
- }
-
- private void handleFilterSelection() {
- filter = filterList.getSelectionIndex();
- updateTreeContents(filter);
- }
-}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoWizard.java
deleted file mode 100644
index 88e13a735..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/CheckoutIntoWizard.java
+++ /dev/null
@@ -1,150 +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.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ui.IPromptCondition;
-import org.eclipse.team.internal.ui.PromptingDialog;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Wizard that performs the "Checkout Into" operation
- */
-public class CheckoutIntoWizard extends Wizard {
-
- CheckoutIntoProjectSelectionPage projectSelectionPage;
- ICVSRemoteFolder remoteFolder;
-
- /**
- * Constructor for CheckoutIntoWizard.
- */
- public CheckoutIntoWizard(ICVSRemoteFolder remoteFolder) {
- super();
- this.remoteFolder = remoteFolder;
- setWindowTitle(Policy.bind("CheckoutIntoWizard.title")); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#addPages()
- */
- public void addPages() {
- setNeedsProgressMonitor(true);
- ImageDescriptor substImage = CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_WIZBAN_CHECKOUT);
-
- projectSelectionPage = new CheckoutIntoProjectSelectionPage(
- "ProjectSelectionPage", //$NON-NLS-1$
- Policy.bind("CheckoutIntoWizard.projectSelectionPageTitle"), //$NON-NLS-1$
- substImage,
- Policy.bind("CheckoutIntoWizard.projectSelectionPageDescription")); //$NON-NLS-1$
- projectSelectionPage.setRemoteFolder(remoteFolder);
- addPage(projectSelectionPage);
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#performFinish()
- */
- public boolean performFinish() {
- try {
- final IContainer targetFolder = projectSelectionPage.getLocalFolder();
- if (targetFolder == null) return false;
- PromptingDialog prompt = new PromptingDialog(getShell(), new IResource[] { targetFolder },
- getOverwriteLocalAndFileSystemPrompt(), Policy.bind("CheckoutIntoWizard.confirmOverwrite"));//$NON-NLS-1$
- if (prompt.promptForMultiple().length == 0) return false;
- getContainer().run(true, true, new WorkspaceModifyOperation() {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(null, 100);
- try {
- validateUniqueMapping(remoteFolder.getFolderSyncInfo(), targetFolder, Policy.subMonitorFor(monitor, 10));
- CVSWorkspaceRoot.checkout(remoteFolder, targetFolder, true /* keep CVSness */, projectSelectionPage.isRecurse(), Policy.subMonitorFor(monitor, 90));
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InvocationTargetException e) {
- handle(e);
- return false;
- } catch (InterruptedException e) {
- return false;
- }
- return true;
- }
-
- private void handle(Throwable e) {
- CVSUIPlugin.openError(getShell(), Policy.bind("CheckoutIntoWizard.error"), null, e); //$NON-NLS-1$
- }
-
- protected IPromptCondition getOverwriteLocalAndFileSystemPrompt() {
- return new IPromptCondition() {
- // prompt if resource in workspace exists or exists in local file system
- public boolean needsPrompt(IResource resource) {
- if(resource.exists()) {
- return true;
- }
- return false;
- }
- public String promptMessage(IResource resource) {
- return Policy.bind("CheckoutIntoWizard.thisResourceExists", resource.getFullPath().toString());//$NON-NLS-1$
- }
- };
- }
-
- /*
- * Ensure that there is no equivalent mapping alreay in the project
- */
- private void validateUniqueMapping(
- final FolderSyncInfo folderSyncInfo,
- final IContainer targetFolder,
- IProgressMonitor iProgressMonitor) throws CVSException {
-
- final IProject iProject = targetFolder.getProject();
- ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(iProject);
- cvsFolder.accept(new ICVSResourceVisitor() {
- public void visitFile(ICVSFile file) throws CVSException {
- // do nothing
- }
- public void visitFolder(ICVSFolder folder) throws CVSException {
- if (!folder.isCVSFolder()) return;
- IResource resource = folder.getIResource();
- if (resource == null || resource.equals(targetFolder)) return;
- FolderSyncInfo info = folder.getFolderSyncInfo();
- if (info.getRoot().equals(folderSyncInfo.getRoot())
- && info.getRepository().equals(folderSyncInfo.getRepository())) {
- throw new CVSException(Policy.bind("CheckoutIntoWizard.,mappingAlredyExists", //$NON-NLS-1$
- new Object[] { folderSyncInfo.getRepository(), iProject.getName(),
- targetFolder.getProjectRelativePath().toString(),
- resource.getProjectRelativePath().toString() }));
- }
- folder.acceptChildren(this);
- }
- });
- }
-}

Back to the top