diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java new file mode 100644 index 000000000..1fb82e987 --- /dev/null +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/SetKeywordSubstitutionAction.java @@ -0,0 +1,70 @@ +package org.eclipse.team.internal.ccvs.ui.actions; + +/* + * (c) Copyright IBM Corp. 2000, 2001. + * All Rights Reserved. + */ + +import org.eclipse.core.resources.IResource; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.team.ccvs.core.CVSTeamProvider; +import org.eclipse.team.ccvs.core.ICVSResource; +import org.eclipse.team.core.ITeamManager; +import org.eclipse.team.core.ITeamProvider; +import org.eclipse.team.core.TeamException; +import org.eclipse.team.core.TeamPlugin; +import org.eclipse.team.internal.ccvs.core.client.Command; +import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption; +import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; +import org.eclipse.team.internal.ccvs.ui.wizards.SetKeywordSubstitutionWizard; +import org.eclipse.team.ui.actions.TeamAction; + +/** + * TagAction tags the selected resources with a version tag specified by the user. + */ +public class SetKeywordSubstitutionAction extends TeamAction { + private KSubstOption previousOption = Command.KSUBST_TEXT; + + /* + * @see IActionDelegate#run(IAction) + */ + public void run(IAction action) { + final IResource[] resources = getSelectedResources(); + SetKeywordSubstitutionWizard wizard = new SetKeywordSubstitutionWizard(resources, + IResource.DEPTH_INFINITE, previousOption); + try { + wizard.prepareToOpen(); + WizardDialog dialog = new WizardDialog(getShell(), wizard); + dialog.setMinimumPageSize(350, 250); + dialog.open(); + previousOption = wizard.getKSubstOption(); + } catch (TeamException e) { + handle(e, "stuff", ""); + } + } + + /* + * @see TeamAction#isEnabled() + */ + protected boolean isEnabled() throws TeamException { + IResource[] resources = getSelectedResources(); + if (resources.length == 0) return false; + ITeamManager manager = TeamPlugin.getManager(); + for (int i = 0; i < resources.length; i++) { + IResource resource = resources[i]; + // resource must be local + if (! resource.isAccessible()) return false; + // provider must be CVS + ITeamProvider provider = manager.getProvider(resource.getProject()); + if (provider == null) return false; + if (! (provider instanceof CVSTeamProvider)) return false; + // resource must either be a project, or it must be managed + if (resource.getType() != IResource.PROJECT) { + ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource); + if (! cvsResource.isManaged()) return false; + } + } + return true; + } +} |