Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2012-01-17 08:16:19 +0000
committerUwe Stieber2012-01-18 07:51:16 +0000
commita23c575879a07779e14c26d512ceeba6bc8d1027 (patch)
tree1ac8075ac3c4f25ceaab044a851ca5ab9117ace7 /target_explorer
parent2f62f47500af432035f03990a49036ef86fd6888 (diff)
downloadorg.eclipse.tcf-a23c575879a07779e14c26d512ceeba6bc8d1027.tar.gz
org.eclipse.tcf-a23c575879a07779e14c26d512ceeba6bc8d1027.tar.xz
org.eclipse.tcf-a23c575879a07779e14c26d512ceeba6bc8d1027.zip
Target Explorer: Fix Terminal tabs not listening to preference changes
Diffstat (limited to 'target_explorer')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/tabs/TabFolderManager.java47
1 files changed, 41 insertions, 6 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/tabs/TabFolderManager.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/tabs/TabFolderManager.java
index c06c0367b..3b7994c11 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/tabs/TabFolderManager.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/tabs/TabFolderManager.java
@@ -17,6 +17,8 @@ import java.util.List;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.PlatformObject;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.viewers.ISelection;
@@ -37,6 +39,9 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
+import org.eclipse.tcf.te.runtime.events.EventManager;
+import org.eclipse.tcf.te.ui.events.AbstractEventListener;
+import org.eclipse.tcf.te.ui.swt.DisplayUtil;
import org.eclipse.tcf.te.ui.terminals.activator.UIPlugin;
import org.eclipse.tcf.te.ui.terminals.events.SelectionChangedBroadcastEvent;
import org.eclipse.tcf.te.ui.terminals.interfaces.ITerminalsView;
@@ -46,16 +51,15 @@ import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
import org.eclipse.tm.internal.terminal.control.TerminalViewControlFactory;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tcf.te.runtime.events.EventManager;
-import org.eclipse.tcf.te.ui.events.AbstractEventListener;
-import org.eclipse.tcf.te.ui.swt.DisplayUtil;
+import org.eclipse.tm.internal.terminal.view.TerminalPreferencePage;
+import org.eclipse.tm.internal.terminal.view.TerminalViewPlugin;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDEEncoding;
/**
* Terminals tab folder manager.
*/
-@SuppressWarnings("restriction")
+@SuppressWarnings({ "restriction", "deprecation" })
public class TabFolderManager extends PlatformObject implements ISelectionProvider {
// Reference to the parent terminal consoles view
private final ITerminalsView parentView;
@@ -408,7 +412,7 @@ public class TabFolderManager extends PlatformObject implements ISelectionProvid
*
* @param item The tab item. Must be not <code>null</code>.
*/
- protected void setupTerminalTabListeners(CTabItem item) {
+ protected void setupTerminalTabListeners(final CTabItem item) {
Assert.isNotNull(item);
// Create and associate the disposal listener
@@ -418,11 +422,42 @@ public class TabFolderManager extends PlatformObject implements ISelectionProvid
final IPropertyChangeListener propertyChangeListener = doCreateTerminalTabPropertyChangeListener(item);
// Register to the JFace font registry
JFaceResources.getFontRegistry().addListener(propertyChangeListener);
+
+ // Create and register the Terminal view plugin preferences property change listener
+ final Preferences.IPropertyChangeListener prefsPropertyChangeListener = new Preferences.IPropertyChangeListener() {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.Preferences.IPropertyChangeListener#propertyChange(org.eclipse.core.runtime.Preferences.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if (item.isDisposed()) return;
+
+ if(event.getProperty().equals(TerminalPreferencePage.PREF_BUFFERLINES)
+ || event.getProperty().equals(TerminalPreferencePage.PREF_INVERT_COLORS)) {
+ Preferences preferences = TerminalViewPlugin.getDefault().getPluginPreferences();
+ int bufferLineLimit = preferences.getInt(TerminalPreferencePage.PREF_BUFFERLINES);
+ boolean invert = preferences.getBoolean(TerminalPreferencePage.PREF_INVERT_COLORS);
+
+ // Get the terminal control from the tab item
+ if (item.getData() instanceof ITerminalViewControl) {
+ ITerminalViewControl terminal = (ITerminalViewControl)item.getData();
+ terminal.setBufferLineLimit(bufferLineLimit);
+ terminal.setInvertedColors(invert);
+ }
+ }
+ }
+ };
+
+ // Register to the Terminal view plugin preferences
+ TerminalViewPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(prefsPropertyChangeListener);
+
// Remove the listener from the JFace font registry if the tab gets disposed
item.addDisposeListener(new DisposeListener() {
@Override
- public void widgetDisposed(DisposeEvent e) {
+ public void widgetDisposed(DisposeEvent e) {
JFaceResources.getFontRegistry().removeListener(propertyChangeListener);
+ TerminalViewPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(prefsPropertyChangeListener);
}
});
}

Back to the top