103 * current value is either null or a UIResource, other properties are set
104 * if the current value is null.
105 *
106 * @see #installUI
107 */
108 @Override
109 protected void installDefaults() {
110 dateRenderer = installRendererIfPossible(Date.class, null);
111 numberRenderer = installRendererIfPossible(Number.class, null);
112 doubleRender = installRendererIfPossible(Double.class, null);
113 floatRenderer = installRendererIfPossible(Float.class, null);
114 iconRenderer = installRendererIfPossible(Icon.class, null);
115 imageIconRenderer = installRendererIfPossible(ImageIcon.class, null);
116 booleanRenderer = installRendererIfPossible(Boolean.class,
117 new SynthBooleanTableCellRenderer());
118 objectRenderer = installRendererIfPossible(Object.class,
119 new SynthTableCellRenderer());
120 updateStyle(table);
121 }
122
123 private TableCellRenderer installRendererIfPossible(Class objectClass,
124 TableCellRenderer renderer) {
125 TableCellRenderer currentRenderer = table.getDefaultRenderer(
126 objectClass);
127 if (currentRenderer instanceof UIResource) {
128 table.setDefaultRenderer(objectClass, renderer);
129 }
130 return currentRenderer;
131 }
132
133 private void updateStyle(JTable c) {
134 SynthContext context = getContext(c, ENABLED);
135 SynthStyle oldStyle = style;
136 style = SynthLookAndFeel.updateStyle(context, this);
137 if (style != oldStyle) {
138 context.setComponentState(ENABLED | SELECTED);
139
140 Color sbg = table.getSelectionBackground();
141 if (sbg == null || sbg instanceof UIResource) {
142 table.setSelectionBackground(style.getColor(
143 context, ColorType.TEXT_BACKGROUND));
775 JTable table, Object value, boolean isSelected,
776 boolean hasFocus, int row, int column) {
777 if (!useTableColors && (isSelected || hasFocus)) {
778 SynthLookAndFeel.setSelectedUI((SynthLabelUI)SynthLookAndFeel.
779 getUIOfType(getUI(), SynthLabelUI.class),
780 isSelected, hasFocus, table.isEnabled(), false);
781 }
782 else {
783 SynthLookAndFeel.resetSelectedUI();
784 }
785 super.getTableCellRendererComponent(table, value, isSelected,
786 hasFocus, row, column);
787
788 setIcon(null);
789 if (table != null) {
790 configureValue(value, table.getColumnClass(column));
791 }
792 return this;
793 }
794
795 private void configureValue(Object value, Class columnClass) {
796 if (columnClass == Object.class || columnClass == null) {
797 setHorizontalAlignment(JLabel.LEADING);
798 } else if (columnClass == Float.class || columnClass == Double.class) {
799 if (numberFormat == null) {
800 numberFormat = NumberFormat.getInstance();
801 }
802 setHorizontalAlignment(JLabel.TRAILING);
803 setText((value == null) ? "" : ((NumberFormat)numberFormat).format(value));
804 }
805 else if (columnClass == Number.class) {
806 setHorizontalAlignment(JLabel.TRAILING);
807 // Super will have set value.
808 }
809 else if (columnClass == Icon.class || columnClass == ImageIcon.class) {
810 setHorizontalAlignment(JLabel.CENTER);
811 setIcon((value instanceof Icon) ? (Icon)value : null);
812 setText("");
813 }
814 else if (columnClass == Date.class) {
815 if (dateFormat == null) {
|
103 * current value is either null or a UIResource, other properties are set
104 * if the current value is null.
105 *
106 * @see #installUI
107 */
108 @Override
109 protected void installDefaults() {
110 dateRenderer = installRendererIfPossible(Date.class, null);
111 numberRenderer = installRendererIfPossible(Number.class, null);
112 doubleRender = installRendererIfPossible(Double.class, null);
113 floatRenderer = installRendererIfPossible(Float.class, null);
114 iconRenderer = installRendererIfPossible(Icon.class, null);
115 imageIconRenderer = installRendererIfPossible(ImageIcon.class, null);
116 booleanRenderer = installRendererIfPossible(Boolean.class,
117 new SynthBooleanTableCellRenderer());
118 objectRenderer = installRendererIfPossible(Object.class,
119 new SynthTableCellRenderer());
120 updateStyle(table);
121 }
122
123 private TableCellRenderer installRendererIfPossible(Class<?> objectClass,
124 TableCellRenderer renderer) {
125 TableCellRenderer currentRenderer = table.getDefaultRenderer(
126 objectClass);
127 if (currentRenderer instanceof UIResource) {
128 table.setDefaultRenderer(objectClass, renderer);
129 }
130 return currentRenderer;
131 }
132
133 private void updateStyle(JTable c) {
134 SynthContext context = getContext(c, ENABLED);
135 SynthStyle oldStyle = style;
136 style = SynthLookAndFeel.updateStyle(context, this);
137 if (style != oldStyle) {
138 context.setComponentState(ENABLED | SELECTED);
139
140 Color sbg = table.getSelectionBackground();
141 if (sbg == null || sbg instanceof UIResource) {
142 table.setSelectionBackground(style.getColor(
143 context, ColorType.TEXT_BACKGROUND));
775 JTable table, Object value, boolean isSelected,
776 boolean hasFocus, int row, int column) {
777 if (!useTableColors && (isSelected || hasFocus)) {
778 SynthLookAndFeel.setSelectedUI((SynthLabelUI)SynthLookAndFeel.
779 getUIOfType(getUI(), SynthLabelUI.class),
780 isSelected, hasFocus, table.isEnabled(), false);
781 }
782 else {
783 SynthLookAndFeel.resetSelectedUI();
784 }
785 super.getTableCellRendererComponent(table, value, isSelected,
786 hasFocus, row, column);
787
788 setIcon(null);
789 if (table != null) {
790 configureValue(value, table.getColumnClass(column));
791 }
792 return this;
793 }
794
795 private void configureValue(Object value, Class<?> columnClass) {
796 if (columnClass == Object.class || columnClass == null) {
797 setHorizontalAlignment(JLabel.LEADING);
798 } else if (columnClass == Float.class || columnClass == Double.class) {
799 if (numberFormat == null) {
800 numberFormat = NumberFormat.getInstance();
801 }
802 setHorizontalAlignment(JLabel.TRAILING);
803 setText((value == null) ? "" : ((NumberFormat)numberFormat).format(value));
804 }
805 else if (columnClass == Number.class) {
806 setHorizontalAlignment(JLabel.TRAILING);
807 // Super will have set value.
808 }
809 else if (columnClass == Icon.class || columnClass == ImageIcon.class) {
810 setHorizontalAlignment(JLabel.CENTER);
811 setIcon((value instanceof Icon) ? (Icon)value : null);
812 setText("");
813 }
814 else if (columnClass == Date.class) {
815 if (dateFormat == null) {
|