Commit 678141ad authored by Matti Pulkkinen's avatar Matti Pulkkinen
Browse files

initial commit

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>dtek1066-toinen-ryhmis</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
package fi.utu.dtek1066;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
// Kartankatseluohjelman graafinen käyttöliittymä
public class MapDialog extends JFrame {
// Käyttöliittymän komponentit
// Kontrollinappien kuuntelija
// KAIKKIEN NAPPIEN YHTEYDESSÄ VOINEE HYÖDYNTÄÄ updateImage()-METODIA
private class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == MapDialog.this.refreshB) {
// try { updateImage(); } catch(Exception ex) { ex.printStackTrace(); }
}
if (e.getSource() == MapDialog.this.leftB) {
// TODO:
// VASEMMALLE SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PÄIVITÄ KUVA
}
if (e.getSource() == MapDialog.this.rightB) {
// TODO:
// OIKEALLE SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PÄIVITÄ KUVA
}
if (e.getSource() == MapDialog.this.upB) {
// TODO:
// YLÖSPÄIN SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PÄIVITÄ KUVA
}
if (e.getSource() == MapDialog.this.downB) {
// TODO:
// ALASPÄIN SIIRTYMINEN KARTALLA
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PÄIVITÄ KUVA
}
if (e.getSource() == MapDialog.this.zoomInB) {
// TODO:
// ZOOM IN -TOIMINTO
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PÄIVITÄ KUVA
}
if (e.getSource() == MapDialog.this.zoomOutB) {
// TODO:
// ZOOM OUT -TOIMINTO
// MUUTA KOORDINAATTEJA, HAE KARTTAKUVA PALVELIMELTA JA PÄIVITÄ KUVA
}
} // actionPerformed(ActionEvent)
} // class ButtonListener
// 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;
} // LayerCheckBox(String, String, boolean)
@Override
public String getName() {
return this.name;
}
} // class LayerCheckBox
public static void main(String[] args) throws Exception {
new MapDialog();
} // main(String[])
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
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());
// ALLA OLEVAN TESTIRIVIN VOI KORVATA JOLLAKIN MUULLA ERI ALOITUSNÄKYMÄN
// LATAAVALLA RIVILLÄ
this.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")));
this.add(this.imageLabel, BorderLayout.EAST);
ButtonListener bl = new ButtonListener();
this.refreshB.addActionListener(bl);
this.leftB.addActionListener(bl);
this.rightB.addActionListener(bl);
this.upB.addActionListener(bl);
this.downB.addActionListener(bl);
this.zoomInB.addActionListener(bl);
this.zoomOutB.addActionListener(bl);
this.leftPanel.setLayout(new BoxLayout(this.leftPanel, BoxLayout.Y_AXIS));
this.leftPanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
this.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
this.leftPanel.add(new LayerCheckBox("bluemarble", "Maapallo", true));
this.leftPanel.add(new LayerCheckBox("cities", "Kaupungit", false));
this.leftPanel.add(this.refreshB);
this.leftPanel.add(Box.createVerticalStrut(20));
this.leftPanel.add(this.leftB);
this.leftPanel.add(this.rightB);
this.leftPanel.add(this.upB);
this.leftPanel.add(this.downB);
this.leftPanel.add(this.zoomInB);
this.leftPanel.add(this.zoomOutB);
this.add(this.leftPanel, BorderLayout.WEST);
this.pack();
this.setVisible(true);
} // MapDialog()
// 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 = this.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));
} // updateImage()
} // MapDialog
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