Debug session thread and socket leak fixed:
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / PHPConsole.java
1 package net.sourceforge.phpeclipse;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5
6 import org.eclipse.swt.graphics.Color;
7 import org.eclipse.ui.console.ConsolePlugin;
8 import org.eclipse.ui.console.IConsole;
9 import org.eclipse.ui.console.MessageConsole;
10 import org.eclipse.ui.console.MessageConsoleStream;
11
12 public class PHPConsole {
13   private MessageConsole myConsole;
14
15   private MessageConsoleStream stream;
16
17   private boolean hasMessages;
18
19   public PHPConsole() {
20     hasMessages = false;
21     myConsole = new MessageConsole("PHPeclipse Console", null);
22     ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { myConsole });
23     ConsolePlugin.getDefault().getConsoleManager().showConsoleView(myConsole);
24     //  layout.addView(IConsoleConstants.ID_CONSOLE_VIEW, IPageLayout.BOTTOM, .5f,IPageLayout.ID_EDITOR_AREA);
25     stream = myConsole.newMessageStream();
26   }
27
28   /**
29    * @return
30    */
31   public Color getColor() {
32     return stream.getColor();
33   }
34
35   /**
36    * @return
37    */
38   public MessageConsole getConsole() {
39     return stream.getConsole();
40   }
41
42   /*
43    * (non-Javadoc)
44    * 
45    * @see java.lang.Object#hashCode()
46    */
47   public int hashCode() {
48     return stream.hashCode();
49   }
50
51   /**
52    * @param message
53    */
54   public void print(String message) {
55     hasMessages = true;
56     stream.print(message);
57   }
58
59   /**
60    *  
61    */
62   public void println() {
63     hasMessages = true;
64     stream.println();
65   }
66
67   /**
68    * @param message
69    */
70   public void println(String message) {
71     hasMessages = true;
72     stream.println(message);
73   }
74
75   /**
76    * @param color
77    */
78   public void setColor(Color color) {
79     stream.setColor(color);
80   }
81
82   //  public void reportError(String title, String message) {
83   //    if (hasMessages) {
84   //      WikiEditorPlugin.getDefault().reportError(title, message);
85   //    }
86   //  }
87
88   //  public void reportError() {
89   //    reportError("Problems listed", "Open console view for problems log!");
90   //  }
91   /**
92    * Creates a string buffer from the given input stream
93    */
94   public static String getStringFromStream(InputStream stream) throws IOException {
95     StringBuffer buffer = new StringBuffer();
96     byte[] b = new byte[100];
97     int finished = 0;
98     while (finished != -1) {
99       finished = stream.read(b);
100       if (finished != -1) {
101         String current = new String(b, 0, finished);
102         buffer.append(current);
103       }
104     }
105     return buffer.toString();
106   }
107 }