1 32 33 package com.jeantessier.dependencyfinder.gui; 34 35 import java.awt.*; 36 import javax.swing.*; 37 import javax.swing.border.*; 38 39 public class StatusLine extends JTextField { 40 public static final Font PLAIN_FONT = new Font("dialog", Font.PLAIN, 12); 41 public static final Font BOLD_FONT = new Font("dialog", Font.BOLD, 12); 42 43 public StatusLine(int preferredWidth) { 44 super(); 45 setFont(BOLD_FONT); 46 setEditable(false); 47 setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); 48 Dimension d = getPreferredSize(); 49 d.width = preferredWidth; 50 setPreferredSize(d); 51 } 52 53 public void showInfo(String message) { 54 SwingUtilities.invokeLater(new StatusLineUpdater(this, PLAIN_FONT, Color.black, message, message)); 55 } 56 57 public void showError(String status) { 58 SwingUtilities.invokeLater(new StatusLineUpdater(this, BOLD_FONT, Color.red, status, status)); 59 } 60 61 public void clear() { 62 SwingUtilities.invokeLater(new StatusLineUpdater(this, PLAIN_FONT, Color.black, "", null)); 63 } 64 } 65 66 class StatusLineUpdater implements Runnable { 67 private StatusLine statusLine; 68 private Font font; 69 private Color color; 70 private String message; 71 private String tooltip; 72 73 public StatusLineUpdater(StatusLine statusLine, Font font, Color color, String message, String tooltip) { 74 this.statusLine = statusLine; 75 this.font = font; 76 this.color = color; 77 this.message = message; 78 this.tooltip = tooltip; 79 } 80 81 public void run() { 82 statusLine.setFont(font); 83 statusLine.setForeground(color); 84 statusLine.setText(message); 85 statusLine.setToolTipText(tooltip); 86 } 87 } 88 | Popular Tags |