GUI separate layer from resize control, and import osm default zoom

- use a bigger zoom for import since export in worldeidt will use meter as cubic size
- separate resize from layer control
  - no need to specify BorderLayout.XXX for BoxLayout.
This commit is contained in:
philippe lhardy
2020-12-12 12:17:06 +01:00
parent 71a1715094
commit 9b4f035d0f

View File

@@ -293,8 +293,6 @@ implements StatusListener
private MazeSettings settings = null; private MazeSettings settings = null;
private JPanel resizecontrol = null;
private void setMazeName(String pName) { private void setMazeName(String pName) {
MazeParamsFixed p = (MazeParamsFixed) params; MazeParamsFixed p = (MazeParamsFixed) params;
p.setName(pName); p.setName(pName);
@@ -375,7 +373,8 @@ implements StatusListener
if ((filename.length() > 0)) { if ((filename.length() > 0)) {
setMazeName(filename); setMazeName(filename);
loadOsm(false); // UTM 32T ? approx (long,lat) to meter
loadOsm(false, 78000,78000);
refresh(); refresh();
} }
@@ -627,8 +626,19 @@ implements StatusListener
add(controlPanel, BorderLayout.NORTH); add(controlPanel, BorderLayout.NORTH);
// control display panel contains controls for display // control display panel contains controls for display
// zoom , autozoom.
final JPanel controlDisplayPanel = new JPanel(new BorderLayout()); final JPanel controlDisplayPanel = new JPanel(new BorderLayout());
add(controlDisplayPanel);
// zoom , autozoom control
add(buildResizeControl());
// layers control
add(buildLayerControl());
add(settings);
}
private JPanel buildResizeControl()
{
final JCheckBox showAll = new JCheckBox("show all"); final JCheckBox showAll = new JCheckBox("show all");
showAll.addChangeListener(new ChangeListener() { showAll.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
@@ -648,23 +658,39 @@ implements StatusListener
setAutoSize(autoSlide.isSelected()); setAutoSize(autoSlide.isSelected());
} }
}); });
final JSlider layerSlide = new JSlider( JSlider.HORIZONTAL, 0,10, 0);
JPanel resizecontrol = new JPanel(new FlowLayout());
resizecontrol.add(showAll);
resizecontrol.add(slider);
resizecontrol.add(autoSlide);
return resizecontrol;
}
private JPanel buildLayerControl()
{
int layers = 10;
final JTextField layersText = new JTextField("" + layers);
final JSlider layerSlide = new JSlider( JSlider.HORIZONTAL, 0,layers, 0);
layerSlide.addChangeListener(new ChangeListener() { layerSlide.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
int r = setLayer(layerSlide.getValue()); int r = setLayer(layerSlide.getValue());
//layerSlide.setMaximum(r); //layerSlide.setMaximum(r);
} }
}); });
layerSlide.setMajorTickSpacing(1);
layerSlide.setPaintTicks(true);
resizecontrol = new JPanel(new FlowLayout()); JPanel layerControl = new JPanel(new FlowLayout());
resizecontrol.add(showAll); layerControl.add(new JLabel("layers"));
resizecontrol.add(slider); layerControl.add(layersText);
resizecontrol.add(autoSlide); layerControl.add(layerSlide);
resizecontrol.add(layerSlide);
add(controlDisplayPanel, BorderLayout.SOUTH); return layerControl;
add(resizecontrol, BorderLayout.WEST);
add(settings, BorderLayout.EAST);
} }
@@ -672,10 +698,6 @@ implements StatusListener
return this; return this;
} }
private JPanel getResizeControl() {
return resizecontrol;
}
private JPanel getGenerationControl() { private JPanel getGenerationControl() {
return settings; return settings;
} }
@@ -712,7 +734,7 @@ implements StatusListener
} }
} }
private void loadOsm(boolean add) { private void loadOsm(boolean add, int mulx, int muly) {
if ( maze != null ) { if ( maze != null ) {
new Thread() { new Thread() {
@Override @Override
@@ -723,7 +745,7 @@ implements StatusListener
// TODO really use InputStream and not pathname // TODO really use InputStream and not pathname
OsmReader reader = new OsmReader(infile.getCanonicalPath()); OsmReader reader = new OsmReader(infile.getCanonicalPath());
reader.read(); reader.read();
OsmToDrawing converter = new OsmToDrawing(reader, 25000,25000); OsmToDrawing converter = new OsmToDrawing(reader, mulx,muly);
Drawing drawing = converter.getDrawing(reader.getWays()); Drawing drawing = converter.getDrawing(reader.getWays());
statusEnable = false; statusEnable = false;
maze.addDrawing(drawing,add); maze.addDrawing(drawing,add);