diff options
author | Michael Valenta | 2003-06-16 20:05:38 +0000 |
---|---|---|
committer | Michael Valenta | 2003-06-16 20:05:38 +0000 |
commit | f2ecc692b51a9ca556aa1abb262a145a80c72c1a (patch) | |
tree | e27b2097b6ae9e38a005062dfed2e0011630c178 | |
parent | 48322c161fc280c50092e4d0a1ae9ea064d059d8 (diff) | |
download | eclipse.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
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); - } - }); - } -} |