package org.basex.gui.layout; import java.awt.*; import javax.swing.JLabel; import javax.swing.border.EmptyBorder; import org.basex.gui.GUIConstants.Msg; /** * Project specific Label implementation. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public class BaseXLabel extends JLabel { /** * Constructor. */ public BaseXLabel() { this("", false, false); } /** * Constructor, specifying a label text. * @param txt label text */ public BaseXLabel(final String txt) { this(txt, false, false); } /** * Constructor, specifying a label text, vertical distance to the next * component, and a property for printing the label in bold. * @param txt label text * @param dist vertical distance to next component * @param bold bold flag */ public BaseXLabel(final String txt, final boolean dist, final boolean bold) { super(txt); if(dist) border(0, 0, 6, 0); setFont(getFont().deriveFont(bold ? 1 : 0)); } /** * Sets the label borders. * @param t top distance * @param l left distance * @param b bottom distance * @param r right distance * @return self reference */ public BaseXLabel border(final int t, final int l, final int b, final int r) { setBorder(new EmptyBorder(t, l, b, r)); return this; } /** * Sets the text color. * @param c color * @return self reference */ public BaseXLabel color(final Color c) { setForeground(c); return this; } /** * Shows an text, preceded by a state icon. * If the text is {@code null}, no text and icon is shown. * @param text warning text * @param icon flag for displaying a warning or error icon */ public void setText(final String text, final Msg icon) { setIcon(text == null ? null : icon.small); setText(text == null ? " " : text); } /** * Chooses a large font. * @return self reference */ public BaseXLabel large() { final Font f = getFont(); setFont(new Font(f.getName(), Font.PLAIN, (int) f.getSize2D() + 7)); return this; } @Override public void setEnabled(final boolean flag) { if(flag != isEnabled()) super.setEnabled(flag); } }