diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java index 11c91e393fd..95192d71f22 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.java @@ -11,7 +11,7 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - split into core, view and connector plugins + * Michael Scharf (Wind River) - split into core, view and connector plugins * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.actions; @@ -27,6 +27,9 @@ public class ActionMessages extends NLS { public static String TOGGLE_COMMAND_INPUT_FIELD; public static String DISCONNECT; public static String SETTINGS_ELLIPSE; + public static String SCROLL_LOCK_0; + public static String SCROLL_LOCK_1; + public static String COPY; public static String CUT; public static String PASTE; diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties index 7716ea26665..75217014f2a 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/ActionMessages.properties @@ -18,10 +18,12 @@ NEW_TERMINAL = New Terminal CONNECT = Connect DISCONNECT = Disconnect SETTINGS_ELLIPSE = Settings... +SCROLL_LOCK_0 = Scroll &Lock +SCROLL_LOCK_1 = Scroll Lock COPY = Copy CUT = Cut PASTE = Paste SELECTALL = Select All -CLEARALL = Clear All +CLEARALL = Clear Terminal SETTINGS = Settings TOGGLE_COMMAND_INPUT_FIELD= Toggle Command Input Field diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionClearAll.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionClearAll.java index 0e0c5d785e5..cedc350c53c 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionClearAll.java +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionClearAll.java @@ -11,13 +11,13 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - split into core, view and connector plugins + * Michael Scharf (Wind River) - split into core, view and connector plugins * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.actions; -import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.tm.internal.terminal.view.ITerminalView; +import org.eclipse.tm.internal.terminal.view.ImageConsts; public class TerminalActionClearAll extends TerminalAction { @@ -28,9 +28,9 @@ public class TerminalActionClearAll extends TerminalAction setupAction(ActionMessages.CLEARALL, ActionMessages.CLEARALL, - (ImageDescriptor)null, - null, - null, + ImageConsts.IMAGE_CLCL_CLEAR_ALL, + ImageConsts.IMAGE_ELCL_CLEAR_ALL, + ImageConsts.IMAGE_DLCL_CLEAR_ALL, false); } diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java new file mode 100644 index 00000000000..39d023cf469 --- /dev/null +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/actions/TerminalActionScrollLock.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Wind River Systems, Inc. and others. + * 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 + * + * Initial Contributors: + * The following Wind River employees contributed to the Terminal component + * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb, + * Helmut Haigermoser and Ted Williams. + * + * Contributors: + * Michael Scharf (Wind River) - split into core, view and connector plugins + * Martin Oberhuber (Wind River) - fixed copyright headers and beautified + *******************************************************************************/ +package org.eclipse.tm.internal.terminal.actions; + +import org.eclipse.jface.action.IAction; +import org.eclipse.tm.internal.terminal.view.ITerminalView; +import org.eclipse.tm.internal.terminal.view.ImageConsts; + +public class TerminalActionScrollLock extends TerminalAction +{ + public TerminalActionScrollLock(ITerminalView target) + { + super(target, + TerminalActionScrollLock.class.getName(),IAction.AS_RADIO_BUTTON); + + setupAction(ActionMessages.SCROLL_LOCK_0, + ActionMessages.SCROLL_LOCK_1, + ImageConsts.IMAGE_CLCL_SCROLL_LOCK, + ImageConsts.IMAGE_ELCL_SCROLL_LOCK, + ImageConsts.IMAGE_DLCL_SCROLL_LOCK, + true); + } + public void run() { + fTarget.setScrollLock(!fTarget.isScrollLock()); + setChecked(fTarget.isScrollLock()); + } +} diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java index 65abe655307..a1074f80cca 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ITerminalView.java @@ -6,7 +6,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Michael Scharf (Wind River) - initial API and implementation + * Michael Scharf (Wind River) - initial API and implementation *******************************************************************************/ package org.eclipse.tm.internal.terminal.view; @@ -28,4 +28,6 @@ public interface ITerminalView { public void onEditSelectAll(); public boolean hasCommandInputField(); public void setCommandInputField(boolean on); + public boolean isScrollLock(); + public void setScrollLock(boolean b); } diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java index d09d6916bee..c02c33a59fc 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/ImageConsts.java @@ -11,12 +11,12 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - extracted from TerminalConsts + * Michael Scharf (Wind River) - extracted from TerminalConsts * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.view; -public interface ImageConsts +public interface ImageConsts { public final static String IMAGE_DIR_ROOT = "icons/"; //$NON-NLS-1$ public final static String IMAGE_DIR_CTOOL = "ctool16/"; // basic colors - size 16x16 //$NON-NLS-1$ @@ -33,14 +33,20 @@ public interface ImageConsts public static final String IMAGE_CLCL_CONNECT = "ImageClclConnect"; //$NON-NLS-1$ public static final String IMAGE_CLCL_DISCONNECT = "ImageClclDisconnect"; //$NON-NLS-1$ public static final String IMAGE_CLCL_SETTINGS = "ImageClclSettings"; //$NON-NLS-1$ + public static final String IMAGE_CLCL_CLEAR_ALL = "ImageClclClearAll"; //$NON-NLS-1$ + public static final String IMAGE_CLCL_SCROLL_LOCK = "ImageClclScrollLock"; //$NON-NLS-1$ public static final String IMAGE_DLCL_CONNECT = "ImageDlclConnect"; //$NON-NLS-1$ public static final String IMAGE_DLCL_DISCONNECT = "ImageDlclDisconnect"; //$NON-NLS-1$ public static final String IMAGE_DLCL_SETTINGS = "ImageDlclSettings"; //$NON-NLS-1$ + public static final String IMAGE_DLCL_CLEAR_ALL = "ImageDlclClearAll"; //$NON-NLS-1$ + public static final String IMAGE_DLCL_SCROLL_LOCK = "ImageDlclScrollLock"; //$NON-NLS-1$ public static final String IMAGE_ELCL_CONNECT = "ImageElclConnect"; //$NON-NLS-1$ public static final String IMAGE_ELCL_DISCONNECT = "ImageElclDisconnect"; //$NON-NLS-1$ public static final String IMAGE_ELCL_SETTINGS = "ImageElclSettings"; //$NON-NLS-1$ + public static final String IMAGE_ELCL_CLEAR_ALL = "ImageElclClearAll"; //$NON-NLS-1$ + public static final String IMAGE_ELCL_SCROLL_LOCK = "ImageElclScrollLock"; //$NON-NLS-1$ public static final String IMAGE_CLCL_COMMAND_INPUT_FIELD = "ImageClclCommandInputField";//$NON-NLS-1$ public static final String IMAGE_ELCL_COMMAND_INPUT_FIELD = "ImageDlclCommandInputField";//$NON-NLS-1$ public static final String IMAGE_DLCL_COMMAND_INPUT_FIELD = "ImageDlclCommandInputField";//$NON-NLS-1$ diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java index 52dc1911615..f3434978f9a 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalView.java @@ -11,7 +11,7 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - split into core, view and connector plugins + * Michael Scharf (Wind River) - split into core, view and connector plugins * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.view; @@ -88,6 +88,8 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi protected TerminalAction fActionTerminalConnect; +// private TerminalAction fActionTerminalScrollLock; + protected TerminalAction fActionTerminalDisconnect; protected TerminalAction fActionTerminalSettings; @@ -103,13 +105,13 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi protected TerminalAction fActionEditSelectAll; protected TerminalAction fActionToggleCommandInputField; - + protected TerminalMenuHandlerEdit fMenuHandlerEdit; protected TerminalPropertyChangeHandler fPropertyChangeHandler; protected boolean fMenuAboutToShow; - + private SettingsStore fStore; private CommandInputFieldWithHistory fCommandInputField; @@ -125,12 +127,11 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi } } }; - public TerminalView() { Logger .log("==============================================================="); //$NON-NLS-1$ } - + String findUniqueTitle(String title) { IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages(); String id= getViewSite().getId(); @@ -166,7 +167,7 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi if(!limitOutput) bufferLineLimit=-1; fCtlTerminal.setBufferLineLimit(bufferLineLimit); - + } // TerminalTarget interface public void setState(final TerminalState state) { @@ -321,7 +322,7 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi setTitleToolTip(getPartName()+": "+strTitle); //$NON-NLS-1$ } /** - * @return the setting summary. If there is no connection, or the connection + * @return the setting summary. If there is no connection, or the connection * has not been initialized, use the last stored state. */ private String getSettingsSummary() { @@ -344,9 +345,9 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi return ViewMessages.STATE_CONNECTED; } else if(state==TerminalState.CONNECTING) { return ViewMessages.STATE_CONNECTING; - } else if(state==TerminalState.OPENED) { + } else if(state==TerminalState.OPENED) { return ViewMessages.STATE_OPENED; - } else if(state==TerminalState.CLOSED) { + } else if(state==TerminalState.CLOSED) { return ViewMessages.STATE_CLOSED; } else { throw new IllegalStateException(state.toString()); @@ -472,13 +473,13 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi setCommandInputField("true".equals(fStore.get(STORE_HAS_COMMAND_INPUT_FIELD))); //$NON-NLS-1$ updatePreferences(); TerminalViewPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(fPreferenceListener); - + // restore the title of this view String title=fStore.get(STORE_TITLE); if(title!=null && title.length()>0) setPartName(title); } - + private void saveSettings(ITerminalConnectorInfo connector) { ITerminalConnectorInfo[] connectors=fCtlTerminal.getConnectors(); for (int i = 0; i < connectors.length; i++) { @@ -488,7 +489,7 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi fStore.put(STORE_CONNECTION_TYPE,connector.getId()); } } - + public void init(IViewSite site, IMemento memento) throws PartInitException { super.init(site, memento); fStore=new SettingsStore(memento); @@ -509,6 +510,7 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi protected void setupActions() { fActionTerminalNewTerminal = new TerminalActionNewTerminal(this); +// fActionTerminalScrollLock = new TerminalActionScrollLock(this); fActionTerminalConnect = new TerminalActionConnect(this); fActionTerminalDisconnect = new TerminalActionDisconnect(this); fActionTerminalSettings = new TerminalActionSettings(this); @@ -552,6 +554,7 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager(); toolBarMgr.add(fActionTerminalNewTerminal); +// toolBarMgr.add(fActionTerminalScrollLock); toolBarMgr.add(fActionTerminalConnect); toolBarMgr.add(fActionTerminalDisconnect); toolBarMgr.add(fActionTerminalSettings); @@ -581,7 +584,10 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi menuMgr.add(new Separator()); menuMgr.add(fActionEditClearAll); menuMgr.add(fActionEditSelectAll); + menuMgr.add(new Separator()); menuMgr.add(fActionToggleCommandInputField); +// menuMgr.add(fActionTerminalScrollLock); + // Other plug-ins can contribute there actions here menuMgr.add(new Separator("Additions")); //$NON-NLS-1$ @@ -744,4 +750,12 @@ public class TerminalView extends ViewPart implements ITerminalView, ITerminalLi } fCtlTerminal.setCommandInputField(fCommandInputField); } + + public boolean isScrollLock() { + return fCtlTerminal.isScrollLock(); + } + + public void setScrollLock(boolean on) { + fCtlTerminal.setScrollLock(on); + } } diff --git a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java index 733162398a6..5de2c98f97c 100644 --- a/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java +++ b/terminal/org.eclipse.tm.terminal.view/src/org/eclipse/tm/internal/terminal/view/TerminalViewPlugin.java @@ -11,7 +11,7 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - split into core, view and connector plugins + * Michael Scharf (Wind River) - split into core, view and connector plugins * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.view; @@ -48,6 +48,8 @@ public class TerminalViewPlugin extends AbstractUIPlugin { map.put(ImageConsts.IMAGE_CLCL_DISCONNECT, "disconnect_co.gif"); //$NON-NLS-1$ map.put(ImageConsts.IMAGE_CLCL_SETTINGS, "properties_tsk.gif"); //$NON-NLS-1$ map.put(ImageConsts.IMAGE_CLCL_COMMAND_INPUT_FIELD, "command_input_field.gif"); //$NON-NLS-1$ + map.put(ImageConsts.IMAGE_CLCL_SCROLL_LOCK, "lock_co.gif"); //$NON-NLS-1$ + map.put(ImageConsts.IMAGE_CLCL_CLEAR_ALL, "clear_co.gif"); //$NON-NLS-1$ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_LOCALTOOL, map); @@ -59,6 +61,8 @@ public class TerminalViewPlugin extends AbstractUIPlugin { map.put(ImageConsts.IMAGE_ELCL_DISCONNECT, "disconnect_co.gif"); //$NON-NLS-1$ map.put(ImageConsts.IMAGE_ELCL_SETTINGS, "properties_tsk.gif"); //$NON-NLS-1$ map.put(ImageConsts.IMAGE_ELCL_COMMAND_INPUT_FIELD, "command_input_field.gif"); //$NON-NLS-1$ + map.put(ImageConsts.IMAGE_ELCL_SCROLL_LOCK, "lock_co.gif"); //$NON-NLS-1$ + map.put(ImageConsts.IMAGE_ELCL_CLEAR_ALL, "clear_co.gif"); //$NON-NLS-1$ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_ELCL, map); @@ -70,6 +74,8 @@ public class TerminalViewPlugin extends AbstractUIPlugin { map.put(ImageConsts.IMAGE_DLCL_DISCONNECT, "disconnect_co.gif"); //$NON-NLS-1$ map.put(ImageConsts.IMAGE_DLCL_SETTINGS, "properties_tsk.gif"); //$NON-NLS-1$ map.put(ImageConsts.IMAGE_DLCL_COMMAND_INPUT_FIELD, "command_input_field.gif"); //$NON-NLS-1$ + map.put(ImageConsts.IMAGE_DLCL_SCROLL_LOCK, "lock_co.gif"); //$NON-NLS-1$ + map.put(ImageConsts.IMAGE_DLCL_CLEAR_ALL, "clear_co.gif"); //$NON-NLS-1$ loadImageRegistry(imageRegistry, ImageConsts.IMAGE_DIR_DLCL, map); diff --git a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java index d498d97ac64..9424c59547f 100644 --- a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java +++ b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/ITerminalViewControl.java @@ -1,11 +1,11 @@ /******************************************************************************* * Copyright (c) 2006, 2007 Wind River Systems, Inc. and others. - * 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 - * - * Contributors: + * 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 + * + * Contributors: * Michael Scharf (Wind River) - initial API and implementation * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ @@ -50,7 +50,7 @@ public interface ITerminalViewControl { * @param string write string to terminal */ public boolean pasteString(String string); - + boolean isConnected(); /** @@ -61,7 +61,7 @@ public interface ITerminalViewControl { * @return null or the current input field */ ICommandInputField getCommandInputField(); - + /** * @return the maximum number of lines to display * in the terminal view. -1 means unlimited. @@ -70,7 +70,9 @@ public interface ITerminalViewControl { /** * @param bufferLineLimit the maximum number of lines to show - * in the terminal view. -1 means unlimited. + * in the terminal view. -1 means unlimited. */ public void setBufferLineLimit(int bufferLineLimit); + boolean isScrollLock(); + void setScrollLock(boolean on); } \ No newline at end of file diff --git a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java index f528280bd86..0eccf75ed87 100644 --- a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java +++ b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/control/impl/TerminalControl.java @@ -11,7 +11,7 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - split into core, view and connector plugins + * Michael Scharf (Wind River) - split into core, view and connector plugins * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.control.impl; @@ -85,7 +85,7 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro private Clipboard fClipboard; private TerminalModifyListener fModifyListener; private KeyListener fKeyHandler; - private ITerminalListener fTerminalListener; + private final ITerminalListener fTerminalListener; private String fMsg = ""; //$NON-NLS-1$ private VerifyKeyListener fVerifyKeyListener; private FocusListener fFocusListener; @@ -128,7 +128,7 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro // for (int i = 0; i < strText.length(); i++) { // sendChar(strText.charAt(i), false); // } -// +// // } // }.start(); } @@ -277,7 +277,7 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro // TODO private void waitForConnect() { Logger.log("entered."); //$NON-NLS-1$ - // TODO + // TODO // Eliminate this code while (getState()==TerminalState.CONNECTING) { if (fDisplay.readAndDispatch()) @@ -288,11 +288,11 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro if (!getMsg().equals("")) //$NON-NLS-1$ { showErrorMessage(getMsg()); - + disconnectTerminal(); return; } - + getCtlText().setFocus(); } @@ -424,12 +424,12 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro GridLayout layout=new GridLayout(); layout.marginWidth=0; layout.marginHeight=0; - + fWndParent.setLayout(layout); setCtlText(new StyledText(fWndParent, SWT.V_SCROLL)); fCtlText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); //fCtlText.setWordWrap(false); - + fDisplay = getCtlText().getDisplay(); fClipboard = new Clipboard(fDisplay); // fViewer.setDocument(new TerminalDocument()); @@ -479,10 +479,10 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro } catch (IOException e) { // should never happen! e.printStackTrace(); - } - + } + } - + public OutputStream getRemoteToTerminalOutputStream() { return getTerminalText().getOutputStream(); } @@ -835,7 +835,7 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro public void setConnector(ITerminalConnectorInfo connector) { fConnectorInfo=connector; - + } public ICommandInputField getCommandInputField() { return fCommandInputField; @@ -859,7 +859,14 @@ public class TerminalControl implements ITerminalControlForText, ITerminalContro public void setBufferLineLimit(int bufferLineLimit) { getTerminalText().setLimitOutput(bufferLineLimit!=-1); getTerminalText().setBufferLineLimit(bufferLineLimit); - + + } + + public boolean isScrollLock() { + return false; + } + + public void setScrollLock(boolean on) { } } diff --git a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java index 4aa5db94bcd..087f3595ab0 100644 --- a/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java +++ b/terminal/org.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java @@ -11,7 +11,7 @@ * Helmut Haigermoser and Ted Williams. * * Contributors: - * Michael Scharf (Wind River) - split into core, view and connector plugins + * Michael Scharf (Wind River) - split into core, view and connector plugins * Martin Oberhuber (Wind River) - fixed copyright headers and beautified *******************************************************************************/ package org.eclipse.tm.internal.terminal.emulator; @@ -87,13 +87,13 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC * text processing on data received from the remote host and controls how text is * displayed using the view's StyledText widget. */ - private VT100Emulator fTerminalText; + private final VT100Emulator fTerminalText; private Display fDisplay; private TextCanvas fCtlText; private Composite fWndParent; private Clipboard fClipboard; private KeyListener fKeyHandler; - private ITerminalListener fTerminalListener; + private final ITerminalListener fTerminalListener; private String fMsg = ""; //$NON-NLS-1$ private FocusListener fFocusListener; private ITerminalConnectorInfo fConnectorInfo; @@ -104,7 +104,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC private volatile TerminalState fState; - private ITerminalTextData fTerminalModel; + private final ITerminalTextData fTerminalModel; volatile private Job fJob; @@ -115,7 +115,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC fTerminalModel.setMaxHeight(1000); fInputStream=new PipedInputStream(8*1024); fTerminalText=new VT100Emulator(fTerminalModel,this,fInputStream); - + setupTerminal(wndParent); } @@ -143,7 +143,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC // for (int i = 0; i < strText.length(); i++) { // sendChar(strText.charAt(i), false); // } -// +// // } // }.start(); } @@ -292,7 +292,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC // TODO private void waitForConnect() { Logger.log("entered."); //$NON-NLS-1$ - // TODO + // TODO // Eliminate this code while (getState()==TerminalState.CONNECTING) { if (fDisplay.readAndDispatch()) @@ -303,7 +303,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC if (!getMsg().equals("")) //$NON-NLS-1$ { showErrorMessage(getMsg()); - + disconnectTerminal(); return; } @@ -333,7 +333,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC try { // TODO: should block when no text is available! fTerminalText.processText(); - + } catch (Exception e) { disconnectTerminal(); status=new Status(IStatus.ERROR,TerminalPlugin.PLUGIN_ID,e.getLocalizedMessage(),e); @@ -479,9 +479,9 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC GridLayout layout=new GridLayout(); layout.marginWidth=0; layout.marginHeight=0; - + fWndParent.setLayout(layout); - + ITerminalTextDataSnapshot snapshot=fTerminalModel.makeSnapshot(); // TODO how to get the initial size correctly! snapshot.updateSnapshot(false); @@ -543,10 +543,10 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC } catch (IOException e) { // should never happen! e.printStackTrace(); - } - + } + } - + public OutputStream getRemoteToTerminalOutputStream() { return fInputStream.getOutputStream(); } @@ -869,7 +869,7 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC public void setConnector(ITerminalConnectorInfo connector) { fConnectorInfo=connector; - + } public ICommandInputField getCommandInputField() { return fCommandInputField; @@ -898,4 +898,12 @@ public class VT100TerminalControl implements ITerminalControlForText, ITerminalC fTerminalModel.setMaxHeight(bufferLineLimit); } } + + public boolean isScrollLock() { + return fCtlText.isScrollLock(); + } + + public void setScrollLock(boolean on) { + fCtlText.setScrollLock(on); + } }