From: Frederick W. <fre...@us...> - 2012-02-08 16:50:21
|
rails/ui/swing/GridPanel.java | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) New commits: commit 5f70d21472cf24abf7ac417896273245f39074e8 Author: Frederick Weld <fre...@gm...> Date: Wed Feb 8 17:49:20 2012 +0100 Increased robustness for GridPanel(2): Added field may have null-border diff --git a/rails/ui/swing/GridPanel.java b/rails/ui/swing/GridPanel.java index d2ea42b..ddc4582 100644 --- a/rails/ui/swing/GridPanel.java +++ b/rails/ui/swing/GridPanel.java @@ -244,24 +244,30 @@ implements ActionListener, KeyListener { private class FieldBorder extends CompoundBorder { private static final long serialVersionUID = 1L; Border nativeInnerBorder; - DynamicBorder highlightedInnerBorder; + /** + * remains null if nativeInnerBorder is null or broken + */ + DynamicBorder highlightedInnerBorder = null; DynamicBorder outlineBorder; DynamicBorder outerBorder; public FieldBorder(Border innerBorder,DynamicBorder outlineBorder,DynamicBorder outerBorder) { super(new CompoundBorder(outerBorder,outlineBorder),innerBorder); - this.nativeInnerBorder = innerBorder; + nativeInnerBorder = innerBorder; this.outlineBorder = outlineBorder; this.outerBorder = outerBorder; - Insets nativeInnerBorderInsets = nativeInnerBorder.getBorderInsets(null); - if (nativeInnerBorderInsets == null) { - nativeInnerBorderInsets = new Insets(0,0,0,0); + + //prepare highlighted inner border + if (nativeInnerBorder != null) { + Insets nativeInnerBorderInsets = nativeInnerBorder.getBorderInsets(null); + if (nativeInnerBorderInsets != null) { + highlightedInnerBorder = new DynamicBorder( + highlightedBorderColor, + nativeInnerBorderInsets.top, + nativeInnerBorderInsets.left, + nativeInnerBorderInsets.bottom, + nativeInnerBorderInsets.right); + } } - this.highlightedInnerBorder = new DynamicBorder( - highlightedBorderColor, - nativeInnerBorderInsets.top, - nativeInnerBorderInsets.left, - nativeInnerBorderInsets.bottom, - nativeInnerBorderInsets.right); } public void setHighlight(boolean isToBeHighlighted) { outlineBorder.setHighlight(isToBeHighlighted); |