// License: GPL. For details, see LICENSE file. package indoor_sweepline; import java.util.List; import javax.swing.DefaultComboBoxModel; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.data.coor.LatLon; import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent; import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener; import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent; import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent; import org.openstreetmap.josm.gui.layer.OsmDataLayer; public class IndoorSweeplineController implements LayerChangeListener { public IndoorSweeplineController(OsmDataLayer activeLayer, LatLon center) { Main.getLayerManager().addLayerChangeListener(this); layer = activeLayer; model = new IndoorSweeplineModel(activeLayer, center); dialog = new IndoorSweeplineWizardDialog(this); dialog.setVisible(true); } public IndoorSweeplineWizardDialog view() { return dialog; } @Override public void layerOrderChanged(LayerOrderChangeEvent e) { } @Override public void layerAdded(LayerAddEvent e) { } @Override public void layerRemoving(LayerRemoveEvent e) { if (e.getRemovedLayer() == layer) dialog.setVisible(false); } public int leftRightCount() { return model.leftRightCount(); } public void addRightStructure() { if (model.leftRightCount() % 2 == 0) model.addBeam(); else model.addStrip(); } public DefaultComboBoxModel<String> structures() { return model.structures(); } public double getStripWidth(int index) { return model.getStripWidth(index); } public void setStripWidth(int index, double value) { model.setStripWidth(index, value); } public double getBeamOffset(int index) { return model.getBeamOffset(index); } public void setBeamOffset(int index, double beamOffset) { model.setBeamOffset(index, beamOffset); } public List<CorridorPart> getBeamParts(int index) { return model.getBeamParts(index); } public void addCorridorPart(int beamIndex, boolean append, double value) { model.addCorridorPart(beamIndex, append, value); } public void setCorridorPartWidth(int beamIndex, int partIndex, double value) { model.setCorridorPartWidth(beamIndex, partIndex, value); } public void setCorridorPartType(int beamIndex, int partIndex, CorridorPart.Type type) { model.setCorridorPartType(beamIndex, partIndex, type); } public void setCorridorPartSide(int beamIndex, int partIndex, CorridorPart.ReachableSide side) { model.setCorridorPartSide(beamIndex, partIndex, side); } public Strip getStrip(int beamIndex) { return model.getStrip(beamIndex); } public IndoorSweeplineModel.Type getType() { return model.getType(); } public void setType(IndoorSweeplineModel.Type type) { model.setType(type); } public String getLevel() { return model.getLevel(); } public void setLevel(String level) { model.setLevel(level); } private OsmDataLayer layer; private IndoorSweeplineModel model; private IndoorSweeplineWizardDialog dialog; }