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;
|
package net.sf.openrocket.gui.components;
|
||||||
|
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.ItemSelectable;
|
import java.awt.ItemSelectable;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
@ -18,11 +17,10 @@ import javax.swing.Action;
|
|||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
import javax.swing.border.Border;
|
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.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.Unit;
|
||||||
import net.sf.openrocket.unit.UnitGroup;
|
import net.sf.openrocket.unit.UnitGroup;
|
||||||
import net.sf.openrocket.util.StateChangeListener;
|
import net.sf.openrocket.util.StateChangeListener;
|
||||||
@ -47,13 +45,17 @@ public class UnitSelector extends StyledLabel implements StateChangeListener, Mo
|
|||||||
|
|
||||||
private final boolean showValue;
|
private final boolean showValue;
|
||||||
|
|
||||||
private final Border normalBorder;
|
private static Border normalBorder;
|
||||||
private final Border withinBorder;
|
private static Border withinBorder;
|
||||||
|
|
||||||
|
|
||||||
private final List<ItemListener> itemListeners = new ArrayList<ItemListener>();
|
private final List<ItemListener> itemListeners = new ArrayList<ItemListener>();
|
||||||
|
|
||||||
|
|
||||||
|
static {
|
||||||
|
initColors();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Common private constructor that sets the values and sets up the borders.
|
* Common private constructor that sets the values and sets up the borders.
|
||||||
* Either model or group must be null.
|
* Either model or group must be null.
|
||||||
@ -85,14 +87,6 @@ public class UnitSelector extends StyledLabel implements StateChangeListener, Mo
|
|||||||
|
|
||||||
addMouseListener(this);
|
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
|
// Add model listener if showing value
|
||||||
if (showValue)
|
if (showValue)
|
||||||
this.model.addChangeListener(this);
|
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.Icon;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.border.Border;
|
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.Color;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -82,6 +85,8 @@ public class UITheme {
|
|||||||
Icon getCDOverrideSubcomponentIcon();
|
Icon getCDOverrideSubcomponentIcon();
|
||||||
|
|
||||||
Border getBorder();
|
Border getBorder();
|
||||||
|
Border getUnitSelectorBorder();
|
||||||
|
Border getUnitSelectorFocusBorder();
|
||||||
|
|
||||||
void formatScriptTextArea(RSyntaxTextArea textArea);
|
void formatScriptTextArea(RSyntaxTextArea textArea);
|
||||||
|
|
||||||
@ -381,6 +386,20 @@ public class UITheme {
|
|||||||
return null;
|
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
|
@Override
|
||||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||||
try {
|
try {
|
||||||
@ -729,6 +748,20 @@ public class UITheme {
|
|||||||
return BorderFactory.createLineBorder(getBorderColor());
|
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
|
@Override
|
||||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||||
try {
|
try {
|
||||||
@ -1073,6 +1106,20 @@ public class UITheme {
|
|||||||
return BorderFactory.createLineBorder(getBorderColor());
|
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
|
@Override
|
||||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||||
try {
|
try {
|
||||||
@ -1439,6 +1486,16 @@ public class UITheme {
|
|||||||
return getCurrentTheme().getBorder();
|
return getCurrentTheme().getBorder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Border getUnitSelectorBorder() {
|
||||||
|
return getCurrentTheme().getUnitSelectorBorder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Border getUnitSelectorFocusBorder() {
|
||||||
|
return getCurrentTheme().getUnitSelectorFocusBorder();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
public void formatScriptTextArea(RSyntaxTextArea textArea) {
|
||||||
getCurrentTheme().formatScriptTextArea(textArea);
|
getCurrentTheme().formatScriptTextArea(textArea);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user