1 package org.columba.mail.gui.composer.text; 17 18 import java.awt.Font ; 19 import java.nio.charset.Charset ; 20 import java.util.Observable ; 21 import java.util.Observer ; 22 23 import javax.swing.JTextPane ; 24 25 import org.columba.core.charset.CharsetEvent; 26 import org.columba.core.charset.CharsetListener; 27 import org.columba.core.config.Config; 28 import org.columba.core.gui.base.HighlighterDocument; 29 import org.columba.core.gui.util.FontProperties; 30 import org.columba.core.xml.XmlElement; 31 32 39 public class TextEditorView extends JTextPane implements Observer , 40 CharsetListener { 41 42 private HighlighterDocument message; 43 44 public TextEditorView(TextEditorController controller, HighlighterDocument m) { 45 super(); 46 47 controller.getController().addCharsetListener(this); 48 49 message = m; 50 51 setStyledDocument(message); 52 setEditable(true); 53 54 Font font = FontProperties.getTextFont(); 55 setFont(font); 56 57 XmlElement options = Config.getInstance().get("options").getElement( 58 "/options"); 59 XmlElement gui = options.getElement("gui"); 60 XmlElement fonts = gui.getElement("fonts"); 61 62 if (fonts == null) { 63 fonts = gui.addSubElement("fonts"); 64 } 65 66 fonts.addObserver(this); 68 } 69 70 74 80 public void update(Observable arg0, Object arg1) { 81 Font font = FontProperties.getTextFont(); 82 setFont(font); 83 } 84 85 public void charsetChanged(CharsetEvent e) { 86 Charset charset = e.getCharset(); 87 88 if (charset == null) { 89 charset = Charset.forName(System.getProperty("file.encoding")); 90 } 91 92 setContentType("text/plain; charset=\"" + charset.name() + "\""); 93 } 94 95 98 public boolean getScrollableTracksViewportWidth() { 99 return true; 100 } 101 } 102 | Popular Tags |