165 return this;
166 }
167
168 public void paint(Graphics g) {
169 Dimension size = getSize();
170 State state = State.NORMAL;
171 TableColumn draggedColumn = header.getDraggedColumn();
172 if (draggedColumn != null &&
173 column == SwingUtilities2.convertColumnIndexToView(
174 header.getColumnModel(), draggedColumn.getModelIndex())) {
175 state = State.PRESSED;
176 } else if (isSelected || hasFocus || hasRollover) {
177 state = State.HOT;
178 }
179 /* on Vista there are more states for sorted columns */
180 if (WindowsLookAndFeel.isOnVista()) {
181 SortOrder sortOrder = getColumnSortOrder(header.getTable(), column);
182 if (sortOrder != null) {
183 switch(sortOrder) {
184 case ASCENDING:
185 /* falls through */
186 case DESCENDING:
187 switch (state) {
188 case NORMAL:
189 state = State.SORTEDNORMAL;
190 break;
191 case PRESSED:
192 state = State.SORTEDPRESSED;
193 break;
194 case HOT:
195 state = State.SORTEDHOT;
196 break;
197 default:
198 /* do nothing */
199 }
200 default :
201 /* do nothing */
202 }
203 }
204 }
205 skin.paintSkin(g, 0, 0, size.width-1, size.height-1, state);
206 super.paint(g);
207 }
208 }
209
210 /**
211 * A border with an Icon at the middle of the top side.
212 * Outer insets can be provided for this border.
213 */
214 private static class IconBorder implements Border, UIResource{
215 private final Icon icon;
216 private final int top;
217 private final int left;
218 private final int bottom;
219 private final int right;
|
165 return this;
166 }
167
168 public void paint(Graphics g) {
169 Dimension size = getSize();
170 State state = State.NORMAL;
171 TableColumn draggedColumn = header.getDraggedColumn();
172 if (draggedColumn != null &&
173 column == SwingUtilities2.convertColumnIndexToView(
174 header.getColumnModel(), draggedColumn.getModelIndex())) {
175 state = State.PRESSED;
176 } else if (isSelected || hasFocus || hasRollover) {
177 state = State.HOT;
178 }
179 /* on Vista there are more states for sorted columns */
180 if (WindowsLookAndFeel.isOnVista()) {
181 SortOrder sortOrder = getColumnSortOrder(header.getTable(), column);
182 if (sortOrder != null) {
183 switch(sortOrder) {
184 case ASCENDING:
185 case DESCENDING:
186 switch (state) {
187 case NORMAL:
188 state = State.SORTEDNORMAL;
189 break;
190 case PRESSED:
191 state = State.SORTEDPRESSED;
192 break;
193 case HOT:
194 state = State.SORTEDHOT;
195 break;
196 default:
197 /* do nothing */
198 }
199 break;
200 default :
201 /* do nothing */
202 }
203 }
204 }
205 skin.paintSkin(g, 0, 0, size.width-1, size.height-1, state);
206 super.paint(g);
207 }
208 }
209
210 /**
211 * A border with an Icon at the middle of the top side.
212 * Outer insets can be provided for this border.
213 */
214 private static class IconBorder implements Border, UIResource{
215 private final Icon icon;
216 private final int top;
217 private final int left;
218 private final int bottom;
219 private final int right;
|