[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);
 	}