|
From: <fle...@us...> - 2007-02-17 00:06:57
|
Revision: 541
http://svn.sourceforge.net/magicmap/?rev=541&view=rev
Author: flederohr
Date: 2007-02-16 16:06:55 -0800 (Fri, 16 Feb 2007)
Log Message:
-----------
refractoring and cleaning the source
lots of changes in model behavior
fixed some bugs
Modified Paths:
--------------
trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java
trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java
trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java
trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/AbstractMapView.java
trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/handler/NotSeeAccessPointHandler.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/measurement/IMeasurementModel.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/measurement/MeasurementModel.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointNode.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java
trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java 2007-02-16 20:47:06 UTC (rev 540)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java 2007-02-17 00:06:55 UTC (rev 541)
@@ -4,12 +4,24 @@
package net.sf.magicmap.client.controller;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Collection;
+
import net.sf.magicmap.client.gui.utils.GUIUtils;
import net.sf.magicmap.client.gui.views.ConsoleView;
import net.sf.magicmap.client.gui.views.MapView;
import net.sf.magicmap.client.gui.views.MeasurementView;
import net.sf.magicmap.client.gui.views.OutlineView;
-import net.sf.magicmap.client.interfaces.*;
+import net.sf.magicmap.client.interfaces.CreateNewMapCallback;
+import net.sf.magicmap.client.interfaces.CreatePositionCallback;
+import net.sf.magicmap.client.interfaces.DeletePositionCallback;
+import net.sf.magicmap.client.interfaces.MapCallback;
+import net.sf.magicmap.client.interfaces.MapNamesCallback;
+import net.sf.magicmap.client.interfaces.MovePositionCallback;
+import net.sf.magicmap.client.interfaces.PositionCallback;
+import net.sf.magicmap.client.interfaces.ServerConnectCallback;
+import net.sf.magicmap.client.interfaces.ServerDisconnectCallback;
import net.sf.magicmap.client.measurement.ScannerAllocator;
import net.sf.magicmap.client.measurement.interfaces.AbstractScanResult;
import net.sf.magicmap.client.measurement.interfaces.AbstractScanner;
@@ -17,15 +29,17 @@
import net.sf.magicmap.client.meta.MapInfo;
import net.sf.magicmap.client.model.measurement.IMeasurementModel;
import net.sf.magicmap.client.model.measurement.MeasurementModel;
-import net.sf.magicmap.client.model.node.*;
+import net.sf.magicmap.client.model.node.ClientNode;
+import net.sf.magicmap.client.model.node.GeoPos;
+import net.sf.magicmap.client.model.node.INodeModel;
+import net.sf.magicmap.client.model.node.InfoObject;
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.client.model.node.NodeModel;
import net.sf.magicmap.client.plugin.PluginManager;
import net.sf.magicmap.client.utils.Settings;
+
import org.apache.log4j.xml.DOMConfigurator;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Collection;
-
/**
* Kann \xC4nderungen an View und am Modell vornehmen und zieht alle F\xE4den
* der Anwendung.
@@ -34,47 +48,47 @@
*/
public class Controller implements IController {
- private static int numCalled = 0;
+ private static int numCalled = 0;
/**
* Die Instanz.
*/
- private static Controller controller = null;
+ private static Controller controller = null;
/**
* Das Knotenmodel.
*/
- private INodeModel nodeModel; // Model f\xFCr Graphen
+ private INodeModel nodeModel; // Model f\xFCr Graphen
- private IMeasurementModel measurementModel; // Model f\xFCr Messungen
+ private IMeasurementModel measurementModel; // Model f\xFCr Messungen
- private ClientNode client; // Ausgezeichneter Knoten
+ private ClientNode client; // Ausgezeichneter Knoten
- private ServerPoller poller; // Server st\xE4ndig nach \xC4nderungen fragen
+ private ServerPoller poller; // Server st\xE4ndig nach \xC4nderungen fragen
- private PollHandler pollhandler; // Klasse zur Verarbeitung der Pollergebnisse
+ private PollHandler pollhandler; // Klasse zur Verarbeitung der Pollergebnisse
- private ServerManager serverManager; // Manager f\xFCr die Verbindung zum Server
+ private ServerManager serverManager; // Manager f\xFCr die Verbindung zum Server
// private CallbackHandler callbackHandler; // S\xE4mtliche callbacks werden dort behandelt
- private MapInfo currentMap;
+ private MapInfo currentMap;
- private OutlineView outlineView;
+ private OutlineView outlineView;
- private ConsoleView consoleView;
+ private ConsoleView consoleView;
- private MapView mapView;
+ private MapView mapView;
- private MeasurementView measurementView;
+ private MeasurementView measurementView;
- private boolean invisble; // Invisible-Modus (keine Daten an Server)
+ private boolean invisble; // Invisible-Modus (keine Daten an Server)
// pseudo server items
- private Collection<InfoObject> infoObjects;
+ private Collection<InfoObject> infoObjects;
- private ScannerAllocator scannerAllocator;
- private final PluginManager pluginManager;
+ private ScannerAllocator scannerAllocator;
+ private final PluginManager pluginManager;
/**
* Private constructor for singleton instance
@@ -129,7 +143,6 @@
this.measurementView = new MeasurementView(getMeasurementModel(), this.nodeModel);
// registerMeasurementModelListener(measurementView);
setMeasurementViewLocal(true);
- this.nodeModel.addNodeModelListener(this.mapView);
//registerNodeModelListener(outlineView);
}
@@ -192,23 +205,6 @@
}
/**
- * Baut das MeasurementModelOther neu auf.
- *
- * @param ap -
- * the access point seer node
- */
- public void buildOtherMeasurement(AccessPointSeerNode ap){
- // System.out.println("Building measurement model...");
- // this.measurementModelOther.clear();
- // ArrayList aes = ap.getApEdges();
- // for (int i = 0; i < aes.size(); i++) {
- // AccessPointEdge ae = (AccessPointEdge) aes.get(i);
- // SeenAccessPoint sp = new SeenAccessPoint(ae.getAccessPoint().getMacAddress(), ae.getSignalLevel());
- // this.measurementModelOther.addAccessPoint(sp);
- // }
- }
-
- /**
* \xC4nndert die Anzeige des Measurement-Views
*
* @param local
@@ -270,7 +266,6 @@
closeMap();
}
if (isMapLoaded() && isConnected()) {
- this.nodeModel.addNodeModelListener(this.mapView);
this.serverManager.resetTimestamp();
setMeasurementViewLocal(true);
this.poller.start();
@@ -322,7 +317,6 @@
this.poller.stop();
this.measurementModel.clear();
this.nodeModel.clear();
- this.nodeModel.removeNodeModelListener(this.mapView);
this.client = null;
}
@@ -428,40 +422,40 @@
}
}
-// /**
-// * Creates an InfoObject on the current map with the supplied parameters
-// * @param x
-// * @param y
-// * @param z
-// * @param infoObject
-// * @param mapName
-// * @param fixed
-// * @param callback
-// */
-// public void createInfoObject(int x, int y, int z, InfoObject infoObject, String mapName, boolean fixed,
-// CreatePositionCallback callback){
-// if (!isConnected() || !isMapLoaded())
-// callback.positionCreationError(new Exception("Nicht verbunden oder keine Karte geladen."));
-// else {
-// // serverManager.createInfoObject(x, y, z, fixed, infoObject,
-// // mapName, callback);
-// INodeModel model = Controller.getInstance().getNodeModel();
-// if (infoObject instanceof InfoObjectNode) {
-// InfoObjectNode node = (InfoObjectNode) infoObject;
-// model.addNode(node);
-// node.setPosition(x, y, z);
-// node.setFix(false);
-// System.out.println("Added Info:\n -> " + node.toString());
-// } else {
-// InfoObjectNode node = new InfoObjectNode(model, infoObject);
-// model.addNode(node);
-// node.setPosition(x, y, z);
-// node.setFix(false);
-// System.out.println("Added Info:\n -> " + node.toString());
-// }
-//
-// }
-// }
+ // /**
+ // * Creates an InfoObject on the current map with the supplied parameters
+ // * @param x
+ // * @param y
+ // * @param z
+ // * @param infoObject
+ // * @param mapName
+ // * @param fixed
+ // * @param callback
+ // */
+ // public void createInfoObject(int x, int y, int z, InfoObject infoObject, String mapName, boolean fixed,
+ // CreatePositionCallback callback){
+ // if (!isConnected() || !isMapLoaded())
+ // callback.positionCreationError(new Exception("Nicht verbunden oder keine Karte geladen."));
+ // else {
+ // // serverManager.createInfoObject(x, y, z, fixed, infoObject,
+ // // mapName, callback);
+ // INodeModel model = Controller.getInstance().getNodeModel();
+ // if (infoObject instanceof InfoObjectNode) {
+ // InfoObjectNode node = (InfoObjectNode) infoObject;
+ // model.addNode(node);
+ // node.setPosition(x, y, z);
+ // node.setFix(false);
+ // System.out.println("Added Info:\n -> " + node.toString());
+ // } else {
+ // InfoObjectNode node = new InfoObjectNode(model, infoObject);
+ // model.addNode(node);
+ // node.setPosition(x, y, z);
+ // node.setFix(false);
+ // System.out.println("Added Info:\n -> " + node.toString());
+ // }
+ //
+ // }
+ // }
/**
*
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java 2007-02-16 20:47:06 UTC (rev 540)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java 2007-02-17 00:06:55 UTC (rev 541)
@@ -21,7 +21,6 @@
import net.sf.magicmap.client.measurement.interfaces.AbstractScannerHandler;
import net.sf.magicmap.client.meta.MapInfo;
import net.sf.magicmap.client.model.measurement.IMeasurementModel;
-import net.sf.magicmap.client.model.node.AccessPointSeerNode;
import net.sf.magicmap.client.model.node.ClientNode;
import net.sf.magicmap.client.model.node.GeoPos;
import net.sf.magicmap.client.model.node.INodeModel;
@@ -74,13 +73,6 @@
*/
INodeModel getNodeModel();
- /**
- * Baut das MeasurementModelOther neu auf.
- *
- * @param ap -
- * the access point seer node
- */
- void buildOtherMeasurement(AccessPointSeerNode ap);
/**
* \xC4nndert die Anzeige des Measurement-Views
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java 2007-02-16 20:47:06 UTC (rev 540)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java 2007-02-17 00:06:55 UTC (rev 541)
@@ -4,15 +4,31 @@
package net.sf.magicmap.client.controller;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
+import javax.swing.SwingUtilities;
+
import net.sf.magicmap.client.interfaces.ServerPollerListener;
import net.sf.magicmap.client.model.measurement.IMeasurementModel;
-import net.sf.magicmap.client.model.node.*;
-import net.sf.magicmap.server.dto.*;
+import net.sf.magicmap.client.model.node.AccessPointNode;
+import net.sf.magicmap.client.model.node.ClientNode;
+import net.sf.magicmap.client.model.node.GeoPos;
+import net.sf.magicmap.client.model.node.GeoPosNode;
+import net.sf.magicmap.client.model.node.INodeModel;
+import net.sf.magicmap.client.model.node.InfoObject;
+import net.sf.magicmap.client.model.node.LocationNode;
+import net.sf.magicmap.client.model.node.MapNode;
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.client.model.node.NodeModelConstants;
+import net.sf.magicmap.server.dto.AccessPointDTO;
+import net.sf.magicmap.server.dto.ClientDTO;
+import net.sf.magicmap.server.dto.GeoPointDTO;
+import net.sf.magicmap.server.dto.MapDTO;
+import net.sf.magicmap.server.dto.PositionDTO;
+import net.sf.magicmap.server.dto.SignalCharacterDTO;
+import net.sf.magicmap.server.dto.SimpleScanResultDTO;
-import javax.swing.*;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-
/**
* Wertet die Ergebnisse des Pollers aus und gibt sie in geeigneter Weise an den
* Client weiter.
@@ -21,425 +37,422 @@
*/
public class PollHandler implements ServerPollerListener {
- private Controller controller;
+ private Controller controller;
- public PollHandler(Controller controller) {
- this.controller = controller;
- }
+ public PollHandler(Controller controller) {
+ this.controller = controller;
+ }
- /**
- * Werte ein PositionDTO-Objekt aus und generiert entsprechende Ergenisse
- * f\xFCr die Aktualisierung der Modelle und somit auch der Views. In dieser
- * Methode ist es wichtig alle m\xF6glichen Fehlersituation zu ber\xFCcksichtigen,
- * da stets nur Differenzen seit einem Zeitstempel \xFCbertragen werden. Also:
- * Defensiv programmieren aber nicht gleich wegen jeder Inkonsistenz
- * abbrechen.... ;-)
- * @see net.sf.magicmap.client.interfaces.ServerPollerListener
- */
- public void positionCreatedOrUpdatedOrDeleted(final PositionDTO position){
+ /**
+ * Werte ein PositionDTO-Objekt aus und generiert entsprechende Ergenisse
+ * f\xFCr die Aktualisierung der Modelle und somit auch der Views. In dieser
+ * Methode ist es wichtig alle m\xF6glichen Fehlersituation zu ber\xFCcksichtigen,
+ * da stets nur Differenzen seit einem Zeitstempel \xFCbertragen werden. Also:
+ * Defensiv programmieren aber nicht gleich wegen jeder Inkonsistenz
+ * abbrechen.... ;-)
+ * @see net.sf.magicmap.client.interfaces.ServerPollerListener
+ */
+ public void positionCreatedOrUpdatedOrDeleted(final PositionDTO position){
- try {
- SwingUtilities.invokeAndWait(new Runnable() {
+ try {
+ SwingUtilities.invokeAndWait(new Runnable() {
- public void run(){
- try {
- INodeModel nodeModel = PollHandler.this.controller.getNodeModel();
- Node node = nodeModel.findNode(position.getName());
+ public void run(){
+ try {
+ INodeModel nodeModel = PollHandler.this.controller.getNodeModel();
+ Node node = nodeModel.findNode(position.getName());
- if (position.isDeleted()) {
+ if (position.isDeleted()) {
- if (position.getClient() == null && position.getAccessPoint() == null) {
- if (node != null) {
- // Referenzpunkt wird gel\xF6scht
- if (node.getType() == NodeModelConstants.NODETYPE_LOCATION) // Aus dem lokalen Graphen entfernen das
- // Ding
- nodeModel.removeNode(node);
- else
- System.out
- .println("Position with location information deleted, but node with given name is not a location!");
- } else
- System.out
- .println("Position with location information deleted, but no node found for it.");
- return;
- }
- if (position.getClient() != null) // Node client =
- return;
- if (position.getAccessPoint() != null) {
- AccessPointNode ap = nodeModel.findAccessPoint(position.getAccessPoint().getMac());
- if (ap != null) {
- // AccessPoint wurde "frei" gemacht
- ap.setFix(false);
- System.out.println("Accesspoint unfixed.");
- } else
- System.out.println("Position with accesspoint deleted, but no node found for it.");
- return;
- }
- System.out.println("Position with id " + position.getId()
- + " was deleted but not handled.");
- return;
- } else {
- // Neues Positionsobjekt oder altes wurde
- // aktualisiert (Location)
- if (position.getClient() == null && position.getAccessPoint() == null) {
- handlePositionXYZ(node, nodeModel, position);
- return;
- }
- if (position.getAccessPoint() != null) {
- handleAccessPointXYZ(nodeModel, position);
- return;
- }
- if (position.getClient() != null && position.getCharacter() != null) {
- handleClientXYZ(nodeModel, position);
- return;
- }
- }
- System.out.println("Unbekannte Position. Kann nix anfangen damit.");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
+ if (position.getClient() == null && position.getAccessPoint() == null) {
+ if (node != null) {
+ // Referenzpunkt wird gel\xF6scht
+ if (node.getType() == NodeModelConstants.NODETYPE_LOCATION) {// Aus dem lokalen Graphen entfernen das
+ // Ding
+ controller.getMeasurementModel().removeAccessPointSeerNode((LocationNode) node);
+ nodeModel.removeNode(node);
+ } else
+ System.out
+ .println("Position with location information deleted, but node with given name is not a location!");
+ } else
+ System.out
+ .println("Position with location information deleted, but no node found for it.");
+ return;
+ }
+ if (position.getClient() != null) // Node client =
+ return;
+ if (position.getAccessPoint() != null) {
+ AccessPointNode ap = nodeModel.findAccessPoint(position.getAccessPoint().getMac());
+ if (ap != null) {
+ // AccessPoint wurde "frei" gemacht
+ ap.setFix(false);
+ System.out.println("Accesspoint unfixed.");
+ } else
+ System.out.println("Position with accesspoint deleted, but no node found for it.");
+ return;
+ }
+ System.out
+ .println("Position with id " + position.getId() + " was deleted but not handled.");
+ return;
+ } else {
+ // Neues Positionsobjekt oder altes wurde
+ // aktualisiert (Location)
+ if (position.getClient() == null && position.getAccessPoint() == null) {
+ handlePositionXYZ(node, nodeModel, position);
+ return;
+ }
+ if (position.getAccessPoint() != null) {
+ handleAccessPointXYZ(nodeModel, position);
+ return;
+ }
+ if (position.getClient() != null && position.getCharacter() != null) {
+ handleClientXYZ(nodeModel, position);
+ return;
+ }
+ }
+ System.out.println("Unbekannte Position. Kann nix anfangen damit.");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
- /**
- *
- * @param node a node
- * @param nodeModel the model
- * @param position the position data
- */
- private void handlePositionXYZ(Node node, INodeModel nodeModel, PositionDTO position) {
- // Referenzpunkt angelegt oder aktualisiert
- LocationNode location;
- if (node == null) {
- // Referenzpunkt bisher unbekannt
- location = new LocationNode(nodeModel);
+ /**
+ *
+ * @param node a node
+ * @param nodeModel the model
+ * @param position the position data
+ */
+ private void handlePositionXYZ(Node node, INodeModel nodeModel, PositionDTO position){
+ // Referenzpunkt angelegt oder aktualisiert
+ LocationNode location;
+ if (node == null) {
+ // Referenzpunkt bisher unbekannt
+ location = new LocationNode(nodeModel);
- location.setId(position.getId());
- location.setName(position.getName());
- nodeModel.addNode(location);
+ location.setId(position.getId());
+ location.setName(position.getName());
+ nodeModel.addNode(location);
- if (position.getPosX() != -1 && position.getPosY() != -1) {
- location.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
- location.setFix(true);
- } else
- location.setFix(false);
- // Signalcharakteristik auswerden und
- // gesehene
- // AccessPoints ebenfalls erzeugen bzw. mit
- // ihnen Verbindungen
- // herstellen
- SignalCharacterDTO sc = position.getCharacter();
- SimpleScanResultDTO[] sr = sc.getSimpleScanResults();
- for (int i = 0; sr != null && i < sr.length; i++) {
- SimpleScanResultDTO r = sr[i];
- String mac = r.getMacAP();
- // Gibt es ggf. einen AP mit der
- // Mac-Adresse?
- AccessPointNode ap = nodeModel.findAccessPoint(mac);
- if (ap == null) {
- // Nein
- ap = new AccessPointNode(nodeModel);
- ap.setMacAddress(mac);
- nodeModel.addNode(ap);
- // ap.setName(mac);
- }
+ if (position.getPosX() != -1 && position.getPosY() != -1) {
+ location.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
+ location.setFix(true);
+ } else
+ location.setFix(false);
+ // Signalcharakteristik auswerden und
+ // gesehene
+ // AccessPoints ebenfalls erzeugen bzw. mit
+ // ihnen Verbindungen
+ // herstellen
+ SignalCharacterDTO sc = position.getCharacter();
+ SimpleScanResultDTO[] sr = sc.getSimpleScanResults();
+ for (int i = 0; sr != null && i < sr.length; i++) {
+ SimpleScanResultDTO r = sr[i];
+ String mac = r.getMacAP();
+ // Gibt es ggf. einen AP mit der
+ // Mac-Adresse?
+ AccessPointNode ap = nodeModel.findAccessPoint(mac);
+ if (ap == null) {
+ // Nein
+ ap = new AccessPointNode(nodeModel);
+ ap.setMacAddress(mac);
+ nodeModel.addNode(ap);
+ // ap.setName(mac);
+ }
controller.getMeasurementModel().updateScanResult(location, mac, r.getSignalLevel());
- if (!ap.isHidden())
- location.seesAccessPoint(ap, r.getSignalLevel());
- }
- } else {
- System.out.println("Referenzpunkt verschoben.");
- // Referenzpunkt wird nur aktualisiert, wir
- // gehen davon aus
- // das sich nur die Position ver\xE4ndern darf
- // (die Programmlogik sieht
- // es jedenfalls so vor, \xC4ndern der APs
- // geschieht \xFCber L\xF6schen und
- // Neuanlegen)
- location = (LocationNode) node;
- location.setId(position.getId()); // Falls
- // nicht
- // gesetzt
- // Nur Position von fixierten
- // Orten/Referenzpunkten beachten
- if (position.isFixed()) {
- location.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
- location.setFix(true);
- } else
- location.setFix(false);
- // Signalcharakteristik auswerden und
- // gesehene
- // AccessPoints ebenfalls erzeugen bzw. mit
- // ihnen Verbindungen
- // herstellen
- SignalCharacterDTO sc = position.getCharacter();
- SimpleScanResultDTO[] sr = sc.getSimpleScanResults();
- // Alle momentan gesehenen AccessPoints
- // merken
+ if (!ap.isHidden()) location.seesAccessPoint(ap, r.getSignalLevel());
+ }
+ } else {
+ System.out.println("Referenzpunkt verschoben.");
+ // Referenzpunkt wird nur aktualisiert, wir
+ // gehen davon aus
+ // das sich nur die Position ver\xE4ndern darf
+ // (die Programmlogik sieht
+ // es jedenfalls so vor, \xC4ndern der APs
+ // geschieht \xFCber L\xF6schen und
+ // Neuanlegen)
+ location = (LocationNode) node;
+ location.setId(position.getId()); // Falls
+ // nicht
+ // gesetzt
+ // Nur Position von fixierten
+ // Orten/Referenzpunkten beachten
+ if (position.isFixed()) {
+ location.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
+ location.setFix(true);
+ } else
+ location.setFix(false);
+ // Signalcharakteristik auswerden und
+ // gesehene
+ // AccessPoints ebenfalls erzeugen bzw. mit
+ // ihnen Verbindungen
+ // herstellen
+ SignalCharacterDTO sc = position.getCharacter();
+ SimpleScanResultDTO[] sr = sc.getSimpleScanResults();
+ // Alle momentan gesehenen AccessPoints
+ // merken
- ArrayList seenAps = location.getSeenAccessPoints();
- for (SimpleScanResultDTO r : sr) {
- String mac = r.getMacAP();
- // Gibt es ggf. einen AP mit der
- // Mac-Adresse?
- AccessPointNode ap = nodeModel.findAccessPoint(mac);
- if (ap == null) {
- // Nein
- ap = new AccessPointNode(nodeModel);
- ap.setMacAddress(mac);
- nodeModel.addNode(ap);
- // ap.setName(mac);
- } else // AccessPoint nur aktualisieren?
- if (seenAps.remove(ap)) // Nur Signallevel aktualisieren
- location.setSignalLevelForAcessPoint(ap, r.getSignalLevel());
- else{
- // Neu
- location.seesAccessPoint(ap, r.getSignalLevel());
- controller.getMeasurementModel().updateScanResult (location, mac, r.getSignalLevel());
- }
- }
+ ArrayList seenAps = location.getSeenAccessPoints();
+ for (SimpleScanResultDTO r : sr) {
+ String mac = r.getMacAP();
+ // Gibt es ggf. einen AP mit der
+ // Mac-Adresse?
+ AccessPointNode ap = nodeModel.findAccessPoint(mac);
+ if (ap == null) {
+ // Nein
+ ap = new AccessPointNode(nodeModel);
+ ap.setMacAddress(mac);
+ nodeModel.addNode(ap);
+ // ap.setName(mac);
+ } else // AccessPoint nur aktualisieren?
+ if (seenAps.remove(ap)) // Nur Signallevel aktualisieren
+ location.setSignalLevelForAcessPoint(ap, r.getSignalLevel());
+ else {
+ // Neu
+ location.seesAccessPoint(ap, r.getSignalLevel());
+ controller.getMeasurementModel().updateScanResult(location, mac, r.getSignalLevel());
+ }
+ }
- // Alle APs aus seenAps werden demzufolge
- // nicht mehr gesehen und
- // dies teilen wir unserem Modell mit
- for (Object seenAp : seenAps) {
- AccessPointNode ap = (AccessPointNode) seenAp;
- location.notSeesAccessPoint(ap);
- }
- }
- }
+ // Alle APs aus seenAps werden demzufolge
+ // nicht mehr gesehen und
+ // dies teilen wir unserem Modell mit
+ for (Object seenAp : seenAps) {
+ AccessPointNode ap = (AccessPointNode) seenAp;
+ location.notSeesAccessPoint(ap);
+ }
+ }
+ }
- /**
- * Macht irgendwass
- * @param nodeModel
- * @param position
- */
- private void handleAccessPointXYZ(INodeModel nodeModel, PositionDTO position) {
- System.out.println("Accesspointposition erzeugt oder aktualisiert.");
- AccessPointDTO apdto = position.getAccessPoint();
- AccessPointNode ap = nodeModel.findAccessPoint(apdto.getMac());
- if (ap == null) {
- // Gibt es noch nicht in unserem Modell =>
- // Schnell erzeugen
- ap = new AccessPointNode(nodeModel);
- ap.setMacAddress(apdto.getMac());
- nodeModel.addNode(ap);
- }
- ap.setId(position.getId());
- ap.setHiddenStatus(apdto.isHidden());
- // Nur Position von fixierten AccessPoints
- // beachten
- if (position.isFixed()) {
- // AccessPoint wurde fixiert
- ap.setPosition(position.getPosX(), position.getPosY(),
- position.getPosZ());
- ap.setFix(true);
- } else {
- // Loser AccessPoint gemeldet
- ap.setFix(false);
- System.out.println("Unfix accesspoint received. This was not in our contract.");
- }
- }
+ /**
+ * Macht irgendwass
+ * @param nodeModel
+ * @param position
+ */
+ private void handleAccessPointXYZ(INodeModel nodeModel, PositionDTO position){
+ System.out.println("Accesspointposition erzeugt oder aktualisiert.");
+ AccessPointDTO apdto = position.getAccessPoint();
+ AccessPointNode ap = nodeModel.findAccessPoint(apdto.getMac());
+ if (ap == null) {
+ // Gibt es noch nicht in unserem Modell =>
+ // Schnell erzeugen
+ ap = new AccessPointNode(nodeModel);
+ ap.setMacAddress(apdto.getMac());
+ nodeModel.addNode(ap);
+ }
+ ap.setId(position.getId());
+ ap.setHiddenStatus(apdto.isHidden());
+ // Nur Position von fixierten AccessPoints
+ // beachten
+ if (position.isFixed()) {
+ // AccessPoint wurde fixiert
+ ap.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
+ ap.setFix(true);
+ } else {
+ // Loser AccessPoint gemeldet
+ ap.setFix(false);
+ System.out.println("Unfix accesspoint received. This was not in our contract.");
+ }
+ }
- /**
- * Macht igrnedwass!
- * @param nodeModel
- * @param position
- */
- private void handleClientXYZ(INodeModel nodeModel, PositionDTO position) {
- ClientDTO clientdto = position.getClient();
- ClientNode client = (ClientNode) nodeModel.findNode(clientdto.getName());
+ /**
+ * Macht igrnedwass!
+ * @param nodeModel
+ * @param position
+ */
+ private void handleClientXYZ(INodeModel nodeModel, PositionDTO position){
+ ClientDTO clientdto = position.getClient();
+ ClientNode client = (ClientNode) nodeModel.findNode(clientdto.getName());
- // Wenn eigener Client unfixiert kommt
- // Positionsangaben ignorieren
- if (client == this.controller.getClient() && !position.isFixed()) {
- // Aber noch schnell unfixieren
- client.setFix(false);
- System.out.println("Eigener Client wird ignoriert");
- return;
- } else if (client == this.controller.getClient() && position.isFixed())
- System.out.println("Eigener Client empfangen mit fixierter Position.");
+ // Wenn eigener Client unfixiert kommt
+ // Positionsangaben ignorieren
+ if (client == this.controller.getClient() && !position.isFixed()) {
+ // Aber noch schnell unfixieren
+ client.setFix(false);
+ System.out.println("Eigener Client wird ignoriert");
+ return;
+ } else if (client == this.controller.getClient() && position.isFixed())
+ System.out.println("Eigener Client empfangen mit fixierter Position.");
- // Sonst beachten wir alle Positionen die wir
- // bekommen
- if (client == null) {
- System.out.println("Neuer Client empfangen (" + clientdto.getMac() + ", "
- + clientdto.getName() + ". F\xFCge zum Graphen hinzu.");
- client = new ClientNode(nodeModel);
- client.setMacAddress(clientdto.getMac());
- client.setName(clientdto.getName());
- nodeModel.addNode(client);
- }
+ // Sonst beachten wir alle Positionen die wir
+ // bekommen
+ if (client == null) {
+ System.out.println("Neuer Client empfangen (" + clientdto.getMac() + ", " + clientdto.getName()
+ + ". F\xFCge zum Graphen hinzu.");
+ client = new ClientNode(nodeModel);
+ client.setMacAddress(clientdto.getMac());
+ client.setName(clientdto.getName());
+ nodeModel.addNode(client);
+ }
- System.out.println("Position f\xFCr Client " + client.getName() + " empfangen. fix = "
- + position.isFixed());
- // client.setPosition(position.getPosX().intValue(),
- // position.getPosY().intValue());
+ System.out.println("Position f\xFCr Client " + client.getName() + " empfangen. fix = " + position.isFixed());
+ // client.setPosition(position.getPosX().intValue(),
+ // position.getPosY().intValue());
- if (position.isFixed()) {
- // Client wurde fixiert
- client.setFix(true);
- client.setPosition(position.getPosX(), position.getPosY(),
- position.getPosZ());
- } else
- client.setFix(false);
- client.setId(position.getId());
+ if (position.isFixed()) {
+ // Client wurde fixiert
+ client.setFix(true);
+ client.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
+ } else
+ client.setFix(false);
+ client.setId(position.getId());
- // Signalst\xE4rken usw. verwaltet der scannende
- // Client selbst
- if (client == this.controller.getClient()) return;
+ // Signalst\xE4rken usw. verwaltet der scannende
+ // Client selbst
+ if (client == this.controller.getClient()) return;
- // Signalcharakteristik auswerden und gesehene
- // AccessPoints ebenfalls erzeugen bzw. mit
- // ihnen Verbindungen
- // herstellen
- SignalCharacterDTO sc = position.getCharacter();
- SimpleScanResultDTO[] sr = sc.getSimpleScanResults();
- // Alle momentan gesehenen AccessPoints merken
- ArrayList seenAps = client.getSeenAccessPoints();
+ // Signalcharakteristik auswerden und gesehene
+ // AccessPoints ebenfalls erzeugen bzw. mit
+ // ihnen Verbindungen
+ // herstellen
+ SignalCharacterDTO sc = position.getCharacter();
+ SimpleScanResultDTO[] sr = sc.getSimpleScanResults();
+ // Alle momentan gesehenen AccessPoints merken
+ ArrayList seenAps = client.getSeenAccessPoints();
- if (sr != null) {
- IMeasurementModel measurementModel = Controller.getInstance().getMeasurementModel();
- double[] signalLevels = new double[sr.length];
- String[] macs = new String[sr.length];
- for (int i = 0; i < sr.length; ++i){
- signalLevels[i] = sr[i].getSignalLevel();
- macs[i] = sr[i].getMacAP();
- }
- measurementModel.updateScanResult (client, macs, signalLevels);
- }
- }
+ if (sr != null) {
+ IMeasurementModel measurementModel = Controller.getInstance().getMeasurementModel();
+ double[] signalLevels = new double[sr.length];
+ String[] macs = new String[sr.length];
+ for (int i = 0; i < sr.length; ++i) {
+ signalLevels[i] = sr[i].getSignalLevel();
+ macs[i] = sr[i].getMacAP();
+ }
+ measurementModel.updateScanResult(client, macs, signalLevels);
+ }
+ }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.magicmap.client.interfaces.ServerPollerListener#mapCreatedOrUpdatedOrDeleted(net.sf.magicmap.server.dto.MapDTO)
- */
- public void mapCreatedOrUpdatedOrDeleted(final MapDTO mapDTO){
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.sf.magicmap.client.interfaces.ServerPollerListener#mapCreatedOrUpdatedOrDeleted(net.sf.magicmap.server.dto.MapDTO)
+ */
+ public void mapCreatedOrUpdatedOrDeleted(final MapDTO mapDTO){
- try {
- SwingUtilities.invokeAndWait(new Runnable() {
+ try {
+ SwingUtilities.invokeAndWait(new Runnable() {
- public void run(){
- try {
- INodeModel nodeModel = PollHandler.this.controller.getNodeModel();
- Node node = nodeModel.findNode(mapDTO.getName());
+ public void run(){
+ try {
+ INodeModel nodeModel = PollHandler.this.controller.getNodeModel();
+ Node node = nodeModel.findNode(mapDTO.getName());
- if (node == null) {
- MapNode mapNode = new MapNode(nodeModel);
- mapNode.setName(mapDTO.getName());
- mapNode.setMapInfo(mapDTO);
- nodeModel.addNode(mapNode);
- }
+ if (node == null) {
+ MapNode mapNode = new MapNode(nodeModel);
+ mapNode.setName(mapDTO.getName());
+ mapNode.setMapInfo(mapDTO);
+ nodeModel.addNode(mapNode);
+ }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.magicmap.client.interfaces.ServerPollerListener#geoPosCreatedOrUpdatedOrDeleted(net.sf.magicmap.server.dto.GeoPointDTO)
- */
- public void geoPosCreatedOrUpdatedOrDeleted(final GeoPointDTO pointDTO){
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.sf.magicmap.client.interfaces.ServerPollerListener#geoPosCreatedOrUpdatedOrDeleted(net.sf.magicmap.server.dto.GeoPointDTO)
+ */
+ public void geoPosCreatedOrUpdatedOrDeleted(final GeoPointDTO pointDTO){
- try {
- SwingUtilities.invokeAndWait(new Runnable() {
+ try {
+ SwingUtilities.invokeAndWait(new Runnable() {
- public void run(){
- try {
- INodeModel nodeModel = PollHandler.this.controller.getNodeModel();
- Node node = nodeModel.findNode(pointDTO.toString());
+ public void run(){
+ try {
+ INodeModel nodeModel = PollHandler.this.controller.getNodeModel();
+ Node node = nodeModel.findNode(pointDTO.toString());
- if (node == null) {
- GeoPosNode geoNode = new GeoPosNode(nodeModel);
- GeoPos geoPos = new GeoPos(pointDTO.getGeoPointLong(), pointDTO.getGeoPointLat(), pointDTO.getGeoPointAlt());
- geoNode.setName(pointDTO.toString());
- geoNode.setId(pointDTO.getId());
- System.err.println("created geo node: " + geoNode.getId());
- geoNode.setGeoPos(geoPos);
- nodeModel.addNode(geoNode);
- geoNode.setFix(true);
- geoNode.setPosition(pointDTO.getGeoPointX(), pointDTO.getGeoPointY(),
- 0);
- }
+ if (node == null) {
+ GeoPosNode geoNode = new GeoPosNode(nodeModel);
+ GeoPos geoPos = new GeoPos(pointDTO.getGeoPointLong(), pointDTO.getGeoPointLat(), pointDTO
+ .getGeoPointAlt());
+ geoNode.setName(pointDTO.toString());
+ geoNode.setId(pointDTO.getId());
+ System.err.println("created geo node: " + geoNode.getId());
+ geoNode.setGeoPos(geoPos);
+ nodeModel.addNode(geoNode);
+ geoNode.setFix(true);
+ geoNode.setPosition(pointDTO.getGeoPointX(), pointDTO.getGeoPointY(), 0);
+ }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.magicmap.client.interfaces.ServerPollerListener#infoObjectCreatedorUpdatedOrDeleted(net.sf.magicmap.client.model.node.InfoObject)
- */
- public void infoObjectCreatedorUpdatedOrDeleted(final InfoObject infoObject){
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.sf.magicmap.client.interfaces.ServerPollerListener#infoObjectCreatedorUpdatedOrDeleted(net.sf.magicmap.client.model.node.InfoObject)
+ */
+ public void infoObjectCreatedorUpdatedOrDeleted(final InfoObject infoObject){
- try {
- SwingUtilities.invokeAndWait(new Runnable() {
+ try {
+ SwingUtilities.invokeAndWait(new Runnable() {
- public void run(){
- // try {
- // INodeModel nodeModel = controller.getNodeModel();
- // Node node = nodeModel.findNode(infoObject.getUrl());
- //
- // if (node == null) {
- // InfoObjectNode infoNode = new InfoObjectNode(nodeModel);
- // infoNode.setName(infoObject.getUrl());
- // infoNode.setDisplayName(infoObject.getName());
- // infoNode.setId(infoObject.hashCode());
- // String[] tags = infoObject.getUrl().split(",");
- // for (String string : tags) {
- // infoNode.addTag(string);
- // }
- // if
- // (infoObject.getMap().equals(Controller.getInstance().getCurrentMap().name))
- // {
- // nodeModel.addNode(infoNode);
- // infoNode.setFix(true);
- // infoNode.setPosition(infoObject.getX(),
- // infoObject.getY(), 0);
- // }
- // }
- //
- // } catch (Exception e){
- // e.printStackTrace();
- // }
- }
- });
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
+ public void run(){
+ // try {
+ // INodeModel nodeModel = controller.getNodeModel();
+ // Node node = nodeModel.findNode(infoObject.getUrl());
+ //
+ // if (node == null) {
+ // InfoObjectNode infoNode = new InfoObjectNode(nodeModel);
+ // infoNode.setName(infoObject.getUrl());
+ // infoNode.setDisplayName(infoObject.getName());
+ // infoNode.setId(infoObject.hashCode());
+ // String[] tags = infoObject.getUrl().split(",");
+ // for (String string : tags) {
+ // infoNode.addTag(string);
+ // }
+ // if
+ // (infoObject.getMap().equals(Controller.getInstance().getCurrentMap().name))
+ // {
+ // nodeModel.addNode(infoNode);
+ // infoNode.setFix(true);
+ // infoNode.setPosition(infoObject.getX(),
+ // infoObject.getY(), 0);
+ // }
+ // }
+ //
+ // } catch (Exception e){
+ // e.printStackTrace();
+ // }
+ }
+ });
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
}
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/AbstractMapView.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/AbstractMapView.java 2007-02-16 20:47:06 UTC (rev 540)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/AbstractMapView.java 2007-02-17 00:06:55 UTC (rev 541)
@@ -5,7 +5,6 @@
import java.util.Collection;
import net.sf.magicmap.client.interfaces.MapViewListener;
-import net.sf.magicmap.client.interfaces.NodeModelListener;
import net.sf.magicmap.client.model.node.INodeModel;
import net.sf.magicmap.client.model.node.Node;
import edu.uci.ics.jung.graph.event.VertexListener;
@@ -16,7 +15,7 @@
* @author Jan Friderici
*
*/
-public abstract class AbstractMapView extends View implements VertexListener, NodeModelListener {
+public abstract class AbstractMapView extends View implements VertexListener {
private final Collection<MapViewListener> listeners = new ArrayList<MapViewListener>();
private INodeModel model;
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java 2007-02-16 20:47:06 UTC (rev 540)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java 2007-02-17 00:06:55 UTC (rev 541)
@@ -4,43 +4,57 @@
package net.sf.magicmap.client.gui.views;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.Insets;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.border.EmptyBorder;
+
+import net.sf.magicmap.client.gui.PACWGraphDraw;
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.gui.utils.GUIConstants;
+import net.sf.magicmap.client.gui.utils.GUIUtils;
+import net.sf.magicmap.client.gui.utils.NodeIcon;
+import net.sf.magicmap.client.gui.utils.NodeIcons;
+import net.sf.magicmap.client.meta.MapInfo;
+import net.sf.magicmap.client.model.location.INodePlacer;
+import net.sf.magicmap.client.model.location.jung.JungNodePlacer;
+import net.sf.magicmap.client.model.location.jung.LayoutSettings;
+import net.sf.magicmap.client.model.node.INodeModel;
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.client.model.node.NodeModelSelectionEvent;
+import net.sf.magicmap.client.model.node.NodeModelSelectionListener;
+
+import org.apache.log4j.Logger;
+
import com.brunchboy.util.swing.relativelayout.AttributeConstraint;
import com.brunchboy.util.swing.relativelayout.AttributeType;
import com.brunchboy.util.swing.relativelayout.DependencyManager;
import com.brunchboy.util.swing.relativelayout.RelativeLayout;
+
import edu.uci.ics.jung.graph.Edge;
import edu.uci.ics.jung.graph.Vertex;
import edu.uci.ics.jung.graph.decorators.EdgeColorFunction;
import edu.uci.ics.jung.graph.decorators.StringLabeller;
-import edu.uci.ics.jung.graph.decorators.StringLabeller.UniqueLabelException;
import edu.uci.ics.jung.graph.decorators.VertexColorFunction;
+import edu.uci.ics.jung.graph.decorators.StringLabeller.UniqueLabelException;
import edu.uci.ics.jung.graph.event.GraphEvent;
import edu.uci.ics.jung.graph.event.GraphEventListener;
import edu.uci.ics.jung.graph.event.GraphEventType;
import edu.uci.ics.jung.graph.impl.DirectedSparseGraph;
import edu.uci.ics.jung.visualization.SpringLayout;
-import net.sf.magicmap.client.gui.PACWGraphDraw;
-import net.sf.magicmap.client.gui.utils.GUIBuilder;
-import net.sf.magicmap.client.gui.utils.GUIConstants;
-import net.sf.magicmap.client.gui.utils.GUIUtils;
-import net.sf.magicmap.client.gui.utils.NodeIcon;
-import net.sf.magicmap.client.gui.utils.NodeIcons;
-import net.sf.magicmap.client.meta.MapInfo;
-import net.sf.magicmap.client.model.location.INodePlacer;
-import net.sf.magicmap.client.model.location.jung.JungNodePlacer;
-import net.sf.magicmap.client.model.location.jung.LayoutSettings;
-import net.sf.magicmap.client.model.node.*;
-import org.apache.log4j.Logger;
-import javax.swing.*;
-import javax.swing.border.EmptyBorder;
-import java.awt.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Set;
-
/**
* Kapselt das JUNG-Framework sowie die Karte
*
@@ -105,7 +119,7 @@
ni = NodeIcons.getInstance();
initializeGraph();
-// model.addNodeModelListener(this.layoutModel);
+ // model.addNodeModelListener(this.layoutModel);
this.getModel().addNodeModelSelectionListener(this);
}
@@ -141,25 +155,25 @@
return null;
}
//break;
- // TODO: InfonodeIcon in NodeIcons behandeln
-// case INodeModel.NODETYPE_INFO :
-// if (((InfoObjectNode) node).getDepiction() != null) {
-// ImageIcon icon;
-// try {
-// icon = new ImageIcon(new URL(((InfoObjectNode) node).getDepiction()), "<Depiction>");
-// if (icon != null && icon.getIconHeight() > 0) {
-// return icon;
-// }
-// } catch (MalformedURLException e) {
-// // TODO Auto-generated catch block
-// e.printStackTrace();
-// }
-// }
+ // TODO: InfonodeIcon in NodeIcons behandeln
+ // case INodeModel.NODETYPE_INFO :
+ // if (((InfoObjectNode) node).getDepiction() != null) {
+ // ImageIcon icon;
+ // try {
+ // icon = new ImageIcon(new URL(((InfoObjectNode) node).getDepiction()), "<Depiction>");
+ // if (icon != null && icon.getIconHeight() > 0) {
+ // return icon;
+ // }
+ // } catch (MalformedURLException e) {
+ // // TODO Auto-generated catch block
+ // e.printStackTrace();
+ // }
+ // }
break;
}
log.debug("Nodename: " + node.getClass().getSimpleName());
final NodeIcon nodeIcon = NodeIcons.getInstance().getNodeIcon(node);
- if (nodeIcon != null)return nodeIcon.getIcon(node);
+ if (nodeIcon != null) return nodeIcon.getIcon(node);
return ni.getIconForNode(node);
}
@@ -233,7 +247,7 @@
*/
public void initializeGraph(){
layoutModel = (JungNodePlacer) getModel().getNodePlacer();
- graph = layoutModel;// new DirectedSparseGraph();
+ graph = layoutModel;// new DirectedSparseGraph();
graphdraw = new PACWGraphDraw(layoutModel);
graphdraw.setVisible(false);
labeller = StringLabeller.getLabeller(graph);
@@ -354,7 +368,7 @@
}
});
graphdraw.getVisualizationViewer().addVertexListener(this);
- layoutModel.start();
+ layoutModel.startNodePlacer();
// pane.add(graphdraw);
RelativeLayout rl = new RelativeLayout();
@@ -426,14 +440,14 @@
fireRightClicked(x, y);
}
- /**
- * remove an edge
- * @param node1 node 1
- * @param node2 node 2
- */
- //@TODO PLEASE DONT PUT LOGIC IN THE VIEWS!!!!!!!!!!!!!!!!
- @Deprecated
- public void removeEdge(Node node1, Node node2){
+ /**
+ * remove an edge
+ * @param node1 node 1
+ * @param node2 node 2
+ */
+ //@TODO PLEASE DONT PUT LOGIC IN THE VIEWS!!!!!!!!!!!!!!!!
+ @Deprecated
+ public void removeEdge(Node node1, Node node2){
Vertex v = findVertex(node1);
Vertex w = findVertex(node2);
if (v != null && w != null) {
@@ -478,25 +492,6 @@
}
}
- /**
- * Entfernt Knoten aus dem Graph und eventuelle Kanten
- *
- * @param node
- */
- public void removeVertex(Node node){
- // removeEdges(node);
- // Vertex v = findVertex(node);
- // if (v != null){
- // // Finde alle Kanten die beteiligt sind
- // stopGraph();
- // labeller.removeLabel(node.getDisplayName());
- // graph.removeVertex(v);
- // ((SpringLayout) graphdraw.getGraphLayout()).update();
- // resumeGraph();
- //
- // }
- }
-
public Vertex findVertex(Node node){
return (Vertex) layoutModel.findVertex(node);
}
@@ -506,35 +501,6 @@
return node;
}
- /**
- *
- *
- */
- public void nodeAddedEvent(Node node){
- // TODO auch unn\xF6tig oder?
- layoutModel.nodeAddedEvent(node);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.magicmap.client.interfaces.NodeModelListener#nodeRemovedEvent(net.sf.magicmap.client.model.Node)
- */
- public void nodeRemovedEvent(Node node){
- removeVertex(node);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.magicmap.client.interfaces.NodeModelListener#nodeUpdatedEvent(net.sf.magicmap.client.model.Node,
- * int, java.lang.Object)
- */
- // TODO refactor me - das geh\xF6rt hier beim besten willen nicht hin!
- public void nodeUpdatedEvent(Node node, int type, Object data){
- // System.out.println(getClass() + "::nodeUpdatedEvent");
- }
-
public int getMapOffsetX(){
int ox = (getWidth() - graphdraw.getWidth()) / 2;
return (ox >= 0 ? ox : 0);
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java 2007-02-16 20:47:06 UTC (rev 540)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java 2007-02-17 00:06:55 UTC (rev 541)
@@ -1,27 +1,41 @@
package net.sf.magicmap.client.model.location.jung;
-import edu.uci.ics.jung.graph.Edge;
-import edu.uci.ics.jung.graph.Vertex;
-import edu.uci.ics.jung.graph.decorators.StringLabeller;
-import edu.uci.ics.jung.graph.impl.DirectedSparseEdge;
-import edu.uci.ics.jung.graph.impl.DirectedSparseGraph;
-import edu.uci.ics.jung.graph.impl.DirectedSparseVertex;
-import edu.uci.ics.jung.utils.UserData;
-import edu.uci.ics.jung.visualization.SpringLayout;
+import java.awt.Dimension;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
import net.sf.magicmap.client.algorithms.MagicMetric;
import net.sf.magicmap.client.algorithms.NodeMetricManager;
import net.sf.magicmap.client.algorithms.NodeModelMetric;
-import net.sf.magicmap.client.interfaces.NodeModelListener;
import net.sf.magicmap.client.model.location.INodePlacer;
import net.sf.magicmap.client.model.location.NodeUpdateHandler;
-import net.sf.magicmap.client.model.location.jung.handler.*;
-import net.sf.magicmap.client.model.node.*;
+import net.sf.magicmap.client.model.location.jung.handler.AccessPointHiddenStateHandler;
+import net.sf.magicmap.client.model.location.jung.handler.FixStateHandler;
+import net.sf.magicmap.client.model.location.jung.handler.LabelChangeHandler;
+import net.sf.magicmap.client.model.location.jung.handler.NotSeeAccessPointHandler;
+import net.sf.magicmap.client.model.location.jung.handler.PositionUpdateHandler;
+import net.sf.magicmap.client.model.location.jung.handler.SeeAccessPointHandler;
+import net.sf.magicmap.client.model.node.ClientNode;
+import net.sf.magicmap.client.model.node.IMagicEdge;
+import net.sf.magicmap.client.model.node.LocationNode;
+import net.sf.magicmap.client.model.node.MapNode;
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.client.model.node.NodeModelConstants;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.*;
-import java.util.*;
+import edu.uci.ics.jung.graph.Edge;
+import edu.uci.ics.jung.graph.Vertex;
+import edu.uci.ics.jung.graph.decorators.StringLabeller;
+import edu.uci.ics.jung.graph.impl.DirectedSparseGraph;
+import edu.uci.ics.jung.graph.impl.DirectedSparseVertex;
+import edu.uci.ics.jung.utils.UserData;
+import edu.uci.ics.jung.visualization.SpringLayout;
/**
* Dieses Model benutzt die Layoutfunktionen von Jung und einige Angepasste
@@ -89,28 +103,28 @@
*/
private final NodeHandlerFactory nodeHandler = new NodeHandlerFactory();
- private final NodeMetricManager metricManager;
+ private final NodeMetricManager metricManager;
- public JungNodePlacer() {
+ public JungNodePlacer() {
this(JungNodePlacer.DEFAULT_SETTINGS, new MagicMetric());
}
- /**
- *
- * @return
- */
- public NodeMetricManager getMetricManager() {
- return metricManager;
- }
+ /**
+ *
+ * @return
+ */
+ public NodeMetricManager getMetricManager(){
+ return metricManager;
+ }
- /**
+ /**
*
* @param settings
* @param metric
*/
public JungNodePlacer(LayoutSettings settings, NodeModelMetric metric) {
super();
- this.metricManager = new NodeMetricManager(metric);
+ this.metricManager = new NodeMetricManager(metric);
this.c...
[truncated message content] |