package org.openstack.atlas.ca.gui.utils; import java.awt.Color; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.Style; import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; import org.openstack.atlas.util.ca.StringUtils; public class CaTextPane { private JTextPane textPane; private StyledDocument doc; private Style red; private Style green; private Style curStyle; public CaTextPane(JTextPane textPane) { this.textPane = textPane; this.doc = textPane.getStyledDocument(); this.red = doc.addStyle("red", null); StyleConstants.setForeground(red, Color.red); this.green = doc.addStyle("green", null); StyleConstants.setForeground(green, Color.green); } public void write(String format, Object... args) { String msg = String.format(format, args); try { doc.insertString(doc.getLength(), msg, curStyle); } catch (BadLocationException ex) { Logger.getLogger(CaTextPane.class.getName()).log(Level.SEVERE, null, ex); } } public void writeException(Throwable ex) { String exceptionMessage = StringUtils.getEST(ex); Style origStyle = curStyle; curStyle = red; write(exceptionMessage); curStyle = origStyle; } public void redWrite(String fmt, Object... args) { Style origStyle = curStyle; curStyle = red; write(fmt, args); curStyle = origStyle; } public void greenWrite(String fmt, Object... args) { Style origStyle = curStyle; curStyle = green; write(fmt, args); curStyle = origStyle; } public void setRed() { this.curStyle = red; } public void setGreen() { this.curStyle = green; } public void clear() { textPane.setText(""); } }