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