1 30 package org.columba.core.gui.base; 31 32 import java.awt.Component ; 33 34 import javax.swing.JButton ; 35 import javax.swing.JSplitPane ; 36 import javax.swing.UIManager ; 37 import javax.swing.border.Border ; 38 import javax.swing.border.EmptyBorder ; 39 import javax.swing.plaf.SplitPaneUI ; 40 import javax.swing.plaf.basic.BasicSplitPaneUI ; 41 42 43 55 public final class UIFSplitPane extends JSplitPane { 56 60 private static final Border EMPTY_BORDER = new EmptyBorder (0, 0, 0, 0); 61 62 69 private boolean dividerBorderVisible; 70 71 73 78 public UIFSplitPane() { 79 this(JSplitPane.HORIZONTAL_SPLIT, false, 80 new JButton (UIManager.getString("SplitPane.leftButtonText")), 81 new JButton (UIManager.getString("SplitPane.rightButtonText"))); 82 } 83 84 93 public UIFSplitPane(int newOrientation) { 94 this(newOrientation, false); 95 } 96 97 109 public UIFSplitPane(int newOrientation, boolean newContinuousLayout) { 110 this(newOrientation, newContinuousLayout, null, null); 111 } 112 113 128 public UIFSplitPane(int orientation, Component leftComponent, 129 Component rightComponent) { 130 this(orientation, false, leftComponent, rightComponent); 131 } 132 133 153 public UIFSplitPane(int orientation, boolean continuousLayout, 154 Component leftComponent, Component rightComponent) { 155 super(orientation, continuousLayout, leftComponent, rightComponent); 156 dividerBorderVisible = false; 157 } 158 159 175 public static UIFSplitPane createStrippedSplitPane(int orientation, 176 Component leftComponent, Component rightComponent) { 177 UIFSplitPane split = new UIFSplitPane(orientation, leftComponent, 178 rightComponent); 179 split.setBorder(EMPTY_BORDER); 180 split.setOneTouchExpandable(false); 181 182 return split; 183 } 184 185 187 196 public boolean isDividerBorderVisible() { 197 return dividerBorderVisible; 198 } 199 200 208 public void setDividerBorderVisible(boolean newVisibility) { 209 boolean oldVisibility = isDividerBorderVisible(); 210 211 if (oldVisibility == newVisibility) { 212 return; 213 } 214 215 dividerBorderVisible = newVisibility; 216 firePropertyChange("dividerBorderVisible", oldVisibility, newVisibility); 217 } 218 219 221 226 public void updateUI() { 227 super.updateUI(); 228 229 if (!isDividerBorderVisible()) { 230 setEmptyDividerBorder(); 231 } 232 } 233 234 238 private void setEmptyDividerBorder() { 239 SplitPaneUI splitPaneUI = getUI(); 240 241 if (splitPaneUI instanceof BasicSplitPaneUI ) { 242 BasicSplitPaneUI basicUI = (BasicSplitPaneUI ) splitPaneUI; 243 basicUI.getDivider().setBorder(EMPTY_BORDER); 244 } 245 } 246 } 247 | Popular Tags |