Commit 8a02f18e authored by Simo Vuorinen's avatar Simo Vuorinen
Browse files

Add new file

parent cbfba8bb
// Kartankatseluohjelman graafinen käyttäliittymä
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.Document;
import org.w3c.dom.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.net.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class MapDialog extends JFrame {
// Käyttäliittymän komponentit
private JLabel imageLabel = new JLabel();
private JPanel leftPanel = new JPanel();
private JButton refreshB = new JButton("Päivitä");
private JButton leftB = new JButton("<");
private JButton rightB = new JButton(">");
private JButton upB = new JButton("^");
private JButton downB = new JButton("v");
private JButton zoomInB = new JButton("+");
private JButton zoomOutB = new JButton("-");
public MapDialog() throws Exception {
// Valmistele ikkuna ja lisää siihen komponentit
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
// ALLA OLEVAN TESTIRIVIN VOI KORVATA JOLLAKIN MUULLA ERI ALOITUSNäKYMäN
// LATAAVALLA RIVILLä
imageLabel.setIcon(new ImageIcon(new URL("http://demo.mapserver.org/cgi-bin/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&BBOX=-180,-90,180,90&SRS=EPSG:4326&WIDTH=953&HEIGHT=480&LAYERS=bluemarble,cities&STYLES=&FORMAT=image/png&TRANSPARENT=true")));
add(imageLabel, BorderLayout.EAST);
ButtonListener bl = new ButtonListener();
refreshB.addActionListener(bl);
leftB.addActionListener(bl);
rightB.addActionListener(bl);
upB.addActionListener(bl);
downB.addActionListener(bl);
zoomInB.addActionListener(bl);
zoomOutB.addActionListener(bl);
leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS));
leftPanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
leftPanel.setMaximumSize(new Dimension(100, 600));
// TODO:
// ALLA OLEVIEN KOLMEN TESTIRIVIN TILALLE SILMUKKA JOKA LISää KäYTTäLIITTYMääN
// KAIKKIEN XML-DATASTA HAETTUJEN KERROSTEN VALINTALAATIKOT MALLIN MUKAAN
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc = (org.w3c.dom.Document)db.parse(new URL("http://demo.mapserver.org/cgi-bin/wms?SERVICE=WMS&VERSION=1.1.1").openStream());
doc.getDocumentElement().normalize();
NodeList nodList = doc.getElementsByTagName("name");
System.out.print(nodList.getLength());
for (int i = 0; i < nodList.getLength(); i++) {
Node nNode = nodList.item(i);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
}
leftPanel.add(new LayerCheckBox("bluemarble", "Maapallo", true));
leftPanel.add(new LayerCheckBox("cities", "Kaupungit", false));
leftPanel.add(refreshB);
leftPanel.add(Box.createVerticalStrut(20));
leftPanel.add(leftB);
leftPanel.add(rightB);
leftPanel.add(upB);
leftPanel.add(downB);
leftPanel.add(zoomInB);
leftPanel.add(zoomOutB);
add(leftPanel, BorderLayout.WEST);
pack();
setVisible(true);
}
public static void main(String[] args) throws Exception {
new MapDialog();
}
// Kontrollinappien kuuntelija
// KAIKKIEN NAPPIEN YHTEYDESSä VOINEE HYäDYNTää updateImage()-METODIA
private class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == refreshB) {
try { updateImage(); } catch(Exception ex) { ex.printStackTrace(); }
}
if(e.getSource() == leftB) {
// TODO:
// VASEMMALLE SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PäIVITä KUVA
}
if(e.getSource() == rightB) {
// TODO:
// OIKEALLE SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PäIVITä KUVA
}
if(e.getSource() == upB) {
// TODO:
// YLäSPäIN SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PäIVITä KUVA
}
if(e.getSource() == downB) {
// TODO:
// ALASPäIN SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PäIVITä KUVA
}
if(e.getSource() == zoomInB) {
// TODO:
// ZOOM IN -TOIMINTO
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PäIVITä KUVA
}
if(e.getSource() == zoomOutB) {
// TODO:
// ZOOM OUT -TOIMINTO
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PäIVITä KUVA
}
}
}
// Valintalaatikko, joka muistaa karttakerroksen nimen
private class LayerCheckBox extends JCheckBox {
private String name = "";
public LayerCheckBox(String name, String title, boolean selected) {
super(title, null, selected);
this.name = name;
}
public String getName() { return name; }
}
// Tarkastetaan mitkä karttakerrokset on valittu,
// tehdään uudesta karttakuvasta pyyntä palvelimelle ja päivitetään kuva
public void updateImage() throws Exception {
String s = "";
// Tutkitaan, mitkä valintalaatikot on valittu, ja
// kerätään s:ään pilkulla erotettu lista valittujen kerrosten
// nimistä (käytetään haettaessa uutta kuvaa)
Component[] components = leftPanel.getComponents();
for(Component com:components) {
if(com instanceof LayerCheckBox)
if(((LayerCheckBox)com).isSelected()) s = s + com.getName() + ",";
}
if (s.endsWith(",")) s = s.substring(0, s.length() - 1);
// TODO:
// getMap-KYSELYN URL-OSOITTEEN MUODOSTAMINEN JA KUVAN PäIVITYS ERILLISESSä SäIKEESSä
// imageLabel.setIcon(new ImageIcon(url));
}
} // MapDialog
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment