Add correct border for dark theme unit selectors
This commit is contained in:
parent
8906eef681
commit
6b5b951fe5
@ -1,7 +1,6 @@
|
||||
package net.sf.openrocket.gui.components;
|
||||
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.ItemSelectable;
|
||||
import java.awt.event.ActionEvent;
|
||||
@ -18,11 +17,10 @@ import javax.swing.Action;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.border.CompoundBorder;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.border.LineBorder;
|
||||
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.util.GUIUtil;
|
||||
import net.sf.openrocket.gui.util.UITheme;
|
||||
import net.sf.openrocket.unit.Unit;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
@ -47,13 +45,17 @@ public class UnitSelector extends StyledLabel implements StateChangeListener, Mo
|
||||
|
||||
private final boolean showValue;
|
||||
|
||||
private final Border normalBorder;
|
||||
private final Border withinBorder;
|
||||
private static Border normalBorder;
|
||||
private static Border withinBorder;
|
||||
|
||||
|
||||
private final List<ItemListener> itemListeners = new ArrayList<ItemListener>();
|
||||
|
||||
|
||||
static {
|
||||
initColors();
|
||||
}
|
||||
|
||||
/**
|
||||
* Common private constructor that sets the values and sets up the borders.
|
||||
* Either model or group must be null.
|
||||
@ -85,14 +87,6 @@ public class UnitSelector extends StyledLabel implements StateChangeListener, Mo
|
||||
|
||||
addMouseListener(this);
|
||||
|
||||
// Define borders to use:
|
||||
|
||||
normalBorder = new CompoundBorder(
|
||||
new LineBorder(new Color(0f, 0f, 0f, 0.08f), 1), new EmptyBorder(1, 1, 1,
|
||||
1));
|
||||
withinBorder = new CompoundBorder(new LineBorder(new Color(0f, 0f, 0f, 0.6f)),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
|
||||
// Add model listener if showing value
|
||||
if (showValue)
|
||||
this.model.addChangeListener(this);
|
||||
@ -117,6 +111,15 @@ public class UnitSelector extends StyledLabel implements StateChangeListener, Mo
|
||||
}
|
||||
|
||||
|
||||
private static void initColors() {
|
||||
updateColors();
|
||||
UITheme.Theme.addUIThemeChangeListener(UnitSelector::updateColors);
|
||||
}
|
||||
|
||||
private static void updateColors() {
|
||||
normalBorder = GUIUtil.getUITheme().getUnitSelectorBorder();
|
||||
withinBorder = GUIUtil.getUITheme().getUnitSelectorFocusBorder();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -14,6 +14,9 @@ import javax.swing.BorderFactory;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.border.CompoundBorder;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import javax.swing.border.LineBorder;
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
import java.io.IOException;
|
||||
@ -82,6 +85,8 @@ public class UITheme {
|
||||
Icon getCDOverrideSubcomponentIcon();
|
||||
|
||||
Border getBorder();
|
||||
Border getUnitSelectorBorder();
|
||||
Border getUnitSelectorFocusBorder();
|
||||
|
||||
void formatScriptTextArea(RSyntaxTextArea textArea);
|
||||
|
||||
@ -381,6 +386,20 @@ public class UITheme {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorBorder() {
|
||||
return new CompoundBorder(
|
||||
new LineBorder(new Color(0f, 0f, 0f, 0.08f), 1),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorFocusBorder() {
|
||||
return new CompoundBorder(
|
||||
new LineBorder(new Color(0f, 0f, 0f, 0.6f)),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||
try {
|
||||
@ -729,6 +748,20 @@ public class UITheme {
|
||||
return BorderFactory.createLineBorder(getBorderColor());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorBorder() {
|
||||
return new CompoundBorder(
|
||||
new LineBorder(new Color(1f, 1f, 1f, 0.08f), 1),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorFocusBorder() {
|
||||
return new CompoundBorder(
|
||||
new LineBorder(new Color(1f, 1f, 1f, 0.6f)),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||
try {
|
||||
@ -1073,6 +1106,20 @@ public class UITheme {
|
||||
return BorderFactory.createLineBorder(getBorderColor());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorBorder() {
|
||||
return new CompoundBorder(
|
||||
new LineBorder(new Color(.9f, 0.9f, 0.9f, 0.15f), 1),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorFocusBorder() {
|
||||
return new CompoundBorder(
|
||||
new LineBorder(new Color(0.9f, 0.9f, 0.9f, 0.6f)),
|
||||
new EmptyBorder(1, 1, 1, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||
try {
|
||||
@ -1439,6 +1486,16 @@ public class UITheme {
|
||||
return getCurrentTheme().getBorder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorBorder() {
|
||||
return getCurrentTheme().getUnitSelectorBorder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Border getUnitSelectorFocusBorder() {
|
||||
return getCurrentTheme().getUnitSelectorFocusBorder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||
getCurrentTheme().formatScriptTextArea(textArea);
|
||||
|
Loading…
x
Reference in New Issue
Block a user