Code cleanup.
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/util/Displays.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/util/Displays.java
deleted file mode 100644
index d35329b..0000000
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/util/Displays.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2012 Google Inc.
- *
- * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
- * Public License v1.0 which accompanies this distribution, and is available at
- *
- * http://www.eclipse.org/legal/epl-v10.html
- */
-package com.google.eclipse.terminal.local.ui.util;
-
-import static java.lang.Thread.currentThread;
-import static org.eclipse.swt.widgets.Display.findDisplay;
-import static org.eclipse.ui.PlatformUI.*;
-
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Utility methods related to <code>{@link Display}</code>s.
- *
- * @author alruiz@google.com (Alex Ruiz)
- */
-public final class Displays {
- /**
- * Causes the {@code run()} method of the given {@code Runnable} to be invoked by the user-interface thread.
- * @param runnable the given {@code Runnable}.
- */
- public static void runInDisplayThread(Runnable runnable) {
- if (findDisplay(currentThread()) != null) {
- runnable.run();
- return;
- }
- if (isWorkbenchRunning()) {
- getWorkbench().getDisplay().syncExec(runnable);
- }
- }
-
- private Displays() {}
-}
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
index 8c67788..62ecdb6 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
@@ -12,16 +12,16 @@
import static com.google.eclipse.terminal.local.ImageKeys.*;
import static com.google.eclipse.terminal.local.ui.preferences.ColorsAndFontsPreferences.*;
import static com.google.eclipse.terminal.local.ui.preferences.GeneralPreferences.*;
-import static com.google.eclipse.terminal.local.ui.util.Displays.runInDisplayThread;
import static com.google.eclipse.terminal.local.ui.view.Messages.*;
import static com.google.eclipse.terminal.local.util.Platform.userHomeDirectory;
import static org.eclipse.core.runtime.Path.fromOSString;
+import static org.eclipse.core.runtime.Status.OK_STATUS;
import static org.eclipse.jface.resource.JFaceResources.TEXT_FONT;
import static org.eclipse.ui.IWorkbenchPage.VIEW_ACTIVATE;
import java.util.UUID;
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.*;
import org.eclipse.jface.action.*;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.*;
@@ -32,6 +32,7 @@
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
import org.eclipse.ui.*;
import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.progress.UIJob;
import com.google.eclipse.terminal.local.core.connector.LifeCycleListener;
import com.google.eclipse.terminal.local.ui.preferences.AbstractPreferencesChangeListener;
@@ -107,21 +108,13 @@
terminalWidget.setLifeCycleListener(this);
terminalWidget.setCommandListener(new CommandListener() {
@Override public void commandIssued(final String command) {
- runInDisplayThread(new Runnable() {
- @Override public void run() {
- String title = String.format(VIEW_TITLE_FORMAT, workingDirectory.lastSegment(), command);
- setPartName(title);
- }
- });
+ String title = String.format(VIEW_TITLE_FORMAT, workingDirectory.lastSegment(), command);
+ updatePartName(title);
}
});
terminalWidget.setTerminalListener(new ITerminalListener() {
@Override public void setTerminalTitle(final String title) {
- runInDisplayThread(new Runnable() {
- @Override public void run() {
- setPartName(title);
- }
- });
+ updatePartName(title);
}
@Override public void setState(TerminalState state) {
@@ -237,6 +230,16 @@
terminalWidget.connect();
}
+ private void updatePartName(final String value) {
+ UIJob job = new UIJob("Update terminal view title") {
+ @Override public IStatus runInUIThread(IProgressMonitor monitor) {
+ setPartName(value);
+ return OK_STATUS;
+ }
+ };
+ job.schedule();
+ }
+
@Override public void setFocus() {
terminalWidget.setFocus();
}