1 30 31 package com.jgoodies.uif_lite.component; 32 33 import java.awt.Component ; 34 35 import javax.swing.BorderFactory ; 36 import javax.swing.JButton ; 37 import javax.swing.JSplitPane ; 38 import javax.swing.UIManager ; 39 import javax.swing.plaf.SplitPaneUI ; 40 import javax.swing.plaf.basic.BasicSplitPaneUI ; 41 42 54 55 public final class UIFSplitPane extends JSplitPane { 56 57 64 public static final String PROPERTYNAME_DIVIDER_BORDER_VISIBLE = 65 "dividerBorderVisible"; 66 67 74 private boolean dividerBorderVisible; 75 76 77 79 84 public UIFSplitPane() { 85 this(JSplitPane.HORIZONTAL_SPLIT, false, 86 new JButton (UIManager.getString("SplitPane.leftButtonText")), 87 new JButton (UIManager.getString("SplitPane.rightButtonText"))); 88 } 89 90 91 100 public UIFSplitPane(int newOrientation) { 101 this(newOrientation, false); 102 } 103 104 105 117 public UIFSplitPane(int newOrientation, 118 boolean newContinuousLayout) { 119 this(newOrientation, newContinuousLayout, null, null); 120 } 121 122 123 138 public UIFSplitPane(int orientation, 139 Component leftComponent, 140 Component rightComponent) { 141 this(orientation, false, leftComponent, rightComponent); 142 } 143 144 145 165 public UIFSplitPane(int orientation, 166 boolean continuousLayout, 167 Component leftComponent, 168 Component rightComponent){ 169 super(orientation, continuousLayout, leftComponent, rightComponent); 170 dividerBorderVisible = false; 171 } 172 173 174 190 public static UIFSplitPane createStrippedSplitPane( 191 int orientation, 192 Component leftComponent, 193 Component rightComponent) { 194 UIFSplitPane split = new UIFSplitPane(orientation, leftComponent, rightComponent); 195 split.setBorder(BorderFactory.createEmptyBorder()); 196 split.setOneTouchExpandable(false); 197 return split; 198 } 199 200 201 203 212 public boolean isDividerBorderVisible() { 213 return dividerBorderVisible; 214 } 215 216 217 225 public void setDividerBorderVisible(boolean newVisibility) { 226 boolean oldVisibility = isDividerBorderVisible(); 227 if (oldVisibility == newVisibility) 228 return; 229 dividerBorderVisible = newVisibility; 230 firePropertyChange(PROPERTYNAME_DIVIDER_BORDER_VISIBLE, 231 oldVisibility, 232 newVisibility); 233 } 234 235 236 238 243 public void updateUI() { 244 super.updateUI(); 245 if (!isDividerBorderVisible()) 246 setEmptyDividerBorder(); 247 } 248 249 250 254 private void setEmptyDividerBorder() { 255 SplitPaneUI splitPaneUI = getUI(); 256 if (splitPaneUI instanceof BasicSplitPaneUI ) { 257 BasicSplitPaneUI basicUI = (BasicSplitPaneUI ) splitPaneUI; 258 basicUI.getDivider().setBorder(BorderFactory.createEmptyBorder()); 259 } 260 } 261 262 263 } | Popular Tags |