Added job properties to CVSOperations
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java index 7c963d2..9046210 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java
@@ -106,6 +106,7 @@ consoleManager = ConsolePlugin.getDefault().getConsoleManager(); CVSProviderPlugin.getPlugin().setConsoleListener(CVSOutputConsole.this); CVSUIPlugin.getPlugin().getPreferenceStore().addPropertyChangeListener(CVSOutputConsole.this); + setAutoScroll(true); } /* (non-Javadoc) @@ -266,12 +267,7 @@ } private void showConsole() { - if(showOnMessage) { - if(!visible) - CVSConsoleFactory.showConsole(); - else - consoleManager.showConsoleView(this); - } + show(false); } /* (non-Javadoc) @@ -459,4 +455,18 @@ RGB rgb = PreferenceConverter.getColor(CVSUIPlugin.getPlugin().getPreferenceStore(), preference); return new Color(display, rgb); } + + /** + * Show the console. + * @param showNoMatterWhat ignore preferences if <code>true</code> + */ + public void show(boolean showNoMatterWhat) { + if(showNoMatterWhat || showOnMessage) { + if(!visible) + CVSConsoleFactory.showConsole(); + else + consoleManager.showConsoleView(this); + } + + } } \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java index 4241f9a..4d52eb6 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java
@@ -16,6 +16,8 @@ import java.util.*; import org.eclipse.core.runtime.*; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Shell; @@ -288,4 +290,28 @@ // Put CVS jobs in the background by default. return true; } + + /* (non-Javadoc) + * @see org.eclipse.team.ui.TeamOperation#isSameFamilyAs(org.eclipse.team.ui.TeamOperation) + */ + protected boolean isSameFamilyAs(TeamOperation operation) { + // Trat all CVS operations as a single family + return operation instanceof CVSOperation; + } + + /* + * Action to show the console that can be used by subclasses + * that wish to link the progress service to the console + */ + protected IAction getShowConsoleAction() { + // Show the console as the goto action + return new Action("Show CVS Console") { + public void run() { + CVSUIPlugin.getPlugin().getConsole().show(true); + } + public String getToolTipText() { + return "Show CVS Console"; + } + }; + } }
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java index 06bb85e..761169a 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java
@@ -12,6 +12,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.jface.action.IAction; import org.eclipse.team.internal.ccvs.core.CVSException; import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder; import org.eclipse.team.internal.ccvs.ui.Policy; @@ -67,4 +68,19 @@ public boolean canRunAsJob() { return true; } + + /* (non-Javadoc) + * @see org.eclipse.team.ui.TeamOperation#isKeepOneProgressServiceEntry() + */ + public boolean isKeepOneProgressServiceEntry() { + // Keep the last repository provider operation in the progress service + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.team.ui.TeamOperation#getGotoAction() + */ + protected IAction getGotoAction() { + return getShowConsoleAction(); + } }
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java index a94e55c..cc2e0bf 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java
@@ -15,6 +15,7 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.jobs.ISchedulingRule; +import org.eclipse.jface.action.IAction; import org.eclipse.team.core.RepositoryProvider; import org.eclipse.team.core.TeamException; import org.eclipse.team.internal.ccvs.core.*; @@ -193,4 +194,18 @@ } } + /* (non-Javadoc) + * @see org.eclipse.team.ui.TeamOperation#isKeepOneProgressServiceEntry() + */ + public boolean isKeepOneProgressServiceEntry() { + // Keep the last repository provider operation in the progress service + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.team.ui.TeamOperation#getGotoAction() + */ + protected IAction getGotoAction() { + return getShowConsoleAction(); + } }