Merge branch 'unstable' into issue-2258
This commit is contained in:
commit
f304e4577a
@ -63,7 +63,6 @@ Right, you've dug into the codebase, found that one nasty line that caused all y
|
||||
1. Explain briefly which issue that you are trying to solve, e.g. 'This PR solves #123 in which buttons were displayed as red instead of blue'
|
||||
2. Next explain what the underlying issue was, e.g. 'The problem was that by default Java swing displays buttons as red.'
|
||||
3. Next is how you fixed the issue, e.g. 'Fixed it by overriding the default button color to blue'
|
||||
4. Finally, for other people to test your code, it is good to include a jar file of your fixed OpenRocket. This can be done using ant ([more info here](https://github.com/openrocket/openrocket/wiki/Instructions-to-Build-from-Terminal)). You can upload this jar-file to e.g. Dropbox or Google Drive and include it in your PR, e.g. 'Here is a jar file for testing: ' or if you're really GitHub-savvy, you can add a hyperlink to the 'jar file'-text. If necessary, you can also include information on how to recreate the original issue so that testers can check whether your code solved the issue. If needed, you can also included information about the expected behavior so that others know what your solution should do.
|
||||
|
||||
You can take a look at example PR [#979](https://github.com/openrocket/openrocket/pull/979).
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -109,7 +109,7 @@ public class ComponentAnalysisDialog extends JDialog implements StateChangeListe
|
||||
|
||||
JTable table;
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("fill"));
|
||||
JPanel panel = new JPanel(new MigLayout("fill", "[120lp][70lp][]"));
|
||||
add(panel);
|
||||
|
||||
rkt = rocketPanel.getDocument().getRocket();
|
||||
@ -129,10 +129,10 @@ public class ComponentAnalysisDialog extends JDialog implements StateChangeListe
|
||||
roll = new DoubleModel(rocketPanel, "CPRoll", UnitGroup.UNITS_ROLL);
|
||||
|
||||
//// Wind direction:
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.winddir")), "width 120lp!");
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.winddir")));
|
||||
EditableSpinner spinner = new EditableSpinner(theta.getSpinnerModel());
|
||||
panel.add(spinner, "growx");
|
||||
panel.add(new UnitSelector(theta), "width 50lp!");
|
||||
panel.add(new UnitSelector(theta));
|
||||
BasicSlider slider = new BasicSlider(theta.getSliderModel(0, 2 * Math.PI));
|
||||
panel.add(slider, "growx, split 2");
|
||||
//// Worst button
|
||||
@ -162,21 +162,21 @@ public class ComponentAnalysisDialog extends JDialog implements StateChangeListe
|
||||
panel.add(scrollPane, "gap paragraph, spany 4, w 300lp, grow, height :100lp:, wrap");
|
||||
|
||||
////Angle of attack:
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.angleofattack")), "width 120lp!");
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.angleofattack")));
|
||||
panel.add(new EditableSpinner(aoa.getSpinnerModel()), "growx");
|
||||
panel.add(new UnitSelector(aoa), "width 50lp!");
|
||||
panel.add(new UnitSelector(aoa));
|
||||
panel.add(new BasicSlider(aoa.getSliderModel(0, Math.PI)), "growx, wrap");
|
||||
|
||||
//// Mach number:
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.machnumber")), "width 120lp!");
|
||||
panel.add(new EditableSpinner(mach.getSpinnerModel()), "width 120lp!");
|
||||
panel.add(new UnitSelector(mach, true), "width 50lp!");
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.machnumber")));
|
||||
panel.add(new EditableSpinner(mach.getSpinnerModel()));
|
||||
panel.add(new UnitSelector(mach));
|
||||
panel.add(new BasicSlider(mach.getSliderModel(0, 3)), "growx, wrap");
|
||||
|
||||
//// Roll rate:
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.rollrate")), "width 120lp!");
|
||||
panel.add(new JLabel(trans.get("componentanalysisdlg.lbl.rollrate")));
|
||||
panel.add(new EditableSpinner(roll.getSpinnerModel()), "growx");
|
||||
panel.add(new UnitSelector(roll), "width 50lp!");
|
||||
panel.add(new UnitSelector(roll));
|
||||
panel.add(new BasicSlider(roll.getSliderModel(-20 * 2 * Math.PI, 20 * 2 * Math.PI)),
|
||||
"growx, wrap");
|
||||
|
||||
|
@ -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