1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-05 07:15:39 +02:00

[244437] improved ITerminalListener implementation.

This commit is contained in:
Anna Dushistova 2008-09-02 21:38:50 +00:00
parent e3bb6c7eae
commit 0ecfca3e39

View file

@ -85,8 +85,6 @@ public class TerminalViewTab extends Composite {
private TerminalActionSelectAll fActionEditSelectAll;
private ITerminalViewControl fTerminalControl;
protected class TerminalContextMenuHandler implements MenuListener,
IMenuListener {
public void menuHidden(MenuEvent event) {
@ -187,7 +185,7 @@ public class TerminalViewTab extends Composite {
public CTabItem createTabItem(IAdaptable root,
final String initialWorkingDirCmd) {
CTabItem item = new CTabItem(tabFolder, SWT.CLOSE);
final CTabItem item = new CTabItem(tabFolder, SWT.CLOSE);
setTabTitle(root, item);
item.setData(root);
@ -196,23 +194,18 @@ public class TerminalViewTab extends Composite {
tabFolder.getParent().layout(true);
if (root instanceof IHost) {
IHost host = (IHost) root;
final IHost host = (IHost) root;
ITerminalConnector connector = new RSETerminalConnector(host);
fTerminalControl = TerminalViewControlFactory.makeControl(
new ITerminalListener() {
ITerminalViewControl terminalControl = TerminalViewControlFactory
.makeControl(new ITerminalListener() {
public void setState(final TerminalState state) {
if (state == TerminalState.CLOSED
|| state == TerminalState.CONNECTED) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
CTabItem item = tabFolder
.getSelection();
if (item != null && !item.isDisposed()) {
Object data = item.getData();
if (data instanceof IHost) {
IHost host = (IHost) data;
if (!item.isDisposed()) {
final ITerminalServiceSubSystem terminalServiceSubSystem = TerminalServiceHelper
.getTerminalSubSystem(host);
@ -229,13 +222,15 @@ public class TerminalViewTab extends Composite {
ISystemResourceChangeEvents.EVENT_REFRESH,
terminalServiceSubSystem));
}
}
if (state == TerminalState.CONNECTED) {
if (initialWorkingDirCmd != null) {
fTerminalControl
Object data = item
.getData(DATA_KEY_CONTROL);
if (data instanceof ITerminalViewControl)
((ITerminalViewControl) data)
.pasteString(initialWorkingDirCmd);
}
}
}
});
@ -249,13 +244,13 @@ public class TerminalViewTab extends Composite {
}, c, new ITerminalConnector[] { connector });
// Specify Encoding for Terminal
try {
fTerminalControl.setEncoding(host.getDefaultEncoding(true));
terminalControl.setEncoding(host.getDefaultEncoding(true));
} catch (UnsupportedEncodingException e) {
/* ignore and allow fallback to default encoding */
}
fTerminalControl.setConnector(connector);
fTerminalControl.connectTerminal();
item.setData(DATA_KEY_CONTROL, fTerminalControl);
terminalControl.setConnector(connector);
item.setData(DATA_KEY_CONTROL, terminalControl);
terminalControl.connectTerminal();
}
item.setControl(c);
tabFolder.setSelection(item);