20 package net.sf.gridarta.gui.dialog.plugin.parameter;
22 import java.awt.Component;
23 import java.awt.event.ActionEvent;
24 import java.awt.event.ActionListener;
25 import javax.swing.AbstractButton;
26 import javax.swing.JButton;
27 import javax.swing.JComponent;
28 import javax.swing.JOptionPane;
29 import javax.swing.JSpinner;
30 import javax.swing.SpinnerNumberModel;
31 import javax.swing.event.ChangeEvent;
32 import javax.swing.event.ChangeListener;
37 import org.jetbrains.annotations.NotNull;
60 private final AbstractButton
config =
new JButton(
"...");
69 final SpinnerNumberModel model =
new SpinnerNumberModel(0.0, 0.0, 0.0, 0.0);
70 model.setMinimum(parameter.getMin());
71 model.setMaximum(parameter.getMax());
72 model.setValue(parameter.getValue());
73 model.setStepSize((parameter.getMax() - parameter.getMin()) / 100.0);
74 value =
new JSpinner(model);
75 value.addChangeListener(
new ChangeListener() {
78 public void stateChanged(
final ChangeEvent e) {
79 parameter.setValue((Double) model.getNumber());
82 config.setBorderPainted(
false);
83 config.addActionListener(
new ActionListener() {
86 public void actionPerformed(@NotNull
final ActionEvent e) {
87 final String min = JOptionPane.showInputDialog(parent,
"Minimum value:", parameter.getMin());
93 min1 = Double.parseDouble(min);
94 }
catch (
final NumberFormatException ignored) {
95 JOptionPane.showMessageDialog(parent,
"Invalid minimum value: " + min);
98 parameter.setMin(min1);
99 model.setMinimum(min1);
100 model.setStepSize(((Double) model.getMaximum() - min1) / 100.0);
103 final String max = JOptionPane.showInputDialog(parent,
"Maximum value:", parameter.getMax());
109 max1 = Double.parseDouble(max);
110 }
catch (
final NumberFormatException ignored) {
111 JOptionPane.showMessageDialog(parent,
"Invalid maximum value: " + max);
114 parameter.setMax(max1);
115 model.setMaximum(max1);
116 model.setStepSize((max1 - min1) / 100.0);
141 final String toolTip =
"[" + Double.toString(parameter.
getMin()) +
"," + Double.toString(parameter.
getMax()) +
"]";
142 config.setToolTipText(toolTip);
143 value.setToolTipText(toolTip);
A PluginParameterView for a DoubleParameter.
final JSpinner value
The component for editing the parameter's value.
double getMin()
Returns the minimal allowed value.
Interface for views that display plugin parameters.
Base package of all Gridarta classes.
Reflects a game object (object on a map).
JComponent getValueComponent()
Returns a JComponent for editing the parameter value.
GameObjects are the objects based on Archetypes found on maps.
A PluginParameter that holds a double value.
JComponent getConfigComponent()
Returns a JComponent for editing the parameter configuration.
final DoubleParameter< G, A, R > parameter
The DoubleParameter that is shown.
double getMax()
Returns the maximal allowed value.
final AbstractButton config
The component for editing the parameter's configuration.
Interface for MapArchObjects.
DoubleParameterView(@NotNull final Component parent, @NotNull final DoubleParameter< G, A, R > parameter)
Creates a new instance.
void updateTooltip()
Updates the tooltip text of config and value to reflect the current parameters.