Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-10-22 13:27:32 +0000
committerMichael Valenta2004-10-22 13:27:32 +0000
commit2af8f048d8f7679b0a0c224f4d99f2f9940ea1b5 (patch)
tree5a3065ef244146341040d8166a6c7567d2945c4c /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui
parenta57799e781f077278350d8241643bcc489982c69 (diff)
downloadeclipse.platform.team-2af8f048d8f7679b0a0c224f4d99f2f9940ea1b5.tar.gz
eclipse.platform.team-2af8f048d8f7679b0a0c224f4d99f2f9940ea1b5.tar.xz
eclipse.platform.team-2af8f048d8f7679b0a0c224f4d99f2f9940ea1b5.zip
Bug 76582 Cvs errors get swalled and only fully reported in .log file
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/console/CVSOutputConsole.java50
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CVSOperation.java26
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/CheckoutOperation.java16
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteLogOperation.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RepositoryProviderOperation.java15
5 files changed, 92 insertions, 17 deletions
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 8c5c33920..a95586e71 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
@@ -13,6 +13,7 @@ package org.eclipse.team.internal.ccvs.ui.console;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
+
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -25,6 +26,7 @@ import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.Display;
import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
import org.eclipse.team.internal.ccvs.core.CVSStatus;
+import org.eclipse.team.internal.ccvs.core.client.Session;
import org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener;
import org.eclipse.team.internal.ccvs.ui.*;
import org.eclipse.ui.PlatformUI;
@@ -102,6 +104,7 @@ public class CVSOutputConsole extends MessageConsole implements IConsoleListener
consoleManager = ConsolePlugin.getDefault().getConsoleManager();
CVSProviderPlugin.getPlugin().setConsoleListener(CVSOutputConsole.this);
CVSUIPlugin.getPlugin().getPreferenceStore().addPropertyChangeListener(CVSOutputConsole.this);
+ setAutoScroll(true);
}
/* (non-Javadoc)
@@ -199,14 +202,9 @@ public class CVSOutputConsole extends MessageConsole implements IConsoleListener
}
}
}
-
- private void showConsole() {
- if(showOnMessage) {
- if(!visible)
- CVSConsoleFactory.showConsole();
- else
- consoleManager.showConsoleView(this);
- }
+
+ private void showConsole() {
+ show(false);
}
/* (non-Javadoc)
@@ -243,7 +241,8 @@ public class CVSOutputConsole extends MessageConsole implements IConsoleListener
/* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener#commandInvoked(java.lang.String)
*/
- public void commandInvoked(String line) {
+ public void commandInvoked(Session session, String line) {
+ if (!session.isOutputToConsole()) return;
commandStarted = System.currentTimeMillis();
appendLine(ConsoleDocument.COMMAND, Policy.bind("Console.preExecutionDelimiter")); //$NON-NLS-1$
appendLine(ConsoleDocument.COMMAND, line);
@@ -252,21 +251,26 @@ public class CVSOutputConsole extends MessageConsole implements IConsoleListener
/* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener#messageLineReceived(java.lang.String)
*/
- public void messageLineReceived(String line) {
- appendLine(ConsoleDocument.MESSAGE, " " + line); //$NON-NLS-1$
+ public void messageLineReceived(Session session, String line, IStatus status) {
+ if (session.isOutputToConsole()) {
+ appendLine(ConsoleDocument.MESSAGE, " " + line); //$NON-NLS-1$
+ }
}
-
- /* (non-Javadoc)
+
+ /* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener#errorLineReceived(java.lang.String)
*/
- public void errorLineReceived(String line) {
- appendLine(ConsoleDocument.ERROR, " " + line); //$NON-NLS-1$
+ public void errorLineReceived(Session session, String line, IStatus status) {
+ if (session.isOutputToConsole()) {
+ appendLine(ConsoleDocument.ERROR, " " + line); //$NON-NLS-1$
+ }
}
/* (non-Javadoc)
* @see org.eclipse.team.internal.ccvs.core.client.listeners.IConsoleListener#commandCompleted(org.eclipse.core.runtime.IStatus, java.lang.Exception)
*/
- public void commandCompleted(IStatus status, Exception exception) {
+ public void commandCompleted(Session session, IStatus status, Exception exception) {
+ if (!session.isOutputToConsole()) return;
long commandRuntime = System.currentTimeMillis() - commandStarted;
String time;
try {
@@ -373,4 +377,18 @@ public class CVSOutputConsole extends MessageConsole implements IConsoleListener
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 4241f9a55..4d52eb6a9 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.net.URL;
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 @@ public abstract class CVSOperation extends TeamOperation {
// 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 06bb85ec8..761169a42 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 @@ package org.eclipse.team.internal.ccvs.ui.operations;
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 abstract class CheckoutOperation extends RemoteOperation {
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/RemoteLogOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteLogOperation.java
index f6e7d5001..5018a29c7 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteLogOperation.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/RemoteLogOperation.java
@@ -208,7 +208,7 @@ public class RemoteLogOperation extends RepositoryLocationOperation {
*/
protected void execute(ICVSRepositoryLocation location, ICVSRemoteResource[] remoteResources, IProgressMonitor monitor) throws CVSException {
monitor.beginTask(Policy.bind("RemoteLogOperation.0", location.getHost()), 100); //$NON-NLS-1$
- Session s = new Session(location, CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot()));
+ Session s = new Session(location, CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot()), false /* do not output to console */);
LogListener listener = new LogListener();
ICVSRemoteResource[] remotes = remoteResources;
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 a94e55cee..cc2e0bf5a 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 java.util.*;
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 @@ public abstract class RepositoryProviderOperation extends CVSOperation {
}
}
+ /* (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();
+ }
}

Back to the top