Added 'hand' cursor to hyperlinks. Code cleanup.
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
index b8a70ca..47acd86 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
@@ -127,7 +127,7 @@
setupTerminal(wndParent);
}
- public void setEncoding(String encoding) throws UnsupportedEncodingException {
+ @Override public void setEncoding(String encoding) throws UnsupportedEncodingException {
if (encoding == null) {
// TODO better use a standard remote-to-local encoding?
encoding = "ISO-8859-1"; //$NON-NLS-1$
@@ -140,18 +140,18 @@
fTerminalText.setInputStreamReader(fInputStreamReader);
}
- public String getEncoding() {
+ @Override public String getEncoding() {
return fEncoding;
}
- public ITerminalConnector[] getConnectors() {
+ @Override public ITerminalConnector[] getConnectors() {
return fConnectors;
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#copy()
*/
- public void copy() {
+ @Override public void copy() {
copy(DND.CLIPBOARD);
}
@@ -164,7 +164,7 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#paste()
*/
- public void paste() {
+ @Override public void paste() {
paste(DND.CLIPBOARD);
// TODO paste in another thread.... to avoid blocking
// new Thread() {
@@ -186,7 +186,7 @@
/**
* @param strText the text to paste
*/
- public boolean pasteString(String strText) {
+ @Override public boolean pasteString(String strText) {
if(!isConnected()) {
return false;
}
@@ -207,14 +207,14 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#selectAll()
*/
- public void selectAll() {
+ @Override public void selectAll() {
getCtlText().selectAll();
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#sendKey(char)
*/
- public void sendKey(char character) {
+ @Override public void sendKey(char character) {
Event event;
KeyEvent keyEvent;
@@ -232,7 +232,7 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#clearTerminal()
*/
- public void clearTerminal() {
+ @Override public void clearTerminal() {
// The TerminalText object does all text manipulation.
getTerminalText().clearTerminal();
@@ -241,14 +241,14 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#getClipboard()
*/
- public Clipboard getClipboard() {
+ @Override public Clipboard getClipboard() {
return fClipboard;
}
/**
* @return non null selection
*/
- public String getSelection() {
+ @Override public String getSelection() {
String txt= fCtlText.getSelectionText();
if(txt==null)
{
@@ -260,42 +260,42 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setFocus()
*/
- public boolean setFocus() {
+ @Override public boolean setFocus() {
return getCtlText().setFocus();
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isEmpty()
*/
- public boolean isEmpty() {
+ @Override public boolean isEmpty() {
return getCtlText().isEmpty();
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isDisposed()
*/
- public boolean isDisposed() {
+ @Override public boolean isDisposed() {
return getCtlText().isDisposed();
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#isConnected()
*/
- public boolean isConnected() {
+ @Override public boolean isConnected() {
return fState==TerminalState.CONNECTED;
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#disposeTerminal()
*/
- public void disposeTerminal() {
+ @Override public void disposeTerminal() {
Logger.log("entered."); //$NON-NLS-1$
disconnectTerminal();
fClipboard.dispose();
getTerminalText().dispose();
}
- public void connectTerminal() {
+ @Override public void connectTerminal() {
Logger.log("entered."); //$NON-NLS-1$
if(getTerminalConnector()==null) {
return;
@@ -315,13 +315,13 @@
waitForConnect();
}
- public ITerminalConnector getTerminalConnector() {
+ @Override public ITerminalConnector getTerminalConnector() {
return fConnector;
}
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#disconnectTerminal()
*/
- public void disconnectTerminal() {
+ @Override public void disconnectTerminal() {
Logger.log("entered."); //$NON-NLS-1$
//Disconnect the remote side first
@@ -382,7 +382,7 @@
private synchronized void startReaderJob() {
if(fJob==null) {
fJob=new Job("Terminal data reader") { //$NON-NLS-1$
- protected IStatus run(IProgressMonitor monitor) {
+ @Override protected IStatus run(IProgressMonitor monitor) {
IStatus status=Status.OK_STATUS;
try {
while(true) {
@@ -464,7 +464,7 @@
}
}
- public Shell getShell() {
+ @Override public Shell getShell() {
return getCtlText().getShell();
}
@@ -525,7 +525,7 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setupTerminal(org.eclipse.swt.widgets.Composite)
*/
- public void setupTerminal(Composite parent) {
+ @Override public void setupTerminal(Composite parent) {
Assert.isNotNull(parent);
fState=TerminalState.CLOSED;
setupControls(parent);
@@ -536,7 +536,7 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#onFontChanged()
*/
- public void setFont(Font font) {
+ @Override public void setFont(Font font) {
getCtlText().setFont(font);
if(fCommandInputField!=null) {
fCommandInputField.setFont(font);
@@ -546,13 +546,13 @@
fCtlText.onFontChange();
getTerminalText().fontChanged();
}
- public Font getFont() {
+ @Override public Font getFont() {
return getCtlText().getFont();
}
- public Control getControl() {
+ @Override public Control getControl() {
return fCtlText;
}
- public Control getRootControl() {
+ @Override public Control getRootControl() {
return fWndParent;
}
protected void setupControls(Composite parent) {
@@ -578,18 +578,19 @@
fCtlText.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
- Point p = fCtlText.screenPointToCell(e.x, e.y);
- if (p == null) {
- return;
+ IHyperlink hyperlink = hyperlinkAt(e);
+ if (hyperlink != null) {
+ hyperlink.open();
}
- List<IHyperlink> hyperlinks = fTerminalText.hyperlinksAt(p.y);
- for (IHyperlink hyperlink : hyperlinks) {
- IRegion region = hyperlink.getHyperlinkRegion();
- int start = region.getOffset();
- int end = start + region.getLength() - 1;
- if (p.x >= start && p.x <= end) {
- hyperlink.open();
- }
+ }
+ });
+ fCtlText.addMouseMoveListener(new MouseMoveListener() {
+ @Override public void mouseMove(MouseEvent e) {
+ IHyperlink hyperlink = hyperlinkAt(e);
+ int cursorId = (hyperlink == null) ? SWT.CURSOR_IBEAM : SWT.CURSOR_HAND;
+ Cursor newCursor = fCtlText.getDisplay().getSystemCursor(cursorId);
+ if (!newCursor.equals(fCtlText.getCursor())) {
+ fCtlText.setCursor(newCursor);
}
}
});
@@ -597,12 +598,12 @@
fCtlText.setLayoutData(new GridData(GridData.FILL_BOTH));
fCtlText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
fCtlText.addResizeHandler(new TextCanvas.ResizeListener() {
- public void sizeChanged(int lines, int columns) {
+ @Override public void sizeChanged(int lines, int columns) {
fTerminalText.setDimensions(lines, columns);
}
});
fCtlText.addMouseListener(new MouseAdapter() {
- public void mouseUp(MouseEvent e) {
+ @Override public void mouseUp(MouseEvent e) {
// update selection used by middle mouse button paste
if (e.button == 1 && getSelection().length() > 0) {
copy(DND.SELECTION_CLIPBOARD);
@@ -616,6 +617,22 @@
setFont(JFaceResources.getTextFont());
}
+ private IHyperlink hyperlinkAt(MouseEvent e) {
+ Point p = fCtlText.screenPointToCell(e.x, e.y);
+ if (p != null) {
+ List<IHyperlink> hyperlinks = fTerminalText.hyperlinksAt(p.y);
+ for (IHyperlink hyperlink : hyperlinks) {
+ IRegion region = hyperlink.getHyperlinkRegion();
+ int start = region.getOffset();
+ int end = start + region.getLength() - 1;
+ if (p.x >= start && p.x <= end) {
+ return hyperlink;
+ }
+ }
+ }
+ return null;
+ }
+
protected void setupListeners() {
fKeyHandler = new TerminalKeyHandler();
fFocusListener = new TerminalFocusListener();
@@ -643,7 +660,7 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#displayTextInTerminal(java.lang.String)
*/
- public void displayTextInTerminal(String text) {
+ @Override public void displayTextInTerminal(String text) {
writeToTerminal("\r\n"+text+"\r\n"); //$NON-NLS-1$ //$NON-NLS-2$
}
private void writeToTerminal(String text) {
@@ -659,7 +676,7 @@
}
- public OutputStream getRemoteToTerminalOutputStream() {
+ @Override public OutputStream getRemoteToTerminalOutputStream() {
if(Logger.isLogEnabled()) {
return new LoggingOutputStream(fInputStream.getOutputStream());
} else {
@@ -675,7 +692,7 @@
}
- public OutputStream getOutputStream() {
+ @Override public OutputStream getOutputStream() {
if(getTerminalConnector()!=null) {
return getTerminalConnector().getTerminalToRemoteStream();
}
@@ -685,7 +702,7 @@
/* (non-Javadoc)
* @see org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl#setMsg(java.lang.String)
*/
- public void setMsg(String msg) {
+ @Override public void setMsg(String msg) {
fMsg = msg;
}
@@ -713,7 +730,7 @@
super();
}
- public void focusGained(FocusEvent event) {
+ @Override public void focusGained(FocusEvent event) {
// Disable all keyboard accelerators (e.g., Control-B) so the Terminal view
// can see every keystroke. Without this, Emacs, vi, and Bash are unusable
// in the Terminal view.
@@ -735,7 +752,7 @@
.activateContext("org.eclipse.tm.terminal.TerminalContext"); //$NON-NLS-1$
}
- public void focusLost(FocusEvent event) {
+ @Override public void focusLost(FocusEvent event) {
// Enable all keybindings.
IBindingService bindingService = (IBindingService) PlatformUI
@@ -751,7 +768,7 @@
}
protected class TerminalKeyHandler extends KeyAdapter {
- public void keyPressed(KeyEvent event) {
+ @Override public void keyPressed(KeyEvent event) {
if (getState()==TerminalState.CONNECTING) {
return;
}
@@ -977,22 +994,22 @@
}
- public void setTerminalTitle(String title) {
+ @Override public void setTerminalTitle(String title) {
fTerminalListener.setTerminalTitle(title);
}
- public TerminalState getState() {
+ @Override public TerminalState getState() {
return fState;
}
- public void setState(TerminalState state) {
+ @Override public void setState(TerminalState state) {
fState=state;
fTerminalListener.setState(state);
// enable the (blinking) cursor if the terminal is connected
runAsyncInDisplayThread(new Runnable() {
- public void run() {
+ @Override public void run() {
if(fCtlText!=null && !fCtlText.isDisposed()) {
fCtlText.setCursorEnabled(isConnected());
}
@@ -1011,22 +1028,22 @@
}
}
- public String getSettingsSummary() {
+ @Override public String getSettingsSummary() {
if(getTerminalConnector()!=null) {
return getTerminalConnector().getSettingsSummary();
}
return ""; //$NON-NLS-1$
}
- public void setConnector(ITerminalConnector connector) {
+ @Override public void setConnector(ITerminalConnector connector) {
fConnector=connector;
}
- public ICommandInputField getCommandInputField() {
+ @Override public ICommandInputField getCommandInputField() {
return fCommandInputField;
}
- public void setCommandInputField(ICommandInputField inputField) {
+ @Override public void setCommandInputField(ICommandInputField inputField) {
if(fCommandInputField!=null) {
fCommandInputField.dispose();
}
@@ -1039,11 +1056,11 @@
}
}
- public int getBufferLineLimit() {
+ @Override public int getBufferLineLimit() {
return fTerminalModel.getMaxHeight();
}
- public void setBufferLineLimit(int bufferLineLimit) {
+ @Override public void setBufferLineLimit(int bufferLineLimit) {
if(bufferLineLimit<=0) {
return;
}
@@ -1055,15 +1072,15 @@
}
}
- public boolean isScrollLock() {
+ @Override public boolean isScrollLock() {
return fCtlText.isScrollLock();
}
- public void setScrollLock(boolean on) {
+ @Override public void setScrollLock(boolean on) {
fCtlText.setScrollLock(on);
}
- public void setInvertedColors(boolean invert) {
+ @Override public void setInvertedColors(boolean invert) {
fCtlText.setInvertedColors(invert);
}