Commit d4934518 authored by Clemens Krug's avatar Clemens Krug
Browse files

Improve basic disaster region analyzing

+ Make some options configurable via XML
+ Add OSM-Visualization for Social Movement
parent abccfc89
......@@ -66,6 +66,7 @@ import de.tud.kom.p2psim.api.topology.obstacles.ObstacleModel;
import de.tud.kom.p2psim.api.topology.views.TopologyView;
import de.tud.kom.p2psim.api.topology.waypoints.WaypointModel;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.mapvisualization.IMapVisualization;
import de.tud.kom.p2psim.impl.topology.views.visualization.ComponentVisManager;
import de.tud.kom.p2psim.impl.topology.views.visualization.ComponentVisManager.VisInfo;
import de.tud.kom.p2psim.impl.topology.views.visualization.ui.ComponentToggler;
......@@ -422,9 +423,9 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
return plottingViews.get(name);
}
public static DisasterRegionView createDisasterRegionView()
public static DisasterRegionView createDisasterRegionView(IMapVisualization mapVisualization)
{
return new DisasterRegionView();
return new DisasterRegionView(mapVisualization);
}
protected static void notifyInteractionListenersOnClick(long hostid,
......
package de.tud.kom.p2psim.impl.topology.views.visualization.ui;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.mapvisualization.IMapVisualization;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView;
import de.tudarmstadt.maki.simonstrator.api.common.UniqueID;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
......@@ -11,7 +12,7 @@ import java.awt.image.BufferedImage;
import java.util.Map;
/**
* Visualisation of the desaster region analysing.
* Visualisation of the disaster region analysing.
*
* @author Clemens Krug
*/
......@@ -20,7 +21,7 @@ public class DisasterRegionView extends JFrame
private BufferedImage image;
public DisasterRegionView()
public DisasterRegionView(IMapVisualization mapVisualization)
{
image = new BufferedImage(VisualizationTopologyView.VisualizationInjector.getWorldX(),
VisualizationTopologyView.VisualizationInjector.getWorldY(), BufferedImage.TYPE_INT_ARGB);
......@@ -38,12 +39,32 @@ public class DisasterRegionView extends JFrame
comp.setPreferredSize(new Dimension(VisualizationTopologyView.VisualizationInjector.getWorldX(),
VisualizationTopologyView.VisualizationInjector.getWorldY()));
JScrollPane scrollPanel = new JScrollPane(comp,
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setPreferredSize(new Dimension(VisualizationTopologyView.VisualizationInjector.getWorldX(),
VisualizationTopologyView.VisualizationInjector.getWorldY()));
layeredPane.add(comp);
if(mapVisualization != null)
{
comp.setBounds(0, 0, VisualizationTopologyView.VisualizationInjector.getWorldX(),
VisualizationTopologyView.VisualizationInjector.getWorldY());
layeredPane.add((JComponent) mapVisualization);
}
JScrollPane scrollPanel = new JScrollPane(layeredPane,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPanel.setPreferredSize(new Dimension(800, 600));
getContentPane().add(scrollPanel);
setTitle("Disaster Region Analyzer");
pack();
setVisible(true);
}
......@@ -52,9 +73,11 @@ public class DisasterRegionView extends JFrame
public void onDataUpdated(Map<UniqueID, Location> locations)
{
Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setBackground(new Color(255, 255, 255, 0));
g2.clearRect(0, 0, VisualizationTopologyView.VisualizationInjector.getWorldX(), VisualizationTopologyView.VisualizationInjector.getWorldY());
g2.setColor(Color.BLACK);
locations.values().stream().forEach(l -> g2.drawOval((int)l.getLongitude(), (int)l.getLatitude(), 5, 5));
locations.values().stream().forEach(l -> g2.fillOval((int)l.getLongitude(), (int)l.getLatitude(), 5, 5));
repaint();
}
......
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