private boolean isIn(Point loc, Component comp)
{
+ if (!comp.isVisible())
+ {
+ return false;
+ }
Point p = comp.getLocationOnScreen();
Rectangle r = new Rectangle(p.x, p.y, comp.getWidth(), comp.getHeight());
return r.contains(loc);
}
+ /**
+ * Make the complement of the specified split component visible or hidden,
+ * adjusting the position of the split divide.
+ */
+ public void setComplementVisible(Component alignFrame, boolean show)
+ {
+ if (alignFrame == this.topFrame)
+ {
+ this.bottomFrame.setVisible(show);
+ }
+ else if (alignFrame == this.bottomFrame)
+ {
+ this.topFrame.setVisible(show);
+ }
+ if (show)
+ {
+ // SplitPane needs nudging to restore 50-50 split
+ splitPane.setDividerLocation(0.5d);
+ }
+ validate();
+ }
}