/tags/3.3.0/src/org/getopt/luke/PanelPrintWriter.java

http://luke.googlecode.com/ · Java · 45 lines · 36 code · 5 blank · 4 comment · 3 complexity · b1da9cc163a209d8614d3a8165d922dd MD5 · raw file

  1. package org.getopt.luke;
  2. import java.io.*;
  3. public class PanelPrintWriter extends PrintStream {
  4. static ByteArrayOutputStream baos = new ByteArrayOutputStream();
  5. Object panel;
  6. Luke luke;
  7. public PanelPrintWriter(Luke luke, Object panel) {
  8. super(baos);
  9. baos.reset();
  10. // retrieve previous text and separate it
  11. String text = luke.getString(panel, "text");
  12. if (text != null && text.length() > 0) {
  13. try {
  14. baos.write(text.getBytes());
  15. baos.write('\n');
  16. baos.write('\n');
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21. this.panel = panel;
  22. this.luke = luke;
  23. }
  24. /* (non-Javadoc)
  25. * @see java.io.PrintWriter#println(java.lang.String)
  26. */
  27. @Override
  28. public void println(String x) {
  29. try {
  30. baos.write(x.getBytes());
  31. baos.write('\n');
  32. } catch (IOException e) {
  33. e.printStackTrace();
  34. }
  35. String text = new String(baos.toByteArray());
  36. luke.setString(panel, "text", text);
  37. luke.setInteger(panel, "start", text.length());
  38. luke.setInteger(panel, "end", text.length());
  39. }
  40. }