home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.border;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.Point;
- import java.awt.Rectangle;
- import javax.swing.UIManager;
-
- public class TitledBorder extends AbstractBorder {
- protected String title;
- protected Border border;
- protected int titlePosition;
- protected int titleJustification;
- protected Font titleFont;
- protected Color titleColor;
- public static final int DEFAULT_POSITION = 0;
- public static final int ABOVE_TOP = 1;
- public static final int TOP = 2;
- public static final int BELOW_TOP = 3;
- public static final int ABOVE_BOTTOM = 4;
- public static final int BOTTOM = 5;
- public static final int BELOW_BOTTOM = 6;
- public static final int DEFAULT_JUSTIFICATION = 0;
- public static final int LEFT = 1;
- public static final int CENTER = 2;
- public static final int RIGHT = 3;
- protected static final int EDGE_SPACING = 2;
- protected static final int TEXT_SPACING = 2;
- protected static final int TEXT_INSET_H = 5;
-
- public TitledBorder(String var1) {
- this((Border)null, var1, 1, 2, (Font)null, (Color)null);
- }
-
- public TitledBorder(Border var1) {
- this(var1, "", 1, 2, (Font)null, (Color)null);
- }
-
- public TitledBorder(Border var1, String var2) {
- this(var1, var2, 1, 2, (Font)null, (Color)null);
- }
-
- public TitledBorder(Border var1, String var2, int var3, int var4) {
- this(var1, var2, var3, var4, (Font)null, (Color)null);
- }
-
- public TitledBorder(Border var1, String var2, int var3, int var4, Font var5) {
- this(var1, var2, var3, var4, var5, (Color)null);
- }
-
- public TitledBorder(Border var1, String var2, int var3, int var4, Font var5, Color var6) {
- this.title = var2;
- this.border = var1;
- this.titleFont = var5;
- this.titleColor = var6;
- this.setTitleJustification(var3);
- this.setTitlePosition(var4);
- }
-
- public Border getBorder() {
- Border var1 = this.border;
- if (var1 == null) {
- var1 = UIManager.getBorder("TitledBorder.border");
- }
-
- return var1;
- }
-
- public Insets getBorderInsets(Component var1) {
- return this.getBorderInsets(var1, new Insets(0, 0, 0, 0));
- }
-
- public Insets getBorderInsets(Component var1, Insets var2) {
- int var4 = 0;
- int var5 = 16;
- Border var6 = this.getBorder();
- if (var6 != null) {
- if (var6 instanceof AbstractBorder) {
- var2 = ((AbstractBorder)var6).getBorderInsets(var1, var2);
- } else {
- var2 = var6.getBorderInsets(var1);
- }
- } else {
- var2.left = var2.top = var2.right = var2.bottom = 0;
- }
-
- var2.left += 4;
- var2.right += 4;
- var2.top += 4;
- var2.bottom += 4;
- if (var1 != null && this.getTitle() != null && !this.getTitle().equals("")) {
- Font var7 = this.getFont(var1);
- FontMetrics var3 = var1.getFontMetrics(var7);
- if (var3 != null) {
- var4 = var3.getDescent();
- var5 = var3.getAscent();
- }
-
- switch (this.getTitlePosition()) {
- case 0:
- case 2:
- var2.top += var5 + var4;
- break;
- case 1:
- var2.top += var5 + var4 + (Math.max(2, 4) - 2);
- break;
- case 3:
- var2.top += var5 + var4 + 2;
- break;
- case 4:
- var2.bottom += var5 + var4 + 2;
- break;
- case 5:
- var2.bottom += var5 + var4;
- break;
- case 6:
- var2.bottom += var5 + 2;
- }
-
- return var2;
- } else {
- return var2;
- }
- }
-
- protected Font getFont(Component var1) {
- Font var2;
- if ((var2 = this.getTitleFont()) != null) {
- return var2;
- } else {
- return var1 != null && (var2 = var1.getFont()) != null ? var2 : new Font("Dialog", 0, 12);
- }
- }
-
- public Dimension getMinimumSize(Component var1) {
- Insets var2 = this.getBorderInsets(var1);
- Dimension var3 = new Dimension(var2.right + var2.left, var2.top + var2.bottom);
- Font var4 = this.getFont(var1);
- FontMetrics var5 = var1.getFontMetrics(var4);
- switch (this.titlePosition) {
- case 0:
- case 2:
- case 3:
- case 4:
- case 5:
- default:
- var3.width += var5.stringWidth(this.getTitle());
- break;
- case 1:
- case 6:
- var3.width = Math.max(var5.stringWidth(this.getTitle()), var3.width);
- }
-
- return var3;
- }
-
- public String getTitle() {
- return this.title;
- }
-
- public Color getTitleColor() {
- Color var1 = this.titleColor;
- if (var1 == null) {
- var1 = UIManager.getColor("TitledBorder.titleColor");
- }
-
- return var1;
- }
-
- public Font getTitleFont() {
- Font var1 = this.titleFont;
- if (var1 == null) {
- var1 = UIManager.getFont("TitledBorder.font");
- }
-
- return var1;
- }
-
- public int getTitleJustification() {
- return this.titleJustification;
- }
-
- public int getTitlePosition() {
- return this.titlePosition;
- }
-
- public boolean isBorderOpaque() {
- return false;
- }
-
- public void paintBorder(Component var1, Graphics var2, int var3, int var4, int var5, int var6) {
- if (this.getTitle() != null && !this.getTitle().equals("")) {
- Rectangle var7 = new Rectangle(var3 + 2, var4 + 2, var5 - 4, var6 - 4);
- Font var8 = var2.getFont();
- Color var9 = var2.getColor();
- var2.setFont(this.getFont(var1));
- FontMetrics var10 = var2.getFontMetrics();
- int var11 = var10.getHeight();
- int var12 = var10.getDescent();
- int var13 = var10.getAscent();
- Point var14 = new Point();
- int var16 = var10.stringWidth(this.getTitle());
- Insets var17;
- if (this.getBorder() != null) {
- var17 = this.getBorder().getBorderInsets(var1);
- } else {
- var17 = new Insets(0, 0, 0, 0);
- }
-
- switch (this.getTitlePosition()) {
- case 0:
- case 2:
- int var18 = Math.max(0, var13 / 2 + 2 - 2);
- var7.y += var18;
- var7.height -= var18;
- var14.y = var7.y - var12 + (var17.top + var13 + var12) / 2;
- break;
- case 1:
- int var15 = var13 + var12 + (Math.max(2, 4) - 2);
- var7.y += var15;
- var7.height -= var15;
- var14.y = var7.y - (var12 + 2);
- break;
- case 3:
- var14.y = var7.y + var17.top + var13 + 2;
- break;
- case 4:
- var14.y = var7.y + var7.height - (var17.bottom + var12 + 2);
- break;
- case 5:
- var7.height -= var11 / 2;
- var14.y = var7.y + var7.height - var12 + (var13 + var12 - var17.bottom) / 2;
- break;
- case 6:
- var7.height -= var11;
- var14.y = var7.y + var7.height + var13 + 2;
- }
-
- this.getBorder().paintBorder(var1, var2, var7.x, var7.y, var7.width, var7.height);
- switch (this.getTitleJustification()) {
- case 0:
- case 1:
- var14.x = var7.x + 5 + var17.left;
- break;
- case 2:
- var14.x = var7.x + (var7.width - var16) / 2;
- break;
- case 3:
- var14.x = var7.x + var7.width - (var16 + 5 + var17.right);
- }
-
- var2.setColor(var1.getBackground());
- var2.fillRect(var14.x - 2, var14.y - (var11 - var12), var16 + 4, var11 - var12);
- var2.setColor(this.getTitleColor());
- var2.drawString(this.getTitle(), var14.x, var14.y);
- var2.setFont(var8);
- var2.setColor(var9);
- } else {
- this.getBorder().paintBorder(var1, var2, var3, var4, var5, var6);
- }
- }
-
- public void setBorder(Border var1) {
- this.border = var1;
- }
-
- public void setTitle(String var1) {
- this.title = var1;
- }
-
- public void setTitleColor(Color var1) {
- this.titleColor = var1;
- }
-
- public void setTitleFont(Font var1) {
- this.titleFont = var1;
- }
-
- public void setTitleJustification(int var1) {
- switch (var1) {
- case 0:
- case 1:
- case 2:
- case 3:
- this.titleJustification = var1;
- return;
- default:
- throw new IllegalArgumentException(var1 + " is not a valid title justification.");
- }
- }
-
- public void setTitlePosition(int var1) {
- switch (var1) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- this.titlePosition = var1;
- return;
- default:
- throw new IllegalArgumentException(var1 + " is not a valid title position.");
- }
- }
- }
-