Skip to content
Snippets Groups Projects
Commit abd5aad2 authored by Raphael GIRARDOT's avatar Raphael GIRARDOT
Browse files

Better button orientation managament

parent e38bf7e9
Branches
No related tags found
No related merge requests found
......@@ -43,7 +43,7 @@ import fr.soleil.lib.project.swing.ArrowButton;
*/
public class FoldableBorder extends ColoredLineTitledBorder implements MouseListener, MouseMotionListener {
private static final long serialVersionUID = -167592519370626180L;
private static final long serialVersionUID = 5793692903373431423L;
protected static final Dimension ZERO_SIZE = new Dimension(0, 0);
......@@ -168,6 +168,7 @@ public class FoldableBorder extends ColoredLineTitledBorder implements MouseList
case LEADING:
case TRAILING:
this.buttonPosition = buttonPosition;
updateButtonOrientation(isFolded());
repaintLastComponent();
break;
}
......@@ -454,16 +455,42 @@ public class FoldableBorder extends ColoredLineTitledBorder implements MouseList
return buttonBounds;
}
protected void updateButtonOrientation(boolean folded) {
int orientation, ref;
if (folded) {
ref = getJustification(getLastComponent());
if (ref == CENTER) {
ref = getButtonPosition();
}
if (ref == LEFT || ref == LEADING) {
orientation = ArrowButton.RIGHT;
} else {
orientation = ArrowButton.LEFT;
}
} else {
ref = getPosition();
if (ref == ABOVE_BOTTOM || ref == BOTTOM || ref == BELOW_BOTTOM) {
orientation = ArrowButton.UP;
} else {
orientation = ArrowButton.DOWN;
}
}
if (arrowButton != null) {
arrowButton.setOrientation(orientation);
}
}
public boolean isFolded() {
return arrowButton.getOrientation() == ArrowButton.LEFT;
return (arrowButton != null) && (arrowButton.getOrientation() == ArrowButton.LEFT
|| arrowButton.getOrientation() == ArrowButton.RIGHT);
}
public void setFolded(boolean folded) {
boolean formerFolded = isFolded();
if (formerFolded != folded) {
arrowButton.setOrientation(folded ? ArrowButton.LEFT : ArrowButton.DOWN);
repaintLastComponent();
updateButtonOrientation(folded);
changeSupport.firePropertyChange(BORDER_FOLDED, formerFolded, folded);
repaintLastComponent();
}
}
......@@ -513,6 +540,20 @@ public class FoldableBorder extends ColoredLineTitledBorder implements MouseList
}
}
@Override
public void setTitlePosition(int titlePosition) {
super.setTitlePosition(titlePosition);
updateButtonOrientation(isFolded());
repaintLastComponent();
}
@Override
public void setTitleJustification(int titleJustification) {
super.setTitleJustification(titleJustification);
updateButtonOrientation(isFolded());
repaintLastComponent();
}
@Override
public void mouseClicked(MouseEvent e) {
if (isButtonEvent(e) && arrowButton.isEnabled()) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment