Author: koen.aers(a)jboss.com
Date: 2011-09-19 04:08:38 -0400 (Mon, 19 Sep 2011)
New Revision: 34845
Added:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeDocument.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java
Removed:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/Console.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePage.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePartitioner.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsoleViewer.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeInputReadJob.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ConsoleView.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeDocument.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeTextViewer.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeView.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StartDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StopDelegate.java
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/plugin.xml
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java
Log:
JBIDE-9735:
- remove the old Console, ConsolePage, ConsolePartitioner, ConsoleViewer classes
- remove ForgeInputReadJob
- move ForgeTextViewer and ForgeDocument
- move StartDelegate and StopDelegate
Modified: trunk/forge/plugins/org.jboss.tools.forge.ui/plugin.xml
===================================================================
--- trunk/forge/plugins/org.jboss.tools.forge.ui/plugin.xml 2011-09-19 07:56:48 UTC (rev
34844)
+++ trunk/forge/plugins/org.jboss.tools.forge.ui/plugin.xml 2011-09-19 08:08:38 UTC (rev
34845)
@@ -9,7 +9,7 @@
</category>
<view
category="org.jboss.tools.forge"
- class="org.jboss.tools.forge.ui.trials.ForgeView"
+ class="org.jboss.tools.forge.ui.part.ForgeView"
id="org.jboss.tools.forge.console"
name="Forge Console"
restorable="true">
@@ -50,7 +50,7 @@
toolbarPath="org.jboss.tools.forge.toolbar">
</action> -->
<action
- class="org.jboss.tools.forge.ui.trials.StopDelegate"
+ class="org.jboss.tools.forge.ui.action.StopDelegate"
icon="icons/stop.gif"
id="org.jboss.tools.forge.stop"
label="Stop Forge"
@@ -59,7 +59,7 @@
toolbarPath="org.jboss.tools.forge.toolbar">
</action>
<action
- class="org.jboss.tools.forge.ui.trials.StartDelegate"
+ class="org.jboss.tools.forge.ui.action.StartDelegate"
icon="icons/start.gif"
id="org.jboss.tools.forge.start"
label="Start Forge"
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,28 +0,0 @@
-package org.jboss.tools.forge.ui.action;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.jboss.tools.forge.ui.part.ConsoleView;
-
-public class StartDelegate implements IViewActionDelegate {
-
- @Override
- public void run(IAction action) {
- ConsoleView.INSTANCE.startForge();
- }
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void init(IViewPart view) {
- // TODO Auto-generated method stub
-
- }
-
-}
Copied:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
(from rev 34844,
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StartDelegate.java)
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -0,0 +1,28 @@
+package org.jboss.tools.forge.ui.action;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+import org.jboss.tools.forge.ui.part.ForgeView;
+
+public class StartDelegate implements IViewActionDelegate {
+
+ @Override
+ public void run(IAction action) {
+ ForgeView.INSTANCE.startForge();
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void init(IViewPart view) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,28 +0,0 @@
-package org.jboss.tools.forge.ui.action;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.jboss.tools.forge.ui.part.ConsoleView;
-
-public class StopDelegate implements IViewActionDelegate {
-
- @Override
- public void run(IAction action) {
- ConsoleView.INSTANCE.stopForge();
- }
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void init(IViewPart view) {
- // TODO Auto-generated method stub
-
- }
-
-}
Copied:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java
(from rev 34844,
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StopDelegate.java)
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StopDelegate.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -0,0 +1,28 @@
+package org.jboss.tools.forge.ui.action;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+import org.jboss.tools.forge.ui.part.ForgeView;
+
+public class StopDelegate implements IViewActionDelegate {
+
+ @Override
+ public void run(IAction action) {
+ ForgeView.INSTANCE.stopForge();
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void init(IViewPart view) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/commands/ForgeCommandListHandler.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -7,7 +7,7 @@
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.forge.core.process.ForgeRuntime;
import org.jboss.tools.forge.ui.dialog.ForgeCommandListDialog;
-import org.jboss.tools.forge.ui.trials.ForgeView;
+import org.jboss.tools.forge.ui.part.ForgeView;
public class ForgeCommandListHandler extends AbstractHandler {
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/Console.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/Console.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/Console.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,192 +0,0 @@
-package org.jboss.tools.forge.ui.console;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.IOException;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.console.IConsoleDocumentPartitioner;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.jboss.tools.forge.core.io.ForgeHiddenOutputFilter;
-import org.jboss.tools.forge.core.io.ForgeInputStream;
-import org.jboss.tools.forge.core.io.ForgeOutputListener;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-import org.jboss.tools.forge.ui.ForgeUIPlugin;
-
-public class Console extends TextConsole {
-
- private ConsolePartitioner partitioner;
- private ForgeInputStream inputStream;
- private RuntimeStopListener stopListener;
- private ForgeOutputListener outputListener;
- private ForgeRuntime runtime;
-
-
- public Console(ForgeRuntime runtime) {
- super("Forge Console", null, null, true);
- this.runtime = runtime;
- initialize();
- }
-
- protected void init() {
- super.init();
- initInputStream();
- initPartitioner();
- initCommandRecorder();
- initOutputListener();
- initStopListener();
- initInputReadJob();
- }
-
- private void initCommandRecorder() {
- getDocument().addDocumentListener(new CommandRecorder());
- }
-
- private void initInputStream() {
- inputStream = new ForgeInputStream();
- }
-
- private void initStopListener() {
- stopListener = new RuntimeStopListener();
- runtime.addPropertyChangeListener(stopListener);
- }
-
- private void initOutputListener() {
- ForgeOutputListener target = new ForgeOutputListener() {
- @Override
- public void outputAvailable(String output) {
- appendString(output);
- }
- };
- outputListener = new ForgeHiddenOutputFilter(target) {
- @Override
- public void handleFilteredString(String str) {
- System.out.println("handleHiddenOutput : " + str);
- }
- };
- runtime.addOutputListener(outputListener);
- }
-
- private void initInputReadJob() {
- ForgeInputReadJob inputReadJob = new ForgeInputReadJob(runtime, inputStream);
- inputReadJob.setSystem(true);
- inputReadJob.schedule();
- }
-
- private void initPartitioner() {
- partitioner = new ConsolePartitioner();
- partitioner.connect(getDocument());
- }
-
- public IPageBookViewPage createPage(IConsoleView view) {
- throw new UnsupportedOperationException();
- }
-
- protected IConsoleDocumentPartitioner getPartitioner() {
- return partitioner;
- }
-
- public void dispose() {
- if (!ForgeRuntime.STATE_NOT_RUNNING.equals(runtime.getState())) {
- runtime.stop(null);
- }
- super.dispose();
- }
-
- private void handleRuntimeStopped() {
- try {
- runtime.removePropertyChangeListener(stopListener);
- stopListener = null;
- runtime.removeOutputListener(outputListener);
- outputListener = null;
- partitioner.disconnect();
- inputStream.close();
- inputStream = null;
- } catch (IOException e) {
- ForgeUIPlugin.log(e);
- }
- }
-
-
- private int lastLineLength = 0;
- private int lastLinePosition = 0;
- private StringBuffer escapeSequence = new StringBuffer();
- private boolean escapeSequenceStarted = false;
-// private boolean metaDataSequenceStarted = false;
-
- public void appendString(final String str) {
- Display.getDefault().asyncExec(new Runnable() {
- @Override
- public void run() {
- try {
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
- if (c == '\r') continue; //ignore
- if (c == '[' && escapeSequenceStarted) continue;
- if (c == 27) {
- escapeSequenceStarted = true;
- continue;
- }
- if (escapeSequenceStarted) {
- int type = Character.getType(c);
-// if (!metaDataSequenceStarted && (type == Character.LOWERCASE_LETTER ||
type == Character.UPPERCASE_LETTER)) {
- if (type == Character.LOWERCASE_LETTER || type == Character.UPPERCASE_LETTER) {
- if (c == 'G') {
- int columnNumber = Integer.valueOf(escapeSequence.toString());
- lastLineLength = columnNumber - 1;
- escapeSequence.setLength(0);
- escapeSequenceStarted = false;
- } else if (c == 'K') {
- int doclength = getDocument().getLength();
- int currentPosition = lastLinePosition + lastLineLength;
- getDocument().replace(currentPosition, doclength - currentPosition,
"");
- escapeSequence.setLength(0);
- escapeSequenceStarted = false;
-// } else if (c == 'm') {
-//
- }
-// } else if (c == '%') {
-// if (metaDataSequenceStarted) {
-// metaDataSequenceStarted = false;
-// escapeSequenceStarted = false;
-// handleMetaData(escapeSequence.toString());
-// escapeSequence.setLength(0);
-// } else {
-// metaDataSequenceStarted = true;
-// }
- } else {
- escapeSequence.append(c);
- }
- continue;
- }
- if (str.charAt(i) == '\b') {
- getDocument().replace(getDocument().getLength() - 1, 1, "");
- lastLineLength--;
- } else {
- getDocument().replace(getDocument().getLength(), 0, str.substring(i, i + 1));
- lastLineLength++;
- }
- if (c == '\n') {
- lastLineLength = 0;
- lastLinePosition = getDocument().getLength();
- }
- }
- } catch (BadLocationException e) {}
- }
- });
- }
-
- private class RuntimeStopListener implements PropertyChangeListener {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (ForgeRuntime.PROPERTY_STATE.equals(evt.getPropertyName()) &&
- ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
- handleRuntimeStopped();
- }
- }
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePage.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePage.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePage.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,33 +0,0 @@
-package org.jboss.tools.forge.ui.console;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.console.TextConsoleViewer;
-import org.eclipse.ui.part.Page;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-
-public class ConsolePage extends Page {
-
- private TextConsoleViewer viewer;
- private ForgeRuntime runtime;
-
- public ConsolePage(ForgeRuntime runtime) {
- this.runtime = runtime;
- }
-
- @Override
- public void createControl(Composite parent) {
- viewer = new ConsoleViewer(parent, runtime);
- }
-
- @Override
- public Control getControl() {
- return viewer == null ? null : viewer.getControl();
- }
-
- @Override
- public void setFocus() {
- viewer.getControl().setFocus();
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePartitioner.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePartitioner.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsolePartitioner.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,69 +0,0 @@
-package org.jboss.tools.forge.ui.console;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.ui.console.IConsoleDocumentPartitioner;
-
-public class ConsolePartitioner implements IConsoleDocumentPartitioner {
-
- @Override
- public void connect(IDocument document) {
-// System.out.println("connect");
- document.setDocumentPartitioner(this);
- }
-
- @Override
- public void disconnect() {
-// System.out.println("disconnect");
- }
-
- @Override
- public void documentAboutToBeChanged(DocumentEvent event) {
-// System.out.println("documentAboutToBeChanged");
- }
-
- @Override
- public boolean documentChanged(DocumentEvent event) {
-// System.out.println("documentChanged");
- return false;
- }
-
- @Override
- public String[] getLegalContentTypes() {
-// System.out.println("getLegalContentTypes");
- return null;
- }
-
- @Override
- public String getContentType(int offset) {
-// System.out.println("getContentType");
- return null;
- }
-
- @Override
- public ITypedRegion[] computePartitioning(int offset, int length) {
-// System.out.println("computePartitioning");
- return null;
- }
-
- @Override
- public ITypedRegion getPartition(int offset) {
-// System.out.println("getPartition");
- return null;
- }
-
- @Override
- public boolean isReadOnly(int offset) {
-// System.out.println("isReadOnly");
- return false;
- }
-
- @Override
- public StyleRange[] getStyleRanges(int offset, int length) {
-// System.out.println("getStyleRanges : [offset, " + offset + "] [length,
" + length + "]");
- return null;
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsoleViewer.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsoleViewer.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ConsoleViewer.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,91 +0,0 @@
-package org.jboss.tools.forge.ui.console;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.console.TextConsoleViewer;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-
-public class ConsoleViewer extends TextConsoleViewer {
-
- private static String BACKSPACE = new Character('\b').toString();
- private static String UP_ARROW = new Character((char)16).toString();
- private static String DOWN_ARROW = new Character((char)14).toString();
-
- private ForgeRuntime runtime = null;
-
- public ConsoleViewer(Composite parent, ForgeRuntime runtime) {
- super(parent, new Console(runtime));
- this.runtime = runtime;
- getDocument().addDocumentListener(new DocumentListener());
- }
-
- protected void handleVerifyEvent(VerifyEvent e) {
- runtime.sendInput(e.text);
- e.doit = false;
- }
-
- private void handleBackspace() {
- runtime.sendInput(BACKSPACE);
- }
-
- private void handleArrowUp() {
- runtime.sendInput(UP_ARROW);
- }
-
- private void handleArrowDown() {
- runtime.sendInput(DOWN_ARROW);
- }
-
- private void handleF1Down() {
- runtime.sendInput(new Character((char)31).toString() + "hidden
command!\n"); // + (char)27 + "[%\n");
- }
-
- protected StyledText createTextWidget(Composite parent, int styles) {
- StyledText styledText = super.createTextWidget(parent, styles | SWT.WRAP);
- styledText.addKeyListener(new ConsoleKeyListener());
- return styledText;
- }
-
- private class DocumentListener implements IDocumentListener {
-
- public void documentAboutToBeChanged(DocumentEvent event) {
- }
-
-
- public void documentChanged(DocumentEvent event) {
- revealEndOfDocument();
- Control control = getControl();
- if (control instanceof StyledText) {
- StyledText text = (StyledText)control;
- text.setCaretOffset(text.getCharCount());
- }
- }
- }
-
- private class ConsoleKeyListener implements KeyListener {
-
- public void keyPressed(KeyEvent e) {
- }
-
- public void keyReleased(KeyEvent e) {
- if (e.keyCode == SWT.BS) {
- handleBackspace();
- } else if (e.keyCode == SWT.ARROW_UP) {
- handleArrowUp();
- } else if (e.keyCode == SWT.ARROW_DOWN) {
- handleArrowDown();
- } else if (e.keyCode == SWT.F1) {
- handleF1Down();
- }
- }
-
- }
-
-}
Copied:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeDocument.java
(from rev 34844,
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeDocument.java)
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeDocument.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeDocument.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -0,0 +1,28 @@
+package org.jboss.tools.forge.ui.console;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.Document;
+import org.eclipse.swt.widgets.Display;
+
+public class ForgeDocument extends Document {
+
+ public void appendString(final String str) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ for (int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ if (c == '\r') continue; //ignore
+ if (str.charAt(i) == '\b') {
+ replace(getLength() - 1, 1, "");
+ } else {
+ replace(getLength(), 0, str.substring(i, i + 1));
+ }
+ }
+ } catch (BadLocationException e) {}
+ }
+ });
+ }
+
+}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeInputReadJob.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeInputReadJob.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeInputReadJob.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,38 +0,0 @@
-package org.jboss.tools.forge.ui.console;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.jboss.tools.forge.core.ForgeCorePlugin;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-
-public class ForgeInputReadJob extends Job {
-
- private ForgeRuntime runtime;
- private InputStream input;
-
- public ForgeInputReadJob(ForgeRuntime runtime, InputStream input) {
- super("Forge Input Read Job");
- this.input = input;
- this.runtime = runtime;
- }
-
- protected IStatus run(IProgressMonitor monitor) {
- try {
- int read;
- while (input != null && (read = input.read()) != -1) {
- runtime.sendInput(new String(new char[] { (char)read }));
- }
- } catch (IOException e) {
- ForgeCorePlugin.log(e);
- }
- return Status.OK_STATUS;
- }
-
-
-
-}
Copied:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java
(from rev 34844,
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeTextViewer.java)
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -0,0 +1,200 @@
+package org.jboss.tools.forge.ui.console;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.jface.text.IDocumentListener;
+import org.eclipse.jface.text.TextViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.jboss.tools.forge.core.io.ForgeAnsiCommandFilter;
+import org.jboss.tools.forge.core.io.ForgeHiddenOutputFilter;
+import org.jboss.tools.forge.core.io.ForgeOutputListener;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
+import org.jboss.tools.forge.ui.ForgeUIPlugin;
+
+public class ForgeTextViewer extends TextViewer {
+
+ private static String BACKSPACE = new Character('\b').toString();
+ private static String UP_ARROW = new Character((char)16).toString();
+ private static String DOWN_ARROW = new Character((char)14).toString();
+
+ private class RuntimeStopListener implements PropertyChangeListener {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (ForgeRuntime.PROPERTY_STATE.equals(evt.getPropertyName()) &&
+ ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
+ handleRuntimeStopped();
+ }
+ }
+ }
+
+ private class ConsoleKeyListener implements KeyListener {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ }
+ @Override
+ public void keyReleased(KeyEvent e) {
+ if (e.keyCode == SWT.BS) {
+ handleBackspace();
+ } else if (e.keyCode == SWT.ARROW_UP) {
+ handleArrowUp();
+ } else if (e.keyCode == SWT.ARROW_DOWN) {
+ handleArrowDown();
+ } else if (e.keyCode == SWT.F1) {
+ handleF1Down();
+ }
+ }
+ }
+
+ private class DocumentListener implements IDocumentListener {
+ @Override
+ public void documentAboutToBeChanged(DocumentEvent event) {
+ }
+ @Override
+ public void documentChanged(DocumentEvent event) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ StyledText textWidget = getTextWidget();
+ if (textWidget != null && !textWidget.isDisposed()) {
+ int lineCount = textWidget.getLineCount();
+ textWidget.setTopIndex(lineCount - 1);
+ textWidget.setCaretOffset(textWidget.getCharCount());
+ }
+ }
+ });
+ }
+ }
+
+ private RuntimeStopListener stopListener;
+ private ForgeOutputListener outputListener;
+ private ForgeRuntime runtime;
+ private ForgeDocument document;
+
+ public ForgeTextViewer(Composite parent, ForgeRuntime runtime) {
+ super(parent, SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
+ this.runtime = runtime;
+ initialize();
+ }
+
+ private void initialize() {
+ initDocument();
+ initViewer();
+ initCommandRecorder();
+ initOutputListener();
+ initStopListener();
+ }
+
+ private void initDocument() {
+ document = new ForgeDocument();
+ document.addDocumentListener(new DocumentListener());
+ setDocument(document);
+ }
+
+ private void initViewer() {
+ StyledText textWidget = getTextWidget();
+ textWidget.setFont(JFaceResources.getFont(JFaceResources.TEXT_FONT));
+ textWidget.addKeyListener(new ConsoleKeyListener());
+ }
+
+ private void initCommandRecorder() {
+ getDocument().addDocumentListener(new CommandRecorder());
+ }
+
+ private void initOutputListener() {
+ ForgeOutputListener target = new ForgeOutputListener() {
+ @Override
+ public void outputAvailable(String output) {
+ document.appendString(output);
+ }
+ };
+ ForgeAnsiCommandFilter ansiCommandFilter = new ForgeAnsiCommandFilter(target) {
+ @Override
+ public void ansiCommandAvailable(String command) {
+ executeAnsiCommand(command);
+ }
+ };
+ outputListener = new ForgeHiddenOutputFilter(ansiCommandFilter) {
+ @Override
+ public void handleFilteredString(String str) {
+ System.out.println("handleHiddenOutput : " + str);
+ }
+ };
+ runtime.addOutputListener(outputListener);
+ }
+
+ private void initStopListener() {
+ stopListener = new RuntimeStopListener();
+ runtime.addPropertyChangeListener(stopListener);
+ }
+
+ private void handleRuntimeStopped() {
+ runtime.removePropertyChangeListener(stopListener);
+ stopListener = null;
+ runtime.removeOutputListener(outputListener);
+ outputListener = null;
+ }
+
+ protected void handleVerifyEvent(VerifyEvent e) {
+ runtime.sendInput(e.text);
+ e.doit = false;
+ }
+
+ private void handleBackspace() {
+ runtime.sendInput(BACKSPACE);
+ }
+
+ private void handleArrowUp() {
+ runtime.sendInput(UP_ARROW);
+ }
+
+ private void handleArrowDown() {
+ runtime.sendInput(DOWN_ARROW);
+ }
+
+ private void handleF1Down() {
+ runtime.sendInput(new Character((char)31).toString() + "hidden
command!\n");
+ }
+
+ private void executeAnsiCommand(final String command) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ char c = command.charAt(command.length() - 1);
+ switch (c) {
+ case 'G' : moveCursorAbsolute(command); break;
+ case 'K' : clearCurrentLine(command); break;
+ }
+ }
+ });
+ }
+
+ private void moveCursorAbsolute(final String command) {
+ try {
+ int column = Integer.valueOf(command.substring(2, command.length() - 1));
+ int lineStart =
document.getLineOffset(document.getLineOfOffset(getTextWidget().getCaretOffset()));
+ getTextWidget().setCaretOffset(lineStart + column - 1);
+ } catch (BadLocationException e) {
+ ForgeUIPlugin.log(e);
+ }
+ }
+
+ private void clearCurrentLine(String command) {
+ try {
+ int caretOffset = getTextWidget().getCaretOffset();
+ document.replace(caretOffset, document.getLength() - caretOffset,
"");
+ } catch (BadLocationException e) {
+ ForgeUIPlugin.log(e);
+ }
+ }
+
+}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ConsoleView.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ConsoleView.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ConsoleView.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,207 +0,0 @@
-package org.jboss.tools.forge.ui.part;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageSite;
-import org.eclipse.ui.part.ViewPart;
-import org.jboss.tools.forge.core.preferences.ForgeRuntimesPreferences;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-import org.jboss.tools.forge.ui.ForgeUIPlugin;
-import org.jboss.tools.forge.ui.console.ConsolePage;
-
-public class ConsoleView extends ViewPart implements PropertyChangeListener {
-
- public static final String ID = "org.jboss.tools.forge.console";
-
- private static final String NOT_RUNNING_MESSAGE = "Forge is not running.";
- private static final String STARTING_MESSAGE = "Please wait while Forge is
starting";
-
- public static ConsoleView INSTANCE;
-
- private PageBook pageBook = null;
- private Control notRunning;
- private Control running;
- private ConsolePage runningPage;
- private MessagePage notRunningPage;
- private String notRunningMessage;
-
- private ForgeRuntime runtime;
-
- public ConsoleView() {
- if (INSTANCE == null) {
- INSTANCE = this;
- }
- }
-
- @Override
- public void createPartControl(Composite parent) {
- pageBook = new PageBook(parent, SWT.NONE);
- createNotRunningPage(parent);
- showPage(notRunning);
- }
-
- private void createNotRunningPage(Composite parent) {
- MessagePage page = new MessagePage();
- page.createControl(pageBook);
- page.init(new PageSite(getViewSite()));
- notRunningMessage = NOT_RUNNING_MESSAGE;
- page.setMessage(notRunningMessage);
- notRunning = page.getControl();
- notRunningPage = page;
- }
-
- @Override
- public void setFocus() {
- if (runtime != null && ForgeRuntime.STATE_RUNNING.equals(runtime.getState()))
{
- runningPage.setFocus();
- }
- }
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (ForgeRuntime.PROPERTY_STATE.equals(evt.getPropertyName())) {
- if (ForgeRuntime.STATE_STARTING.equals(evt.getNewValue())) {
- handleStateStarting();
- } else if (ForgeRuntime.STATE_RUNNING.equals(evt.getNewValue())) {
- handleStateRunning();
- } else if (ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
- handleStateNotRunning();
- }
- }
- }
-
- private void handleStateStarting() {
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- notRunningMessage = STARTING_MESSAGE;
- notRunningPage.setMessage(notRunningMessage);
- createRunningPage();
- }
- });
- }
-
- private void handleStateRunning() {
- showPage(running);
- }
-
- private void handleStateNotRunning() {
- if (runtime != null) {
- runtime.removePropertyChangeListener(INSTANCE);
- runtime = null;
- }
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- notRunningMessage = NOT_RUNNING_MESSAGE;
- if (!notRunningPage.getControl().isDisposed()) {
- notRunningPage.setMessage(notRunningMessage);
- }
- showPage(notRunning);
- }
- });
- }
-
- private void showPage(final Control control) {
- if (getSite().getShell() != null) {
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- pageBook.showPage(control);
- }
- });
- }
- }
-
- private void createRunningPage() {
- Control oldForgeIsRunning = running;
- ConsolePage oldForgeIsRunningPage = runningPage;
- runningPage = new ConsolePage(runtime);
- runningPage.createControl(pageBook);
- runningPage.init(new PageSite(getViewSite()));
- running = runningPage.getControl();
- if (oldForgeIsRunningPage != null) {
-// Console oldConsole = oldForgeIsRunningPage.getConsole();
-// if (oldConsole != null) {
-// DebugPlugin.getDefault().removeDebugEventListener(oldConsole);
-// oldConsole.dispose();
-// }
- oldForgeIsRunningPage.dispose();
- }
- if (oldForgeIsRunning != null) {
- oldForgeIsRunning.dispose();
- }
- }
-
- public void dispose() {
- if (runtime != null) {
- runtime.stop(null);
- runtime = null;
- }
- super.dispose();
- }
-
- public void startForge() {
- if (runtime != null) return;
- runtime = ForgeRuntimesPreferences.INSTANCE.getDefault();
- runtime.addPropertyChangeListener(INSTANCE);
- Job job = new Job("Starting Forge") {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- runtime.start(monitor);
- return Status.OK_STATUS;
- }
- };
- job.schedule();
- Thread waitThread = new Thread(new Runnable() {
- @Override
- public void run() {
- while (!ForgeRuntime.STATE_RUNNING.equals(runtime.getState())) {
- try {
- Thread.sleep(1000);
- updateNonRunningPage();
- } catch (InterruptedException e) {
- ForgeUIPlugin.log(e);
- }
- }
- }
- });
- waitThread.start();
- }
-
- private void updateNonRunningPage() {
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- notRunningMessage += '.';
- notRunningPage.setMessage(notRunningMessage);
- }
- });
- }
-
- public void stopForge() {
- if (runtime == null) return;
- final IProgressMonitor progressMonitor =
getViewSite().getActionBars().getStatusLineManager().getProgressMonitor();
- runtime.stop(progressMonitor);
- }
-
- private Display getDisplay() {
- return getSite().getShell().getDisplay();
- }
-
- public ForgeRuntime getRuntime() {
- return runtime;
- }
-
-}
Copied:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java
(from rev 34844,
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeView.java)
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java
(rev 0)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -0,0 +1,229 @@
+package org.jboss.tools.forge.ui.part;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.part.MessagePage;
+import org.eclipse.ui.part.Page;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.ui.part.PageSite;
+import org.eclipse.ui.part.ViewPart;
+import org.jboss.tools.forge.core.preferences.ForgeRuntimesPreferences;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
+import org.jboss.tools.forge.ui.ForgeUIPlugin;
+import org.jboss.tools.forge.ui.console.ForgeTextViewer;
+
+public class ForgeView extends ViewPart implements PropertyChangeListener {
+
+ public static final String ID = "org.jboss.tools.forge.console";
+
+ private static final String NOT_RUNNING_MESSAGE = "Forge is not running.";
+ private static final String STARTING_MESSAGE = "Please wait while Forge is
starting";
+
+ public static ForgeView INSTANCE;
+
+ private class ForgePage extends Page {
+
+ private ForgeTextViewer viewer;
+ private ForgeRuntime runtime;
+
+ public ForgePage(ForgeRuntime runtime) {
+ this.runtime = runtime;
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ viewer = new ForgeTextViewer(parent, runtime);
+ }
+
+ @Override
+ public Control getControl() {
+ return viewer == null ? null : viewer.getControl();
+ }
+
+ @Override
+ public void setFocus() {
+ viewer.getControl().setFocus();
+ }
+
+ }
+
+ private PageBook pageBook = null;
+ private Control notRunning;
+ private Control running;
+ private Page runningPage;
+ private MessagePage notRunningPage;
+ private String notRunningMessage;
+
+ private ForgeRuntime runtime;
+
+ public ForgeView() {
+ if (INSTANCE == null) {
+ INSTANCE = this;
+ }
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ pageBook = new PageBook(parent, SWT.NONE);
+ createNotRunningPage(parent);
+ showPage(notRunning);
+ }
+
+ private void createNotRunningPage(Composite parent) {
+ MessagePage page = new MessagePage();
+ page.createControl(pageBook);
+ page.init(new PageSite(getViewSite()));
+ notRunningMessage = NOT_RUNNING_MESSAGE;
+ page.setMessage(notRunningMessage);
+ notRunning = page.getControl();
+ notRunningPage = page;
+ }
+
+ @Override
+ public void setFocus() {
+ if (runtime != null && ForgeRuntime.STATE_RUNNING.equals(runtime.getState()))
{
+ runningPage.setFocus();
+ }
+ }
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (ForgeRuntime.PROPERTY_STATE.equals(evt.getPropertyName())) {
+ if (ForgeRuntime.STATE_STARTING.equals(evt.getNewValue())) {
+ handleStateStarting();
+ } else if (ForgeRuntime.STATE_RUNNING.equals(evt.getNewValue())) {
+ handleStateRunning();
+ } else if (ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
+ handleStateNotRunning();
+ }
+ }
+ }
+
+ private void handleStateStarting() {
+ getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ notRunningMessage = STARTING_MESSAGE;
+ notRunningPage.setMessage(notRunningMessage);
+ createRunningPage();
+ }
+ });
+ }
+
+ private void handleStateRunning() {
+ showPage(running);
+ }
+
+ private void handleStateNotRunning() {
+ if (runtime != null) {
+ runtime.removePropertyChangeListener(INSTANCE);
+ runtime = null;
+ }
+ getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ notRunningMessage = NOT_RUNNING_MESSAGE;
+ if (!notRunningPage.getControl().isDisposed()) {
+ notRunningPage.setMessage(notRunningMessage);
+ }
+ showPage(notRunning);
+ }
+ });
+ }
+
+ private void showPage(final Control control) {
+ if (getSite().getShell() != null) {
+ getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ pageBook.showPage(control);
+ }
+ });
+ }
+ }
+
+ private void createRunningPage() {
+ Control oldForgeIsRunning = running;
+ Page oldForgeIsRunningPage = runningPage;
+ runningPage = new ForgePage(runtime);
+ runningPage.createControl(pageBook);
+ runningPage.init(new PageSite(getViewSite()));
+ running = runningPage.getControl();
+ if (oldForgeIsRunningPage != null) {
+ oldForgeIsRunningPage.dispose();
+ }
+ if (oldForgeIsRunning != null) {
+ oldForgeIsRunning.dispose();
+ }
+ }
+
+ public void dispose() {
+ if (runtime != null) {
+ runtime.stop(null);
+ runtime = null;
+ }
+ super.dispose();
+ }
+
+ public void startForge() {
+ if (runtime != null) return;
+ runtime = ForgeRuntimesPreferences.INSTANCE.getDefault();
+ runtime.addPropertyChangeListener(INSTANCE);
+ Job job = new Job("Starting Forge") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ runtime.start(monitor);
+ return Status.OK_STATUS;
+ }
+ };
+ job.schedule();
+ Thread waitThread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ while (!ForgeRuntime.STATE_RUNNING.equals(runtime.getState())) {
+ try {
+ Thread.sleep(1000);
+ updateNonRunningPage();
+ } catch (InterruptedException e) {
+ ForgeUIPlugin.log(e);
+ }
+ }
+ }
+ });
+ waitThread.start();
+ }
+
+ private void updateNonRunningPage() {
+ getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ notRunningMessage += '.';
+ notRunningPage.setMessage(notRunningMessage);
+ }
+ });
+ }
+
+ public void stopForge() {
+ if (runtime == null) return;
+ final IProgressMonitor progressMonitor =
getViewSite().getActionBars().getStatusLineManager().getProgressMonitor();
+ runtime.stop(progressMonitor);
+ }
+
+ private Display getDisplay() {
+ return getSite().getShell().getDisplay();
+ }
+
+ public ForgeRuntime getRuntime() {
+ return runtime;
+ }
+
+}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeDocument.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeDocument.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeDocument.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,28 +0,0 @@
-package org.jboss.tools.forge.ui.trials;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.swt.widgets.Display;
-
-public class ForgeDocument extends Document {
-
- public void appendString(final String str) {
- Display.getDefault().asyncExec(new Runnable() {
- @Override
- public void run() {
- try {
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
- if (c == '\r') continue; //ignore
- if (str.charAt(i) == '\b') {
- replace(getLength() - 1, 1, "");
- } else {
- replace(getLength(), 0, str.substring(i, i + 1));
- }
- }
- } catch (BadLocationException e) {}
- }
- });
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeTextViewer.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeTextViewer.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeTextViewer.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,201 +0,0 @@
-package org.jboss.tools.forge.ui.trials;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.jboss.tools.forge.core.io.ForgeAnsiCommandFilter;
-import org.jboss.tools.forge.core.io.ForgeHiddenOutputFilter;
-import org.jboss.tools.forge.core.io.ForgeOutputListener;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-import org.jboss.tools.forge.ui.ForgeUIPlugin;
-import org.jboss.tools.forge.ui.console.CommandRecorder;
-
-public class ForgeTextViewer extends TextViewer {
-
- private static String BACKSPACE = new Character('\b').toString();
- private static String UP_ARROW = new Character((char)16).toString();
- private static String DOWN_ARROW = new Character((char)14).toString();
-
- private class RuntimeStopListener implements PropertyChangeListener {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (ForgeRuntime.PROPERTY_STATE.equals(evt.getPropertyName()) &&
- ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
- handleRuntimeStopped();
- }
- }
- }
-
- private class ConsoleKeyListener implements KeyListener {
- @Override
- public void keyPressed(KeyEvent e) {
- }
- @Override
- public void keyReleased(KeyEvent e) {
- if (e.keyCode == SWT.BS) {
- handleBackspace();
- } else if (e.keyCode == SWT.ARROW_UP) {
- handleArrowUp();
- } else if (e.keyCode == SWT.ARROW_DOWN) {
- handleArrowDown();
- } else if (e.keyCode == SWT.F1) {
- handleF1Down();
- }
- }
- }
-
- private class DocumentListener implements IDocumentListener {
- @Override
- public void documentAboutToBeChanged(DocumentEvent event) {
- }
- @Override
- public void documentChanged(DocumentEvent event) {
- Display.getDefault().asyncExec(new Runnable() {
- @Override
- public void run() {
- StyledText textWidget = getTextWidget();
- if (textWidget != null && !textWidget.isDisposed()) {
- int lineCount = textWidget.getLineCount();
- textWidget.setTopIndex(lineCount - 1);
- textWidget.setCaretOffset(textWidget.getCharCount());
- }
- }
- });
- }
- }
-
- private RuntimeStopListener stopListener;
- private ForgeOutputListener outputListener;
- private ForgeRuntime runtime;
- private ForgeDocument document;
-
- public ForgeTextViewer(Composite parent, ForgeRuntime runtime) {
- super(parent, SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
- this.runtime = runtime;
- initialize();
- }
-
- private void initialize() {
- initDocument();
- initViewer();
- initCommandRecorder();
- initOutputListener();
- initStopListener();
- }
-
- private void initDocument() {
- document = new ForgeDocument();
- document.addDocumentListener(new DocumentListener());
- setDocument(document);
- }
-
- private void initViewer() {
- StyledText textWidget = getTextWidget();
- textWidget.setFont(JFaceResources.getFont(JFaceResources.TEXT_FONT));
- textWidget.addKeyListener(new ConsoleKeyListener());
- }
-
- private void initCommandRecorder() {
- getDocument().addDocumentListener(new CommandRecorder());
- }
-
- private void initOutputListener() {
- ForgeOutputListener target = new ForgeOutputListener() {
- @Override
- public void outputAvailable(String output) {
- document.appendString(output);
- }
- };
- ForgeAnsiCommandFilter ansiCommandFilter = new ForgeAnsiCommandFilter(target) {
- @Override
- public void ansiCommandAvailable(String command) {
- executeAnsiCommand(command);
- }
- };
- outputListener = new ForgeHiddenOutputFilter(ansiCommandFilter) {
- @Override
- public void handleFilteredString(String str) {
- System.out.println("handleHiddenOutput : " + str);
- }
- };
- runtime.addOutputListener(outputListener);
- }
-
- private void initStopListener() {
- stopListener = new RuntimeStopListener();
- runtime.addPropertyChangeListener(stopListener);
- }
-
- private void handleRuntimeStopped() {
- runtime.removePropertyChangeListener(stopListener);
- stopListener = null;
- runtime.removeOutputListener(outputListener);
- outputListener = null;
- }
-
- protected void handleVerifyEvent(VerifyEvent e) {
- runtime.sendInput(e.text);
- e.doit = false;
- }
-
- private void handleBackspace() {
- runtime.sendInput(BACKSPACE);
- }
-
- private void handleArrowUp() {
- runtime.sendInput(UP_ARROW);
- }
-
- private void handleArrowDown() {
- runtime.sendInput(DOWN_ARROW);
- }
-
- private void handleF1Down() {
- runtime.sendInput(new Character((char)31).toString() + "hidden
command!\n");
- }
-
- private void executeAnsiCommand(final String command) {
- Display.getDefault().asyncExec(new Runnable() {
- @Override
- public void run() {
- char c = command.charAt(command.length() - 1);
- switch (c) {
- case 'G' : moveCursorAbsolute(command); break;
- case 'K' : clearCurrentLine(command); break;
- }
- }
- });
- }
-
- private void moveCursorAbsolute(final String command) {
- try {
- int column = Integer.valueOf(command.substring(2, command.length() - 1));
- int lineStart =
document.getLineOffset(document.getLineOfOffset(getTextWidget().getCaretOffset()));
- getTextWidget().setCaretOffset(lineStart + column - 1);
- } catch (BadLocationException e) {
- ForgeUIPlugin.log(e);
- }
- }
-
- private void clearCurrentLine(String command) {
- try {
- int caretOffset = getTextWidget().getCaretOffset();
- document.replace(caretOffset, document.getLength() - caretOffset,
"");
- } catch (BadLocationException e) {
- ForgeUIPlugin.log(e);
- }
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeView.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeView.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/ForgeView.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,228 +0,0 @@
-package org.jboss.tools.forge.ui.trials;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.Page;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageSite;
-import org.eclipse.ui.part.ViewPart;
-import org.jboss.tools.forge.core.preferences.ForgeRuntimesPreferences;
-import org.jboss.tools.forge.core.process.ForgeRuntime;
-import org.jboss.tools.forge.ui.ForgeUIPlugin;
-
-public class ForgeView extends ViewPart implements PropertyChangeListener {
-
- public static final String ID = "org.jboss.tools.forge.console";
-
- private static final String NOT_RUNNING_MESSAGE = "Forge is not running.";
- private static final String STARTING_MESSAGE = "Please wait while Forge is
starting";
-
- public static ForgeView INSTANCE;
-
- private class ForgePage extends Page {
-
- private ForgeTextViewer viewer;
- private ForgeRuntime runtime;
-
- public ForgePage(ForgeRuntime runtime) {
- this.runtime = runtime;
- }
-
- @Override
- public void createControl(Composite parent) {
- viewer = new ForgeTextViewer(parent, runtime);
- }
-
- @Override
- public Control getControl() {
- return viewer == null ? null : viewer.getControl();
- }
-
- @Override
- public void setFocus() {
- viewer.getControl().setFocus();
- }
-
- }
-
- private PageBook pageBook = null;
- private Control notRunning;
- private Control running;
- private Page runningPage;
- private MessagePage notRunningPage;
- private String notRunningMessage;
-
- private ForgeRuntime runtime;
-
- public ForgeView() {
- if (INSTANCE == null) {
- INSTANCE = this;
- }
- }
-
- @Override
- public void createPartControl(Composite parent) {
- pageBook = new PageBook(parent, SWT.NONE);
- createNotRunningPage(parent);
- showPage(notRunning);
- }
-
- private void createNotRunningPage(Composite parent) {
- MessagePage page = new MessagePage();
- page.createControl(pageBook);
- page.init(new PageSite(getViewSite()));
- notRunningMessage = NOT_RUNNING_MESSAGE;
- page.setMessage(notRunningMessage);
- notRunning = page.getControl();
- notRunningPage = page;
- }
-
- @Override
- public void setFocus() {
- if (runtime != null && ForgeRuntime.STATE_RUNNING.equals(runtime.getState()))
{
- runningPage.setFocus();
- }
- }
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (ForgeRuntime.PROPERTY_STATE.equals(evt.getPropertyName())) {
- if (ForgeRuntime.STATE_STARTING.equals(evt.getNewValue())) {
- handleStateStarting();
- } else if (ForgeRuntime.STATE_RUNNING.equals(evt.getNewValue())) {
- handleStateRunning();
- } else if (ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
- handleStateNotRunning();
- }
- }
- }
-
- private void handleStateStarting() {
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- notRunningMessage = STARTING_MESSAGE;
- notRunningPage.setMessage(notRunningMessage);
- createRunningPage();
- }
- });
- }
-
- private void handleStateRunning() {
- showPage(running);
- }
-
- private void handleStateNotRunning() {
- if (runtime != null) {
- runtime.removePropertyChangeListener(INSTANCE);
- runtime = null;
- }
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- notRunningMessage = NOT_RUNNING_MESSAGE;
- if (!notRunningPage.getControl().isDisposed()) {
- notRunningPage.setMessage(notRunningMessage);
- }
- showPage(notRunning);
- }
- });
- }
-
- private void showPage(final Control control) {
- if (getSite().getShell() != null) {
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- pageBook.showPage(control);
- }
- });
- }
- }
-
- private void createRunningPage() {
- Control oldForgeIsRunning = running;
- Page oldForgeIsRunningPage = runningPage;
- runningPage = new ForgePage(runtime);
- runningPage.createControl(pageBook);
- runningPage.init(new PageSite(getViewSite()));
- running = runningPage.getControl();
- if (oldForgeIsRunningPage != null) {
- oldForgeIsRunningPage.dispose();
- }
- if (oldForgeIsRunning != null) {
- oldForgeIsRunning.dispose();
- }
- }
-
- public void dispose() {
- if (runtime != null) {
- runtime.stop(null);
- runtime = null;
- }
- super.dispose();
- }
-
- public void startForge() {
- if (runtime != null) return;
- runtime = ForgeRuntimesPreferences.INSTANCE.getDefault();
- runtime.addPropertyChangeListener(INSTANCE);
- Job job = new Job("Starting Forge") {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- runtime.start(monitor);
- return Status.OK_STATUS;
- }
- };
- job.schedule();
- Thread waitThread = new Thread(new Runnable() {
- @Override
- public void run() {
- while (!ForgeRuntime.STATE_RUNNING.equals(runtime.getState())) {
- try {
- Thread.sleep(1000);
- updateNonRunningPage();
- } catch (InterruptedException e) {
- ForgeUIPlugin.log(e);
- }
- }
- }
- });
- waitThread.start();
- }
-
- private void updateNonRunningPage() {
- getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- notRunningMessage += '.';
- notRunningPage.setMessage(notRunningMessage);
- }
- });
- }
-
- public void stopForge() {
- if (runtime == null) return;
- final IProgressMonitor progressMonitor =
getViewSite().getActionBars().getStatusLineManager().getProgressMonitor();
- runtime.stop(progressMonitor);
- }
-
- private Display getDisplay() {
- return getSite().getShell().getDisplay();
- }
-
- public ForgeRuntime getRuntime() {
- return runtime;
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StartDelegate.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StartDelegate.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StartDelegate.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,27 +0,0 @@
-package org.jboss.tools.forge.ui.trials;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-public class StartDelegate implements IViewActionDelegate {
-
- @Override
- public void run(IAction action) {
- ForgeView.INSTANCE.startForge();
- }
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void init(IViewPart view) {
- // TODO Auto-generated method stub
-
- }
-
-}
Deleted:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StopDelegate.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StopDelegate.java 2011-09-19
07:56:48 UTC (rev 34844)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/trials/StopDelegate.java 2011-09-19
08:08:38 UTC (rev 34845)
@@ -1,27 +0,0 @@
-package org.jboss.tools.forge.ui.trials;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-public class StopDelegate implements IViewActionDelegate {
-
- @Override
- public void run(IAction action) {
- ForgeView.INSTANCE.stopForge();
- }
-
- @Override
- public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void init(IViewPart view) {
- // TODO Auto-generated method stub
-
- }
-
-}