1 /* 2 * Fsgrep is a simple Java application which allows a user to 3 * search all files in a directory structure for lines matching 4 * a given pattern. Its functionality is a combination of the 5 * Unix 'find' and 'grep' utilities. 6 * Visit [http://fsgrep.sourceforge.net/] for more information. 7 * 8 * Copyright (C) 2003-2006 Murali Krishnan [murali_ca_us@users.sourceforge.net] 9 * 10 * Fsgrep is free software; you can redistribute it and/or modify 11 * it under the terms of version 2 of the GNU General Public 12 * License as published by the Free Software Foundation. 13 * 14 * Fsgrep is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with Fsgrep (see the file named LICENSE.txt); if not, write 21 * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 22 * Boston, MA 02111-1307 USA 23 */ 24 25 package mk.fsgrep.gui; 26 27 28 import java.awt.*; 29 30 import javax.swing.*; 31 32 import mk.fsgrep.util.Formatable; 33 import mk.fsgrep.util.output.OutputDestination; 34 35 36 /*** 37 * 38 * 39 * @author Murali Krishnan 40 * 41 */ 42 public class HtmlTablePane extends JEditorPane { 43 44 //------------------------------------------------------------ 45 //- Class Variables 46 47 protected static final String PAGE_START = "<html><body><table width=\"100%\">\n"; 48 protected static final String PAGE_END = "</table></body></html>\n"; 49 50 51 //------------------------------------------------------------ 52 //- Class Functions 53 54 55 56 //------------------------------------------------------------ 57 //- Instance Variables 58 59 private StringBuffer _buffer = new StringBuffer(); 60 61 62 63 //------------------------------------------------------------ 64 //- Constructors 65 66 public HtmlTablePane() { 67 super("text/html", ""); 68 setEditable(false); 69 } 70 71 72 //------------------------------------------------------------ 73 //- Accessors 74 75 protected StringBuffer getBuffer() {return _buffer;} 76 77 78 79 //------------------------------------------------------------ 80 //- Settors 81 82 83 84 //------------------------------------------------------------ 85 //- Private/Protected Utility Functions 86 87 protected void redraw() { 88 String content = PAGE_START + getBuffer() + PAGE_END; 89 90 int caret = getCaretPosition(); 91 setText(content); 92 setCaretPosition(caret); 93 } 94 95 96 //------------------------------------------------------------ 97 //- Public Interface Functions 98 99 public void clear() { 100 _buffer = new StringBuffer(); 101 setCaretPosition(0); 102 103 redraw(); 104 } 105 106 107 public void append(String string) { 108 getBuffer().append(string); 109 110 redraw(); 111 } 112 113 114 public OutputDestination createOutput() { 115 OutputDestination result = new Output(this); 116 117 return result; 118 } 119 120 121 //------------------------------------------------------------ 122 //- Class Interface Functions 123 124 125 126 //------------------------------------------------------------ 127 //- Inner Classes 128 129 class Output extends OutputDestination { 130 131 private HtmlTablePane _pane = null; 132 133 Output(HtmlTablePane pPane) { 134 _pane = pPane; 135 } 136 137 public void print(Object object) { 138 String string = (object instanceof Formatable) ? 139 ((Formatable)object).toHtml() : 140 String.valueOf(object); 141 142 print(string); 143 } 144 145 public void print(String string) { 146 _pane.append(string); 147 } 148 } 149 150 151 //------------------------------------------------------------ 152 //- Main 153 154 155 156 }