// License: GPL. For details, see LICENSE file. package cadastre_fr; import java.awt.Component; import java.awt.GridBagLayout; import java.io.IOException; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; import java.util.Collection; import java.util.Collections; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import org.openstreetmap.josm.gui.layer.Layer; import org.openstreetmap.josm.io.session.SessionLayerExporter; import org.openstreetmap.josm.io.session.SessionWriter.ExportSupport; import org.openstreetmap.josm.tools.GBC; import org.w3c.dom.Element; public class CadastreSessionExporter implements SessionLayerExporter { private WMSLayer layer; private JCheckBox export; public CadastreSessionExporter(WMSLayer layer) { this.layer = layer; } @Override public Collection<Layer> getDependencies() { return Collections.emptySet(); } @Override public Component getExportPanel() { final JPanel p = new JPanel(new GridBagLayout()); export = new JCheckBox(); export.setSelected(true); final JLabel lbl = new JLabel(layer.getName(), layer.getIcon(), SwingConstants.LEFT); lbl.setToolTipText(layer.getToolTipText()); p.add(export, GBC.std()); p.add(lbl, GBC.std()); p.add(GBC.glue(1, 0), GBC.std().fill(GBC.HORIZONTAL)); return p; } @Override public boolean shallExport() { return export.isSelected(); } @Override public boolean requiresZip() { return false; } @Override public Element export(ExportSupport support) throws IOException { Element layerEl = support.createElement("layer"); layerEl.setAttribute("type", "cadastre-fr"); layerEl.setAttribute("version", "0.1"); Element file = support.createElement("file"); layerEl.appendChild(file); URI uri = layer.getAssociatedFile().toURI(); URL url = null; try { url = uri.toURL(); } catch (MalformedURLException e) { throw new IOException(e); } file.appendChild(support.createTextNode(url.toString())); return layerEl; } }