[567708] add OpenDocument event tester to view
diff --git a/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java b/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java
index 8b2c01c..80d5f6a 100644
--- a/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java
+++ b/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java
@@ -12,6 +12,8 @@
*******************************************************************************/
package org.eclipse.wst.sse.ui.tests;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
@@ -19,16 +21,20 @@
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.TextViewer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IViewSite;
@@ -90,7 +96,7 @@
}
}
- Control fControl = null;
+ StyledText fControl = null;
ISelection fSelection;
private ISelectionListener fSelectionListener;
@@ -117,10 +123,54 @@
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(Composite parent) {
- ITextViewer text = new TextViewer(parent, SWT.READ_ONLY);
+ ITextViewer text = new TextViewer(parent, SWT.MULTI);
text.setDocument(new Document());
fControl = text.getTextWidget();
- text.getDocument().set("Use either the toolbar or the menu to run your actions\n\n");
+ text.getDocument().set("Use either the toolbar or the menu to run your actions\n\nWrite new lines with file paths and hit enter to open them.\n\n");
+ fControl.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if (e.character == '\r' ) {
+ int offset = fControl.getCaretOffset();
+ try {
+ IRegion lineInformation = text.getDocument().getLineInformationOfOffset(offset - 1);
+ String path = text.getDocument().get(lineInformation.getOffset(), lineInformation.getLength());
+ Event event = new Event();
+ event.type = SWT.OpenDocument;
+ event.text = path;
+ event.widget = fControl;
+ Method m = parent.getDisplay().getClass().getDeclaredMethod("sendEvent", new Class[] {int.class, Event.class});
+ m.setAccessible(true);
+ m.invoke(parent.getDisplay(), event.type, event);
+ }
+ catch (BadLocationException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (NoSuchMethodException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (SecurityException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (IllegalAccessException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (IllegalArgumentException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (InvocationTargetException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ super.keyReleased(e);
+ }
+ });
}
private ISelectionListener getSelectionListener() {
@@ -157,7 +207,7 @@
}
void print(String s) {
- ((StyledText) fControl).append(s);
+ fControl.append(s);
}