From 9b4f035d0f107e75b494e260ae5ece8d43a990b2 Mon Sep 17 00:00:00 2001 From: philippe lhardy Date: Sat, 12 Dec 2020 12:17:06 +0100 Subject: [PATCH] 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. --- .../games/maze/gui/Display.java | 60 +++++++++++++------ 1 file changed, 41 insertions(+), 19 deletions(-) diff --git a/java/org/artisanlogiciel/games/maze/gui/Display.java b/java/org/artisanlogiciel/games/maze/gui/Display.java index d6881cd..992fd0c 100644 --- a/java/org/artisanlogiciel/games/maze/gui/Display.java +++ b/java/org/artisanlogiciel/games/maze/gui/Display.java @@ -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);