/* * BorderDescriptor.java * * Created on 3 ������ 2006 �., 17:08 * */ package datechooser.beans.editor.descriptor; import static datechooser.beans.locale.LocaleUtils.getEditorLocaleString; import java.awt.*; import javax.swing.BorderFactory; import javax.swing.border.*; /** * @see DescriptionManager * @see ClassDescriptor * @see javax.swing.BorderFactory * @author Androsov Vadim * @since 1.0 */ public class BorderDescriptor extends ClassDescriptor { private Border value; public Class getDescriptedClass() { return Border.class; } public String getJavaDescription(Object value) { this.value = (Border) value; StringBuffer buf = new StringBuffer(); buf.append(BorderFactory.class.getName() + ".create" + getJavaName(value) + "Border("); if (value instanceof SoftBevelBorder) { buf.append(getBevelJava()); } else if (value instanceof BevelBorder) { buf.append(getBevelJava()); } else if (value instanceof CompoundBorder) { buf.append(getCompoundJava()); } else if (value instanceof MatteBorder) { buf.append(getMatteJava()); } else if (value instanceof EmptyBorder) { buf.append(getEmptyJava()); } else if (value instanceof EtchedBorder) { buf.append(getEtchedJava()); } else if (value instanceof LineBorder) { buf.append(getLineJava()); } else if (value instanceof TitledBorder) { buf.append(getTitledJava()); } buf.append(")"); return buf.toString(); } public String getDescription(Object value) { if (value instanceof SoftBevelBorder) { return getEditorLocaleString("SoftBevel"); } if (value instanceof BevelBorder) { return getEditorLocaleString("Bevel"); } if (value instanceof CompoundBorder) { return getEditorLocaleString("Compound"); } if (value instanceof MatteBorder) { return getEditorLocaleString("Matte"); } if (value instanceof EmptyBorder) { return getEditorLocaleString("Empty"); } if (value instanceof EtchedBorder) { return getEditorLocaleString("Etched"); } if (value instanceof LineBorder) { return getEditorLocaleString("Line"); } if (value instanceof TitledBorder) { return getEditorLocaleString("Titled"); } return "?"; } public String getJavaName(Object value) { if (value instanceof SoftBevelBorder) { return "SoftBevel"; } if (value instanceof BevelBorder) { return "Bevel"; } if (value instanceof CompoundBorder) { return "Compound"; } if (value instanceof MatteBorder) { return "Matte"; } if (value instanceof EmptyBorder) { return "Empty"; } if (value instanceof EtchedBorder) { return "Etched"; } if (value instanceof LineBorder) { return "Line"; } if (value instanceof TitledBorder) { return "Titled"; } return getClassName(); } private String getBevelJava() { BevelBorder bevelValue = (BevelBorder) value; StringBuffer buf = new StringBuffer(); buf.append(BevelBorder.class.getName() + (bevelValue.getBevelType() == BevelBorder.LOWERED ? ".LOWERED" : ".RAISED")); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(bevelValue.getHighlightOuterColor(), Color.class)); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(bevelValue.getHighlightInnerColor(), Color.class)); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(bevelValue.getShadowOuterColor(), Color.class)); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(bevelValue.getShadowInnerColor(), Color.class)); return buf.toString(); } private String getCompoundJava() { CompoundBorder compoundValue = (CompoundBorder) value; StringBuffer buf = new StringBuffer(); Border out = compoundValue.getOutsideBorder(); if (out != null) { buf.append(DescriptionManager.describeJava(out, out.getClass())); } else { buf.append("null"); } buf.append(getSeparator()); Border inside = compoundValue.getInsideBorder(); if (inside != null) { buf.append(DescriptionManager.describeJava(inside, inside.getClass())); } else { buf.append("null"); } return buf.toString(); } private String getInsetsJava(Insets insets) { return "new " + Insets.class.getName() + "(" + insets.top + ONE_LINE_SEPARATOR + insets.left + ONE_LINE_SEPARATOR + insets.bottom + ONE_LINE_SEPARATOR + insets.right + ")"; } private String getEmptyJava() { EmptyBorder emptyValue = (EmptyBorder) value; Insets insets = emptyValue.getBorderInsets(); return insets.top + ONE_LINE_SEPARATOR + insets.left + ONE_LINE_SEPARATOR + insets.bottom + ONE_LINE_SEPARATOR + insets.right; } private String getEtchedJava() { EtchedBorder etchedValue = (EtchedBorder) value; StringBuffer buf = new StringBuffer(); buf.append(EtchedBorder.class.getName() + (etchedValue.getEtchType() == EtchedBorder.LOWERED ? ".LOWERED" : ".RAISED")); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(etchedValue.getHighlightColor(), Color.class)); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(etchedValue.getShadowColor(), Color.class)); return buf.toString(); } private String getLineJava() { LineBorder lineValue = (LineBorder) value; StringBuffer buf = new StringBuffer(); buf.append(DescriptionManager.describeJava(lineValue.getLineColor(), Color.class)); buf.append(ONE_LINE_SEPARATOR); buf.append(lineValue.getThickness()); return buf.toString(); } private String getMatteJava() { MatteBorder matteValue = (MatteBorder) value; StringBuffer buf = new StringBuffer(); buf.append(getInsetsJava(matteValue.getBorderInsets())); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(matteValue.getMatteColor(), Color.class)); return buf.toString(); } private String getTitledJava() { TitledBorder titledValue = (TitledBorder) value; String className = TitledBorder.class.getName(); StringBuffer buf = new StringBuffer(); buf.append(DescriptionManager.describeJava(titledValue.getBorder(), Border.class)); buf.append(getSeparator()); buf.append('"' + titledValue.getTitle() + '"'); buf.append(getSeparator()); switch (titledValue.getTitleJustification()) { case TitledBorder.LEFT: buf.append(className + ".LEFT"); break; case TitledBorder.CENTER: buf.append(className + ".CENTER"); break; case TitledBorder.RIGHT: buf.append(className + ".RIGHT"); break; case TitledBorder.LEADING: buf.append(className + ".LEADING"); break; case TitledBorder.TRAILING: buf.append(className + ".TRAILING"); break; default: buf.append(className + ".DEFAULT_JUSTIFICATION"); } buf.append(getSeparator()); switch (titledValue.getTitlePosition()) { case TitledBorder.ABOVE_TOP: buf.append(className + ".ABOVE_TOP"); break; case TitledBorder.TOP: buf.append(className + ".TOP"); break; case TitledBorder.BELOW_TOP: buf.append(className + ".BELOW_TOP"); break; case TitledBorder.ABOVE_BOTTOM: buf.append(className + ".ABOVE_BOTTOM"); break; case TitledBorder.BOTTOM: buf.append(className + ".BOTTOM"); break; case TitledBorder.BELOW_BOTTOM: buf.append(className + ".BELOW_BOTTOM"); break; default: buf.append(className + ".DEFAULT_POSITION "); } buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(titledValue.getTitleFont(), Font.class)); buf.append(getSeparator()); buf.append(DescriptionManager.describeJava(titledValue.getTitleColor(), Color.class)); return buf.toString(); } }