Move (most) hardcoded defaults to MazeDefault
- harcoded values centralized - IntegerField for JTextField containing numbers - fix, can draw even if topleft position is not (0,0) ( ie if scrollbar were used )
This commit is contained in:
@@ -2,19 +2,21 @@ package org.artisanlogiciel.games.maze.gui;
|
||||
|
||||
import org.artisanlogiciel.games.maze.MazeParams;
|
||||
import org.artisanlogiciel.games.maze.MazeParamsFixed;
|
||||
import org.artisanlogiciel.games.maze.gui.component.IntegerField;
|
||||
import org.artisanlogiciel.games.maze.gui.component.Panel;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
import java.util.Random;
|
||||
|
||||
public class MazeSettings extends JPanel {
|
||||
public class MazeSettings extends Panel {
|
||||
MazeParams params;
|
||||
|
||||
JTextField textWidth = null;
|
||||
JTextField textHeight = null;
|
||||
JTextField textDepth = null;
|
||||
JTextField textSeed = null;
|
||||
IntegerField fieldWidth = null;
|
||||
IntegerField fieldHeight = null;
|
||||
IntegerField fieldDepth = null;
|
||||
IntegerField fieldSeed = null;
|
||||
JCheckBox onewaywallCB = null;
|
||||
|
||||
// TODO set width and height and depth of maze with gui
|
||||
@@ -25,35 +27,39 @@ public class MazeSettings extends JPanel {
|
||||
}
|
||||
|
||||
void createSettingsGui() {
|
||||
|
||||
MazeParams defaultParams = MazeDefault.getInstance().getParams();
|
||||
|
||||
if (params != null) {
|
||||
|
||||
final JSlider slider = new JSlider(1, 100);
|
||||
final JSlider slider = new JSlider(1,
|
||||
Math.max(
|
||||
Math.max(defaultParams.getHeight(),defaultParams.getHeight()),
|
||||
Math.max(defaultParams.getWidth(),params.getWidth())));
|
||||
|
||||
slider.addChangeListener(new ChangeListener() {
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
// settextWidthWallSize(slider.getValue());
|
||||
String valueStr = "" + slider.getValue();
|
||||
textWidth.setText(valueStr);
|
||||
textHeight.setText(valueStr);
|
||||
fieldWidth.getTextField().setText(valueStr);
|
||||
fieldHeight.getTextField().setText(valueStr);
|
||||
}
|
||||
});
|
||||
|
||||
add(slider);
|
||||
JLabel widthLabel = new JLabel(Display.labels.getString("width"));
|
||||
textWidth = new JTextField("0" + params.getWidth());
|
||||
add(widthLabel);
|
||||
add(textWidth);
|
||||
JLabel heightLabel = new JLabel(Display.labels.getString("height"));
|
||||
textHeight = new JTextField("0" + params.getHeight());
|
||||
add(heightLabel);
|
||||
add(textHeight);
|
||||
JLabel depthLabel = new JLabel(Display.labels.getString("depth"));
|
||||
textDepth = new JTextField("0" + params.getMaxDepth());
|
||||
add(depthLabel);
|
||||
add(textDepth);
|
||||
JLabel seedLabel = new JLabel(Display.labels.getString("seed"));
|
||||
textSeed = new JTextField( "" + params.getSeed(),16);
|
||||
add(seedLabel);
|
||||
add(textSeed);
|
||||
fieldWidth = new IntegerField("width",params.getWidth());
|
||||
addField(fieldWidth);
|
||||
|
||||
fieldHeight = new IntegerField("height",params.getHeight());
|
||||
addField(fieldHeight);
|
||||
|
||||
fieldDepth = new IntegerField("depth",params.getMaxDepth());
|
||||
addField(fieldDepth);
|
||||
|
||||
JLabel seedLabel = new JLabel();
|
||||
fieldSeed = new IntegerField("seed", params.getSeed());
|
||||
addField(fieldSeed);
|
||||
|
||||
onewaywallCB = new JCheckBox("one way wall", false);
|
||||
add(onewaywallCB);
|
||||
}
|
||||
@@ -61,12 +67,12 @@ public class MazeSettings extends JPanel {
|
||||
|
||||
public MazeParams resetParams() {
|
||||
params = new MazeParamsFixed(params.getSaveDir(),
|
||||
Integer.parseInt(textWidth.getText()),
|
||||
Integer.parseInt(textHeight.getText()),
|
||||
Integer.parseInt(textDepth.getText()),
|
||||
fieldWidth.getValue(),
|
||||
fieldHeight.getValue(),
|
||||
fieldDepth.getValue(),
|
||||
new Random().nextLong()
|
||||
);
|
||||
textSeed.setText("" + params.getSeed());
|
||||
fieldSeed.getTextField().setText("" + params.getSeed());
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user