001    package jagafa.util.dump;
002    
003    import jagafa.flags.TestingFlags;
004    
005    import java.io.PrintStream;
006    
007    import javax.swing.JComponent;
008    import javax.swing.JOptionPane;
009    import javax.swing.JPanel;
010    
011    
012    
013    public class Dump {
014    
015            private static DumpPanel dumpPanel_;
016    
017            private static DumpStream stream_;
018    
019            public Dump() {
020                    dumpPanel_ = new DumpPanel();
021    
022                    stream_ = new DumpStream();
023    
024                    if (TestingFlags.redirectSystemOut_) {
025                            System.setOut(stream_);
026                            System.out.println("Retrieving System.out output...");
027                            System.out.println("------------------------------------------------------");
028                    }
029            }
030    
031            public static JPanel getDumpPanel() {
032                    return dumpPanel_;
033            }
034    
035            private class DumpStream extends PrintStream {
036    
037                    public DumpStream() {
038                            super(System.out);
039                            // TODO Auto-generated constructor stub
040                    }
041    
042                    @Override
043                    public void println(String arg0) {
044                            dumpPanel_.dump(arg0 + "\n");
045    
046                    }
047    
048                    @Override
049                    public void println(Object arg0) {
050                            dumpPanel_.dump(arg0.toString() + "\n");
051    
052                    }
053    
054                    @Override
055                    public void println() {
056                            dumpPanel_.dump("\n");
057    
058                    }
059    
060                    @Override
061                    public void print(Object arg0) {
062                            dumpPanel_.dump(arg0.toString());
063    
064                    }
065    
066                    @Override
067                    public void print(String arg0) {
068                            dumpPanel_.dump(arg0);
069    
070                    }
071    
072            }
073    
074            public static void clear() {
075                    dumpPanel_.clear();
076            }
077            
078            public static void displayMessage(String message, JComponent parent) {
079                    JOptionPane.showMessageDialog(parent,message); 
080                    
081                    
082            }
083    
084    }