| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
 | 
 | 
package javax.swing.plaf.synth;  | 
 | 
 | 
 | 
import java.awt.*;  | 
 | 
import java.beans.*;  | 
 | 
import javax.swing.*;  | 
 | 
import javax.swing.plaf.basic.*;  | 
 | 
import sun.swing.DefaultLookup;  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
class SynthSplitPaneDivider extends BasicSplitPaneDivider { | 
 | 
    public SynthSplitPaneDivider(BasicSplitPaneUI ui) { | 
 | 
        super(ui);  | 
 | 
    }  | 
 | 
 | 
 | 
    protected void setMouseOver(boolean mouseOver) { | 
 | 
        if (isMouseOver() != mouseOver) { | 
 | 
            repaint();  | 
 | 
        }  | 
 | 
        super.setMouseOver(mouseOver);  | 
 | 
    }  | 
 | 
 | 
 | 
    public void propertyChange(PropertyChangeEvent e) { | 
 | 
        super.propertyChange(e);  | 
 | 
        if (e.getSource() == splitPane) { | 
 | 
            if (e.getPropertyName() == JSplitPane.ORIENTATION_PROPERTY) { | 
 | 
                if (leftButton instanceof SynthArrowButton) { | 
 | 
                    ((SynthArrowButton)leftButton).setDirection(  | 
 | 
                                       mapDirection(true));  | 
 | 
                }  | 
 | 
                if (rightButton instanceof SynthArrowButton) { | 
 | 
                    ((SynthArrowButton)rightButton).setDirection(  | 
 | 
                                       mapDirection(false));  | 
 | 
                }  | 
 | 
            }  | 
 | 
        }  | 
 | 
    }  | 
 | 
 | 
 | 
    public void paint(Graphics g) { | 
 | 
        Graphics g2 = g.create();  | 
 | 
 | 
 | 
        SynthContext context = ((SynthSplitPaneUI)splitPaneUI).getContext(  | 
 | 
                               splitPane, Region.SPLIT_PANE_DIVIDER);  | 
 | 
        Rectangle bounds = getBounds();  | 
 | 
        bounds.x = bounds.y = 0;  | 
 | 
        SynthLookAndFeel.updateSubregion(context, g, bounds);  | 
 | 
        context.getPainter().paintSplitPaneDividerBackground(context,  | 
 | 
                          g, 0, 0, bounds.width, bounds.height,  | 
 | 
                          splitPane.getOrientation());  | 
 | 
 | 
 | 
        SynthPainter foreground = null;  | 
 | 
 | 
 | 
        context.getPainter().paintSplitPaneDividerForeground(context, g, 0, 0,  | 
 | 
                getWidth(), getHeight(), splitPane.getOrientation());  | 
 | 
        context.dispose();  | 
 | 
 | 
 | 
          | 
 | 
        for (int counter = 0; counter < getComponentCount(); counter++) { | 
 | 
            Component child = getComponent(counter);  | 
 | 
            Rectangle childBounds = child.getBounds();  | 
 | 
            Graphics childG = g.create(childBounds.x, childBounds.y,  | 
 | 
                                       childBounds.width, childBounds.height);  | 
 | 
            child.paint(childG);  | 
 | 
            childG.dispose();  | 
 | 
        }  | 
 | 
        g2.dispose();  | 
 | 
    }  | 
 | 
 | 
 | 
    private int mapDirection(boolean isLeft) { | 
 | 
        if (isLeft) { | 
 | 
            if (splitPane.getOrientation() == JSplitPane.HORIZONTAL_SPLIT){ | 
 | 
                return SwingConstants.WEST;  | 
 | 
            }  | 
 | 
            return SwingConstants.NORTH;  | 
 | 
        }  | 
 | 
        if (splitPane.getOrientation() == JSplitPane.HORIZONTAL_SPLIT){ | 
 | 
            return SwingConstants.EAST;  | 
 | 
        }  | 
 | 
        return SwingConstants.SOUTH;  | 
 | 
    }  | 
 | 
 | 
 | 
 | 
 | 
      | 
 | 
 | 
 | 
 | 
 | 
     */  | 
 | 
    protected JButton createLeftOneTouchButton() { | 
 | 
        SynthArrowButton b = new SynthArrowButton(SwingConstants.NORTH);  | 
 | 
        int oneTouchSize = lookupOneTouchSize();  | 
 | 
 | 
 | 
        b.setName("SplitPaneDivider.leftOneTouchButton"); | 
 | 
        b.setMinimumSize(new Dimension(oneTouchSize, oneTouchSize));  | 
 | 
        b.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  | 
 | 
        b.setFocusPainted(false);  | 
 | 
        b.setBorderPainted(false);  | 
 | 
        b.setRequestFocusEnabled(false);  | 
 | 
        b.setDirection(mapDirection(true));  | 
 | 
        return b;  | 
 | 
    }  | 
 | 
 | 
 | 
    private int lookupOneTouchSize() { | 
 | 
        return DefaultLookup.getInt(splitPaneUI.getSplitPane(), splitPaneUI,  | 
 | 
              "SplitPaneDivider.oneTouchButtonSize", ONE_TOUCH_SIZE);  | 
 | 
    }  | 
 | 
 | 
 | 
      | 
 | 
 | 
 | 
 | 
 | 
     */  | 
 | 
    protected JButton createRightOneTouchButton() { | 
 | 
        SynthArrowButton b = new SynthArrowButton(SwingConstants.NORTH);  | 
 | 
        int oneTouchSize = lookupOneTouchSize();  | 
 | 
 | 
 | 
        b.setName("SplitPaneDivider.rightOneTouchButton"); | 
 | 
        b.setMinimumSize(new Dimension(oneTouchSize, oneTouchSize));  | 
 | 
        b.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  | 
 | 
        b.setFocusPainted(false);  | 
 | 
        b.setBorderPainted(false);  | 
 | 
        b.setRequestFocusEnabled(false);  | 
 | 
        b.setDirection(mapDirection(false));  | 
 | 
        return b;  | 
 | 
    }  | 
 | 
}  |