You can subscribe to this list here.
| 2005 | Jan | Feb (14) | Mar | Apr (4) | May (57) | Jun (14) | Jul (15) | Aug (5) | Sep (29) | Oct (13) | Nov (44) | Dec (3) | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 | Jan (14) | Feb (78) | Mar (55) | Apr | May | Jun | Jul | Aug | Sep | Oct (4) | Nov (12) | Dec (9) | 
| 2007 | Jan (21) | Feb (67) | Mar (39) | Apr (28) | May (7) | Jun | Jul (6) | Aug (2) | Sep (1) | Oct (18) | Nov (8) | Dec (11) | 
| 2008 | Jan (16) | Feb (12) | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | 
| 
      
      
      From: <fle...@us...> - 2008-02-11 12:59:49
      
     | 
| Revision: 733
          http://magicmap.svn.sourceforge.net/magicmap/?rev=733&view=rev
Author:   flederohr
Date:     2008-02-11 04:22:53 -0800 (Mon, 11 Feb 2008)
Log Message:
-----------
reverted last changes
Modified Paths:
--------------
    trunk/magicmapclient/build.xml
Modified: trunk/magicmapclient/build.xml
===================================================================
--- trunk/magicmapclient/build.xml	2008-02-07 21:27:03 UTC (rev 732)
+++ trunk/magicmapclient/build.xml	2008-02-11 12:22:53 UTC (rev 733)
@@ -89,9 +89,9 @@
 	</target>
 
 	<target name="axis" depends="prepare">
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="file:/${basedir}/inf/PositionFacade.wsdl" />
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="file:/${basedir}/inf/SessionFacade.wsdl" />
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="file:/${basedir}/inf/MapFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/PositionFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/SessionFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/MapFacade.wsdl" />
 	</target>
 
 	<target name="compile" depends="axis">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-02-07 22:02:14
      
     | 
| Revision: 732
          http://magicmap.svn.sourceforge.net/magicmap/?rev=732&view=rev
Author:   jan_fride
Date:     2008-02-07 13:27:03 -0800 (Thu, 07 Feb 2008)
Log Message:
-----------
changed uris to strings
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java
Removed Paths:
-------------
    trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java
Deleted: trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -1,42 +0,0 @@
-package net.sf.magicmap.core.model;
-
-import java.net.URL;
-
-/**
- * <p>
- * Class URI ZUSAMMENFASSUNG
- * </p>
- * <p>
- * DETAILS
- * </p>
- *
- * @author Jan Friderici
- *         Date: 21.01.2008
- *         Time: 21:52:54
- */
-public interface URI {
-    /**
-     * Get the protocol.
-     * @return
-     */
-    String getProtocol();
-
-    /**
-     * Return the uri as string....
-     * @return
-     */
-    String toString();
-
-    /**
-     *
-     * @return
-     */
-    java.net.URI toJavaURI();
-
-    /**
-     *
-     * @return
-     * @throws UnsupportedUriException
-     */
-    URL toJavaURL() throws UnsupportedUriException;
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -1,28 +0,0 @@
-package net.sf.magicmap.core.model;
-
-/**
- * <p>
- * Class UnsupportedUriException ZUSAMMENFASSUNG
- * </p>
- * <p>
- * DETAILS
- * </p>
- *
- * @author Jan Friderici
- *         Date: 21.01.2008
- *         Time: 21:53:51
- */
-public class UnsupportedUriException extends RuntimeException {
-
-    public UnsupportedUriException(String s) {
-        super(s);
-    }
-
-    public UnsupportedUriException(String s, Throwable throwable) {
-        super(s, throwable);
-    }
-
-    public UnsupportedUriException(Throwable throwable) {
-        super(throwable);
-    }
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -1,67 +0,0 @@
-package net.sf.magicmap.core.model.impl;
-
-import net.sf.magicmap.core.model.URI;
-import net.sf.magicmap.core.model.UnsupportedUriException;
-
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-/**
- * <p>
- * Class URIImpl ZUSAMMENFASSUNG
- * </p>
- * <p>
- * DETAILS
- * </p>
- *
- * @author Jan Friderici
- *         Date: 13.01.2008
- *         Time: 11:35:41
- */
-public class URIImpl implements URI {
-    private final String uri;
-
-
-    public URIImpl(String uri) {
-        this.uri = uri;
-    }
-
-    /**
-     *
-     * @return
-     */
-    public String getProtocol() {
-        return uri.substring(0, uri.indexOf(":"));
-    }
-
-    public String toString() {
-        return uri;
-    }
-
-    /**
-     *
-     * @return
-     */
-    public java.net.URI toJavaURI() {
-        try {
-            return new java.net.URI(uri);
-        } catch (URISyntaxException e) {
-            throw new UnsupportedUriException(e);
-        }
-    }
-
-    /**
-     *
-     * @return
-     * @throws UnsupportedUriException
-     */
-    public URL toJavaURL() throws UnsupportedUriException {
-        try {
-            return new java.net.URL(uri);
-        } catch (MalformedURLException e) {
-            throw new UnsupportedUriException(e);
-        }
-    }
-
-}
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -2,7 +2,6 @@
 
 import net.sf.magicmap.client.model.node.INode;
 import net.sf.magicmap.client.model.node.Node;
-import net.sf.magicmap.core.model.URI;
 
 /**
  * <p>
@@ -20,15 +19,15 @@
 
      /**
      * <p>Get the server the nodes is stored.</p>
-     * @return the server id the node is stored with.
+     * @return the server id the perception is stored with.
      */
-    URI getServerID();
+    String getServerID();
 
     /**
      * <p>The nodes id. This ID will vary depending....</p>
-     * @return a unique id for this node.
+     * @return a unique id for this perception.
      */
-    URI getNodeID();
+    String getNodeID();
 
     /**
      * <p>For objects that need the old class.</p>
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -2,7 +2,6 @@
 
 import net.sf.magicmap.client.model.node.INode;
 import net.sf.magicmap.client.model.node.INodeModel;
-import net.sf.magicmap.core.model.URI;
 
 import java.util.List;
 
@@ -21,10 +20,10 @@
 public interface IMagicNodeModel extends INodeModel {
 
     /**
-     * <p>return the server this node model is connected with - if any.</p>
+     * <p>return the server this perception model is connected with - if any.</p>
      * @return the uri for the connected server.
      */
-    URI getServerID();
+    String getServerID();
 
     /**
      *
@@ -34,8 +33,8 @@
 
 
     /**
-     * get an magic node.
-     * @param node the magic node to get.
+     * get an magic perception.
+     * @param node the magic perception to get.
      * @return
      */
     IMagicNode getMagicNode(INode node);
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -21,8 +21,8 @@
     Class<N> getNodeClass();
     
     /**
-     * Calculate a key for the given node.
-     * @param node the node to create a key for.
+     * Calculate a key for the given perception.
+     * @param node the perception to create a key for.
      * @return
      */
     K key(N node);
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -2,8 +2,6 @@
 
 import net.sf.magicmap.client.model.node.Node;
 import net.sf.magicmap.client.model.node.NodeContainer;
-import net.sf.magicmap.core.model.URI;
-import net.sf.magicmap.core.model.impl.URIImpl;
 import net.sf.magicmap.core.model.node.IMagicNode;
 import net.sf.magicmap.core.model.node.IMagicNodeModel;
 
@@ -25,15 +23,15 @@
 public class MagicNode implements IMagicNode {
     private final Node delegate;
     private final IMagicNodeModel magicNodeModel;
-    private final URI nodeURI;
+    private final String nodeURI;
 
     public MagicNode(Node delegate, IMagicNodeModel magicNodeModel) {
         this.delegate = delegate;
         this.magicNodeModel = magicNodeModel;
-        nodeURI  = new URIImpl(
-                magicNodeModel.getServerID().toString()
+        nodeURI  =
+                magicNodeModel.getServerID()
                 + "/" + delegate.getType()
-                + " /" + delegate.getId());
+                + " /" + delegate.getId();
     }
 
 
@@ -141,11 +139,11 @@
         return delegate.getNodeContainer();
     }
 
-    public URI getServerID() {
+    public String getServerID() {
         return getModel().getServerID();
     }
 
-    public URI getNodeID() {
+    public String getNodeID() {
         return nodeURI;
     }
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java	2008-02-04 15:51:35 UTC (rev 731)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java	2008-02-07 21:27:03 UTC (rev 732)
@@ -4,8 +4,6 @@
 import net.sf.magicmap.client.meta.MapInfo;
 import net.sf.magicmap.client.model.location.INodePlacer;
 import net.sf.magicmap.client.model.node.*;
-import net.sf.magicmap.core.model.URI;
-import net.sf.magicmap.core.model.impl.URIImpl;
 import net.sf.magicmap.core.model.node.IMagicNode;
 import net.sf.magicmap.core.model.node.IMagicNodeModel;
 import net.sf.magicmap.core.model.node.INodeIndex;
@@ -27,7 +25,7 @@
  */
 public class MagicNodeModel implements IMagicNodeModel {
     private final INodeModel delegate;
-    private URI serverID;
+    private String serverID;
 
     private final WeakHashMap<Node, IMagicNode> nodeMap = new WeakHashMap<Node, IMagicNode>();
 
@@ -42,10 +40,6 @@
     }
 
 
-    public void setServerID(String serverURL) {
-        serverID = new URIImpl(serverURL);
-    }
-
     /**
      * <p>Create an index to find nodes with a quicknesssssss..</\x9F> 
      * @param function the function to use.
@@ -105,7 +99,7 @@
      *
      * @return get the id of the server....
      */
-    public URI getServerID() {
+    public String getServerID() {
         return serverID;
     }
 
@@ -113,7 +107,7 @@
      *
      * @param serverID
      */
-    public void setServerID(URI serverID) {
+    public void setServerID(String serverID) {
         this.serverID = serverID;
     }
 
@@ -217,7 +211,7 @@
     }
 
     /**
-     * Returns the rotigionals node placer.
+     * Returns the rotigionals perception placer.
      * @return
      */
     public INodePlacer getNodePlacer() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-02-04 17:00:03
      
     | 
| Revision: 731
          http://magicmap.svn.sourceforge.net/magicmap/?rev=731&view=rev
Author:   anweiss
Date:     2008-02-04 07:51:35 -0800 (Mon, 04 Feb 2008)
Log Message:
-----------
renamed pollintevall to pollinterval and selected the correct pollinterval in the options menu at startup
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerPoller.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainFrame.java
    trunk/magicmapclient/src/net/sf/magicmap/client/utils/Settings.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerPoller.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerPoller.java	2008-02-04 15:43:54 UTC (rev 730)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerPoller.java	2008-02-04 15:51:35 UTC (rev 731)
@@ -40,7 +40,7 @@
     }
 
     public void start(){
-        this.timer.scheduleAtFixedRate(pollPositionsTimerTask(), Settings.POLL_DELAY, Settings.getPollIntevall());
+        this.timer.scheduleAtFixedRate(pollPositionsTimerTask(), Settings.POLL_DELAY, Settings.getPollInterval());
         this.timer.scheduleAtFixedRate(pollGeoPointsTimerTask(), Settings.POLL_DELAY + 1000, 120000);
     }
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainFrame.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainFrame.java	2008-02-04 15:43:54 UTC (rev 730)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainFrame.java	2008-02-04 15:51:35 UTC (rev 731)
@@ -253,7 +253,7 @@
         menu.add(dataInvocationRate);
         for (int i = 0; i < MainFrame.numberOfdataInvocationRateAction; i++)
             dataInvocationRate.add(GUIBuilder.createCheckBoxMenuItem(this.dataInvocationRateAction[i], false));
-        this.dataInvocationRateAction[4].setSelected(true);
+        this.dataInvocationRateAction[(Settings.getPollInterval()/1000)-1].setSelected(true);
 
         return menu;
     }
@@ -590,7 +590,7 @@
                 }
             }
         };
-        
+
         this.homepageAction = new MagicAction("homepage") {
 
             /**
@@ -806,7 +806,7 @@
                     for (int j = 0; j < MainFrame.numberOfdataInvocationRateAction; j++)
                         MainFrame.this.dataInvocationRateAction[j].setSelected(false);
                     MainFrame.this.dataInvocationRateAction[thisAction].setSelected(true);
-                    Settings.setPollIntevall((thisAction + 1) * 1000);
+                    Settings.setPollInterval((thisAction + 1) * 1000);
                     Controller.getInstance().restartServerPoller();
                 }
             };
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/utils/Settings.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/utils/Settings.java	2008-02-04 15:43:54 UTC (rev 730)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/utils/Settings.java	2008-02-04 15:51:35 UTC (rev 731)
@@ -36,7 +36,7 @@
     private static final String      settingsFileName       = "settings.ini";
     private static final String      SERVERNAMES_KEY        = "servernames";
     private static final String      LASTSELECTEDSERVER_KEY = "lastselectedserver";
-    private static final String      POLLINTERVALL_KEY      = "pollintevall";
+    private static final String      POLLINTERVAL_KEY       = "pollinterval";
     private static final String      CLIENTNAME_KEY         = "clientname";
     private static final String      STANDALONE_KEY         = "standalone";
     //    private static final String      VIEWOPTION_KEY               = "viewoption";
@@ -55,7 +55,7 @@
     private static ArrayList<String> default_server_list    = new ArrayList<String>();
     private static int               lastSelectedServer     = 0;
     public static final int          TIMEOUT                = 15000;
-    private static int               pollIntevall           = 5000;
+    private static int               pollInterval           = 5000;
     public static final long         POLL_DELAY             = 500;
     public static String             WEBSERVICE_PATH        = "/magicmap/services/";
 
@@ -80,12 +80,12 @@
         Settings.clientMAC = clientMAC;
     }
 
-    public static int getPollIntevall(){
-        return Settings.pollIntevall;
+    public static int getPollInterval(){
+        return Settings.pollInterval;
     }
 
-    public static void setPollIntevall(int pollIntevall){
-        Settings.pollIntevall = pollIntevall;
+    public static void setPollInterval(int pollInterval){
+        Settings.pollInterval = pollInterval;
     }
 
     public static String getClientName(){
@@ -207,11 +207,11 @@
         else
             // default value
             Settings.lastSelectedServer = 0;
-        if ((property = Settings.settingsProperties.getProperty(Settings.POLLINTERVALL_KEY)) != null)
-            Settings.pollIntevall = Integer.parseInt(property.trim());
+        if ((property = Settings.settingsProperties.getProperty(Settings.POLLINTERVAL_KEY)) != null)
+            Settings.pollInterval = Integer.parseInt(property.trim());
         else
             // default value
-            Settings.pollIntevall = 5000;
+            Settings.pollInterval = 5000;
         if ((property = Settings.settingsProperties.getProperty(Settings.CLIENTNAME_KEY)) != null)
             Settings.clientName = property.trim();
         else
@@ -282,7 +282,7 @@
             Settings.settingsProperties.put(Settings.SERVERNAMES_KEY, property.substring(0, property.lastIndexOf(',')));
             Settings.settingsProperties.put(Settings.LASTSELECTEDSERVER_KEY, String
                     .valueOf(Settings.lastSelectedServer));
-            Settings.settingsProperties.put(Settings.POLLINTERVALL_KEY, String.valueOf(Settings.pollIntevall));
+            Settings.settingsProperties.put(Settings.POLLINTERVAL_KEY, String.valueOf(Settings.pollInterval));
             Settings.settingsProperties.put(Settings.CLIENTNAME_KEY, Settings.clientName);
             if (Settings.standAlone)
                 property = "YES";
@@ -297,7 +297,7 @@
                             + "#        This file stores the configuration for MagicMap.          #" + newline
                             + "#                                                                  #" + newline
                             + "####################################################################" + newline
-                            + newline + "# Comma seperated list of default MagicMap-Servers" + newline
+                            + newline + "# Comma separated list of default MagicMap-Servers" + newline
                             + "# servernames= server-url1:port1, server-url2:port2 , ..." + newline + newline
                             + "# lastselectedserver=index" + newline + newline + "# pollintevall=time in ms" + newline
                             + newline + "# clientname=" + newline + newline + "# standalone=(YES|NO)");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-02-04 16:59:42
      
     | 
| Revision: 729
          http://magicmap.svn.sourceforge.net/magicmap/?rev=729&view=rev
Author:   flederohr
Date:     2008-02-04 07:22:07 -0800 (Mon, 04 Feb 2008)
Log Message:
-----------
Introduced new icon-concept
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainGUI.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineTree.java
Added Paths:
-----------
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/AccessPointNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/ClientNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/GeoPosNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/LocationNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/MapNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/AbstractNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/INodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconAndPredicate.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconContainer.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconNotPredicate.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconOrPredicate.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconPredicate.java
Removed Paths:
-------------
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/AccessPointNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/ClientNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GeoPosNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/INodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/LocationNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/MapNodeIcon.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/NodeIcons.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainGUI.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainGUI.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/MainGUI.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,6 +1,5 @@
 /*
- * Created on 21.11.2004
- * Refactored on 15.02.2006
+ * Created on 21.11.2004 Refactored on 15.02.2006
  */
 
 package net.sf.magicmap.client.gui;
@@ -11,17 +10,19 @@
 
 import javax.swing.JComponent;
 
-import net.sf.magicmap.client.gui.utils.AccessPointNodeIcon;
-import net.sf.magicmap.client.gui.utils.ClientNodeIcon;
-import net.sf.magicmap.client.gui.utils.GeoPosNodeIcon;
-import net.sf.magicmap.client.gui.utils.LocationNodeIcon;
-import net.sf.magicmap.client.gui.utils.MapNodeIcon;
-import net.sf.magicmap.client.gui.utils.NodeIcons;
+import net.sf.magicmap.client.gui.icons.AccessPointNodeIcon;
+import net.sf.magicmap.client.gui.icons.ClientNodeIcon;
+import net.sf.magicmap.client.gui.icons.GeoPosNodeIcon;
+import net.sf.magicmap.client.gui.icons.LocationNodeIcon;
+import net.sf.magicmap.client.gui.icons.MapNodeIcon;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconContainer;
 import net.sf.magicmap.client.model.node.INodeSelectionModel;
+import net.sf.magicmap.client.model.node.NodeModelConstants;
 import net.sf.magicmap.client.model.node.NodeSelectionModel;
 
 /**
  * The main GUI window
+ * 
  * @author thuebner
  * @author Florian Lederer
  */
@@ -34,6 +35,7 @@
 
     /**
      * Getter for the singleton instance of the main GUI
+     * 
      * @return the main GUI (creates a new one if none exists)
      */
     public static MainGUI getInstance(){
@@ -41,31 +43,30 @@
         return MainGUI.mainGUI;
     }
 
-    private Map<String, JComponent> jComponentMap = new HashMap<String, JComponent>();
+    private Map<String, JComponent> jComponentMap      = new HashMap<String, JComponent>();
     private INodeSelectionModel     nodeSelectionModel;
-    private NodeIcons               nodeIcons;
+    private NodeIconContainer       nodeIconContainer;
     private MainFrame               mainFrame;
 
+    public static final String      VIEW_KEY_MAP_VIEW  = "mapView";
+    public static final String      VIEW_KEY_MAP_PANEL = "mapPanel";
 
-    public static final String VIEW_KEY_MAP_VIEW = "mapView";
-    public static final String VIEW_KEY_MAP_PANEL = "mapPanel";
-
     /**
-     * Erzeugt Hauptfenster der Anwendung.
-     * Private constructor, only used by getInstance() to fulfill singleton pattern
+     * Erzeugt Hauptfenster der Anwendung. Private constructor, only used by
+     * getInstance() to fulfill singleton pattern
      */
     private MainGUI() {
 
         // NodeSelectionModel
         nodeSelectionModel = new NodeSelectionModel();
 
-        // NodeIcons
-        nodeIcons = NodeIcons.getInstance();
-        nodeIcons.registerNodeIcon(new ClientNodeIcon());
-        nodeIcons.registerNodeIcon(new AccessPointNodeIcon());
-        nodeIcons.registerNodeIcon(new LocationNodeIcon());
-        nodeIcons.registerNodeIcon(new GeoPosNodeIcon());
-        nodeIcons.registerNodeIcon(new MapNodeIcon());
+        // NodeIconContainer
+        nodeIconContainer = NodeIconContainer.getInstance();
+        nodeIconContainer.registerNodeIcon(NodeModelConstants.NODETYPE_CLIENT, new ClientNodeIcon());
+        nodeIconContainer.registerNodeIcon(NodeModelConstants.NODETYPE_ACCESSPOINT, new AccessPointNodeIcon());
+        nodeIconContainer.registerNodeIcon(NodeModelConstants.NODETYPE_LOCATION, new LocationNodeIcon());
+        nodeIconContainer.registerNodeIcon(NodeModelConstants.NODETYPE_GEOPOS, new GeoPosNodeIcon());
+        nodeIconContainer.registerNodeIcon(NodeModelConstants.NODETYPE_MAP, new MapNodeIcon());
     }
 
     /**
@@ -95,7 +96,7 @@
         return nodeSelectionModel;
     }
 
-    public NodeIcons getNodeIcons(){
-        return nodeIcons;
+    public NodeIconContainer getNodeIconContainer(){
+        return nodeIconContainer;
     }
 }
Copied: trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/AccessPointNodeIcon.java (from rev 726, trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/AccessPointNodeIcon.java)
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/AccessPointNodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/AccessPointNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,108 @@
+
+package net.sf.magicmap.client.gui.icons;
+
+import java.awt.Color;
+
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.gui.utils.icon.AbstractNodeIcon;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconAndPredicate;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconPredicate;
+import net.sf.magicmap.client.model.node.AccessPointNode;
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+public class AccessPointNodeIcon extends AbstractNodeIcon {
+
+    private final NodeIconPredicate apIsHiddenPredicate       = new NodeIconPredicate() {
+
+                                                                  public boolean showIcon(Node node){
+                                                                      return ((AccessPointNode) node).isHidden();
+                                                                  };
+                                                              };
+
+    private final NodeIconPredicate apIsFixPredicate          = new NodeIconPredicate() {
+
+                                                                  public boolean showIcon(Node node){
+                                                                      return ((AccessPointNode) node).isFix();
+                                                                  };
+                                                              };
+
+    private final NodeIconPredicate apIsHiddenAndFixPredicate = new NodeIconAndPredicate(apIsHiddenPredicate,
+                                                                      apIsFixPredicate);
+
+    public AccessPointNodeIcon() {
+        super();
+
+        try {
+
+            addBackgroundIcon(GUIBuilder.getToolIcon("accesspoint.png", "NodeIcons"), NodeIconPredicate.TRUE);
+            addBackgroundIcon(GUIBuilder.getToolIcon("accesspoint_hidden.png", "NodeIcons"), apIsHiddenPredicate);
+
+            addOverlayIcon(GUIBuilder.getToolIcon("anchor_white.png", "NodeIcons"), apIsFixPredicate);
+            addOverlayIcon(GUIBuilder.getToolIcon("anchor_black.png", "NodeIcons"), apIsHiddenAndFixPredicate);
+
+        } catch (SecurityException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    //
+    //    ImageIcon accessPoint;
+    //    ImageIcon accessPointFixed;
+    //    ImageIcon accessPointHidden;
+    //    ImageIcon accessPointHiddenFixed;
+    //
+    //    private ImageIcon getAccessPoint(){
+    //        if (accessPoint == null) accessPoint = GUIBuilder.getToolIcon("accesspoint.png", "NodeIconContainer");
+    //        return accessPoint;
+    //    }
+    //
+    //    private ImageIcon getAccessPointFixed(){
+    //        if (accessPointFixed == null) {
+    //            final ImageIcon anchor = GUIBuilder.getToolIcon("anchor_white.png", "NodeIconContainer");
+    //            accessPointFixed = new ImageIcon(getAccessPoint().getImage()) {
+    //
+    //                @Override
+    //                public synchronized void paintIcon(Component c, Graphics g, int x, int y){
+    //                    super.paintIcon(c, g, x, y);
+    //                    g.drawImage(anchor.getImage(), x, y, x + getIconWidth(), y + getIconHeight(), 0, 0, anchor
+    //                            .getIconWidth(), anchor.getIconHeight(), null);
+    //                }
+    //            };
+    //        }
+    //        return accessPointFixed;
+    //    }
+    //
+    //    private ImageIcon getAccessPointHidden(){
+    //        if (accessPointHidden == null)
+    //            accessPointHidden = GUIBuilder.getToolIcon("accesspoint_hidden.png", "NodeIconContainer");
+    //        return accessPointHidden;
+    //    }
+    //
+    //    private ImageIcon getAccessPointHiddenFixed(){
+    //        if (accessPointHiddenFixed == null) {
+    //            final ImageIcon anchor = GUIBuilder.getToolIcon("anchor_black.png", "NodeIconContainer");
+    //            accessPointHiddenFixed = new ImageIcon(getAccessPointHidden().getImage()) {
+    //
+    //                @Override
+    //                public synchronized void paintIcon(Component c, Graphics g, int x, int y){
+    //                    super.paintIcon(c, g, x, y);
+    //                    g.drawImage(anchor.getImage(), x, y, x + getIconWidth(), y + getIconHeight(), 0, 0, anchor
+    //                            .getIconWidth(), anchor.getIconHeight(), null);
+    //                }
+    //            };
+    //        }
+    //        return accessPointHiddenFixed;
+    //    }
+
+    public Color getBgColor(Node node){
+        return Color.RED;
+    }
+
+    public Color getFgColor(Node node){
+        return Color.BLACK;
+    }
+}
Copied: trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/ClientNodeIcon.java (from rev 726, trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/ClientNodeIcon.java)
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/ClientNodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/ClientNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,42 @@
+
+package net.sf.magicmap.client.gui.icons;
+
+import java.awt.Color;
+
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.gui.utils.icon.AbstractNodeIcon;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconPredicate;
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+public class ClientNodeIcon extends AbstractNodeIcon {
+
+    private final NodeIconPredicate clientIsFixPredicate = new NodeIconPredicate() {
+
+                                                             public boolean showIcon(Node node){
+                                                                 return node.isFix();
+                                                             }
+                                                         };
+
+    public ClientNodeIcon() {
+        super();
+        try {
+            addBackgroundIcon(GUIBuilder.getToolIcon("client.png", "NodeIcons"), NodeIconPredicate.TRUE);
+            addOverlayIcon(GUIBuilder.getToolIcon("anchor_black.png", "NodeIcons"), clientIsFixPredicate);
+        } catch (SecurityException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    public Color getBgColor(Node node){
+        return Color.GREEN;
+    }
+
+    public Color getFgColor(Node node){
+        return Color.BLACK;
+    }
+
+}
Copied: trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/GeoPosNodeIcon.java (from rev 726, trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GeoPosNodeIcon.java)
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/GeoPosNodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/GeoPosNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,31 @@
+
+package net.sf.magicmap.client.gui.icons;
+
+import java.awt.Color;
+
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.gui.utils.icon.AbstractNodeIcon;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconPredicate;
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+public class GeoPosNodeIcon extends AbstractNodeIcon {
+
+    //      if (geoPos == null) geoPos = GUIBuilder.getToolIcon("geopos.png", "NodeIconContainer");
+    //           if (geoPosBig == null) geoPosBig = GUIBuilder.getToolIcon("geopos_big.png", "NodeIconContainer");
+
+    public GeoPosNodeIcon() {
+        super();
+        addBackgroundIcon(GUIBuilder.getToolIcon("geopos.png", "NodeIcons"), NodeIconPredicate.TRUE);
+    }
+
+    public Color getBgColor(Node node){
+        return Color.YELLOW;
+    }
+
+    public Color getFgColor(Node node){
+        return Color.BLACK;
+    }
+}
Copied: trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/LocationNodeIcon.java (from rev 726, trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/LocationNodeIcon.java)
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/LocationNodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/LocationNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,44 @@
+
+package net.sf.magicmap.client.gui.icons;
+
+import java.awt.Color;
+
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.gui.utils.icon.AbstractNodeIcon;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconPredicate;
+import net.sf.magicmap.client.model.node.LocationNode;
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+public class LocationNodeIcon extends AbstractNodeIcon {
+
+    private NodeIconPredicate locationUpdateIconPredicate = new NodeIconPredicate() {
+
+                                                              public boolean showIcon(Node node){
+                                                                  return ((LocationNode) node).isUpdate();
+                                                              }
+                                                          };
+
+    public LocationNodeIcon() {
+        super();
+        try {
+            addBackgroundIcon(GUIBuilder.getToolIcon("location.png", "NodeIcons"), NodeIconPredicate.TRUE);
+            addBackgroundIcon(GUIBuilder.getToolIcon("location_rescan.png", "NodeIcons"), locationUpdateIconPredicate);
+        } catch (SecurityException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public Color getBgColor(Node node){
+        return Color.BLUE;
+    }
+
+    @Override
+    public Color getFgColor(Node node){
+        return Color.BLACK;
+    }
+}
Copied: trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/MapNodeIcon.java (from rev 726, trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/MapNodeIcon.java)
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/MapNodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/icons/MapNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,30 @@
+
+package net.sf.magicmap.client.gui.icons;
+
+import java.awt.Color;
+
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.gui.utils.icon.AbstractNodeIcon;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconPredicate;
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+public class MapNodeIcon extends AbstractNodeIcon {
+
+    public MapNodeIcon() {
+        super();
+        addBackgroundIcon(GUIBuilder.getToolIcon("map.png", "NodeIcons"), NodeIconPredicate.TRUE);
+    }
+
+    @Override
+    public Color getBgColor(Node node){
+        return Color.GRAY;
+    }
+
+    @Override
+    public Color getFgColor(Node node){
+        return Color.BLACK;
+    }
+}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/AccessPointNodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/AccessPointNodeIcon.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/AccessPointNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,98 +0,0 @@
-
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import net.sf.magicmap.client.model.node.AccessPointNode;
-import net.sf.magicmap.client.model.node.INodeModel;
-import net.sf.magicmap.client.model.node.Node;
-
-/**
- * @author Florian Lederer
- */
-public class AccessPointNodeIcon implements INodeIcon {
-
-    ImageIcon accessPoint;
-    ImageIcon accessPointFixed;
-    ImageIcon accessPointHidden;
-    ImageIcon accessPointHiddenFixed;
-
-    private ImageIcon getAccessPoint(){
-        if (accessPoint == null) accessPoint = GUIBuilder.getToolIcon("accesspoint.png", "NodeIcons");
-        return accessPoint;
-    }
-
-    private ImageIcon getAccessPointFixed(){
-        if (accessPointFixed == null) {
-            final ImageIcon anchor = GUIBuilder.getToolIcon("anchor_white.png", "NodeIcons");
-            accessPointFixed = new ImageIcon(getAccessPoint().getImage()) {
-
-                @Override
-                public synchronized void paintIcon(Component c, Graphics g, int x, int y){
-                    super.paintIcon(c, g, x, y);
-                    g.drawImage(anchor.getImage(), x, y, x + getIconWidth(), y + getIconHeight(), 0, 0, anchor
-                            .getIconWidth(), anchor.getIconHeight(), null);
-                }
-            };
-        }
-        return accessPointFixed;
-    }
-
-    private ImageIcon getAccessPointHidden(){
-        if (accessPointHidden == null)
-            accessPointHidden = GUIBuilder.getToolIcon("accesspoint_hidden.png", "NodeIcons");
-        return accessPointHidden;
-    }
-
-    private ImageIcon getAccessPointHiddenFixed(){
-        if (accessPointHiddenFixed == null) {
-            final ImageIcon anchor = GUIBuilder.getToolIcon("anchor_black.png", "NodeIcons");
-            accessPointHiddenFixed = new ImageIcon(getAccessPointHidden().getImage()) {
-
-                @Override
-                public synchronized void paintIcon(Component c, Graphics g, int x, int y){
-                    super.paintIcon(c, g, x, y);
-                    g.drawImage(anchor.getImage(), x, y, x + getIconWidth(), y + getIconHeight(), 0, 0, anchor
-                            .getIconWidth(), anchor.getIconHeight(), null);
-                }
-            };
-        }
-        return accessPointHiddenFixed;
-    }
-
-    public Color getBgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Color getFgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Icon getIcon(Node node){
-        AccessPointNode ap = (AccessPointNode) node;
-        if (ap.isHidden()) {
-            if (ap.isFix())
-                return getAccessPointHiddenFixed();
-            else
-                return getAccessPointHidden();
-        } else {
-            if (ap.isFix())
-                return getAccessPointFixed();
-            else
-                return getAccessPoint();
-        }
-    }
-
-    public Class getNodeClass(){
-        return AccessPointNode.class;
-    }
-
-    public int getNodeType(){
-        return INodeModel.NODETYPE_ACCESSPOINT;
-    }
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/ClientNodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/ClientNodeIcon.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/ClientNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,66 +0,0 @@
-
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import net.sf.magicmap.client.model.node.ClientNode;
-import net.sf.magicmap.client.model.node.INodeModel;
-import net.sf.magicmap.client.model.node.Node;
-
-/**
- * @author Florian Lederer
- */
-public class ClientNodeIcon implements INodeIcon {
-
-    private ImageIcon client;
-    private ImageIcon clientFixed;
-
-    private ImageIcon getClient(){
-        if (client == null) client = GUIBuilder.getToolIcon("client.png", "NodeIcons");
-        return client;
-    }
-
-    private ImageIcon getClientFixed(){
-        if (clientFixed == null) {
-            final ImageIcon anchor = GUIBuilder.getToolIcon("anchor_black.png", "NodeIcons");
-            clientFixed = new ImageIcon(getClient().getImage()) {
-
-                @Override
-                public synchronized void paintIcon(Component c, Graphics g, int x, int y){
-                    super.paintIcon(c, g, x, y);
-                    g.drawImage(anchor.getImage(), x, y, x + getIconWidth(), y + getIconHeight(), 0, 0, anchor
-                            .getIconWidth(), anchor.getIconHeight(), null);
-                }
-            };
-        }
-        return clientFixed;
-    }
-
-    public Color getBgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Color getFgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Icon getIcon(Node node){
-        if (node.isFix()) return getClientFixed();
-        return getClient();
-
-    }
-
-    public Class getNodeClass(){
-        return ClientNode.class;
-    }
-
-    public int getNodeType(){
-        return INodeModel.NODETYPE_CLIENT;
-    }
-
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GeoPosNodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GeoPosNodeIcon.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GeoPosNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,51 +0,0 @@
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import net.sf.magicmap.client.model.node.GeoPosNode;
-import net.sf.magicmap.client.model.node.INodeModel;
-import net.sf.magicmap.client.model.node.Node;
-
-/**
- * @author Florian Lederer
- */
-public class GeoPosNodeIcon implements INodeIcon {
-
-    private ImageIcon geoPos;
-    private ImageIcon geoPosBig;
-
-    private ImageIcon getGeoPos(){
-        if (geoPos == null) geoPos = GUIBuilder.getToolIcon("geopos.png", "NodeIcons");
-        return geoPos;
-    }
-    
-    private ImageIcon getGeoPosBig(){
-        if (geoPosBig == null) geoPosBig = GUIBuilder.getToolIcon("geopos_big.png", "NodeIcons");
-        return geoPosBig;
-    }
-
-    public Color getBgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Color getFgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Icon getIcon(Node node){
-        return getGeoPos();
-
-    }
-
-    public Class getNodeClass(){
-        return GeoPosNode.class;
-    }
-
-    public int getNodeType(){
-        return INodeModel.NODETYPE_GEOPOS;
-    }
-
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/INodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/INodeIcon.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/INodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,23 +0,0 @@
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-
-import javax.swing.Icon;
-
-import net.sf.magicmap.client.model.node.Node;
-
-
-/**
- *
- * @author Jan Friderici
- * @author Florian Lederer
- *
- * @param <T> the nodetype this is icon is for.
- */
-public interface INodeIcon {
-    public int getNodeType();
-    public Class getNodeClass();
-    public Icon getIcon(Node node);
-    public Color getFgColor(Node node);
-    public Color getBgColor(Node node);
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/LocationNodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/LocationNodeIcon.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/LocationNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,57 +0,0 @@
-
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import net.sf.magicmap.client.model.node.INodeModel;
-import net.sf.magicmap.client.model.node.LocationNode;
-import net.sf.magicmap.client.model.node.Node;
-
-/**
- * @author Florian Lederer
- */
-public class LocationNodeIcon implements INodeIcon {
-
-    ImageIcon location;
-    ImageIcon locationFixed;
-    ImageIcon locationRescan;
-
-    private ImageIcon getLocation(){
-        if (location == null) location = GUIBuilder.getToolIcon("location.png", "NodeIcons");
-        return location;
-    }
-
-    private ImageIcon getLocationRescan(){
-        if (locationRescan == null) locationRescan = GUIBuilder.getToolIcon("location_rescan.png", "NodeIcons");
-        return locationRescan;
-    }
-
-    public Color getBgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Color getFgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Icon getIcon(Node node){
-        if (node.isUpdate()) {
-            return getLocationRescan();
-        } else {
-            return getLocation();
-        }
-    }
-
-    public Class getNodeClass(){
-        return LocationNode.class;
-    }
-
-    public int getNodeType(){
-        return INodeModel.NODETYPE_LOCATION;
-    }
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/MapNodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/MapNodeIcon.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/MapNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,45 +0,0 @@
-
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-
-import net.sf.magicmap.client.model.node.INodeModel;
-import net.sf.magicmap.client.model.node.MapNode;
-import net.sf.magicmap.client.model.node.Node;
-
-/**
- * @author Florian Lederer
- */
-public class MapNodeIcon implements INodeIcon {
-
-    private ImageIcon map;
-
-    private ImageIcon getMap(){
-        if (map == null) map = GUIBuilder.getToolIcon("map.png", "NodeIcons");
-        return map;
-    }
-
-    public Color getBgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Color getFgColor(Node node){
-        return Color.BLACK;
-    }
-
-    public Icon getIcon(Node node){
-        return getMap();
-
-    }
-
-    public Class getNodeClass(){
-        return MapNode.class;
-    }
-
-    public int getNodeType(){
-        return INodeModel.NODETYPE_MAP;
-    }
-}
Deleted: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/NodeIcons.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/NodeIcons.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/NodeIcons.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -1,68 +0,0 @@
-
-package net.sf.magicmap.client.gui.utils;
-
-import java.awt.Color;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.swing.Icon;
-
-import net.sf.magicmap.client.model.node.Node;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author Florian Lederer
- */
-public class NodeIcons {
-
-    private static NodeIcons            ni           = null;
-
-    private static Logger               log          = Logger.getLogger(NodeIcons.class);
-
-    private static final INodeIcon      DEFAULT_ICON = new INodeIcon() {
-
-                                                         Icon defaultIcon = GUIBuilder.getToolIcon("default.png",
-                                                                                  "NodeIcons");
-
-                                                         public Color getBgColor(Node node){
-                                                             return Color.BLACK;
-                                                         }
-
-                                                         public Color getFgColor(Node node){
-                                                             return Color.BLACK;
-                                                         }
-
-                                                         public Icon getIcon(Node node){
-                                                             return defaultIcon;
-                                                         }
-
-                                                         public Class getNodeClass(){
-                                                             return null;
-                                                         }
-
-                                                         public int getNodeType(){
-                                                             return -1;
-                                                         }
-                                                     };
-
-    private final Map<Class, INodeIcon> iconMap      = new HashMap<Class, INodeIcon>();
-
-    private NodeIcons() {}
-
-    public static NodeIcons getInstance(){
-        if (NodeIcons.ni == null) NodeIcons.ni = new NodeIcons();
-        return NodeIcons.ni;
-    }
-
-    public INodeIcon getNodeIcon(Node node){
-        if (node == null) return null;
-        if (iconMap.containsKey(node.getClass())) return iconMap.get(node.getClass());
-        return DEFAULT_ICON;
-    }
-
-    public void registerNodeIcon(INodeIcon icon){
-        iconMap.put(icon.getNodeClass(), icon);
-    }
-
-}
\ No newline at end of file
Added: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/AbstractNodeIcon.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/AbstractNodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/AbstractNodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,105 @@
+
+package net.sf.magicmap.client.gui.utils.icon;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.util.ArrayList;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+
+abstract public class AbstractNodeIcon implements INodeIcon {
+
+    private class IconStore {
+
+        public NodeIconPredicate condition;
+        public ImageIcon         icon;
+
+        public IconStore(NodeIconPredicate condition, ImageIcon icon) {
+            this.condition = condition;
+            this.icon = icon;
+        }
+    }
+
+    private ArrayList<IconStore> overlayIcons    = new ArrayList<IconStore>();
+
+    private ArrayList<IconStore> backgroundIcons = new ArrayList<IconStore>();
+
+    abstract public Color getBgColor(Node node);
+
+    abstract public Color getFgColor(Node node);
+
+    public Icon getIcon(Node node){
+
+        final ImageIcon overlayIcon = getOverlayIcon(node);
+        final ImageIcon backgroundIcon = getBackgroundIcon(node);
+
+        if (overlayIcon == null)
+            return backgroundIcon;
+        else if (backgroundIcon == null)
+            return overlayIcon;
+        else
+            return new ImageIcon(getBackgroundIcon(node).getImage()) {
+
+                /**
+                 * 
+                 */
+                private static final long serialVersionUID = 1L;
+
+                @Override
+                public synchronized void paintIcon(Component c, Graphics g, int x, int y){
+                    super.paintIcon(c, g, x, y);
+                    g.drawImage(overlayIcon.getImage(), x, y, x + getIconWidth(), y + getIconHeight(), 0, 0,
+                            overlayIcon.getIconWidth(), overlayIcon.getIconHeight(), null);
+                }
+            };
+    }
+
+    public void addBackgroundIcon(ImageIcon icon, NodeIconPredicate condition){
+        backgroundIcons.add(0, new IconStore(condition, icon));
+    }
+
+    public void addOverlayIcon(ImageIcon icon, NodeIconPredicate condition){
+        overlayIcons.add(0, new IconStore(condition, icon));
+    }
+
+    protected ImageIcon getBackgroundIcon(final Node node){
+        ImageIcon icon = null;
+        for (IconStore store : backgroundIcons) {
+            try {
+                if (store.condition.showIcon(node)) {
+                    icon = store.icon;
+                    break;
+                }
+            } catch (IllegalArgumentException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+        return icon;
+    }
+
+    protected ImageIcon getOverlayIcon(final Node node){
+        ImageIcon icon = null;
+        for (IconStore store : overlayIcons) {
+            try {
+                if ((Boolean) store.condition.showIcon(node)) {
+                    icon = store.icon;
+                    break;
+                }
+            } catch (IllegalArgumentException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+        return icon;
+    }
+
+}
Copied: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/INodeIcon.java (from rev 726, trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/INodeIcon.java)
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/INodeIcon.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/INodeIcon.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,23 @@
+
+package net.sf.magicmap.client.gui.utils.icon;
+
+import java.awt.Color;
+
+import javax.swing.Icon;
+
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ *
+ * @author Jan Friderici
+ * @author Florian Lederer
+ *
+ */
+public interface INodeIcon {
+    
+    public Icon getIcon(Node node);
+
+    public Color getFgColor(Node node);
+
+    public Color getBgColor(Node node);
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconAndPredicate.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconAndPredicate.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconAndPredicate.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,24 @@
+
+package net.sf.magicmap.client.gui.utils.icon;
+
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+
+public class NodeIconAndPredicate implements NodeIconPredicate {
+
+    private final NodeIconPredicate first;
+    private final NodeIconPredicate second;
+
+    public NodeIconAndPredicate(NodeIconPredicate first, NodeIconPredicate second) {
+
+        this.first = first;
+        this.second = second;
+    }
+
+    public boolean showIcon(Node node){
+        return first.showIcon(node) && second.showIcon(node);
+    }
+}
\ No newline at end of file
Added: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconContainer.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconContainer.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconContainer.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,62 @@
+
+package net.sf.magicmap.client.gui.utils.icon;
+
+import java.awt.Color;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.Icon;
+
+import net.sf.magicmap.client.gui.utils.GUIBuilder;
+import net.sf.magicmap.client.model.node.Node;
+
+import org.apache.log4j.Logger;
+
+/**
+ * @author Florian Lederer
+ */
+public class NodeIconContainer {
+
+    private static NodeIconContainer            ni           = null;
+
+    private static Logger               log          = Logger.getLogger(NodeIconContainer.class);
+
+    public static final INodeIcon      DEFAULT_ICON = new INodeIcon() {
+
+                                                         Icon defaultIcon = GUIBuilder.getToolIcon("default.png",
+                                                                                  "NodeIcons");
+
+                                                         public Color getBgColor(Node node){
+                                                             return Color.BLACK;
+                                                         }
+
+                                                         public Color getFgColor(Node node){
+                                                             return Color.BLACK;
+                                                         }
+
+                                                         public Icon getIcon(Node node){
+                                                             return defaultIcon;
+                                                         }
+                                                     };
+
+    private final Map<Integer, INodeIcon> iconMap      = new HashMap<Integer, INodeIcon>();
+
+    private NodeIconContainer() {}
+
+    public static NodeIconContainer getInstance(){
+        if (NodeIconContainer.ni == null) NodeIconContainer.ni = new NodeIconContainer();
+        return NodeIconContainer.ni;
+    }
+
+    public INodeIcon getNodeIcon(Node node){
+        if (node == null) return null;
+        // TODO: replace getType() with getCategory() when implemented  
+        if (iconMap.containsKey(node.getType())) return iconMap.get(node.getType());
+        return DEFAULT_ICON;
+    }
+
+    public void registerNodeIcon(int category, INodeIcon icon){
+        iconMap.put(category, icon);
+    }
+
+}
\ No newline at end of file
Added: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconNotPredicate.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconNotPredicate.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconNotPredicate.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,22 @@
+
+package net.sf.magicmap.client.gui.utils.icon;
+
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+
+public class NodeIconNotPredicate implements NodeIconPredicate {
+
+    private final NodeIconPredicate other;
+
+    public NodeIconNotPredicate(NodeIconPredicate other) {
+        this.other = other;
+    }
+
+    public boolean showIcon(Node node){
+        return !other.showIcon(node);
+    }
+
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconOrPredicate.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconOrPredicate.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconOrPredicate.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,24 @@
+
+package net.sf.magicmap.client.gui.utils.icon;
+
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+
+public class NodeIconOrPredicate implements NodeIconPredicate {
+
+    private final NodeIconPredicate first;
+    private final NodeIconPredicate second;
+
+    public NodeIconOrPredicate(NodeIconPredicate first, NodeIconPredicate second) {
+
+        this.first = first;
+        this.second = second;
+    }
+
+    public boolean showIcon(Node node){
+        return first.showIcon(node) || second.showIcon(node);
+    }
+}
\ No newline at end of file
Added: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconPredicate.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconPredicate.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/icon/NodeIconPredicate.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -0,0 +1,25 @@
+package net.sf.magicmap.client.gui.utils.icon;
+
+import net.sf.magicmap.client.model.node.Node;
+
+/**
+ * @author Florian Lederer
+ */
+
+
+public interface NodeIconPredicate {
+
+    public boolean showIcon(Node node);
+    
+    public static final NodeIconPredicate TRUE = new NodeIconPredicate() {
+        public boolean showIcon(Node node) {
+            return true;
+        };
+    };
+
+    public static final NodeIconPredicate FALSE = new NodeIconPredicate() {
+        public boolean showIcon(Node node) {
+            return false;
+        };
+    };
+}
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/MapView.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -26,7 +26,7 @@
 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.NodeIcons;
+import net.sf.magicmap.client.gui.utils.icon.NodeIconContainer;
 import net.sf.magicmap.client.meta.MapInfo;
 import net.sf.magicmap.client.model.location.INodePlacer;
 import net.sf.magicmap.client.model.location.jung.JungNodePlacer;
@@ -102,7 +102,7 @@
 
     private boolean             calculateHeight           = false;
 
-    private static Logger       log                       = Logger.getLogger(NodeIcons.class);
+    private static Logger       log                       = Logger.getLogger(NodeIconContainer.class);
 
     // @TODO TEST LAYOUT!
     JungNodePlacer              layoutModel;
@@ -210,7 +210,7 @@
                         if (!showLocations) return null;
                         break;
                 }
-                return MainGUI.getInstance().getNodeIcons().getNodeIcon(node).getFgColor(node);
+                return MainGUI.getInstance().getNodeIconContainer().getNodeIcon(node).getFgColor(node);
             }
 
             public Color getBackColor(Vertex v){
@@ -226,7 +226,7 @@
                         if (!showLocations) return null;
                         break;
                 }
-                return MainGUI.getInstance().getNodeIcons().getNodeIcon(node).getBgColor(node);
+                return MainGUI.getInstance().getNodeIconContainer().getNodeIcon(node).getBgColor(node);
             }
 
             public Icon getIcon(Vertex v){
@@ -242,7 +242,7 @@
                         if (!showLocations) return null;
                         break;
                 }
-                return MainGUI.getInstance().getNodeIcons().getNodeIcon(node).getIcon(node);
+                return MainGUI.getInstance().getNodeIconContainer().getNodeIcon(node).getIcon(node);
             }
         });
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineTree.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineTree.java	2008-02-01 13:41:00 UTC (rev 728)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineTree.java	2008-02-04 15:22:07 UTC (rev 729)
@@ -88,7 +88,7 @@
             } else {
                 c = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
                 c.setText(node.getDisplayName());
-                Icon icon = MainGUI.getInstance().getNodeIcons().getNodeIcon(node).getIcon(node);
+                Icon icon = MainGUI.getInstance().getNodeIconContainer().getNodeIcon(node).getIcon(node);
                 if (icon == null) icon = this.getDefaultLeafIcon();
                 c.setIcon(icon);
             }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-02-04 15:44:17
      
     | 
| Revision: 730
          http://magicmap.svn.sourceforge.net/magicmap/?rev=730&view=rev
Author:   flederohr
Date:     2008-02-04 07:43:54 -0800 (Mon, 04 Feb 2008)
Log Message:
-----------
added right-click-menu for accesspoint-hiding
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java	2008-02-04 15:22:07 UTC (rev 729)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java	2008-02-04 15:43:54 UTC (rev 730)
@@ -333,9 +333,12 @@
             case MouseEvent.BUTTON3 :
                 // TODO: right-click-menu
                 Node node;
-                // check if MapNode is selected
                 if ((node = ((OutlineTreeNode) ((OutlineTree) e.getSource()).getSelectionPath().getLastPathComponent())
-                        .getNode()) instanceof Node) this.getMenuContainer().buildMenu(node, new JPopupMenu()).show(this, e.getX(), e.getY());
+                        .getNode()) instanceof Node){ 
+                    JPopupMenu menu;
+                    if((menu = this.getMenuContainer().buildMenu(node, new JPopupMenu())).getComponentCount() > 0)
+                        menu.show(this, e.getX(), e.getY());
+                }
                 break;
         }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-02-01 13:41:10
      
     | 
| Revision: 728
          http://magicmap.svn.sourceforge.net/magicmap/?rev=728&view=rev
Author:   anweiss
Date:     2008-02-01 05:41:00 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
added interface functions to edit the attributes hashmap for every node
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/core/model/node/impl/MagicNode.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java	2008-02-01 13:35:17 UTC (rev 727)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java	2008-02-01 13:41:00 UTC (rev 728)
@@ -4,7 +4,6 @@
 
 package net.sf.magicmap.client.controller;
 
-
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -14,7 +13,15 @@
 import net.sf.magicmap.client.gui.MainGUI;
 import net.sf.magicmap.client.gui.utils.GUIUtils;
 import net.sf.magicmap.client.gui.views.MapView;
-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;
@@ -63,23 +70,23 @@
      * Das Knotenmodel.
      */
 
-    private IMagicNodeModel   nodeModel;                // Model f\xFCr Graphen
+    private IMagicNodeModel         nodeModel;                                         // Model f\xFCr Graphen
 
-    private ClientNode        client;                   // Ausgezeichneter Knoten
+    private ClientNode              client;                                            // Ausgezeichneter Knoten
 
-    private HashMap<String, String> ClientAttributes = new HashMap<String,String>();         // zus\xE4tzliche Attribute f\xFCr den Clienten
+    private HashMap<String, String> ClientAttributes   = new HashMap<String, String>(); // zus\xE4tzliche Attribute f\xFCr den Clienten
 
-    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 boolean                 invisble;                 // Invisible-Modus (keine Daten an Server)
+    private boolean                 invisble;                                          // Invisible-Modus (keine Daten an Server)
 
     private ScannerAllocator        scannerAllocator;
     private PluginManager           pluginManager;
@@ -541,20 +548,44 @@
         } catch (MalformedURLException e) {} catch (IOException e) {}
     }
 
+    /*
+     * (non-Javadoc)
+     * @see net.sf.magicmap.client.controller.IController#getClientAttributes()
+     */
     public HashMap<String, String> getClientAttributes(){
         return ClientAttributes;
     }
 
-    public void setClientAttributes(HashMap<String, String> clientAttributes){
+    /*
+     * (non-Javadoc)
+     * @see net.sf.magicmap.client.controller.IController#setClientInterfaceAttributes(java.util.HashMap)
+     */
+    public void setClientInterfaceAttributes(HashMap<String, String> clientAttributes){
         ClientAttributes = clientAttributes;
     }
 
-    public void addInterface(HashMap<String, String> intorface){
-//        int count = Integer.parseInt(this.getClientAttributes().get(DriverInformations.NUMBEROFINTERFACES));
+    /*
+     * (non-Javadoc)
+     * @see net.sf.magicmap.client.controller.IController#addClientInterface(java.util.HashMap)
+     */
+    public void addClientInterface(HashMap<String, String> intorface){
+        //        int count = Integer.parseInt(this.getClientAttributes().get(DriverInformations.NUMBEROFINTERFACES));
         if (!(this.getClientAttributes().containsValue(intorface.get(DriverInformations.DEVICENAME)))) {
-//            count++;
-//            this.ClientAttributes.put(DriverInformations.NUMBEROFINTERFACES, String.valueOf(count));
+            //            count++;
+            //            this.ClientAttributes.put(DriverInformations.NUMBEROFINTERFACES, String.valueOf(count));
             this.ClientAttributes.putAll(intorface);
         }
     }
+
+    /*
+     * (non-Javadoc)
+     * @see net.sf.magicmap.client.controller.IController#addAttributeForSelected(java.lang.String, java.lang.String)
+     */
+    public void addAttributeForSelected(String key, String value){
+        MainGUI.getInstance().getNodeSelectionModel().getSelectedNode().addAttribute(key, value);
+    }
+
+    public void removeAttributeForSelected(String key){
+        MainGUI.getInstance().getNodeSelectionModel().getSelectedNode().removeAttribute(key);
+    }
 }
\ No newline at end of file
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java	2008-02-01 13:35:17 UTC (rev 727)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java	2008-02-01 13:41:00 UTC (rev 728)
@@ -2,7 +2,15 @@
 package net.sf.magicmap.client.controller;
 
 import java.util.HashMap;
-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.measurement.interfaces.AbstractScanResult;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanner;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScannerHandler;
@@ -190,4 +198,18 @@
      *
      */
     void initializePlugins();
+    
+    HashMap<String, String> getClientAttributes();
+
+    /*
+     * Fills a hashmap with informations about the clients interface.
+     * 
+     */
+    void setClientInterfaceAttributes(HashMap<String, String> clientAttributes);
+
+    void addClientInterface(HashMap<String, String> intorface);
+    
+    void addAttributeForSelected(String key, String value);
+    
+    void removeAttributeForSelected(String key);
 }
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java	2008-02-01 13:35:17 UTC (rev 727)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java	2008-02-01 13:41:00 UTC (rev 728)
@@ -8,6 +8,7 @@
 import net.sf.magicmap.core.model.node.IMagicNodeModel;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 
 /**
  * <p>
@@ -151,4 +152,28 @@
     public Node asNode() {
         return delegate;
     }
+
+
+    public void addAttribute(String key, String value){
+       this.delegate.addAttribute(key, value);
+        
+    }
+
+
+    public HashMap<String, String> getAttributes(){
+        return this.delegate.getAttributes();
+    }
+
+
+    public void removeAttribute(String key){
+        this.delegate.removeAttribute(key);
+        
+    }
+
+
+    public void setAttributes(HashMap<String, String> newAttributes){
+        this.delegate.setAttributes(newAttributes);
+        
+    }
+    
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-02-01 13:35:25
      
     | 
| Revision: 727
          http://magicmap.svn.sourceforge.net/magicmap/?rev=727&view=rev
Author:   anweiss
Date:     2008-02-01 05:35:17 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
added interface functions to edit the attributes hashmap for every node
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java	2008-02-01 12:12:41 UTC (rev 726)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java	2008-02-01 13:35:17 UTC (rev 727)
@@ -1,5 +1,6 @@
 package net.sf.magicmap.client.model.node;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -66,4 +67,12 @@
 	void setPhysical(boolean physical);
     
     public NodeContainer getNodeContainer();
+    
+    public void setAttributes(HashMap<String, String> newAttributes);
+
+    public HashMap<String, String> getAttributes();
+    
+    public void addAttribute(String key, String value);
+
+    public void removeAttribute(String key);
 }
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java	2008-02-01 12:12:41 UTC (rev 726)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java	2008-02-01 13:35:17 UTC (rev 727)
@@ -255,7 +255,6 @@
         this.parentNode = parentNode;
     }
 
-
     /**
      * Ask if this node is a physical or information node.
      * @return
@@ -283,4 +282,11 @@
         return this.attributes;
     }
 
+    public void addAttribute(String key, String value){
+        this.attributes.put(key, value);
+    }
+
+    public void removeAttribute(String key){
+        this.attributes.remove(key);
+    }
 }
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-02-01 12:12:43
      
     | 
| Revision: 726
          http://magicmap.svn.sourceforge.net/magicmap/?rev=726&view=rev
Author:   flederohr
Date:     2008-02-01 04:12:41 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
added menu for accesspoint-hiding to the OutlineView
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeSelectionModel.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeSelectionModel.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java	2008-02-01 11:53:28 UTC (rev 725)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/views/OutlineView.java	2008-02-01 12:12:41 UTC (rev 726)
@@ -6,11 +6,14 @@
 
 import java.awt.Dimension;
 import java.awt.Insets;
+import java.awt.event.ActionEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 
+import javax.swing.AbstractAction;
 import javax.swing.JComponent;
 import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
 import javax.swing.JScrollPane;
 import javax.swing.JTree;
 import javax.swing.border.EmptyBorder;
@@ -20,12 +23,22 @@
 
 import net.sf.magicmap.client.controller.Controller;
 import net.sf.magicmap.client.gui.MainGUI;
+import net.sf.magicmap.client.gui.MapPanel;
 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.MagicAction;
 import net.sf.magicmap.client.gui.utils.RelativePanelBuilder;
+import net.sf.magicmap.client.gui.utils.menu.NodeMenuAndPredicate;
+import net.sf.magicmap.client.gui.utils.menu.NodeMenuContainer;
+import net.sf.magicmap.client.gui.utils.menu.NodeMenuPredicate;
+import net.sf.magicmap.client.gui.utils.menu.NodeMenuTypePredicate;
+import net.sf.magicmap.client.model.node.AccessPointNode;
+import net.sf.magicmap.client.model.node.ClientNode;
+import net.sf.magicmap.client.model.node.INode;
 import net.sf.magicmap.client.model.node.INodeModel;
 import net.sf.magicmap.client.model.node.INodeModelSelectionListener;
+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;
@@ -63,10 +76,57 @@
         this.outlineModel = new OutlineModel(nodeModel);
         rootNode = (OutlineTreeNode) outlineModel.getRoot();
         setContent(buildViewComponent());
+        buildNodeMenu();
         MainGUI.getInstance().getNodeSelectionModel().addNodeModelSelectionListener(this);
         MainGUI.getInstance().registerJComponent(this, name);
     }
 
+    private void buildNodeMenu(){
+        NodeMenuContainer nc = this.getMenuContainer();
+        
+        nc.addNodeMenuItem(this, GUIBuilder.createMenuItem(new MagicAction("map.panel.context.hide.ap"){
+            /**
+             * 
+             */
+            private static final long serialVersionUID = 0L;
+
+            @Override
+            public void actionPerformed(ActionEvent e){
+                AccessPointNode ap = (AccessPointNode) MainGUI.getInstance().getNodeSelectionModel().getSelectedNode();
+                ap.setHiddenStatus(true);
+                ap.setName(ap.getName() + "(" + GUIUtils.i18n("node.accesspoint.is.hide") + ")");
+                Controller.getInstance().setAccessPointHiddenStatus(ap.getMacAddress(), true, ((MapPanel)MainGUI.getInstance().getJComponent("mapPanel")));
+            }
+        }),new NodeMenuAndPredicate(new NodeMenuTypePredicate(NodeModelConstants.NODETYPE_ACCESSPOINT),new NodeMenuPredicate(){
+
+            public boolean show(Object context){
+                return !((AccessPointNode)context).isHidden();
+            }
+            
+        }));
+        
+        nc.addNodeMenuItem(this, GUIBuilder.createMenuItem(new MagicAction("map.panel.context.hide.ap.off"){
+            /**
+             * 
+             */
+            private static final long serialVersionUID = 0L;
+
+            @Override
+            public void actionPerformed(ActionEvent e){
+                AccessPointNode ap = (AccessPointNode) MainGUI.getInstance().getNodeSelectionModel().getSelectedNode();
+                ap.setHiddenStatus(false);
+                ap.setName(ap.getName().substring(0, ap.getName().length() - 5));
+                Controller.getInstance().setAccessPointHiddenStatus(ap.getMacAddress(), false, ((MapPanel)MainGUI.getInstance().getJComponent("mapPanel")));
+            }
+        }),new NodeMenuAndPredicate(new NodeMenuTypePredicate(NodeModelConstants.NODETYPE_ACCESSPOINT),new NodeMenuPredicate(){
+
+            public boolean show(Object context){
+                return ((AccessPointNode)context).isHidden();
+            }
+            
+        }));
+    }
+
     /* (non-Javadoc)
      * @see net.sf.magicmap.client.views.View#buildViewComponent()
      */
@@ -141,7 +201,7 @@
      */
     public synchronized void valueChanged(TreeSelectionEvent tse){
         OutlineTreeNode outlineTreeNode = ((OutlineTreeNode) tse.getPath().getLastPathComponent());
-        if (null != outlineTreeNode.getNode()) {
+        if (null != outlineTreeNode) {
             final Node node = outlineTreeNode.getNode();
             if (null != node) {
                 MainGUI.getInstance().getNodeSelectionModel().removeNodeModelSelectionListener(this);
@@ -272,6 +332,10 @@
                 break;
             case MouseEvent.BUTTON3 :
                 // TODO: right-click-menu
+                Node node;
+                // check if MapNode is selected
+                if ((node = ((OutlineTreeNode) ((OutlineTree) e.getSource()).getSelectionPath().getLastPathComponent())
+                        .getNode()) instanceof Node) this.getMenuContainer().buildMenu(node, new JPopupMenu()).show(this, e.getX(), e.getY());
                 break;
         }
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeSelectionModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeSelectionModel.java	2008-02-01 11:53:28 UTC (rev 725)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeSelectionModel.java	2008-02-01 12:12:41 UTC (rev 726)
@@ -18,4 +18,6 @@
 	 * @return the selected node.
 	 */
 	Node selectNode(Node selectedNode);
+	
+	Node getSelectedNode();
 }
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeSelectionModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeSelectionModel.java	2008-02-01 11:53:28 UTC (rev 725)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeSelectionModel.java	2008-02-01 12:12:41 UTC (rev 726)
@@ -41,4 +41,8 @@
 		}
 		return selectedNode;
 	}
+
+    public Node getSelectedNode(){
+        return selectedNode;
+    }
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-02-01 11:53:39
      
     | 
| Revision: 725
          http://magicmap.svn.sourceforge.net/magicmap/?rev=725&view=rev
Author:   anweiss
Date:     2008-02-01 03:53:28 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
fixed client name empty bug (bug no. 1884334)
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/ConnectServerDialog.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/ConnectServerDialog.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/ConnectServerDialog.java	2008-02-01 11:36:23 UTC (rev 724)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/ConnectServerDialog.java	2008-02-01 11:53:28 UTC (rev 725)
@@ -222,7 +222,7 @@
             serverConnectionInfo.name = this.clientname.getText();
             serverConnectionInfo.useNoServer = this.useNoServer.isSelected();
             if (useNoServer.isSelected()) {
-                if (serverConnectionInfo.name == "") serverConnectionInfo.name = System.getProperty("user.name");
+                if (serverConnectionInfo.name.trim().equalsIgnoreCase("")) serverConnectionInfo.name = System.getProperty("user.name");
                 serverConnectionInfo.password = System.getProperty("user.name");
             }
             try {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-02-01 11:36:26
      
     | 
| Revision: 724
          http://magicmap.svn.sourceforge.net/magicmap/?rev=724&view=rev
Author:   flederohr
Date:     2008-02-01 03:36:23 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
efficient handling of hiddenstate changes
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/handler/AccessPointHiddenStateHandler.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/handler/AccessPointHiddenStateHandler.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/handler/AccessPointHiddenStateHandler.java	2008-02-01 10:44:15 UTC (rev 723)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/handler/AccessPointHiddenStateHandler.java	2008-02-01 11:36:23 UTC (rev 724)
@@ -6,6 +6,7 @@
 import net.sf.magicmap.client.model.location.INodePlacer;
 import net.sf.magicmap.client.model.location.NodeUpdateHandler;
 import net.sf.magicmap.client.model.node.AccessPointNode;
+import net.sf.magicmap.client.model.node.AccessPointSeerNode;
 import net.sf.magicmap.client.model.node.ClientNode;
 import net.sf.magicmap.client.model.node.LocationNode;
 import net.sf.magicmap.client.model.node.Node;
@@ -28,18 +29,14 @@
             // TODO: change to ap.getNeighbors() when it is implemented
             ArrayList<Node> nl = new ArrayList<Node>(ap.getModel().getNodes());
             for (Node n : nl)
-                if (n instanceof LocationNode && ((LocationNode) n).getSeenAccessPoints().contains(ap))
+                if (n instanceof AccessPointSeerNode && ((AccessPointSeerNode) n).getSeenAccessPoints().contains(ap))
                     nodePlacer.removeEdge(n, ap);
-                else if (n instanceof ClientNode && ((ClientNode) n).getSeenAccessPoints().contains(ap))
-                    nodePlacer.removeEdge(n, ap);
         } else {
             // TODO: change to ap.getNeighbors() when it is implemented
             ArrayList<Node> nl = new ArrayList<Node>(ap.getModel().getNodes());
             for (Node n : nl)
-                if (n instanceof LocationNode && ((LocationNode) n).getSeenAccessPoints().contains(ap))
+                if (n instanceof AccessPointSeerNode && ((AccessPointSeerNode) n).getSeenAccessPoints().contains(ap))
                     nodePlacer.addEdge(n, ap);
-                else if (n instanceof ClientNode && ((ClientNode) n).getSeenAccessPoints().contains(ap))
-                    nodePlacer.addEdge(n, ap);
         }
     }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-02-01 10:44:31
      
     | 
| Revision: 723
          http://magicmap.svn.sourceforge.net/magicmap/?rev=723&view=rev
Author:   flederohr
Date:     2008-02-01 02:44:15 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
avoid nullpointer-exception on accesspoint-hiding 
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java	2008-02-01 10:07:57 UTC (rev 722)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java	2008-02-01 10:44:15 UTC (rev 723)
@@ -123,7 +123,7 @@
         if (apEdges.containsKey(ap.getMacAddress())) {
             apEdges.remove(ap.getMacAddress());
             getModel().updateNode(this, NodeModelConstants.UPDATE_NOTSEESACCESSPOINT, ap);
-            if (!ap.isFix()) {
+            if (!ap.isFix() && !ap.isHidden()) {
                 boolean deleteAP = true;
                 for (AccessPointSeerNode asn : this.getModel().getAccessPointSeerNodes()) {
                     if (asn.getSignalLevelForAccessPoint(ap) != -Constants.MIN_SIGNALLEVEL) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-02-01 10:08:00
      
     | 
| Revision: 722
          http://magicmap.svn.sourceforge.net/magicmap/?rev=722&view=rev
Author:   flederohr
Date:     2008-02-01 02:07:57 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
fixed classpath
Modified Paths:
--------------
    trunk/magicmapserver/.classpath
Modified: trunk/magicmapserver/.classpath
===================================================================
--- trunk/magicmapserver/.classpath	2008-01-31 13:30:03 UTC (rev 721)
+++ trunk/magicmapserver/.classpath	2008-02-01 10:07:57 UTC (rev 722)
@@ -9,10 +9,5 @@
 	<classpathentry kind="lib" path="lib.dev/jasper-runtime.jar"/>
 	<classpathentry kind="lib" path="lib.dev/jsp-api.jar"/>
 	<classpathentry kind="lib" path="lib.dev/servlet-api.jar"/>
-	<classpathentry kind="var" path="TOMCAT_HOME/lib/servlet-api.jar"/>
-	<classpathentry kind="var" path="TOMCAT_HOME/lib/jasper.jar"/>
-	<classpathentry kind="var" path="TOMCAT_HOME/lib/jsp-api.jar"/>
-	<classpathentry kind="var" path="TOMCAT_HOME/lib/el-api.jar"/>
-	<classpathentry kind="var" path="TOMCAT_HOME/lib/annotations-api.jar"/>
 	<classpathentry kind="output" path="web/WEB-INF/classes"/>
 </classpath>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fle...@us...> - 2008-01-31 14:00:08
      
     | 
| Revision: 721
          http://magicmap.svn.sourceforge.net/magicmap/?rev=721&view=rev
Author:   flederohr
Date:     2008-01-31 05:30:03 -0800 (Thu, 31 Jan 2008)
Log Message:
-----------
path-safety for the wsdl2java plug-in
Modified Paths:
--------------
    trunk/magicmapclient/build.xml
Modified: trunk/magicmapclient/build.xml
===================================================================
--- trunk/magicmapclient/build.xml	2008-01-28 13:55:25 UTC (rev 720)
+++ trunk/magicmapclient/build.xml	2008-01-31 13:30:03 UTC (rev 721)
@@ -89,9 +89,9 @@
 	</target>
 
 	<target name="axis" depends="prepare">
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/PositionFacade.wsdl" />
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/SessionFacade.wsdl" />
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/MapFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="file:/${basedir}/inf/PositionFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="file:/${basedir}/inf/SessionFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="file:/${basedir}/inf/MapFacade.wsdl" />
 	</target>
 
 	<target name="compile" depends="axis">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-01-28 14:01:48
      
     | 
| Revision: 719
          http://magicmap.svn.sourceforge.net/magicmap/?rev=719&view=rev
Author:   anweiss
Date:     2008-01-28 05:22:14 -0800 (Mon, 28 Jan 2008)
Log Message:
-----------
added hashmap with attributes for every node that can be stored on the server
Added Paths:
-----------
    trunk/magicmapclient/src/net/sf/magicmap/client/net/VistaNetworkInfo.java
    trunk/magicmapclient/src/net/sf/magicmap/client/utils/NodeTypes.java
Added: trunk/magicmapclient/src/net/sf/magicmap/client/net/VistaNetworkInfo.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/net/VistaNetworkInfo.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/net/VistaNetworkInfo.java	2008-01-28 13:22:14 UTC (rev 719)
@@ -0,0 +1,102 @@
+/*
+ * Created on 21.01.2008
+ */
+
+package net.sf.magicmap.client.net;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class VistaNetworkInfo extends NetworkInfo {
+
+    public static final String IPCONFIG_COMMAND = "netsh wlan show interfaces";
+
+    @Override
+    public String parseMacAddress() throws ParseException{
+        // run command
+        String ipConfigResponse = null;
+        try {
+            ipConfigResponse = runConsoleCommand(VistaNetworkInfo.IPCONFIG_COMMAND);
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new ParseException(e.getMessage(), 0);
+        }
+
+        java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(ipConfigResponse, "\n");
+        String lastMacAddress = null;
+        while (tokenizer.hasMoreTokens()) {
+            String line = tokenizer.nextToken().trim();
+
+            if (line.trim().startsWith("Status")) {
+                String[] splitString = line.split(":");
+                return lastMacAddress;
+            }
+            // see if line might contain a MAC address
+            int macAddressPosition = line.indexOf(":");
+            if (macAddressPosition <= 0) continue;
+
+            // trim the line and see if it matches the pattern
+            String macAddressCandidate = line.substring(macAddressPosition + 1).trim();
+            if (VistaNetworkInfo.isMacAddress(macAddressCandidate)) {
+                lastMacAddress = macAddressCandidate;
+                continue;
+            }
+        }
+
+        ParseException ex = new ParseException("No active connection found or cannot read MAC address from ["
+                + ipConfigResponse + "]", 0);
+        ex.printStackTrace();
+        throw ex;
+    }
+
+    @Override
+    public void collectMacAddresses() throws ParseException{
+        NetworkInfo.macAddresses.clear();
+        // run command
+        String ipConfigResponse = null;
+        try {
+            ipConfigResponse = runConsoleCommand(VistaNetworkInfo.IPCONFIG_COMMAND);
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new ParseException(e.getMessage(), 0);
+        }
+
+        java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(ipConfigResponse, "\n");
+        String macAddressCandidate;
+        String lastMAC = null;
+        String[] splitLine = null;
+        boolean foundActive = false;
+        while (tokenizer.hasMoreTokens()) {
+            // split the line and take everything right from the ":"
+            splitLine = tokenizer.nextToken().trim().split(":");
+            macAddressCandidate = splitLine[1];
+            // see if line might contain a MAC address
+            if (VistaNetworkInfo.isMacAddress(macAddressCandidate)) {
+                // Ok we got something, but we better check if it's active
+                macAddressCandidate.replace(':', '-');
+                lastMAC = macAddressCandidate;
+            } else if ((lastMAC != null) && (splitLine[0].trim().equals("Status"))) {
+                // only german to test things
+                if (!splitLine[1].equals("getrennt")) {
+                    NetworkInfo.macAddresses.add(lastMAC);
+                    foundActive = true;
+                    break;
+                }
+            }
+        }
+        // we found some wireless devices but none was active
+        if ((lastMAC != null) && !foundActive){
+            NetworkInfo.macAddresses.add(lastMAC);
+            System.out.println("Inaktives Netz");
+        }
+    }
+
+    private static boolean isMacAddress(String macAddressCandidate){
+        Pattern macPattern = Pattern.compile("([0-9A-F]{2})(([-:][0-9A-F]{2}){5})(([-:][0-9A-F]{2}){2})?");
+        // .compile("[0-9a-fA-F]{2}([-:]{1}[0-9a-fA-F]{2}[-:]{1}[0-9a-fA-F]{2}[-:]{1}[0-9a-fA-F]{2}[-:]{1}[0-9a-fA-F]{2}[-:]{1}[0-9a-fA-F]{2})");
+        Matcher m = macPattern.matcher(macAddressCandidate.toUpperCase());
+        return m.matches();
+    }
+}
\ No newline at end of file
Added: trunk/magicmapclient/src/net/sf/magicmap/client/utils/NodeTypes.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/utils/NodeTypes.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/utils/NodeTypes.java	2008-01-28 13:22:14 UTC (rev 719)
@@ -0,0 +1,9 @@
+package net.sf.magicmap.client.utils;
+
+
+public final class NodeTypes {
+    public static final String ACCESSPOINT = "ACCESSPOINT";
+    public final static String LOCATION = "POSITION";
+    public static final String CLIENT = "CLIENT";
+    public static final String SNIFFER = "SNIFFER"; 
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-01-28 14:01:48
      
     | 
| Revision: 718
          http://magicmap.svn.sourceforge.net/magicmap/?rev=718&view=rev
Author:   anweiss
Date:     2008-01-28 05:18:41 -0800 (Mon, 28 Jan 2008)
Log Message:
-----------
added hashmap with attributes for every node that can be stored on the server
Modified Paths:
--------------
    trunk/magicmapclient/.project
    trunk/magicmapclient/.settings/org.eclipse.jdt.core.prefs
    trunk/magicmapclient/.settings/org.eclipse.jdt.ui.prefs
    trunk/magicmapclient/inf/PositionFacade.wsdl
    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/controller/SOAPServerManager.java
    trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerManager.java
    trunk/magicmapclient/src/net/sf/magicmap/client/controller/VirtualServerManager.java
    trunk/magicmapclient/src/net/sf/magicmap/client/delegate/PositionDelegate.java
    trunk/magicmapclient/src/net/sf/magicmap/client/delegate/interfaces/PositionFacadeInterface.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/MapPanel.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/LoadMapDialog.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/measurement/IMeasurementModel.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java
    trunk/magicmapclient/src/net/sf/magicmap/client/net/NetworkInfo.java
    trunk/magicmapclient/src/net/sf/magicmap/client/utils/DriverInformations.java
Modified: trunk/magicmapclient/.project
===================================================================
--- trunk/magicmapclient/.project	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/.project	2008-01-28 13:18:41 UTC (rev 718)
@@ -11,10 +11,16 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsensis.installoptions.InstallOptionsBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.jem.beaninfo.BeanInfoNature</nature>
+		<nature>net.sf.eclipsensis.installoptions.InstallOptionsNature</nature>
 	</natures>
 </projectDescription>
Modified: trunk/magicmapclient/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/magicmapclient/.settings/org.eclipse.jdt.core.prefs	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/.settings/org.eclipse.jdt.core.prefs	2008-01-28 13:18:41 UTC (rev 718)
@@ -1,4 +1,4 @@
-#Mon Sep 04 16:13:41 CEST 2006
+#Fri Nov 09 15:22:53 CET 2007
 eclipse.preferences.version=1
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=true
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
Modified: trunk/magicmapclient/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- trunk/magicmapclient/.settings/org.eclipse.jdt.ui.prefs	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/.settings/org.eclipse.jdt.ui.prefs	2008-01-28 13:18:41 UTC (rev 718)
@@ -1,4 +1,5 @@
-#Thu Aug 31 15:41:15 CEST 2006
+#Fri Nov 09 15:22:53 CET 2007
 eclipse.preferences.version=1
 formatter_profile=_MagicMap Coding Conventions
 formatter_settings_version=10
+internal.default.compliance=default
Modified: trunk/magicmapclient/inf/PositionFacade.wsdl
===================================================================
(Binary files differ)
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -4,6 +4,13 @@
 
 package net.sf.magicmap.client.controller;
 
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+
 import net.sf.magicmap.client.gui.MainGUI;
 import net.sf.magicmap.client.gui.utils.GUIUtils;
 import net.sf.magicmap.client.gui.views.MapView;
@@ -13,20 +20,22 @@
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanner;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScannerHandler;
 import net.sf.magicmap.client.meta.MapInfo;
-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.MapNode;
+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.DriverInformations;
 import net.sf.magicmap.client.utils.Settings;
 import net.sf.magicmap.core.model.node.IMagicNodeModel;
 import net.sf.magicmap.core.model.node.impl.MagicNodeModel;
 import net.sf.magicmap.server.dto.MapDTO;
 import net.sf.magicmap.server.exception.SessionException;
+
 import org.apache.log4j.xml.DOMConfigurator;
 
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-
 /**
  * Kann \xC4nderungen an View und am Modell vornehmen und zieht alle F\xE4den
  * der Anwendung.
@@ -42,35 +51,38 @@
             MapNamesCallback,
             MapCallback {
 
-    private static int        numCalled          = 0;
-    private static int        disconnectAttempts = 0;
+    private static int              numCalled          = 0;
+    private static int              disconnectAttempts = 0;
 
     /**
      * Die Instanz.
      */
-    private static Controller controller         = null;
+    private static Controller       controller         = null;
 
     /**
      * Das Knotenmodel.
      */
+
     private IMagicNodeModel   nodeModel;                // Model f\xFCr Graphen
 
     private ClientNode        client;                   // Ausgezeichneter Knoten
 
-    private ServerPoller      poller;                   // Server st\xE4ndig nach \xC4nderungen fragen
+    private HashMap<String, String> ClientAttributes = new HashMap<String,String>();         // zus\xE4tzliche Attribute f\xFCr den Clienten
 
-    private PollHandler       pollhandler;              // Klasse zur Verarbeitung der Pollergebnisse
+    private ServerPoller            poller;                   // Server st\xE4ndig nach \xC4nderungen fragen
 
-    private ServerManager     serverManager;            // Manager f\xFCr die Verbindung zum Server
+    private PollHandler             pollhandler;              // Klasse zur Verarbeitung der Pollergebnisse
 
+    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 boolean           invisble;                 // Invisible-Modus (keine Daten an Server)
+    private boolean                 invisble;                 // Invisible-Modus (keine Daten an Server)
 
-    private ScannerAllocator  scannerAllocator;
-    private PluginManager     pluginManager;
+    private ScannerAllocator        scannerAllocator;
+    private PluginManager           pluginManager;
 
     /**
      * Private constructor for singleton instance
@@ -169,13 +181,13 @@
             this.scannerAllocator.startAllScanner();
 
             this.pluginManager.loadMap();
-//            if (this.currentMap.realheight > 0 && this.currentMap.realwidth > 0)
+            //            if (this.currentMap.realheight > 0 && this.currentMap.realwidth > 0)
 
             // TODO: Interface f\xFCr GUI mit methode setMapTitle()
 
-//                ((MapView) MainGUI.getInstance().getJComponent("mapView")).setTitle(GUIUtils.i18n("map", false) + " - "
-//                        + this.currentMap.name + " Gr\xF6\xDFe: " + this.currentMap.realwidth + " X "
-//                        + this.currentMap.realheight + " cm");
+            //                ((MapView) MainGUI.getInstance().getJComponent("mapView")).setTitle(GUIUtils.i18n("map", false) + " - "
+            //                        + this.currentMap.name + " Gr\xF6\xDFe: " + this.currentMap.realwidth + " X "
+            //                        + this.currentMap.realheight + " cm");
         }
     }
 
@@ -306,11 +318,12 @@
      * Erzeugt einen Referenzpunkt auf der aktuellen Karte mit den aktuellen
      * Messwerten des Clients mit den angegebenen Koordinaten.
      */
-    public void createLocation(int x, int y, int z, String name, boolean fixed, CreatePositionCallback callback){
+    public void createLocation(int x, int y, int z, String name, boolean fixed, HashMap<String, String> attributes,
+            CreatePositionCallback callback){
         if (!isConnected() || !isMapLoaded())
             callback.positionCreationError(new Exception("Nicht verbunden oder keine Karte geladen."));
         else
-            this.serverManager.createLocation(x, y, z, fixed, name, callback);
+            this.serverManager.createLocation(x, y, z, fixed, name, attributes, callback);
     }
 
     /**
@@ -389,15 +402,15 @@
     }
 
     public void setClientPosition(final int x, final int y, final int z, final boolean fixed, final String clientMac,
-            final PositionCallback callback){
+            final HashMap<String, String> attributes, final PositionCallback callback){
 
-        this.serverManager.setClientPosition(x, y, z, fixed, clientMac, callback);
+        this.serverManager.setClientPosition(x, y, z, fixed, clientMac, attributes, callback);
     }
 
     public void setAccessPointPosition(final int x, final int y, final int z, boolean fixed,
-            final String accessPointMac, final PositionCallback callback){
+            final String accessPointMac, final HashMap<String, String> attributes, final PositionCallback callback){
 
-        this.serverManager.setAccessPointPosition(x, y, z, fixed, accessPointMac, callback);
+        this.serverManager.setAccessPointPosition(x, y, z, fixed, accessPointMac, attributes, callback);
     }
 
     public void setAccessPointHiddenStatus(String accessPointMac, boolean hidden, PositionCallback callback){
@@ -527,4 +540,21 @@
             nodeModel.addNode(node);
         } catch (MalformedURLException e) {} catch (IOException e) {}
     }
-}
+
+    public HashMap<String, String> getClientAttributes(){
+        return ClientAttributes;
+    }
+
+    public void setClientAttributes(HashMap<String, String> clientAttributes){
+        ClientAttributes = clientAttributes;
+    }
+
+    public void addInterface(HashMap<String, String> intorface){
+//        int count = Integer.parseInt(this.getClientAttributes().get(DriverInformations.NUMBEROFINTERFACES));
+        if (!(this.getClientAttributes().containsValue(intorface.get(DriverInformations.DEVICENAME)))) {
+//            count++;
+//            this.ClientAttributes.put(DriverInformations.NUMBEROFINTERFACES, String.valueOf(count));
+            this.ClientAttributes.putAll(intorface);
+        }
+    }
+}
\ No newline at end of file
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -1,6 +1,7 @@
 
 package net.sf.magicmap.client.controller;
 
+import java.util.HashMap;
 import net.sf.magicmap.client.interfaces.*;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanResult;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanner;
@@ -118,7 +119,7 @@
      * Erzeugt einen Referenzpunkt auf der aktuellen Karte mit den aktuellen
      * Messwerten des Clients mit den angegebenen Koordinaten.
      */
-    void createLocation(int x, int y, int z, String name, boolean fixed, CreatePositionCallback callback);
+    void createLocation(int x, int y, int z, String name, boolean fixed, final HashMap <String, String> attributes, CreatePositionCallback callback);
 
     /**
      * Erzeugt eine Geokoordinate auf der aktuellen Karte mit den angegebenen
@@ -157,9 +158,9 @@
      */
     void deleteGeoPoint(String name, String string, DeletePositionCallback callback);
 
-    void setClientPosition(int x, int y, int z, boolean fixed, String clientMac, PositionCallback callback);
+    void setClientPosition(int x, int y, int z, boolean fixed, String clientMac, HashMap <String, String> attributes, PositionCallback callback);
 
-    void setAccessPointPosition(int x, int y, int z, boolean fixed, String accessPointMac, PositionCallback callback);
+    void setAccessPointPosition(int x, int y, int z, boolean fixed, String accessPointMac, HashMap <String, String> attributes, PositionCallback callback);
 
     void setAccessPointHiddenStatus(String accessPointMac, boolean hidden, PositionCallback callback);
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/PollHandler.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -313,10 +313,14 @@
         // Position \xE4ndern
         if (!client.isCalculated()) client.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
         // FixierungsStatus setzen
-        client.setFix(position.isFixed());
+        if (position.isFixed()) {
+            client.setPosition(position.getPosX(), position.getPosY(), position.getPosZ());
+            client.setFix(position.isFixed());
+        } else
+            client.setFix(position.isFixed());
 
-        // TODO: ist die id hier wirklich notwendig?
-        client.setId(position.getId());
+            // TODO: ist die id hier wirklich notwendig?
+            client.setId(position.getId());
 
         // Signalst\xE4rken usw. verwaltet der scannende
         // Client selbst
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/SOAPServerManager.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/SOAPServerManager.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/SOAPServerManager.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -7,6 +7,7 @@
 import java.io.IOException;
 import java.rmi.RemoteException;
 import java.util.Collection;
+import java.util.HashMap;
 
 import edu.uci.ics.jung.graph.Vertex;
 import edu.uci.ics.jung.visualization.SpringLayout;
@@ -264,7 +265,7 @@
      */
     @Override
     public void createLocation(final int x, final int y, final int z, final boolean fixed, final String name,
-            final CreatePositionCallback callback){
+            final HashMap<String, String> attributes, final CreatePositionCallback callback){
         if (isConnected()) {
             final SignalCharacterDTO signalCharacter = currentSignalCharacter();
             System.out.println("signalCharacter.getSimpleScanResults() " + signalCharacter.getSimpleScanResults());
@@ -279,7 +280,7 @@
                             SOAPServerManager.this.positionDelgate.createOrUpdatePosition(
                                     SOAPServerManager.this.sessionId,
                                     SOAPServerManager.this.controller.getCurrentMap().name, x, y, z, signalCharacter,
-                                    name, fixed);
+                                    name, fixed, attributes);
                             // TODO: Zus\xE4tzliche Parameter zur Position
                             callback.positionCreated();
                         } catch (Exception e) {
@@ -453,7 +454,7 @@
      */
     @Override
     public void setClientPosition(final int x, final int y, final int z, final boolean fixed, final String clientMac,
-            final PositionCallback callback){
+            final HashMap<String, String> attributes, final PositionCallback callback){
         if (isConnected()) {
             Thread positionThread = new Thread() {
 
@@ -465,7 +466,7 @@
                             SOAPServerManager.this.positionDelgate.createOrUpdateClientPosition(
                                     SOAPServerManager.this.sessionId,
                                     SOAPServerManager.this.controller.getCurrentMap().name, x, y, z,
-                                    currentSignalCharacter(), clientMac, fixed);
+                                    currentSignalCharacter(), clientMac, fixed, attributes);
                             // TODO: Zus\xE4tzliche Parameter zur Position
                             callback.positionUpdated(clientMac);
                         } catch (Exception e) {
@@ -494,7 +495,7 @@
      */
     @Override
     public void setAccessPointPosition(final int x, final int y, final int z, final boolean fixed,
-            final String accessPointMac, final PositionCallback callback){
+            final String accessPointMac, final HashMap<String, String> attributes, final PositionCallback callback){
         if (isConnected()) {
             Thread positionThread = new Thread() {
 
@@ -506,7 +507,7 @@
                             SOAPServerManager.this.positionDelgate.createOrUpdateAccessPosition(
                                     SOAPServerManager.this.sessionId,
                                     SOAPServerManager.this.controller.getCurrentMap().name, x, y, z, accessPointMac,
-                                    fixed);
+                                    fixed, attributes);
                             // TODO: Zus\xE4tzliche Parameter zur Position
                             callback.positionUpdated(accessPointMac);
                         } catch (Exception e) {
@@ -619,10 +620,12 @@
                     synchronized (SOAPServerManager.mutex) {
                         if (!isConnected()) return;
                         try {
-                        	// TODO: abfrage ist im moment nicht aus dem Nodemodel m\xF6glich, daher behelfsl\xF6sung direkt aus dem Layout
+                            // TODO: abfrage ist im moment nicht aus dem Nodemodel m\xF6glich, daher behelfsl\xF6sung direkt aus dem Layout
                             ClientNode client = Controller.getInstance().getClient();
-                            Vertex clientVertex = ((JungNodePlacer) Controller.getInstance().getNodeModel().getNodePlacer()).findVertex(client);
-                            SpringLayout layout = ((JungNodePlacer) Controller.getInstance().getNodeModel().getNodePlacer()).getLayout();
+                            Vertex clientVertex = ((JungNodePlacer) Controller.getInstance().getNodeModel()
+                                    .getNodePlacer()).findVertex(client);
+                            SpringLayout layout = ((JungNodePlacer) Controller.getInstance().getNodeModel()
+                                    .getNodePlacer()).getLayout();
                             int x = (int) layout.getX(clientVertex);
                             int y = (int) layout.getY(clientVertex);
                             int z = SOAPServerManager.this.controller.getClientPosZ();
@@ -642,7 +645,8 @@
                                     SOAPServerManager.this.sessionId,
                                     SOAPServerManager.this.controller.getCurrentMap().name, x, y, z, signalCharacter,
                                     SOAPServerManager.this.controller.getClient().getMacAddress(),
-                                    SOAPServerManager.this.controller.getClient().isFix());
+                                    SOAPServerManager.this.controller.getClient().isFix(),
+                                    SOAPServerManager.this.controller.getClientAttributes());
                             // TODO: Zus\xE4tzliche Parameter zur Position
                             System.out.println("Client info submitted.");
                         } catch (Exception e) {
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerManager.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerManager.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/ServerManager.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -12,6 +12,7 @@
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.GregorianCalendar;
+import java.util.HashMap;
 import java.util.Iterator;
 
 import net.sf.magicmap.client.interfaces.CreateNewMapCallback;
@@ -145,7 +146,7 @@
      * @param node
      * @param callback
      */
-    public abstract void createLocation(final int x, final int y, final int z, final boolean fixed, final String name,
+    public abstract void createLocation(final int x, final int y, final int z, final boolean fixed, final String name, final HashMap<String, String> attributes,
             final CreatePositionCallback callback);
 
     /**
@@ -181,7 +182,7 @@
      public void movePosition(long sessionId, long positionId, int newPositionX, int newPositionY) throws RemoteException,
      public void deletePosition(long sessionId, long positionId) throws RemoteException, MapException, SessionException{
      */public abstract void setClientPosition(final int x, final int y, final int z, final boolean fixed,
-            final String clientMac, final PositionCallback callback);
+            final String clientMac, final HashMap<String, String> attributes, final PositionCallback callback);
 
     /**
      * Eine Position von (-1,-1) bedeutet, dass der Client nicht fixiert ist sondern
@@ -192,7 +193,7 @@
      * @param callback Callback
      */
     public abstract void setAccessPointPosition(final int x, final int y, final int z, final boolean fixed,
-            final String accessPointMac, final PositionCallback callback);
+            final String accessPointMac, final HashMap<String, String> attributes, final PositionCallback callback);
 
     /**
      * Setzt den Berechnungsstatus des Accesspoint
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/VirtualServerManager.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/VirtualServerManager.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/VirtualServerManager.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -5,6 +5,7 @@
 package net.sf.magicmap.client.controller;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 
 import net.sf.magicmap.client.interfaces.CreateNewMapCallback;
 import net.sf.magicmap.client.interfaces.CreatePositionCallback;
@@ -20,6 +21,7 @@
 import net.sf.magicmap.client.interfaces.ServerDisconnectCallback;
 import net.sf.magicmap.client.meta.MapInfo;
 import net.sf.magicmap.client.model.node.GeoPos;
+import net.sf.magicmap.client.utils.NodeTypes;
 import net.sf.magicmap.client.utils.Settings;
 import net.sf.magicmap.client.utils.Version;
 import net.sf.magicmap.server.Init;
@@ -39,7 +41,7 @@
  */
 public class VirtualServerManager extends ServerManager {
 
-    private static String mutex = "net.sf.magicmap.client.controller.Controller";
+    private static String  mutex       = "net.sf.magicmap.client.controller.Controller";
 
     /**
      * @param controller
@@ -230,7 +232,7 @@
      *      net.sf.magicmap.client.interfaces.CreatePositionCallback)
      */
     public void createLocation(final int x, final int y, final int z, final boolean fixed, final String name,
-            final CreatePositionCallback callback){
+            final HashMap<String, String> attributes, final CreatePositionCallback callback){
         if (!isConnected()) return;
         final SignalCharacterDTO signalCharacter = currentSignalCharacter();
         System.out.println("signalCharacter.getSimpleScanResults() " + signalCharacter.getSimpleScanResults());
@@ -240,8 +242,8 @@
                 synchronized (mutex) {
                     if (!isConnected()) return;
                     try {
-                        positionFacade.createOrUpdatePosition(sessionId, controller.getCurrentMap().name, x, y, z,
-                                signalCharacter, name, fixed);
+                        positionFacade.createOrUpdatePosition(sessionId, NodeTypes.LOCATION, controller.getCurrentMap().name, x,
+                                y, z, signalCharacter, name, fixed, attributes);
                         // TODO: Zus\xE4tzliche Parameter zur Position
                         callback.positionCreated();
                     } catch (Exception e) {
@@ -351,7 +353,7 @@
      *      net.sf.magicmap.client.interfaces.PositionCallback)
      */
     public void setClientPosition(final int x, final int y, final int z, final boolean fixed, final String clientMac,
-            final PositionCallback callback){
+            final HashMap<String, String> attributes, final PositionCallback callback){
         if (!isConnected()) return;
         Thread thread = new Thread() {
 
@@ -360,8 +362,8 @@
                     if (!isConnected()) return;
                     try {
 
-                        positionFacade.createOrUpdateClientPosition(sessionId, controller.getCurrentMap().name, x, y,
-                                z, currentSignalCharacter(), clientMac, fixed);
+                        positionFacade.createOrUpdatePosition(sessionId, NodeTypes.CLIENT, controller.getCurrentMap().name, x, y,
+                                z, currentSignalCharacter(), clientMac, fixed, attributes);
                         // TODO: Zus\xE4tzliche Parameter zur Position
                         callback.positionUpdated(clientMac);
                     } catch (Exception e) {
@@ -382,7 +384,7 @@
      *      net.sf.magicmap.client.interfaces.PositionCallback)
      */
     public void setAccessPointPosition(final int x, final int y, final int z, final boolean fixed,
-            final String accessPointMac, final PositionCallback callback){
+            final String accessPointMac, final HashMap<String, String> attributes, final PositionCallback callback){
         if (!isConnected()) return;
         Thread thread = new Thread() {
 
@@ -390,8 +392,9 @@
                 synchronized (mutex) {
                     if (!isConnected()) return;
                     try {
-                        positionFacade.createOrUpdateAccessPosition(sessionId, controller.getCurrentMap().name, x, y,
-                                z, accessPointMac, fixed);
+                        //TODO: SignalCharacter for APs?
+                        positionFacade.createOrUpdatePosition(sessionId, NodeTypes.ACCESSPOINT, controller.getCurrentMap().name,
+                                x, y, z, null, accessPointMac, fixed, attributes);
                         // TODO: Zus\xE4tzliche Parameter zur Position
                         callback.positionUpdated(accessPointMac);
                     } catch (Exception e) {
@@ -447,13 +450,14 @@
                 synchronized (mutex) {
                     if (!isConnected()) return;
                     try {
+                        // TODO: use the arraylist and not null! or make null the null the default value to get all types
                         PositionDTO[] positions;
                         if (VirtualServerManager.this.timestamp == -1)
                             positions = positionFacade.getPositionsForMapSince(VirtualServerManager.this.sessionId,
-                                    controller.getCurrentMap().name, new Long(3600000), true);
+                                    null, controller.getCurrentMap().name, new Long(3600000), true);
                         else
                             positions = positionFacade.getPositionsForMapSince(VirtualServerManager.this.sessionId,
-                                    controller.getCurrentMap().name, VirtualServerManager.this.timestamp, false);
+                                    null, controller.getCurrentMap().name, VirtualServerManager.this.timestamp, false);
                         for (int i = 0; i < positions.length; i++) {
                             if (positions[i].getLastModified().longValue() > timestamp) {
                                 timestamp = positions[i].getLastModified().longValue();
@@ -499,6 +503,7 @@
                         int y = controller.getClientPosY();
                         // int z = 0;
                         int z = controller.getClientPosZ();
+                        HashMap<String, String> attributes = controller.getClientAttributes();
                         if (x < 0)
                             x = 0;
                         else if (x >= controller.getCurrentMap().width) x = controller.getCurrentMap().width - 1;
@@ -509,9 +514,9 @@
                         if (z < 0) z = 0;
                         // else if (z >= ) z = ;;
 
-                        positionFacade.createOrUpdateClientPosition(sessionId, controller.getCurrentMap().name, x, y,
+                        positionFacade.createOrUpdatePosition(sessionId, NodeTypes.CLIENT, controller.getCurrentMap().name, x, y,
                                 z, signalCharacter, controller.getClient().getMacAddress(), controller.getClient()
-                                        .isFix());
+                                        .isFix(), attributes);
                         // TODO: Zus\xE4tzliche Parameter zur Position
                         System.out.println("Client info submitted.");
                     } catch (Exception e) {
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/delegate/PositionDelegate.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/delegate/PositionDelegate.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/delegate/PositionDelegate.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -4,6 +4,7 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.rmi.RemoteException;
+import java.util.HashMap;
 
 import localhost.magicmap.services.PositionFacade.PositionFacade;
 import localhost.magicmap.services.PositionFacade.PositionFacadeServiceLocator;
@@ -54,13 +55,13 @@
      *      java.lang.String, int, int,
      *      com.saugstation.pacw.generated.SignalCharacter, java.lang.String)
      */
-    public void createOrUpdatePosition(long sessionId, String mapName, int positionX, int positionY, int positionZ,
-            SignalCharacterDTO character, String positionName, boolean fixed) throws RemoteException, MapException,
-            SessionException{
+    public void createOrUpdatePosition(long sessionId,String mapName, int positionX, int positionY, int positionZ,
+            SignalCharacterDTO character, String positionName, boolean fixed, HashMap<String, String> attributes)
+            throws RemoteException, MapException, SessionException{
         try {
             long timeA = System.currentTimeMillis();
-            this.binding.createOrUpdatePosition(sessionId, mapName, positionX, positionY, positionZ, character,
-                    positionName, fixed);
+            this.binding.createOrUpdatePosition(sessionId, "POSITION", mapName, positionX, positionY, positionZ,
+                    character, positionName, fixed, attributes);
             long timeB = System.currentTimeMillis();
             System.out.println("createOrUpdatePosition brauchte: " + (timeB - timeA) + "ms");
         } catch (Exception e) {
@@ -76,12 +77,12 @@
      *      com.saugstation.pacw.generated.SignalCharacter, java.lang.String)
      */
     public void createOrUpdateClientPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed) throws RemoteException,
-            MapException, SessionException{
+            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed,
+            HashMap<String, String> attributes) throws RemoteException, MapException, SessionException{
         try {
             long timeA = System.currentTimeMillis();
-            this.binding.createOrUpdateClientPosition(sessionId, mapName, positionX, positionY, positionZ, character,
-                    clientMac, fixed);
+            this.binding.createOrUpdatePosition(sessionId, "CLIENT", mapName, positionX, positionY, positionZ,
+                    character, clientMac, fixed, attributes);
             long timeB = System.currentTimeMillis();
             System.out.println("createOrUpdateClientPosition brauchte: " + (timeB - timeA) + "ms");
         } catch (Exception e) {
@@ -97,11 +98,12 @@
      *      com.saugstation.pacw.generated.SignalCharacter, java.lang.String)
      */
     public void createOrUpdateAccessPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, String accessPointMac, boolean fixed) throws RemoteException, MapException, SessionException{
+            int positionZ, String accessPointMac, boolean fixed, HashMap<String, String> attributes)
+            throws RemoteException, MapException, SessionException{
         try {
             long timeA = System.currentTimeMillis();
-            this.binding.createOrUpdateAccessPosition(sessionId, mapName, positionX, positionY, positionZ,
-                    accessPointMac, fixed);
+            this.binding.createOrUpdatePosition(sessionId, "ACCESSPOINT", mapName, positionX, positionY, positionZ,
+                    null, accessPointMac, fixed, attributes);
             long timeB = System.currentTimeMillis();
             System.out.println("createOrUpdateAccessPosition brauchte: " + (timeB - timeA) + "ms");
         } catch (Exception e) {
@@ -153,7 +155,7 @@
      */
     public PositionDTO[] getPositionsForMapSince(long sessionId, String mapName, long timeStamp, boolean timeflag)
             throws RemoteException, MapException, SessionException{
-        return this.binding.getPositionsForMapSince(sessionId, mapName, timeStamp, timeflag);
+        return this.binding.getPositionsForMapSince(sessionId, null, mapName, timeStamp, timeflag);
     }
 
     /*
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/delegate/interfaces/PositionFacadeInterface.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/delegate/interfaces/PositionFacadeInterface.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/delegate/interfaces/PositionFacadeInterface.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -1,11 +1,11 @@
 /*
  * Created on 15.11.2004
- *
  */
 
 package net.sf.magicmap.client.delegate.interfaces;
 
 import java.rmi.RemoteException;
+import java.util.HashMap;
 
 import net.sf.magicmap.server.dto.PositionDTO;
 import net.sf.magicmap.server.dto.SignalCharacterDTO;
@@ -32,8 +32,8 @@
      * @throws MapException Fehlende Karte, inkosistente Positionsangaben
      */
     public abstract void createOrUpdatePosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String positionName, boolean fixed) throws SessionException,
-            MapException, RemoteException;
+            int positionZ, SignalCharacterDTO character, String identifier, boolean fixed,
+            HashMap<String, String> attributes) throws SessionException, MapException, RemoteException;
 
     /**
      * Legt eine Position f�r einen Client fest oder korrigiert diese
@@ -48,8 +48,8 @@
      * @throws MapException Fehlende Karte, inkosistente Positionsangaben
      */
     public abstract void createOrUpdateClientPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed) throws SessionException,
-            MapException, RemoteException;
+            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed,
+            HashMap<String, String> attribute) throws SessionException, MapException, RemoteException;
 
     /**
      * Legt eine Position f�r einen AccessPoint fest oder korrigiert diese
@@ -64,7 +64,8 @@
      * @throws MapException Fehlende Karte, inkosistente Positionsangaben
      */
     public abstract void createOrUpdateAccessPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, String accessPointMac, boolean fixed) throws SessionException, MapException, RemoteException;
+            int positionZ, String accessPointMac, boolean fixed, HashMap<String, String> attribute)
+            throws SessionException, MapException, RemoteException;
 
     /**
      * Verschiebt eine beliebige Position auf der Karte
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/MapPanel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/MapPanel.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/MapPanel.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -397,7 +397,7 @@
              * nehmen!
              */
             Controller.getInstance().createLocation(getLastX(), getLastY(), Settings.DEFAULT_HEIGHT,
-                    (r + " (" + Controller.getInstance().getClient().getName() + ") <" + timeAsString + ">"), true,
+                    (r + " (" + Controller.getInstance().getClient().getName() + ") <" + timeAsString + ">"), true, Controller.getInstance().getClientAttributes(),
                     this);
         }
     }
@@ -425,7 +425,7 @@
                 this.selectedNode.setUpdate(true); // aktuelles Icon wird auf das
                 // UpdateIcon gesetzt
                 Controller.getInstance()
-                        .createLocation(getLastX(), getLastY(), this.selectedNode.getZ(), r, true, this); // der
+                        .createLocation(getLastX(), getLastY(), this.selectedNode.getZ(), r, true, Controller.getInstance().getClientAttributes(), this); // der
                 // Referenzpunkt neu eingemessen
 
             }
@@ -481,7 +481,7 @@
                     Controller.getInstance()
                             .setAccessPointPosition(this.selectedNode.getX(), this.selectedNode.getY(),
                                     this.selectedNode.getZ(), true,
-                                    ((AccessPointNode) this.selectedNode).getMacAddress(), this);
+                                    ((AccessPointNode) this.selectedNode).getMacAddress(), this.selectedNode.getAttributes(), this);
                 else
                     Controller.getInstance().movePosition(this.selectedNode.getId(),
                             Controller.getInstance().getCurrentMap().name, this.selectedNode.getX(),
@@ -489,7 +489,7 @@
             } else if (this.selectedNode.getType() == NodeModelConstants.NODETYPE_CLIENT) {
                 if (this.selectedNode.getId() == -1)
                     Controller.getInstance().setClientPosition(this.selectedNode.getX(), this.selectedNode.getY(),
-                            this.selectedNode.getZ(), true, ((ClientNode) this.selectedNode).getMacAddress(), this);
+                            this.selectedNode.getZ(), true, ((ClientNode) this.selectedNode).getMacAddress(), this.selectedNode.getAttributes(), this);
                 else
                     Controller.getInstance().movePosition(this.selectedNode.getId(),
                             Controller.getInstance().getCurrentMap().name, this.selectedNode.getX(),
@@ -497,7 +497,7 @@
             } else if (this.selectedNode.getType() == NodeModelConstants.NODETYPE_LOCATION)
                 if (this.selectedNode.getId() == -1)
                     Controller.getInstance().createLocation(this.selectedNode.getX(), this.selectedNode.getY(),
-                            this.selectedNode.getZ(), this.selectedNode.getName(), true, this);
+                            this.selectedNode.getZ(), this.selectedNode.getName(), true, this.selectedNode.getAttributes(), this);
                 else
                     Controller.getInstance().movePosition(this.selectedNode.getId(),
                             Controller.getInstance().getCurrentMap().name, this.selectedNode.getX(),
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/LoadMapDialog.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/LoadMapDialog.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/dialogs/LoadMapDialog.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -116,6 +116,11 @@
         this.list = new JList(mapModel);
         list.setCellRenderer(new DefaultListCellRenderer() {
 
+            /**
+             * Default serial version UID
+             */
+            private static final long serialVersionUID = 1L;
+
             @Override
             public Component getListCellRendererComponent(JList list, Object value, int arg2, boolean arg3, boolean arg4){
                 Component cellRenderer = super.getListCellRendererComponent(list, value, arg2, arg3, arg4);
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -5,20 +5,29 @@
 
 package net.sf.magicmap.client.gui.utils;
 
+import java.awt.Dimension;
+import java.awt.Window;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+
+import net.sf.magicmap.client.gui.MainGUI;
+
 import com.jgoodies.looks.Options;
 import com.jgoodies.looks.plastic.Plastic3DLookAndFeel;
-import com.jgoodies.looks.plastic.PlasticLookAndFeel;
 import com.jgoodies.looks.plastic.theme.ExperienceBlue;
-import net.sf.magicmap.client.gui.MainGUI;
 
-import javax.swing.*;
-import javax.swing.border.EmptyBorder;
-import javax.swing.plaf.metal.MetalLookAndFeel;
-import java.awt.*;
-import java.util.*;
 
-import apple.laf.AquaLookAndFeel;
-
 /**
  * @author msc
  *
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/measurement/IMeasurementModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/measurement/IMeasurementModel.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/measurement/IMeasurementModel.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -2,6 +2,7 @@
 package net.sf.magicmap.client.model.measurement;
 
 import java.util.Collection;
+import java.util.HashMap;
 
 import net.sf.magicmap.client.interfaces.MeasurementModelListener;
 
@@ -17,13 +18,24 @@
      */
     public Collection<SeenAccessPoint> get();
 
+//    /**
+//     * Add a scanresult.
+//     * @param apMac the accesspoints mac
+//     * @param signalLevel the signal level.
+//     */
+//    void updateScanResult(String apMac, double signalLevel);
+    
     /**
      * Add a scanresult.
      * @param apMac the accesspoints mac
      * @param signalLevel the signal level.
+     * @param infos additional informations like type, hardware, drivers etc...
+     *  The keys for "infos" can be found in net.sf.magicmap.client.utils.DriverInformations.java
      */
     void updateScanResult(String apMac, double signalLevel);
     
+    
+    
     /**
      * Add a scanresult without using average calculation.
      * @param apMac the accesspoints mac
@@ -44,6 +56,13 @@
      * @param signalLevel
      */
     void directUpdateScanResult(String[] apMac, double[] signalLevel);
+    
+    /**
+     * Batch update to avoid event overflow ;-)
+     * @param apMac
+     * @param signalLevel
+     */    
+    void updateScanResult(String[] apMac, double[] signalLevel, HashMap<String, String>[] infos);
 
     /**
      * Gets the SeenAccessPoint for a given seer.
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/AccessPointSeerNode.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -17,10 +17,9 @@
 import net.sf.magicmap.client.model.measurement.IMeasurementModel;
 import net.sf.magicmap.client.model.measurement.SeenAccessPoint;
 
-
 /**
  * Ein Objekt das Access Points in einer Umgebung mit Signalst\xE4rken sehen kann.
- *
+ * 
  * @author thuebner
  */
 public abstract class AccessPointSeerNode extends Node {
@@ -28,7 +27,7 @@
     /*
      * Alle Kanten zu AccessPoints (AccessPointEdge) mit entsprechenden
      * Informationen \xFCber die Signalst\xE4rke
-     *
+     * 
      */
     private final Map<String, AccessPointEdge> apEdges = new HashMap<String, AccessPointEdge>();
     private IMeasurementModel                  measurementModel;
@@ -56,7 +55,7 @@
      * AccessPointer-Seher gemessen wurde oder
      * net.sf.magicmap.client.measurement.Constants.MIN_SIGNALLEVEL wenn
      * AccessPoint nicht gesehen wird.
-     *
+     * 
      * @param ap
      * @return
      */
@@ -67,15 +66,15 @@
 
     /**
      * Setzt / Aktualisiert die Signalst\xE4rke zu einem Access Point
-     *
+     * 
      * @param ap the access point
-     * @param level the signal strength of the ap
+     * @param the signal strength of the ap
      */
     public void setSignalLevelForAcessPoint(AccessPointNode ap, double level){
         if (!apEdges.containsKey(ap.getMacAddress())) {
             seesAccessPoint(ap, level);
         } else {
-            if(ap.isHidden()){
+            if (ap.isHidden()) {
                 notSeesAccessPoint(ap);
                 return;
             }
@@ -86,6 +85,18 @@
 
     }
 
+    /**
+     * Normalisiert die Signalst\xE4rke zu einem Access Point
+     * 
+     * @param ap the access point
+     * @param level the signal strength of the ap
+     */
+    public void setSignalLevelForAcessPoint(AccessPointNode ap, double level,HashMap<String, Object> infos){
+        // TODO : Normalisierung, Faktor einmal vom Server holen und dann das level umrechnen.
+        // TODO : Streuung und dergleichen berechnen
+        setSignalLevelForAcessPoint(ap, level);
+    }
+
     public void seesAccessPoint(AccessPointNode ap, double signalStrength){
         if (!getSeenAccessPoints().contains(ap) && !ap.isHidden()) {
             AccessPointEdge ae = new AccessPointEdge();
@@ -145,7 +156,7 @@
 
     /**
      * New Model for measurements. contains all measurement made.
-     *
+     * 
      */
     public class MeasurementModel implements IMeasurementModel {
 
@@ -157,9 +168,8 @@
         }
 
         /**
-         * Adds an access point to the list of seen ap for a
-         * given client.
-         *
+         * Adds an access point to the list of seen ap for a given client.
+         * 
          * @param client the client seeing the ap
          * @param ap the seen access point.
          */
@@ -168,10 +178,11 @@
                 apMap.put(ap.getMac(), ap);
                 fireAccessPointAdded(ap);
             }
-            //client.getModel().updateNode(client, NodeModelConstants.UPDATE_SEESACCESSPOINT, null);
+            // client.getModel().updateNode(client,
+            // NodeModelConstants.UPDATE_SEESACCESSPOINT, null);
         }
+        public void updateScanResult(String apMac, double signalLevel){ 
 
-        public void updateScanResult(String apMac, double signalLevel){
             SeenAccessPoint accessPoint = getAccessPoint(apMac);
             final INodeModel nodeModel = AccessPointSeerNode.this.getModel();
 
@@ -203,7 +214,7 @@
                 }
             }
         }
-        
+
         public void directUpdateScanResult(String apMac, double signalLevel){
             SeenAccessPoint accessPoint = getAccessPoint(apMac);
             final INodeModel nodeModel = AccessPointSeerNode.this.getModel();
@@ -237,7 +248,6 @@
             }
         }
 
-
         public void updateScanResult(String[] apMac, double[] signalLevel){
             HashSet<String> seenAps = new HashSet<String>();
             for (SeenAccessPoint sap : this.get()) {
@@ -251,7 +261,7 @@
                 updateScanResult(mac, Double.NEGATIVE_INFINITY);
             }
         }
-        
+
         public void directUpdateScanResult(String[] apMac, double[] signalLevel){
             HashSet<String> seenAps = new HashSet<String>();
             for (SeenAccessPoint sap : this.get()) {
@@ -265,9 +275,15 @@
                 directUpdateScanResult(mac, Double.NEGATIVE_INFINITY);
             }
         }
+        
+        public void updateScanResult(String[] apMac, double[] signalLevel, HashMap<String, String>[] infos){
+            // TODO Auto-generated method stub
+            
+        }
 
         /**
          * Returns a list of seen access points for a given client.
+         * 
          * @param forNode
          * @return
          */
@@ -325,6 +341,5 @@
                 mml.clearAccessPoints();
             }
         }
-
     }
 }
\ No newline at end of file
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -5,6 +5,7 @@
 package net.sf.magicmap.client.model.node;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 
 /**
  * Einfacher Knoten in unserem Graphen aus Clients, AccessPoints, und
@@ -12,78 +13,81 @@
  *
  * @author thuebner
  */
-public abstract class Node implements INode{
-	// Es gibt zwar die sch\xF6ne Methode Collections.emptyList() aber
-	// Da diese keine ArrayList ist m\xFCessen wir das selber machen :-/
-	private static final ArrayList emptyList = new ArrayList(){
-		public boolean add(Object o) {
-			return false;
-		}
+public abstract class Node implements INode {
 
-		public void add(int index, Object element) {
-		}
-	};
-	/**
+    // Es gibt zwar die sch\xF6ne Methode Collections.emptyList() aber
+    // Da diese keine ArrayList ist m\xFCessen wir das selber machen :-/
+    private static final ArrayList  emptyList  = new ArrayList() {
+
+                                                   public boolean add(Object o){
+                                                       return false;
+                                                   }
+
+                                                   public void add(int index, Object element){}
+                                               };
+    /**
      * Ein leerer Knoten.
      */
-    public static final Node EMPTY_NODE = new Node(null) {
+    public static final Node        EMPTY_NODE = new Node(null) {
 
-                                            @Override
-                                            public ArrayList getNeighbors(){
-                                                return emptyList;
-                                            }
+                                                   @Override
+                                                   public ArrayList getNeighbors(){
+                                                       return emptyList;
+                                                   }
 
-                                            @Override
-                                            public int getType(){
-                                                return -1;
-                                            }
+                                                   @Override
+                                                   public int getType(){
+                                                       return -1;
+                                                   }
 
-                                        };
+                                               };
 
     /**
      *
      */
-    private static int       counter    = 0;
+    private static int              counter    = 0;
 
     /**
      *
      */
-    private String           name;              // Beschreibung
+    private String                  name;                                      // Beschreibung
 
     /**
      *
      */
-    private String           displayName;
+    private String                  displayName;
 
     /**
      *
      */
-    private String           internal;
+    private String                  internal;
 
-    protected boolean        fix;               // Fest oder beweglich
+    protected boolean               fix;                                       // Fest oder beweglich
 
     /**
      *
      */
-    protected boolean        update     = false; // wenn Referenzpunktupdate = true
+    protected boolean               update     = false;                        // wenn Referenzpunktupdate = true
 
-    private int              x;                 // Position (nur wenn fix = true)
+    private int                     x;                                         // Position (nur wenn fix = true)
 
-    private int              y;
+    private int                     y;
 
-    private int              z;
+    private int                     z;
 
-    private long             id;
+    private long                    id;
 
-    private transient INodeModel       model;
+    private transient INodeModel    model;
 
-    private Node             parentNode;
+    private Node                    parentNode;
 
+    private HashMap<String, String> attributes = new HashMap<String, String>();
+
     /**
      * true wenn der Knoten ein Objekt mit einer r\xE4umlichen
      * Ausbreitung darstellt. (Infoobjekte haben unter Umst\xE4nden keinen Ort).
      */
-    private boolean          physical;
+    private boolean                 physical;
 
     /**
      * Erzeugt leeren Knoten. Ein Knoten mu\xDF \xFCber sein NodeModel bescheid
@@ -127,7 +131,6 @@
     }
 
     /**
-     * TODO what does this mean?
      * @return
      */
     public boolean isUpdate(){
@@ -135,7 +138,6 @@
     }
 
     /**
-     * TODO !?
      * @param newupdate
      */
     public void setUpdate(boolean newupdate){
@@ -273,4 +275,12 @@
         return null;
     }
 
+    public void setAttributes(HashMap<String, String> newAttributes){
+        this.attributes = newAttributes;
+    }
+
+    public HashMap<String, String> getAttributes(){
+        return this.attributes;
+    }
+
 }
\ No newline at end of file
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -6,6 +6,7 @@
 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 org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/net/NetworkInfo.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/net/NetworkInfo.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/net/NetworkInfo.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -138,7 +138,9 @@
     /** Sort of like a factory... */
     public static NetworkInfo getNetworkInfo() throws IOException{
         String os = System.getProperty("os.name");
-
+        if(os.contains("Vista"))
+            return new VistaNetworkInfo();
+        else
         if (os.startsWith("Windows"))
             return new WindowsNetworkInfo();
         else if (os.startsWith("Linux"))
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/utils/DriverInformations.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/utils/DriverInformations.java	2008-01-21 23:17:30 UTC (rev 717)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/utils/DriverInformations.java	2008-01-28 13:18:41 UTC (rev 718)
@@ -1,13 +1,13 @@
+
 package net.sf.magicmap.client.utils;
 
+public final class DriverInformations {
 
-public final class DriverInformations {
-    public final static String DRIVER = "DRIVER";
-    public final static String VENDOR = "VENDOR";
-    public final static String PROVIDER= "PROVIDER";
-    public final static String DATE = "DATE";
-    public final static String VERSION = "VERSION";
-    public final static String INFFILE = "INFFILE";
-    public final static String TYPE = "TYPE";
-    public final static String SUPPORTEDTYPES = "SUPPORTEDTYPES";
+    public final static String OSNAME             = "OSNAME";            //name of the operating system
+    public final static String RADIOTYPE          = "RADIOTYPE";         //wlan, bluetooth, gsm, etc...
+    public final static String DEVICENAME         = "DEVICENAME";        //name of the device
+    public final static String VENDOR             = "VENDOR";            //name of the vendor
+    public final static String VERSION            = "VERSION";           //driver version
+    public final static String TYPE               = "TYPE";
+    public final static String SUPPORTEDTYPES     = "SUPPORTEDTYPES";    //e.g.: 802.11a 802.11b 802.11g
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <an...@us...> - 2008-01-28 13:55:55
      
     | 
| Revision: 720
          http://magicmap.svn.sourceforge.net/magicmap/?rev=720&view=rev
Author:   anweiss
Date:     2008-01-28 05:55:25 -0800 (Mon, 28 Jan 2008)
Log Message:
-----------
added hashmaps for (client) nodes
Modified Paths:
--------------
    trunk/magicmapserver/.classpath
    trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/Position.java
    trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/ScanResult.java
    trunk/magicmapserver/src/net/sf/magicmap/server/cache/PositionCache.java
    trunk/magicmapserver/src/net/sf/magicmap/server/dto/PositionDTO.java
    trunk/magicmapserver/src/net/sf/magicmap/server/dto/SimpleScanResultDTO.java
    trunk/magicmapserver/src/net/sf/magicmap/server/facade/PositionFacade.java
    trunk/magicmapserver/src/net/sf/magicmap/server/interfaces/PositionFacadeInterface.java
    trunk/magicmapserver/src/net/sf/magicmap/server/utils/Version.java
Modified: trunk/magicmapserver/.classpath
===================================================================
--- trunk/magicmapserver/.classpath	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/.classpath	2008-01-28 13:55:25 UTC (rev 720)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry output="dblayer/bin" kind="src" path="dblayer/src"/>
+	<classpathentry kind="src" output="dblayer/bin" path="dblayer/src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="lib" path="web/WEB-INF/lib/log4j-1.2.8.jar"/>
 	<classpathentry kind="lib" path="web/WEB-INF/lib/jpox-20041204.032009.jar"/>
@@ -9,5 +9,10 @@
 	<classpathentry kind="lib" path="lib.dev/jasper-runtime.jar"/>
 	<classpathentry kind="lib" path="lib.dev/jsp-api.jar"/>
 	<classpathentry kind="lib" path="lib.dev/servlet-api.jar"/>
+	<classpathentry kind="var" path="TOMCAT_HOME/lib/servlet-api.jar"/>
+	<classpathentry kind="var" path="TOMCAT_HOME/lib/jasper.jar"/>
+	<classpathentry kind="var" path="TOMCAT_HOME/lib/jsp-api.jar"/>
+	<classpathentry kind="var" path="TOMCAT_HOME/lib/el-api.jar"/>
+	<classpathentry kind="var" path="TOMCAT_HOME/lib/annotations-api.jar"/>
 	<classpathentry kind="output" path="web/WEB-INF/classes"/>
 </classpath>
Modified: trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/Position.java
===================================================================
--- trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/Position.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/Position.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -5,6 +5,7 @@
 package net.sf.magicmap.db;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
 
 /**
@@ -38,7 +39,7 @@
      *   persistence-modifier="persistent"
      *   primary-key="true"
      */
-    long        id;
+    long                          id;
 
     /**
      * 
@@ -47,7 +48,7 @@
      *   persistence-modifier="persistent"
      *   null-value="exception"
      */
-    String      name;
+    String                        name;
 
     /**
      * zugeh\xF6rige Karte
@@ -56,7 +57,7 @@
      *   persistence-modifier="persistent"
      *   null-value="exception"
      */
-    Map         map;
+    Map                           map;
 
     /**
      * x Position im Bild
@@ -65,7 +66,7 @@
      *   persistence-modifier="persistent"
      *   null-value="exception"
      */
-    int         posX;
+    int                           posX;
 
     /**
      * y Position im Bild
@@ -74,7 +75,7 @@
      *   persistence-modifier="persistent"
      *   null-value="exception"
      */
-    int         posY;
+    int                           posY;
 
     /**
      * z Position im Bild
@@ -83,7 +84,7 @@
      *   persistence-modifier="persistent"
      *   null-value="exception"
      */
-    int         posZ;
+    int                           posZ;
 
     /**
      * Zeit der loggens der Position
@@ -92,7 +93,7 @@
      *   persistence-modifier="persistent"
      *   null-value="exception"
      */
-    long        lastModified;
+    long                          lastModified;
 
     /**
      * schon gel\xF6scht?
@@ -100,7 +101,7 @@
      * @jdo.field 
      *   persistence-modifier="persistent"
      */
-    int         deleted;
+    int                           deleted;
 
     /**
      * fixiert
@@ -108,7 +109,7 @@
      * @jdo.field 
      *   persistence-modifier="persistent"
      */
-    int         fixed;
+    int                           fixed;
 
     /**
      * GridFields f\xFCr diesen Ort
@@ -119,7 +120,7 @@
      *   element-type="ScanResult" 
      *   mapped-by="position"
      */
-    Collection  scanResults = new HashSet();
+    Collection                    scanResults = new HashSet();
 
     /**
      * Client, die diese Hardware haben
@@ -127,7 +128,7 @@
      * @jdo.field 
      *   persistence-modifier="persistent" 
      */
-    Client      client;
+    Client                        client;
 
     /**
      * AccessPoints, die diese Hardware haben
@@ -135,15 +136,26 @@
      * @jdo.field 
      *   persistence-modifier="persistent" 
      */
-    AccessPoint accessPoint;
+    AccessPoint                   accessPoint;
 
     /**
+     * @jdo.field 
+     *   persistence-modifier="persistent"
+     *   collection-type="map"
+     *   key-type="java.lang.String"
+     *   value-type="java.lang.String"
+     *   dependent="true"
+     * @jdo.join
+     */
+    java.util.Map attributes  = new HashMap();
+
+    /**
      * 
      * @param map
      * @param posX
      * @param posY
      */
-    public Position(Map map, int posX, int posY, int posZ, String name) {
+    public Position(Map map, int posX, int posY, int posZ, String name, HashMap attributes) {
         super();
 
         this.map = map;
@@ -151,6 +163,7 @@
         this.posY = posY;
         this.posZ = posZ;
         this.name = name;
+        this.attributes = attributes;
         this.deleted = 0;
         this.lastModified = System.currentTimeMillis();
 
@@ -310,4 +323,13 @@
         this.posZ = posZ;
         this.lastModified = System.currentTimeMillis();
     }
+
+    public void setAttributes(HashMap<String,String> attributes){
+        this.attributes = attributes;
+        this.lastModified = System.currentTimeMillis();
+    }
+
+    public java.util.Map<String,String> getAttributes(){
+        return this.attributes;
+    }
 }
\ No newline at end of file
Modified: trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/ScanResult.java
===================================================================
--- trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/ScanResult.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/dblayer/src/net/sf/magicmap/db/ScanResult.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -5,6 +5,7 @@
 package net.sf.magicmap.db;
 
 import java.sql.Timestamp;
+import java.util.HashMap;
 
 /**
  * @author msc
@@ -118,6 +119,18 @@
      *   persistence-modifier="persistent"
      */
     int         round = -1;
+    
+    /**
+     * @jdo.field 
+     *   persistence-modifier="persistent"
+     *   collection-type="map"
+     *   key-type="java.lang.String"
+     *   value-type="java.lang.String"
+     *   dependent="true"
+     * @jdo.join
+     */
+    java.util.Map informations  = new java.util.HashMap();
+    
 
     /**
      * @param client
@@ -126,7 +139,7 @@
      * @param noiseLevel
      * @param logtime
      */
-    public ScanResult(Client client, AccessPoint accessPoint, Double signalLevel, Double noiseLevel, Timestamp logtime) {
+    public ScanResult(Client client, AccessPoint accessPoint, Double signalLevel, Double noiseLevel, Timestamp logtime, HashMap<String,String> informations) {
         super();
 
         this.client = client;
@@ -134,6 +147,7 @@
         this.signalLevel = signalLevel;
         this.noiseLevel = noiseLevel;
         this.logtime = logtime;
+        this.informations = informations;
     }
 
     public AccessPoint getAccessPoint(){
@@ -227,4 +241,12 @@
     public void setPosition(Position position){
         this.position = position;
     }
+    
+    public void setInformations(HashMap<String,String> informations){
+        this.informations = informations;
+    }
+    
+    public HashMap<String,String> getInformations(){
+        return (new HashMap<String,String>(this.informations));
+    }
 }
\ No newline at end of file
Modified: trunk/magicmapserver/src/net/sf/magicmap/server/cache/PositionCache.java
===================================================================
--- trunk/magicmapserver/src/net/sf/magicmap/server/cache/PositionCache.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/src/net/sf/magicmap/server/cache/PositionCache.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -5,6 +5,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.TreeMap;
@@ -37,7 +38,7 @@
      * serial version id
      */
     private static final long          serialVersionUID     = 1L;
-    // Sigleton Hashtable
+    // Singleton Hashtable
     private static final PositionCache single_positionCache = new PositionCache();
 
     public static PositionCache getPositionCache(){
@@ -130,9 +131,9 @@
         if (dtos != null) {
             for (int i = 0; i < dtos.length; i++) {
                 AccessPoint ap = findOrCreateAccessPoint(dtos[i].getMacAP(), pm);
-                //@TODO think about? ap.setSsid(dtos[i].getSsid());
+                // @TODO think about? ap.setSsid(dtos[i].getSsid());
                 ScanResult sr = new ScanResult(client, ap, dtos[i].getSignalLevel(), dtos[i].getNoise(), new Timestamp(
-                        dto.getLastModified()));
+                        dto.getLastModified()), dtos[i].getInfos());
                 pm.makePersistent(sr);
                 sr.setPosition(pos);
             }
@@ -150,15 +151,17 @@
             Map map = checkMap(mapName, pm);
             Position pos = checkPosition(position.getName(), map, pm);
             if (pos == null) {
-                pos = new Position(map, position.getPosX(), position.getPosY(), position.getPosZ(), position.getName());
+                pos = new Position(map, position.getPosX(), position.getPosY(), position.getPosZ(), position.getName(),
+                        position.getAttributes());
                 logger.info("Position in db z: " + pos.getPosZ());
                 pm.makePersistent(pos);
+            } else {
+                pos.setPosX(position.getPosX());
+                pos.setPosY(position.getPosY());
+                pos.setPosZ(position.getPosZ());
+                pos.setAttributes(position.getAttributes());
             }
             pos.setDeleted(position.isDeleted());
-            pos.setPosX(position.getPosX());
-            pos.setPosY(position.getPosY());
-            pos.setPosZ(position.getPosZ());
-
             pos.setFixed(position.isFixed());
 
             if (position.getClient() != null) {
@@ -261,10 +264,11 @@
                                     while (scanIt.hasNext()) {
                                         ScanResult sr = (ScanResult) scanIt.next();
 
-                                        //                    Date lastSeen = null;
-                                        //                    if (sr.getScantime() != null){
-                                        //                      lastSeen = new Date(sr.getScantime().getTime());
-                                        //                    }
+                                        // Date lastSeen = null;
+                                        // if (sr.getScantime() != null){
+                                        // lastSeen = new
+                                        // Date(sr.getScantime().getTime());
+                                        // }
 
                                         SimpleScanResultDTO ssr = new SimpleScanResultDTO();
 
@@ -274,6 +278,7 @@
                                         ssr.setNoise(sr.getNoiseLevel());
                                         ssr.setSignalLevel(sr.getSignalLevel());
                                         ssr.setSsid(sr.getAccessPoint().getSsid());
+                                        ssr.setInfos(sr.getInformations());
 
                                         ArrayList<SimpleScanResultDTO> list;
                                         if (dto.getCharacter().getSimpleScanResults() == null) {
@@ -288,6 +293,7 @@
                                                 (SimpleScanResultDTO[]) list.toArray(new SimpleScanResultDTO[0]));
                                     }
                                 }
+                                HashMap attributes = new HashMap(pos.getAttributes());
                                 getMapHashtable(map).addPositionFromDB(dto);
                             }
                         }
@@ -523,7 +529,7 @@
             logger.info("leaving getPositionsSince()");
             return positions.toArray(new PositionDTO[0]);
         } else {
-            Collection<String> newPositions = timeMap.tailMap(time+1).values();
+            Collection<String> newPositions = timeMap.tailMap(time + 1).values();
             logger.info("Daten in timeMap: " + timeMap.toString());
             logger.info("Daten in tailMap: " + newPositions.toString());
             PositionDTO[] positions = new PositionDTO[newPositions.size()];
Modified: trunk/magicmapserver/src/net/sf/magicmap/server/dto/PositionDTO.java
===================================================================
--- trunk/magicmapserver/src/net/sf/magicmap/server/dto/PositionDTO.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/src/net/sf/magicmap/server/dto/PositionDTO.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -1,31 +1,33 @@
 
 package net.sf.magicmap.server.dto;
 
+import java.util.HashMap;
+
 /**
- * author        schweige
- * date          03.12.2004
- * copyright     (C) 2004 Martin Schweigert, Tobias H\xFCbner
+ * author schweige date 03.12.2004 copyright (C) 2004 Martin Schweigert, Tobias
+ * H\xFCbner
  * 
  * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
  */
 public class PositionDTO {
 
-    private Long               id;
-    private boolean            deleted;
-    private Long               lastModified;
-    private Integer            posX;
-    private Integer            posY;
-    private Integer            posZ;
-    private String             name;
-    private SignalCharacterDTO character;
-    private boolean            fixed;
+    private Long                    id;
+    private boolean                 deleted;
+    private Long                    lastModified;
+    private Integer                 posX;
+    private Integer                 posY;
+    private Integer                 posZ;
+    private String                  name;
+    private SignalCharacterDTO      character;
+    private boolean                 fixed;
+    private HashMap<String, String> attributes;
 
-    private AccessPointDTO     accessPoint;
-    private ClientDTO          client;
+    private AccessPointDTO          accessPoint;
+    private ClientDTO               client;
 
     public PositionDTO() {
     //
@@ -87,7 +89,8 @@
         this.posY = posY;
     }
 
-    /* (non-Javadoc)
+    /*
+     * (non-Javadoc)
      * @see net.sf.magicmap.server.facade.dto.DTO#getCSEP()
      */
     protected String getCSEP(){
@@ -186,4 +189,21 @@
     public void setPosZ(Integer posZ){
         this.posZ = posZ;
     }
+
+    /**
+     * @return Returns the infos
+     */
+    public HashMap<String, String> getAttributes(){
+        return this.attributes;
+    }
+
+    /**
+     * Sets the infos for this position.
+     * 
+     * @param newInfos The new informations for this position.
+     */
+    public void setAttributes(HashMap<String, String> attributes){
+        this.attributes = attributes;
+    }
+
 }
\ No newline at end of file
Modified: trunk/magicmapserver/src/net/sf/magicmap/server/dto/SimpleScanResultDTO.java
===================================================================
--- trunk/magicmapserver/src/net/sf/magicmap/server/dto/SimpleScanResultDTO.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/src/net/sf/magicmap/server/dto/SimpleScanResultDTO.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -1,6 +1,8 @@
 
 package net.sf.magicmap.server.dto;
 
+import java.util.HashMap;
+
 /**
  * author        schweige
  * date          03.12.2004
@@ -14,11 +16,12 @@
  */
 public class SimpleScanResultDTO {
 
-    protected String ssid;       // WLAN-Name (optional)
-    protected String macAP;      // MAC-Adresse AccessPoint
-    protected Double signalLevel; // Signallevel in dB (negativer Wert)
-    protected Double noise;      // Signal-Rausch-Abstand (optional)  
-    protected Long   lastSeen;   // (optional)
+    protected String                  ssid;       // WLAN-Name (optional)
+    protected String                  macAP;      // MAC-Adresse AccessPoint
+    protected Double                  signalLevel; // Signallevel in dB (negativer Wert)
+    protected Double                  noise;      // Signal-Rausch-Abstand (optional)  
+    protected Long                    lastSeen;   // (optional)
+    protected HashMap<String, String> infos;      //additional informations for this scanresult
 
     public SimpleScanResultDTO() {
 
@@ -93,4 +96,16 @@
     public void setSignalLevel(Double signalLevel){
         this.signalLevel = signalLevel;
     }
+
+    /**
+     * @return infos The additional informations.
+     */
+    public HashMap<String, String> getInfos(){
+        return this.infos;
+    }
+
+    public void setInfos(HashMap<String, String> newInfos){
+        this.infos = newInfos;
+    }
+
 }
\ No newline at end of file
Modified: trunk/magicmapserver/src/net/sf/magicmap/server/facade/PositionFacade.java
===================================================================
--- trunk/magicmapserver/src/net/sf/magicmap/server/facade/PositionFacade.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/src/net/sf/magicmap/server/facade/PositionFacade.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -6,7 +6,9 @@
 import java.io.PrintWriter;
 import java.rmi.RemoteException;
 import java.util.Collection;
+import java.util.HashMap;
 
+import javax.jdo.CreateLifecycleListener;
 import javax.jdo.Extent;
 import javax.jdo.PersistenceManager;
 import javax.jdo.Query;
@@ -32,78 +34,7 @@
 
     protected transient Category logger = Category.getInstance(this.getClass());
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#createPosition(long, java.lang.String, int, int, net.sf.magicmap.server.facade.dto.SignalCharacter, java.lang.String)
-     */
-    public void createOrUpdatePosition(long sessionId, String mapName, int positionX, int positionY, int positionZ,
-            SignalCharacterDTO character, String positionName, boolean fixed) throws SessionException, MapException{
-        this.logger.info("createOrUpdatePosition()");
-        PersistenceManager pm = null;
-        Transaction tx = null;
-        try {
-            pm = JDOUtil.pmfactory.getPersistenceManager();
-            tx = pm.currentTransaction();
-            tx.begin();
-            createOrUpdatePositionInternal(sessionId, mapName, positionX, positionY, positionZ, character,
-                    positionName, fixed, pm);
-            if (tx.isActive()) {
-                tx.commit();
-            }
-        } catch (Exception e) {
-            if (tx.isActive()) tx.rollback();
-            e.printStackTrace();
-            if (e instanceof MapException) {
-                throw (MapException) e;
-            }
-            if (e instanceof SessionException) {
-                throw (SessionException) e;
-            }
-        } finally {
-            JDOUtil.closePM(pm);
-        }
-        this.logger.info("createOrUpdatePosition() - done");
-
-    }
-
     /**
-     * @param sessionId
-     * @param mapName
-     * @param positionX
-     * @param positionY
-     * @param character
-     * @param positionName
-     * @param pm
-     * @throws SessionException
-     * @throws MapException
-     */
-    private void createOrUpdatePositionInternal(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String positionName, boolean fixed, PersistenceManager pm)
-            throws SessionException, MapException{
-        Session session = checkSession(sessionId, pm);
-        Client client = session.getClient();
-        if (client == null) {
-            throw new SessionException("Ung\xFCltige Session");
-        }
-        if (character == null || character.getSimpleScanResults() == null
-                || character.getSimpleScanResults().length == 0) {
-            throw new MapException("Signalcharacter enth\xE4lt keine Daten");
-        }
-        if (positionName == null || "".equals(positionName)) {
-            throw new MapException("Name der Position darf nicht leer sein");
-        }
-        Map map = checkMap(mapName, positionX, positionY, pm);
-
-        PositionDTO pos = new PositionDTO();
-        pos.setCharacter(character);
-        pos.setFixed(fixed);
-        pos.setName(positionName);
-        pos.setPosX(positionX);
-        pos.setPosY(positionY);
-        pos.setPosZ(positionZ);
-        PositionCache.getPositionCache().createOrUpdatePosition(map, pos, client.getMac());
-    }
-
-    /**
      * @param macAP
      * @param pm
      * @return
@@ -144,7 +75,7 @@
         Map result = checkMap(mapName, pm);
         if (positionX < 0 || positionY < 0 || positionX > (result.getImageWidth().intValue() - 1)
                 || positionY > (result.getImageHeight().intValue() - 1)) {
-            //	      pm.currentTransaction().rollback();
+            // pm.currentTransaction().rollback();
             throw new MapException("Position ist nicht auf der Karte");
         }
         return result;
@@ -201,7 +132,7 @@
      */
     private Client checkClient(String mac, PersistenceManager pm) throws MapException{
         if (mac == null || "".equals(mac)) {
-            //	      pm.currentTransaction().rollback();
+            // pm.currentTransaction().rollback();
             throw new MapException("Client mac darf nicht leer sein");
         }
         Client result = null;
@@ -219,25 +150,26 @@
 
     }
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#createOrUpdateClientPosition(long, java.lang.String, int, int, net.sf.magicmap.server.facade.dto.SignalCharacter, java.lang.String)
-     */
-    public void createOrUpdateClientPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed) throws SessionException,
-            MapException{
-        this.logger.info("createOrUpdateClientPosition()");
-
+    // TODO: use the extra attributes!
+    public void createOrUpdatePosition(long sessionId, String type, String mapName, int positionX, int positionY, int positionZ,
+            SignalCharacterDTO character, String identifier, boolean fixed, HashMap<String, String> attributes) throws SessionException, MapException{
         PersistenceManager pm = null;
         Transaction tx = null;
-        try {
+        System.out.println("CreateOrUpdate " + type );
+        try{
             pm = JDOUtil.pmfactory.getPersistenceManager();
             tx = pm.currentTransaction();
             tx.begin();
-            createOrUpdateClientPositionInternal(sessionId, mapName, positionX, positionY, positionZ, character,
-                    clientMac, fixed, pm);
-            if (tx.isActive()) {
-                tx.commit();
-            }
+        if (type.equals("POSITION"))
+            createOrUpdatePositionInternal(sessionId, mapName, positionX, positionY, positionZ, character, identifier, fixed, attributes, pm);
+        else if (type.equals("CLIENT"))
+            createOrUpdateClientPositionInternal(sessionId, mapName, positionX, positionY, positionZ, character, identifier, fixed, attributes, pm);
+        else if (type.equals("ACCESSPOINT"))
+            createOrUpdateAccessPositionInternal(sessionId, mapName, positionX, positionY, positionZ, identifier, fixed, attributes, pm);
+    
+        if(tx.isActive()) {
+            tx.commit();
+        }
         } catch (Exception e) {
             if (tx.isActive()) tx.rollback();
             e.printStackTrace();
@@ -250,23 +182,138 @@
         } finally {
             JDOUtil.closePM(pm);
         }
+        this.logger.info("createOrUpdatePositionGeneric() - done");
 
-        this.logger.info("createOrUpdateClientPosition() - done");
     }
 
+//    /*
+//     * (non-Javadoc)
+//     * 
+//     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#createPosition(long,
+//     *      java.lang.String, int, int,
+//     *      net.sf.magicmap.server.facade.dto.SignalCharacter, java.lang.String)
+//     */
+//    public void createOrUpdatePosition(long sessionId, String mapName, int positionX, int positionY, int positionZ,
+//            SignalCharacterDTO character, String positionName, boolean fixed, HashMap<String, Object> attributes) throws SessionException, MapException{
+//        this.logger.info("createOrUpdatePosition()");
+//        PersistenceManager pm = null;
+//        Transaction tx = null;
+//        try {
+//            pm = JDOUtil.pmfactory.getPersistenceManager();
+//            tx = pm.currentTransaction();
+//            tx.begin();
+//            createOrUpdatePositionInternal(sessionId, mapName, positionX, positionY, positionZ, character,
+//                    positionName, fixed, attributes, pm);
+//            if (tx.isActive()) {
+//                tx.commit();
+//            }
+//        } catch (Exception e) {
+//            if (tx.isActive()) tx.rollback();
+//            e.printStackTrace();
+//            if (e instanceof MapException) {
+//                throw (MapException) e;
+//            }
+//            if (e instanceof SessionException) {
+//                throw (SessionException) e;
+//            }
+//        } finally {
+//            JDOUtil.closePM(pm);
+//        }
+//        this.logger.info("createOrUpdatePosition() - done");
+//
+//    }
+
     /**
      * @param sessionId
      * @param mapName
      * @param positionX
      * @param positionY
      * @param character
+     * @param positionName
+     * @param pm
+     * @throws SessionException
+     * @throws MapException
+     */
+    private void createOrUpdatePositionInternal(long sessionId, String mapName, int positionX, int positionY,
+            int positionZ, SignalCharacterDTO character, String positionName, boolean fixed, HashMap<String, String> attributes, PersistenceManager pm)
+            throws SessionException, MapException{
+        Session session = checkSession(sessionId, pm);
+        Client client = session.getClient();
+        if (client == null) {
+            throw new SessionException("Ung\xFCltige Session");
+        }
+        if (character == null || character.getSimpleScanResults() == null
+                || character.getSimpleScanResults().length == 0) {
+            throw new MapException("Signalcharacter enth\xE4lt keine Daten");
+        }
+        if (positionName == null || "".equals(positionName)) {
+            throw new MapException("Name der Position darf nicht leer sein");
+        }
+        Map map = checkMap(mapName, positionX, positionY, pm);
+
+        PositionDTO pos = new PositionDTO();
+        pos.setCharacter(character);
+        pos.setFixed(fixed);
+        pos.setName(positionName);
+        pos.setPosX(positionX);
+        pos.setPosY(positionY);
+        pos.setPosZ(positionZ);
+        pos.setAttributes(attributes);
+        PositionCache.getPositionCache().createOrUpdatePosition(map, pos, client.getMac());
+    }
+
+//    /*
+//     * (non-Javadoc)
+//     * 
+//     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#createOrUpdateClientPosition(long,
+//     *      java.lang.String, int, int,
+//     *      net.sf.magicmap.server.facade.dto.SignalCharacter, java.lang.String)
+//     */
+//    public void createOrUpdateClientPosition(long sessionId, String mapName, int positionX, int positionY,
+//            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed, HashMap<String, Object> attributes) throws SessionException,
+//            MapException{
+//        this.logger.info("createOrUpdateClientPosition()");
+//
+//        PersistenceManager pm = null;
+//        Transaction tx = null;
+//        try {
+//            pm = JDOUtil.pmfactory.getPersistenceManager();
+//            tx = pm.currentTransaction();
+//            tx.begin();
+//            createOrUpdateClientPositionInternal(sessionId, mapName, positionX, positionY, positionZ, character,
+//                    clientMac, fixed, attributes, pm);
+//            if (tx.isActive()) {
+//                tx.commit();
+//            }
+//        } catch (Exception e) {
+//            if (tx.isActive()) tx.rollback();
+//            e.printStackTrace();
+//            if (e instanceof MapException) {
+//                throw (MapException) e;
+//            }
+//            if (e instanceof SessionException) {
+//                throw (SessionException) e;
+//            }
+//        } finally {
+//            JDOUtil.closePM(pm);
+//        }
+//
+//        this.logger.info("createOrUpdateClientPosition() - done");
+//    }
+
+    /**
+     * @param sessionId
+     * @param mapName
+     * @param positionX
+     * @param positionY
+     * @param character
      * @param clientMac
      * @param pm
      * @throws SessionException
      * @throws MapException
      */
     private void createOrUpdateClientPositionInternal(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed, PersistenceManager pm)
+            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed, HashMap<String, String> attributes, PersistenceManager pm)
             throws SessionException, MapException{
         checkSession(sessionId, pm);
         Map map = checkMap(mapName, positionX, positionY, pm);
@@ -285,61 +332,80 @@
         pos.setPosX(positionX);
         pos.setPosY(positionY);
         pos.setPosZ(positionZ);
+        pos.setAttributes(attributes);
         logger.info("inside createOrUpdateClientPositionInternal Z-Koordinate: " + positionZ);
         PositionCache.getPositionCache().createOrUpdatePosition(map, pos);
     }
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#createOrUpdateAccessPosition(long, java.lang.String, int, int, net.sf.magicmap.server.facade.dto.SignalCharacter, java.lang.String)
-     */
-    public void createOrUpdateAccessPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, String accessPointMac, boolean fixed) throws SessionException, MapException{
-        this.logger.info("createOrUpdateAccessPosition()");
-        PersistenceManager pm = null;
-        Transaction tx = null;
-        try {
-            pm = JDOUtil.pmfactory.getPersistenceManager();
-            tx = pm.currentTransaction();
-            tx.begin();
-            checkSession(sessionId, pm);
-            Map map = checkMap(mapName, positionX, positionY, pm);
-            AccessPoint ap = findOrCreateAccessPoint(accessPointMac, pm);
+//    /*
+//     * (non-Javadoc)
+//     * 
+//     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#createOrUpdateAccessPosition(long,
+//     *      java.lang.String, int, int,
+//     *      net.sf.magicmap.server.facade.dto.SignalCharacter, java.lang.String)
+//     */
+//    public void createOrUpdateAccessPosition(long sessionId, String mapName, int positionX, int positionY,
+//            int positionZ, String accessPointMac, boolean fixed, HashMap<String, Object> attributes) throws SessionException, MapException{
+//        this.logger.info("createOrUpdateAccessPosition()");
+//        PersistenceManager pm = null;
+//        Transaction tx = null;
+//        try {
+//            pm = JDOUtil.pmfactory.getPersistenceManager();
+//            tx = pm.currentTransaction();
+//            tx.begin();
+//
+//            createOrUpdateAccessPositionInternal(sessionId, mapName, positionX, positionY, positionZ, accessPointMac,
+//                    fixed, attributes, pm);
+//
+//            if (tx.isActive()) {
+//                tx.commit();
+//            }
+//        } catch (Exception e) {
+//            if (tx.isActive()) tx.rollback();
+//            e.printStackTrace();
+//            if (e instanceof MapException) {
+//                throw (MapException) e;
+//            }
+//            if (e instanceof SessionException) {
+//                throw (SessionException) e;
+//            }
+//        } finally {
+//            JDOUtil.closePM(pm);
+//        }
+//        this.logger.info("createOrUpdateAccessPosition() - done");
+//
+//    }
 
-            PositionDTO pos = new PositionDTO();
-            if (ap != null) {
-                AccessPointDTO apDTO = new AccessPointDTO();
-                apDTO.setMac(ap.getMac());
-                apDTO.setSsid(ap.getSsid()); // zur zeit noch nicht verwendet TODO ssid setzen
-                apDTO.setHidden(ap.getHidden());
-                pos.setAccessPoint(apDTO);
-            }
-            pos.setFixed(fixed);
-            pos.setName(accessPointMac);
-            pos.setPosX(positionX);
-            pos.setPosY(positionY);
-            pos.setPosZ(positionZ);
-            PositionCache.getPositionCache().createOrUpdatePosition(map, pos);
-            if (tx.isActive()) {
-                tx.commit();
-            }
-        } catch (Exception e) {
-            if (tx.isActive()) tx.rollback();
-            e.printStackTrace();
-            if (e instanceof MapException) {
-                throw (MapException) e;
-            }
-            if (e instanceof SessionException) {
-                throw (SessionException) e;
-            }
-        } finally {
-            JDOUtil.closePM(pm);
+    private void createOrUpdateAccessPositionInternal(long sessionId, String mapName, int positionX, int positionY,
+            int positionZ, String accessPointMac, boolean fixed, HashMap<String, String> attributes, PersistenceManager pm) throws SessionException,
+            MapException{
+        checkSession(sessionId, pm);
+        Map map = checkMap(mapName, positionX, positionY, pm);
+        AccessPoint ap = findOrCreateAccessPoint(accessPointMac, pm);
+
+        PositionDTO pos = new PositionDTO();
+        if (ap != null) {
+            AccessPointDTO apDTO = new AccessPointDTO();
+            apDTO.setMac(ap.getMac());
+            apDTO.setSsid(ap.getSsid()); // zur zeit noch nicht verwendet
+            // TODO: ssid setzen
+            apDTO.setHidden(ap.getHidden());
+            pos.setAccessPoint(apDTO);
         }
-        this.logger.info("createOrUpdateAccessPosition() - done");
-
+        pos.setFixed(fixed);
+        pos.setName(accessPointMac);
+        pos.setPosX(positionX);
+        pos.setPosY(positionY);
+        pos.setPosZ(positionZ);
+        pos.setAttributes(attributes);
+        PositionCache.getPositionCache().createOrUpdatePosition(map, pos);
     }
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#movePosition(long, long, int, int)
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#movePosition(long,
+     *      long, int, int)
      */
     public void movePosition(long sessionId, String mapname, long positionId, int newPositionX, int newPositionY,
             int newPositionZ, boolean fixed) throws SessionException, MapException{
@@ -354,7 +420,7 @@
             Map map = checkMap(mapname, newPositionX, newPositionY, pm);
             PositionCache.getPositionCache().movePosition(map, positionId, newPositionX, newPositionY, newPositionZ,
                     fixed);
-            //logger.info("Z-Koord.: " + newPositionZ);
+            // logger.info("Z-Koord.: " + newPositionZ);
             if (tx.isActive()) {
                 tx.commit();
             }
@@ -374,8 +440,11 @@
 
     }
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#deletePosition(long, long)
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#deletePosition(long,
+     *      long)
      */
     public void deletePosition(long sessionId, String mapname, long positionId) throws SessionException, MapException{
         this.logger.info("deletePosition()");
@@ -408,11 +477,14 @@
 
     }
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#getPositionsForMapSince(long, java.lang.String, long)
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#getPositionsForMapSince(long,
+     *      java.lang.String, long, boolean)
      */
-    public PositionDTO[] getPositionsForMapSince(long sessionId, String mapName, long timeStamp, boolean timeflag)
-            throws MapException, SessionException{
+    public PositionDTO[] getPositionsForMapSince(long sessionId, String[] types, String mapName, long timeStamp,
+            boolean timeflag) throws MapException, SessionException{
         this.logger.info("getPositionsForMapSince() " + timeStamp);
         PositionDTO[] result = null;
         PersistenceManager pm = null;
@@ -446,8 +518,11 @@
         return result;
     }
 
-    /* (non-Javadoc)
-     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#getPositionsForClientOnMap(long, java.lang.String, java.lang.String)
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.sf.magicmap.server.facade.interfaces.PositionFacadeInterface#getPositionsForClientOnMap(long,
+     *      java.lang.String, java.lang.String)
      */
     public String getPositionForClientOnMap(long sessionId, String mapName, String clientMac) throws MapException,
             SessionException, RemoteException{
@@ -508,7 +583,8 @@
                 if (ap != null) {
                     AccessPointDTO apDTO = new AccessPointDTO();
                     apDTO.setMac(ap.getMac());
-                    apDTO.setSsid(ap.getSsid()); // zur zeit noch nicht verwendet TODO ssid setzen
+                    apDTO.setSsid(ap.getSsid()); // zur zeit noch nicht verwendet
+                    // TODO ssid setzen
                     apDTO.setHidden(hidden);
                     pos.setAccessPoint(apDTO);
                 }
Modified: trunk/magicmapserver/src/net/sf/magicmap/server/interfaces/PositionFacadeInterface.java
===================================================================
--- trunk/magicmapserver/src/net/sf/magicmap/server/interfaces/PositionFacadeInterface.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/src/net/sf/magicmap/server/interfaces/PositionFacadeInterface.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -2,6 +2,7 @@
 package net.sf.magicmap.server.interfaces;
 
 import java.rmi.RemoteException;
+import java.util.HashMap;
 
 import net.sf.magicmap.server.dto.PositionDTO;
 import net.sf.magicmap.server.dto.SignalCharacterDTO;
@@ -21,53 +22,57 @@
  */
 public interface PositionFacadeInterface {
 
-    /**
-     * legt eine neue Position an
-     * 
-     * @param sessionId g\xFCltige sessionId
-     * @param mapName Name der Karte
-     * @param positionX x-Position im Image 
-     * @param positionY y-Position im Image
-     * @param character Signalcharacteristik an dieser Position
-     * @param Name der Position (Ort an dieser Position)
-     * @throws SessionException ung\xFCltige session
-     * @throws MapException Fehlende Karte, inkosistente Positionsangaben
-     */
-    public abstract void createOrUpdatePosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String positionName, boolean fixed) throws SessionException,
-            MapException, RemoteException;
+    public abstract void createOrUpdatePosition(long sessionId, String type, String mapName, int positionX,
+            int positionY, int positionZ, SignalCharacterDTO character, String positionName, boolean fixed,
+            HashMap<String, String> attributes) throws SessionException, MapException, RemoteException;
 
-    /**
-     * Legt eine Position f\xFCr einen Client fest oder korrigiert diese
-     * 
-     * @param sessionId g\xFCltige sessionId
-     * @param mapName Name der Karte
-     * @param positionX x-Position im Image 
-     * @param positionY y-Position im Image
-     * @param character Signalcharacteristik an dieser Position
-     * @param clientMac Macc Adresse, des zu positionierenden Clients
-     * @throws SessionException ung\xFCltige session
-     * @throws MapException Fehlende Karte, inkosistente Positionsangaben
-     */
-    public abstract void createOrUpdateClientPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed) throws SessionException,
-            MapException, RemoteException;
+    //    /**
+    //     * legt eine neue Position an
+    //     * 
+    //     * @param sessionId g\xFCltige sessionId
+    //     * @param mapName Name der Karte
+    //     * @param positionX x-Position im Image 
+    //     * @param positionY y-Position im Image
+    //     * @param character Signalcharacteristik an dieser Position
+    //     * @param Name der Position (Ort an dieser Position)
+    //     * @throws SessionException ung\xFCltige session
+    //     * @throws MapException Fehlende Karte, inkosistente Positionsangaben
+    //     */
+    //    public abstract void createOrUpdatePosition(long sessionId, String mapName, int positionX, int positionY,
+    //            int positionZ, SignalCharacterDTO character, String positionName, boolean fixed) throws SessionException,
+    //            MapException, RemoteException;
+    //
+    //    /**
+    //     * Legt eine Position f\xFCr einen Client fest oder korrigiert diese
+    //     * 
+    //     * @param sessionId g\xFCltige sessionId
+    //     * @param mapName Name der Karte
+    //     * @param positionX x-Position im Image 
+    //     * @param positionY y-Position im Image
+    //     * @param character Signalcharacteristik an dieser Position
+    //     * @param clientMac Macc Adresse, des zu positionierenden Clients
+    //     * @throws SessionException ung\xFCltige session
+    //     * @throws MapException Fehlende Karte, inkosistente Positionsangaben
+    //     */
+    //    public abstract void createOrUpdateClientPosition(long sessionId, String mapName, int positionX, int positionY,
+    //            int positionZ, SignalCharacterDTO character, String clientMac, boolean fixed) throws SessionException,
+    //            MapException, RemoteException;
+    //
+    //    /**
+    //     * Legt eine Position f\xFCr einen AccessPoint fest oder korrigiert diese
+    //     * 
+    //     * @param sessionId g\xFCltige sessionId
+    //     * @param mapName Name der Karte
+    //     * @param positionX x-Position im Image 
+    //     * @param positionY y-Position im Image
+    //     * @param accessPointMac Macc Adresse, des zu positionierenden Clients
+    //     * @throws SessionException ung\xFCltige session
+    //     * @throws MapException Fehlende Karte, inkosistente Positionsangaben
+    //     */
+    //    public abstract void createOrUpdateAccessPosition(long sessionId, String mapName, int positionX, int positionY,
+    //            int positionZ, String accessPointMac, boolean fixed) throws SessionException, MapException, RemoteException;
 
     /**
-     * Legt eine Position f\xFCr einen AccessPoint fest oder korrigiert diese
-     * 
-     * @param sessionId g\xFCltige sessionId
-     * @param mapName Name der Karte
-     * @param positionX x-Position im Image 
-     * @param positionY y-Position im Image
-     * @param accessPointMac Macc Adresse, des zu positionierenden Clients
-     * @throws SessionException ung\xFCltige session
-     * @throws MapException Fehlende Karte, inkosistente Positionsangaben
-     */
-    public abstract void createOrUpdateAccessPosition(long sessionId, String mapName, int positionX, int positionY,
-            int positionZ, String accessPointMac, boolean fixed) throws SessionException, MapException, RemoteException;
-
-    /**
      * Verschiebt eine beliebige Position auf der Karte
      * 
      * @param sessionId g\xFCltige session id
@@ -103,8 +108,8 @@
      * @return Liste aller Positionen der Karte
      * @throws MapException Fehlende Karte
      */
-    public abstract PositionDTO[] getPositionsForMapSince(long sessionId, String mapName, long timeStamp,
-            boolean timeflag) throws MapException, SessionException, RemoteException;
+    public abstract PositionDTO[] getPositionsForMapSince(long sessionId, String[] types, String mapName,
+            long timeStamp, boolean timeflag) throws MapException, SessionException, RemoteException;
 
     /**
      * Liefert aktuelle Position des Clients mit der angegebenen MacAdresse
Modified: trunk/magicmapserver/src/net/sf/magicmap/server/utils/Version.java
===================================================================
--- trunk/magicmapserver/src/net/sf/magicmap/server/utils/Version.java	2008-01-28 13:22:14 UTC (rev 719)
+++ trunk/magicmapserver/src/net/sf/magicmap/server/utils/Version.java	2008-01-28 13:55:25 UTC (rev 720)
@@ -14,5 +14,5 @@
  */
 public interface Version {
 
-    public static final String PROTOCOL_VERSION = "0.8";
+    public static final String PROTOCOL_VERSION = "0.9";
 }
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-21 23:17:59
      
     | 
| Revision: 717
          http://magicmap.svn.sourceforge.net/magicmap/?rev=717&view=rev
Author:   jan_fride
Date:     2008-01-21 15:17:30 -0800 (Mon, 21 Jan 2008)
Log Message:
-----------
* Added Genric Collection lib (hopefully to eclipse?)
* Fixed Bug in NodeKeyFunction. (Some funtionality is still missing)
Modified Paths:
--------------
    trunk/magicmapclient/.classpath
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java
Added Paths:
-----------
    trunk/magicmapclient/lib/collections-generic-4.01.jar
Modified: trunk/magicmapclient/.classpath
===================================================================
--- trunk/magicmapclient/.classpath	2008-01-21 22:18:23 UTC (rev 716)
+++ trunk/magicmapclient/.classpath	2008-01-21 23:17:30 UTC (rev 717)
@@ -36,5 +36,6 @@
 	<classpathentry kind="lib" path="lib/nekohtml.jar"/>
 	<classpathentry kind="lib" path="lib-dev/junit.jar"/>
 	<classpathentry kind="lib" path="lib/looks-2.1.4.jar"/>
-	<classpathentry kind="output" path="bin"/>
+    <classpathentry kind="lib" path="lib/collections-generic-4.01.jar"/>
+    <classpathentry kind="output" path="bin"/>
 </classpath>
Added: trunk/magicmapclient/lib/collections-generic-4.01.jar
===================================================================
(Binary files differ)
Property changes on: trunk/magicmapclient/lib/collections-generic-4.01.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java	2008-01-21 22:18:23 UTC (rev 716)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java	2008-01-21 23:17:30 UTC (rev 717)
@@ -25,5 +25,5 @@
      * @param node the node to create a key for.
      * @return
      */
-    K key(INode node);
+    K key(N node);
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-21 23:00:33
      
     | 
| Revision: 715
          http://magicmap.svn.sourceforge.net/magicmap/?rev=715&view=rev
Author:   jan_fride
Date:     2008-01-21 14:01:28 -0800 (Mon, 21 Jan 2008)
Log Message:
-----------
Added IMagicNode and IMagicNodeModel.
The Controller will return an instance of MagicNodeModel.
Worked with first tests. Index not tested yet ;-)
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/model/node/NodeModel.java
Added Paths:
-----------
    trunk/magicmapclient/src/net/sf/magicmap/core/
    trunk/magicmapclient/src/net/sf/magicmap/core/model/
    trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/
    trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/INodeIndex.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java
    trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/NodeIndex.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java	2008-01-13 23:10:04 UTC (rev 714)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/Controller.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -4,41 +4,29 @@
 
 package net.sf.magicmap.client.controller;
 
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-
 import net.sf.magicmap.client.gui.MainGUI;
 import net.sf.magicmap.client.gui.utils.GUIUtils;
 import net.sf.magicmap.client.gui.views.MapView;
-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.interfaces.*;
 import net.sf.magicmap.client.measurement.ScannerAllocator;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanResult;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanner;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScannerHandler;
 import net.sf.magicmap.client.meta.MapInfo;
-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.MapNode;
-import net.sf.magicmap.client.model.node.Node;
-import net.sf.magicmap.client.model.node.NodeModel;
+import net.sf.magicmap.client.model.node.*;
 import net.sf.magicmap.client.plugin.PluginManager;
 import net.sf.magicmap.client.utils.Settings;
+import net.sf.magicmap.core.model.node.IMagicNodeModel;
+import net.sf.magicmap.core.model.node.impl.MagicNodeModel;
 import net.sf.magicmap.server.dto.MapDTO;
 import net.sf.magicmap.server.exception.SessionException;
-
 import org.apache.log4j.xml.DOMConfigurator;
 
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+
 /**
  * Kann \xC4nderungen an View und am Modell vornehmen und zieht alle F\xE4den
  * der Anwendung.
@@ -65,7 +53,7 @@
     /**
      * Das Knotenmodel.
      */
-    private INodeModel        nodeModel;                // Model f\xFCr Graphen
+    private IMagicNodeModel   nodeModel;                // Model f\xFCr Graphen
 
     private ClientNode        client;                   // Ausgezeichneter Knoten
 
@@ -93,7 +81,7 @@
         //
         // Das Model der Knoten.
         //
-        this.nodeModel = new NodeModel();
+        this.nodeModel = new MagicNodeModel(new NodeModel());
         this.scannerAllocator = new ScannerAllocator();
         this.currentMap = null;
         this.serverManager = null;
@@ -129,7 +117,7 @@
      *
      * @return the node model
      */
-    public INodeModel getNodeModel(){
+    public IMagicNodeModel getNodeModel(){
         return this.nodeModel;
     }
 
@@ -306,6 +294,7 @@
         this.poller = new ServerPoller(this.serverManager, this.pollhandler);
         this.serverManager.connect(callback);
 
+        this.getNodeModel().setServerID(Settings.getServerURL());
         this.pluginManager.connect();
     }
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java	2008-01-13 23:10:04 UTC (rev 714)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/controller/IController.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -1,22 +1,14 @@
 
 package net.sf.magicmap.client.controller;
 
-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.interfaces.*;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanResult;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScanner;
 import net.sf.magicmap.client.measurement.interfaces.AbstractScannerHandler;
 import net.sf.magicmap.client.meta.MapInfo;
 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.core.model.node.IMagicNodeModel;
 
 /**
  * @author Jan Friderici (ja...@fr...)
@@ -35,7 +27,7 @@
      *
      * @return the node model
      */
-    INodeModel getNodeModel();
+    IMagicNodeModel getNodeModel();
 
     /**
      * Gibt an ob verbunden oder nicht verbunden
@@ -150,14 +142,18 @@
     /**
      * Entfernt einen
      *
-     * @param node
+     * @param name
+     * @param mapname
+     * @param mapname
+     * @param mapname
+     * @param callback
      */
     void deletePosition(String name, String mapname, DeletePositionCallback callback);
 
     /**
      * @param name
      * @param string
-     * @param panel
+     * @param callback
      */
     void deleteGeoPoint(String name, String string, DeletePositionCallback callback);
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java	2008-01-13 23:10:04 UTC (rev 714)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/NodeModel.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -1,24 +1,16 @@
 
 package net.sf.magicmap.client.model.node;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 import net.sf.magicmap.client.gui.MainGUI;
 import net.sf.magicmap.client.interfaces.NodeModelListener;
 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 org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import java.util.*;
+
 /**
  * Model zur Beschreibung des aktuellen Zustands in der
  * Welt der Clients und AccessPoints. Es k\xF6nnen Anfragen
@@ -90,8 +82,7 @@
             log.info("Map has Children: " + currentMap.getChildren().size());
         }
         for (NodeModelListener listener : this.listeners) {
-            NodeModelListener l = (NodeModelListener) listener;
-            l.nodeAddedEvent(node);
+            listener.nodeAddedEvent(node);
         }
 
     }
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/URI.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,42 @@
+package net.sf.magicmap.core.model;
+
+import java.net.URL;
+
+/**
+ * <p>
+ * Class URI ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 21:52:54
+ */
+public interface URI {
+    /**
+     * Get the protocol.
+     * @return
+     */
+    String getProtocol();
+
+    /**
+     * Return the uri as string....
+     * @return
+     */
+    String toString();
+
+    /**
+     *
+     * @return
+     */
+    java.net.URI toJavaURI();
+
+    /**
+     *
+     * @return
+     * @throws UnsupportedUriException
+     */
+    URL toJavaURL() throws UnsupportedUriException;
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/UnsupportedUriException.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,28 @@
+package net.sf.magicmap.core.model;
+
+/**
+ * <p>
+ * Class UnsupportedUriException ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 21:53:51
+ */
+public class UnsupportedUriException extends RuntimeException {
+
+    public UnsupportedUriException(String s) {
+        super(s);
+    }
+
+    public UnsupportedUriException(String s, Throwable throwable) {
+        super(s, throwable);
+    }
+
+    public UnsupportedUriException(Throwable throwable) {
+        super(throwable);
+    }
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/impl/URIImpl.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,67 @@
+package net.sf.magicmap.core.model.impl;
+
+import net.sf.magicmap.core.model.URI;
+import net.sf.magicmap.core.model.UnsupportedUriException;
+
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+/**
+ * <p>
+ * Class URIImpl ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 13.01.2008
+ *         Time: 11:35:41
+ */
+public class URIImpl implements URI {
+    private final String uri;
+
+
+    public URIImpl(String uri) {
+        this.uri = uri;
+    }
+
+    /**
+     *
+     * @return
+     */
+    public String getProtocol() {
+        return uri.substring(0, uri.indexOf(":"));
+    }
+
+    public String toString() {
+        return uri;
+    }
+
+    /**
+     *
+     * @return
+     */
+    public java.net.URI toJavaURI() {
+        try {
+            return new java.net.URI(uri);
+        } catch (URISyntaxException e) {
+            throw new UnsupportedUriException(e);
+        }
+    }
+
+    /**
+     *
+     * @return
+     * @throws UnsupportedUriException
+     */
+    public URL toJavaURL() throws UnsupportedUriException {
+        try {
+            return new java.net.URL(uri);
+        } catch (MalformedURLException e) {
+            throw new UnsupportedUriException(e);
+        }
+    }
+
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNode.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,38 @@
+package net.sf.magicmap.core.model.node;
+
+import net.sf.magicmap.client.model.node.INode;
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.core.model.URI;
+
+/**
+ * <p>
+ * Class IMagicNode ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 21:51:20
+ */
+public interface IMagicNode extends INode {
+
+     /**
+     * <p>Get the server the nodes is stored.</p>
+     * @return the server id the node is stored with.
+     */
+    URI getServerID();
+
+    /**
+     * <p>The nodes id. This ID will vary depending....</p>
+     * @return a unique id for this node.
+     */
+    URI getNodeID();
+
+    /**
+     * <p>For objects that need the old class.</p>
+     * @return
+     */
+    Node asNode();
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/IMagicNodeModel.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,68 @@
+package net.sf.magicmap.core.model.node;
+
+import net.sf.magicmap.client.model.node.INode;
+import net.sf.magicmap.client.model.node.INodeModel;
+import net.sf.magicmap.core.model.URI;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This interface adds several methods to the old INodeModel. 
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 15.01.2008
+ *         Time: 22:39:45
+ */
+public interface IMagicNodeModel extends INodeModel {
+
+    /**
+     * <p>return the server this node model is connected with - if any.</p>
+     * @return the uri for the connected server.
+     */
+    URI getServerID();
+
+    /**
+     *
+     * @return the target.
+     */
+    INodeModel getNodeModel();
+
+
+    /**
+     * get an magic node.
+     * @param node the magic node to get.
+     * @return
+     */
+    IMagicNode getMagicNode(INode node);
+    
+    /**
+     * <p>Create an index with the given key generating function.</p>
+     * @param function the function to generate the keys.
+     * @return the index
+     */
+    <K, N extends INode>INodeIndex<K,N> createIndex(NodeKeyFunction<K,N> function);
+
+    /**
+     * Remove the index.
+     * @param index
+     * @return
+     */
+    boolean removeIndex(INodeIndex index);
+
+    /**
+     *
+     * @return
+     */
+    List<? extends INodeIndex> getNodeIndexList();
+
+    /**
+     * 
+     * @param serverURL
+     */
+    void setServerID(String serverURL);
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/INodeIndex.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/INodeIndex.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/INodeIndex.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,43 @@
+package net.sf.magicmap.core.model.node;
+
+import net.sf.magicmap.client.model.node.INode;
+
+import java.util.Collection;
+
+/**
+ * <p>
+ * Class INodeIndex ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 21:55:44
+ */
+public interface INodeIndex <K, N extends INode> {
+
+
+    /**
+     * 
+     * @param key
+     * @return
+     */
+    N getUnique(K key);
+    
+    /**
+     *
+     * @param key
+     * @return
+     */
+    Collection<N> get(K key);
+
+    /**
+     *
+     * @param n
+     * @return
+     */
+    K getKey(N n);
+    
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/NodeKeyFunction.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,29 @@
+package net.sf.magicmap.core.model.node;
+
+import net.sf.magicmap.client.model.node.INode;
+
+/**
+ * <p>
+ * Class NodeKeyFunction ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 22:11:43
+ */
+public interface NodeKeyFunction<K, N extends INode> {
+
+    Class<K> getKeyClass();
+
+    Class<N> getNodeClass();
+    
+    /**
+     * Calculate a key for the given node.
+     * @param node the node to create a key for.
+     * @return
+     */
+    K key(INode node);
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNode.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,154 @@
+package net.sf.magicmap.core.model.node.impl;
+
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.client.model.node.NodeContainer;
+import net.sf.magicmap.core.model.URI;
+import net.sf.magicmap.core.model.impl.URIImpl;
+import net.sf.magicmap.core.model.node.IMagicNode;
+import net.sf.magicmap.core.model.node.IMagicNodeModel;
+
+import java.util.ArrayList;
+
+/**
+ * <p>
+ * Decorates the old nodes.
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 19.01.2008
+ *         Time: 14:12:54
+ */
+public class MagicNode implements IMagicNode {
+    private final Node delegate;
+    private final IMagicNodeModel magicNodeModel;
+    private final URI nodeURI;
+
+    public MagicNode(Node delegate, IMagicNodeModel magicNodeModel) {
+        this.delegate = delegate;
+        this.magicNodeModel = magicNodeModel;
+        nodeURI  = new URIImpl(
+                magicNodeModel.getServerID().toString()
+                + "/" + delegate.getType()
+                + " /" + delegate.getId());
+    }
+
+
+    public String getDisplayName() {
+        return delegate.getDisplayName();
+    }
+
+    public void setDisplayName(String s) {
+        delegate.setDisplayName(s);
+    }
+
+    public boolean isUpdate() {
+        return delegate.isUpdate();
+    }
+
+    public void setUpdate(boolean b) {
+        delegate.setUpdate(b);
+    }
+
+    public boolean isFix() {
+        return delegate.isFix();
+    }
+
+    public void setFix(boolean b) {
+        delegate.setFix(b);
+    }
+
+    public String getName() {
+        return delegate.getName();
+    }
+
+    public void setName(String s) {
+        delegate.setName(s);
+    }
+
+    public int getX() {
+        return delegate.getX();
+    }
+
+    public int getY() {
+        return delegate.getY();
+    }
+
+    public void setPositionSilent(int i, int i1, int i2) {
+        delegate.setPositionSilent(i, i1, i2);
+    }
+
+    public void setPosition(int i, int i1, int i2) {
+        delegate.setPosition(i, i1, i2);
+    }
+
+    public ArrayList<? extends Node> getNeighbors() {
+        return delegate.getNeighbors();
+    }
+
+    public IMagicNodeModel getModel() {
+        return magicNodeModel;
+    }
+
+    public int getType() {
+        return delegate.getType();
+    }
+
+    public int hashCode() {
+        return delegate.hashCode();
+    }
+
+    public String toString() {
+        return delegate.toString();
+    }
+
+    public long getId() {
+        return delegate.getId();
+    }
+
+    public void setId(long l) {
+        delegate.setId(l);
+    }
+
+    public int getZ() {
+        return delegate.getZ();
+    }
+
+    public void setZ(int i) {
+        delegate.setZ(i);
+    }
+
+    public Node getParentNode() {
+        return delegate.getParentNode();
+    }
+
+    public void setParentNode(Node node) {
+        delegate.setParentNode(node);
+    }
+
+    public boolean isPhysical() {
+        return delegate.isPhysical();
+    }
+
+    public void setPhysical(boolean b) {
+        delegate.setPhysical(b);
+    }
+
+    public NodeContainer getNodeContainer() {
+        return delegate.getNodeContainer();
+    }
+
+    public URI getServerID() {
+        return getModel().getServerID();
+    }
+
+    public URI getNodeID() {
+        return nodeURI;
+    }
+
+    public Node asNode() {
+        return delegate;
+    }
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MagicNodeModel.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,236 @@
+package net.sf.magicmap.core.model.node.impl;
+
+import net.sf.magicmap.client.interfaces.NodeModelListener;
+import net.sf.magicmap.client.meta.MapInfo;
+import net.sf.magicmap.client.model.location.INodePlacer;
+import net.sf.magicmap.client.model.node.*;
+import net.sf.magicmap.core.model.URI;
+import net.sf.magicmap.core.model.impl.URIImpl;
+import net.sf.magicmap.core.model.node.IMagicNode;
+import net.sf.magicmap.core.model.node.IMagicNodeModel;
+import net.sf.magicmap.core.model.node.INodeIndex;
+import net.sf.magicmap.core.model.node.NodeKeyFunction;
+
+import java.util.*;
+
+/**
+ * <p>
+ * Uses a decorator pattern to enhance to old information model.
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 18.01.2008
+ *         Time: 18:51:39
+ */
+public class MagicNodeModel implements IMagicNodeModel {
+    private final INodeModel delegate;
+    private URI serverID;
+
+    private final WeakHashMap<Node, IMagicNode> nodeMap = new WeakHashMap<Node, IMagicNode>();
+
+    private final List<NodeIndex> nodeInedexList = new LinkedList<NodeIndex>();
+
+    /**
+     * <p>...</p>
+     * @param delegate the old model to use.
+     */
+    public MagicNodeModel(INodeModel delegate) {
+        this.delegate = delegate;
+    }
+
+
+    public void setServerID(String serverURL) {
+        serverID = new URIImpl(serverURL);
+    }
+
+    /**
+     * <p>Create an index to find nodes with a quicknesssssss..</\x9F> 
+     * @param function the function to use.
+     * @return
+     */
+    public <K, N extends INode> INodeIndex<K, N> createIndex(NodeKeyFunction<K, N> function) {
+        NodeIndex<K,N> index = new NodeIndex<K,N>(this, function, function.getNodeClass());
+        nodeInedexList.add(index);
+        return index;
+    }
+
+    /**
+     *
+     * @param index
+     * @return
+     */
+    public boolean removeIndex(INodeIndex index) {
+        return nodeInedexList.remove(index);
+    }
+
+
+    public IMagicNode getMagicNode(INode node) {
+        return nodeMap.get(node);
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public List<? extends INodeIndex> getNodeIndexList() {
+        return nodeInedexList;
+    }
+
+    /**
+     * 
+     * @param node
+     */
+    public void addNode(Node node) {
+        delegate.addNode(node);
+        if (!(node instanceof IMagicNode)) {
+            nodeMap.put(node, new MagicNode(node, this));
+        }
+    }
+
+    /**
+     *
+     * @param node
+     */
+    public void removeNode(Node node) {
+        delegate.removeNode(node);
+        if (!(node instanceof IMagicNode)) {
+            nodeMap.remove(node);
+        }
+    }
+
+    /**
+     *
+     * @return get the id of the server....
+     */
+    public URI getServerID() {
+        return serverID;
+    }
+
+    /**
+     *
+     * @param serverID
+     */
+    public void setServerID(URI serverID) {
+        this.serverID = serverID;
+    }
+
+    /**
+     *
+     * @return
+     */
+    public INodeModel getNodeModel() {
+        return delegate;
+    }
+
+
+    public IMagicNode getMagicNode(Node node) {
+        return nodeMap.get(node);
+    }
+
+
+
+
+
+    public void updateNode(Node node, int i, Object o) {
+        delegate.updateNode(node, i, o);
+    }
+
+    public void rehashNode(Node node, String s) {
+        delegate.rehashNode(node, s);
+    }
+
+    public ArrayList<? extends Node> findNeighbors(Node node) {
+        return delegate.findNeighbors(node);
+    }
+
+    public ArrayList<? extends Node> findNonNeighbors(Node node) {
+        return delegate.findNonNeighbors(node);
+    }
+
+    public void addNodeModelListener(NodeModelListener nodeModelListener) {
+        delegate.addNodeModelListener(nodeModelListener);
+    }
+
+    public void removeNodeModelListener(NodeModelListener nodeModelListener) {
+        delegate.removeNodeModelListener(nodeModelListener);
+    }
+
+    public NodeModelListener[] nodeModelListeners() {
+        return delegate.nodeModelListeners();
+    }
+
+    public Set<AccessPointSeerNode> getAccessPointSeerNodes() {
+        return delegate.getAccessPointSeerNodes();
+    }
+
+    public ArrayList<LocationNode> getLocationsWithAtLeastOneAccessPoint(ArrayList<AccessPointNode> accessPointNodes) {
+        return delegate.getLocationsWithAtLeastOneAccessPoint(accessPointNodes);
+    }
+
+    public ArrayList<LocationNode> getLocationsWithAtLeastOneAccessPoint(ArrayList<AccessPointNode> accessPointNodes, Node node) {
+        return delegate.getLocationsWithAtLeastOneAccessPoint(accessPointNodes, node);
+    }
+
+    public Node findNode(String s) {
+        return delegate.findNode(s);
+    }
+
+    public boolean nodeExists(String s) {
+        return delegate.nodeExists(s);
+    }
+
+    public AccessPointNode findAccessPoint(String s) {
+        return delegate.findAccessPoint(s);
+    }
+
+    public boolean accessPointExists(String s) {
+        return delegate.accessPointExists(s);
+    }
+
+    public ClientNode findClient(String s) {
+        return delegate.findClient(s);
+    }
+
+    public boolean clientExists(String s) {
+        return delegate.clientExists(s);
+    }
+
+    public Collection<Node> getNodes() {
+        return delegate.getNodes();
+    }
+
+    public void clear() {
+        delegate.clear();
+        nodeMap.clear();
+
+    }
+
+    /**
+     *
+     * @param iNodePlacer
+     */
+    public void setNodePlacer(INodePlacer iNodePlacer) {
+        delegate.setNodePlacer(iNodePlacer);
+    }
+
+    /**
+     * Returns the rotigionals node placer.
+     * @return
+     */
+    public INodePlacer getNodePlacer() {
+        return delegate.getNodePlacer();
+    }
+
+    public void setCurrentMap(MapInfo mapInfo) {
+        delegate.setCurrentMap(mapInfo);
+    }
+
+    public MapNode getCurrentMap() {
+        return delegate.getCurrentMap();
+    }
+
+
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/NodeIndex.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/NodeIndex.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/core/model/node/impl/NodeIndex.java	2008-01-21 22:01:28 UTC (rev 715)
@@ -0,0 +1,121 @@
+package net.sf.magicmap.core.model.node.impl;
+
+import net.sf.magicmap.client.interfaces.NodeModelListener;
+import net.sf.magicmap.client.model.node.INode;
+import net.sf.magicmap.client.model.node.Node;
+import net.sf.magicmap.core.model.node.IMagicNodeModel;
+import net.sf.magicmap.core.model.node.INodeIndex;
+import net.sf.magicmap.core.model.node.NodeKeyFunction;
+import org.apache.commons.collections15.MultiMap;
+import org.apache.commons.collections15.multimap.MultiHashMap;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * Class NodeIndex ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 22:16:28
+ */
+public class NodeIndex<K, N extends INode> implements INodeIndex<K,N> {
+    private final MultiMap<K,N> nodes = new MultiHashMap<K,N>();
+    private final Map<N,K> keyMap = new HashMap<N,K>();
+    private final NodeKeyFunction<K,N> keyFunction;
+    private final Class<N> nodeClass;
+
+    /**
+     * 
+     */
+    private NodeModelListener nodeModelListener = new NodeModelListener() {
+            public void nodeAddedEvent(Node node) {
+                if (nodeClass.isAssignableFrom(node.getClass())) {
+                    indexNode((N)node);
+                }
+            }
+
+            public void nodeUpdatedEvent(Node node, int type, Object data) {
+                //To change body of implemented methods use File | Settings | File Templates.
+            }
+
+            public void nodeRemovedEvent(Node node) {
+               removeNode(node);
+            }
+        };
+
+
+    /**
+     * 
+     * @param node
+     */
+    private void removeNode(Node node) {
+        final K key = keyMap.remove(node);
+        if (key != null) {
+            nodes.get(key).remove((N)node);
+        }
+    }
+
+
+    /**
+     * 
+     * @param node
+     */
+    private void indexNode(N node) {
+        final K key = keyFunction.key(node);
+        nodes.put(key, node);
+        keyMap.put(node, key);
+    }
+
+    /**
+     *
+     * @param keyFunction
+     */
+    public NodeIndex(IMagicNodeModel nodeModel, NodeKeyFunction<K, N> keyFunction, Class<N> nodeClass) {
+
+        this.keyFunction = keyFunction;
+        this.nodeClass = nodeClass;
+        nodeModel.addNodeModelListener(nodeModelListener);
+    }
+
+
+    /**
+     * 
+     * @param key
+     * @return
+     */
+    public N getUnique(K key) {
+        final Collection<N> nodes = get(key);
+        return nodes == null || nodes.size() == 0 ? null : nodes.iterator().next();
+    }
+
+    /**
+     * 
+     * @param key
+     * @return
+     */
+    public Collection<N> get(K key) {
+        return nodes.get(key);
+    }
+
+    /**
+     *
+     * @param n
+     * @return
+     */
+    public K getKey(N n) {
+        return keyMap.get(n);
+    }
+
+    public void clear() {
+        this.nodes.clear();
+        this.keyMap.clear();
+    }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-21 22:19:06
      
     | 
| Revision: 716
          http://magicmap.svn.sourceforge.net/magicmap/?rev=716&view=rev
Author:   jan_fride
Date:     2008-01-21 14:18:23 -0800 (Mon, 21 Jan 2008)
Log Message:
-----------
Added NodeGraphListener and INodePlacer#getLength(IMagicEdge....)
Modified Paths:
--------------
    trunk/magicmapclient/src/net/sf/magicmap/client/model/location/INodePlacer.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java
Added Paths:
-----------
    trunk/magicmapclient/src/net/sf/magicmap/client/model/location/MagicGraphEvent.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/location/NodeGraphListener.java
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/location/INodePlacer.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/location/INodePlacer.java	2008-01-21 22:01:28 UTC (rev 715)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/location/INodePlacer.java	2008-01-21 22:18:23 UTC (rev 716)
@@ -1,12 +1,12 @@
 
 package net.sf.magicmap.client.model.location;
 
-import java.util.HashMap;
-
 import net.sf.magicmap.client.algorithms.NodeMetricManager;
 import net.sf.magicmap.client.model.node.IMagicEdge;
 import net.sf.magicmap.client.model.node.Node;
 
+import java.util.HashMap;
+
 /**
  * Berechnet die Orte von Knoten. Um einem Model ein INodePlacer hinzuzfügen
  * muss man nur
@@ -33,7 +33,15 @@
      */
     void deleteNode(Node node);
 
+
     /**
+     * get the edges length.
+     * @param egde the edge
+     * @return the edges Length or Double.NaN.
+     */
+    double getLength(IMagicEdge egde);
+    
+    /**
      * Legt eine gerichtete Kante zwischen den beiden Knoten an.
      *
      * @param n1 die Quelle der Kante
@@ -113,7 +121,27 @@
 
     /**
      *
+     * @param l
      */
+    void addNodeGraphListener(NodeGraphListener l);
+
+    /**
+     *
+     * @param l
+     */
+    void removeNodeGraphListener(NodeGraphListener l);
+
+    /**
+     * 
+     * @return
+     */
+    NodeGraphListener[] getNodeGraphListeners();
+
+    
+
+    /**
+     *
+     */
     static final class NodeHandlerFactory {
 
         public final HashMap<Integer, NodeUpdateHandler> handlerMap;
Added: trunk/magicmapclient/src/net/sf/magicmap/client/model/location/MagicGraphEvent.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/location/MagicGraphEvent.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/location/MagicGraphEvent.java	2008-01-21 22:18:23 UTC (rev 716)
@@ -0,0 +1,34 @@
+package net.sf.magicmap.client.model.location;
+
+import net.sf.magicmap.client.model.node.IMagicEdge;
+
+import java.util.EventObject;
+
+/**
+ * <p>
+ * Class MagicGraphEvent ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 09:07:01
+ */
+public class MagicGraphEvent extends EventObject {
+    private final IMagicEdge edge;
+
+    public MagicGraphEvent(INodePlacer placer, IMagicEdge edge) {
+        super(placer);
+        this.edge = edge;
+    }
+
+    public INodePlacer getSource() {
+        return (INodePlacer)super.getSource();
+    }
+
+    public IMagicEdge getEdge() {
+        return edge;
+    }
+}
Added: trunk/magicmapclient/src/net/sf/magicmap/client/model/location/NodeGraphListener.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/location/NodeGraphListener.java	                        (rev 0)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/location/NodeGraphListener.java	2008-01-21 22:18:23 UTC (rev 716)
@@ -0,0 +1,31 @@
+package net.sf.magicmap.client.model.location;
+
+
+import java.util.EventListener;
+
+/**
+ * <p>
+ * Class NodeGraphListener ZUSAMMENFASSUNG
+ * </p>
+ * <p>
+ * DETAILS
+ * </p>
+ *
+ * @author Jan Friderici
+ *         Date: 21.01.2008
+ *         Time: 09:06:43
+ */
+public interface NodeGraphListener extends EventListener{
+
+    /**
+     *
+     * @param edge
+     */
+    void edgeAdded(MagicGraphEvent edge);
+
+    /**
+     *
+     * @param edge
+     */
+    void edgeRemoved(MagicGraphEvent edge);
+}
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	2008-01-21 22:01:28 UTC (rev 715)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java	2008-01-21 22:18:23 UTC (rev 716)
@@ -4,6 +4,9 @@
 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.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.graph.impl.DirectedSparseVertex;
 import edu.uci.ics.jung.utils.UserData;
@@ -12,12 +15,15 @@
 import net.sf.magicmap.client.algorithms.NodeMetricManager;
 import net.sf.magicmap.client.algorithms.NodeModelMetric;
 import net.sf.magicmap.client.model.location.INodePlacer;
+import net.sf.magicmap.client.model.location.MagicGraphEvent;
+import net.sf.magicmap.client.model.location.NodeGraphListener;
 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 org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import javax.swing.event.EventListenerList;
 import java.awt.*;
 import java.util.*;
 
@@ -82,6 +88,33 @@
 
     private final Map<Edge, IMagicEdge> magicEdges = new HashMap<Edge, IMagicEdge>();
 
+
+    private final EventListenerList listeners = new EventListenerList();
+
+    /**
+     * Listener thet lstens on the original graph.
+     */
+    private GraphEventListener edgeAddListener = new GraphEventListener()  {
+            public void vertexAdded(GraphEvent event) {
+                // NOP
+            }
+
+            public void vertexRemoved(GraphEvent event) {
+                // NOP
+            }
+
+            public void edgeAdded(GraphEvent event) {
+                JungEdge edge = (JungEdge) event.getGraphElement();
+                fireEdgeAdded(edge);
+            }
+
+            public void edgeRemoved(GraphEvent event) {
+                JungEdge edge = (JungEdge) event.getGraphElement();
+                fireEdgeRemoved(edge);
+            }
+        };
+
+
     public JungNodePlacer() {
         this(new MagicMetric());
     }
@@ -111,6 +144,7 @@
         this.labeller = StringLabeller.getLabeller(this);
 
         initNodeHandler();
+        super.addListener(edgeAddListener, GraphEventType.ALL_SINGLE_EVENTS);
     }
 
     /**
@@ -421,4 +455,59 @@
             return edgeCopy.iterator();
         }
     }
+
+
+    /**
+     *
+     * @param l
+     */
+    public void addNodeGraphListener(NodeGraphListener l) {
+        listeners.add(NodeGraphListener.class, l);
+    }
+
+    /**
+     *
+     * @param l
+     */
+    public void removeNodeGraphListener(NodeGraphListener l) {
+        listeners.remove(NodeGraphListener.class, l);
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public NodeGraphListener[] getNodeGraphListeners() {
+        return listeners.getListeners(NodeGraphListener.class);
+    }
+
+    /**
+     * Forward to the springlayout....
+     * @param egde
+     * @return
+     */
+    public double getLength(IMagicEdge egde) {
+        return this.layout.getLength((JungEdge)egde);
+    }
+
+     /**
+     *
+     * @param edge
+     */
+    private void fireEdgeAdded(JungEdge edge) {
+        final MagicGraphEvent e = new MagicGraphEvent(this,edge);
+        for (NodeGraphListener l: getNodeGraphListeners()) {
+            l.edgeAdded(e);
+        }
+    }
+    /**
+     *
+     * @param edge
+     */
+    private void fireEdgeRemoved(JungEdge edge) {
+        final MagicGraphEvent e = new MagicGraphEvent(this,edge);
+        for (NodeGraphListener l: getNodeGraphListeners()) {
+            l.edgeRemoved(e);
+        }
+    }
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-14 00:01:25
      
     | 
| Revision: 714
          http://magicmap.svn.sourceforge.net/magicmap/?rev=714&view=rev
Author:   jan_fride
Date:     2008-01-13 15:10:04 -0800 (Sun, 13 Jan 2008)
Log Message:
-----------
Added Map Functions to edges (set and get data).
Modified Paths:
--------------
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungEdge.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/IMagicEdge.java
    trunk/magicmapserver/magicmapserver.iml
    trunk/magicmapserver/web/WEB-INF/lib/ant-project.properties
Modified: branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungEdge.java
===================================================================
--- branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungEdge.java	2008-01-02 22:07:28 UTC (rev 713)
+++ branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungEdge.java	2008-01-13 23:10:04 UTC (rev 714)
@@ -1,9 +1,10 @@
 package net.sf.magicmap.client.model.location.jung;
 
+import edu.uci.ics.jung.graph.Vertex;
+import edu.uci.ics.jung.graph.impl.DirectedSparseEdge;
+import edu.uci.ics.jung.utils.UserData;
 import net.sf.magicmap.client.model.node.IMagicEdge;
 import net.sf.magicmap.client.model.node.Node;
-import edu.uci.ics.jung.graph.Vertex;
-import edu.uci.ics.jung.graph.impl.DirectedSparseEdge;
 
 
 public class JungEdge extends DirectedSparseEdge implements IMagicEdge{
@@ -19,4 +20,22 @@
     public Node getTargetNode(){
         return (Node) getDest().getUserDatum(LayoutSettings.NODE_KEY);
     }
+
+    /**
+     * 
+     * @param key
+     * @return
+     */
+    public Object getData(String key) {
+        return getUserDatum(key);
+    }
+
+    /**
+     *
+     * @param key
+     * @param value
+     */
+    public void setData(String key, Object value) {
+        setUserDatum(key,value, UserData.REMOVE);
+    }
 }
Modified: branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/IMagicEdge.java
===================================================================
--- branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/IMagicEdge.java	2008-01-02 22:07:28 UTC (rev 713)
+++ branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/IMagicEdge.java	2008-01-13 23:10:04 UTC (rev 714)
@@ -24,7 +24,20 @@
 
     /**
      * 
+     * @param key
+     * @return
      */
+    Object getData(String key);
+
+    /**
+     *
+     * @param key
+     */
+    void setData(String key, Object value);
+
+    /**
+     * 
+     */
     public enum EdgeType{
 		NONE, PARENT_EDGE, DISTANCE_EDGE;
 	}
Modified: trunk/magicmapserver/magicmapserver.iml
===================================================================
--- trunk/magicmapserver/magicmapserver.iml	2008-01-02 22:07:28 UTC (rev 713)
+++ trunk/magicmapserver/magicmapserver.iml	2008-01-13 23:10:04 UTC (rev 714)
@@ -9,6 +9,10 @@
         <webroots>
           <root url="file://$MODULE_DIR$/web" relative="/" />
         </webroots>
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/dblayer/src" />
+          <root url="file://$MODULE_DIR$/src" />
+        </sourceRoots>
         <building>
           <setting name="EXPLODED_URL" value="file://" />
           <setting name="EXPLODED_ENABLED" value="false" />
Modified: trunk/magicmapserver/web/WEB-INF/lib/ant-project.properties
===================================================================
--- trunk/magicmapserver/web/WEB-INF/lib/ant-project.properties	2008-01-02 22:07:28 UTC (rev 713)
+++ trunk/magicmapserver/web/WEB-INF/lib/ant-project.properties	2008-01-13 23:10:04 UTC (rev 714)
@@ -16,7 +16,7 @@
 
 # generated java sources (think of stubs etc...)
 src.gen.dir=src-gen
-# descriptors and meta information files
+# descriptors and meta infoObject files
 inf.gen.dir=inf-gen
 # compiled java classes
 classes.dir=classes
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jza...@us...> - 2008-01-02 22:07:34
      
     | 
| Revision: 713
          http://magicmap.svn.sourceforge.net/magicmap/?rev=713&view=rev
Author:   jzapotoc
Date:     2008-01-02 14:07:28 -0800 (Wed, 02 Jan 2008)
Log Message:
-----------
added required jar
Modified Paths:
--------------
    trunk/magicmapclient/.classpath
Modified: trunk/magicmapclient/.classpath
===================================================================
--- trunk/magicmapclient/.classpath	2008-01-02 18:57:34 UTC (rev 712)
+++ trunk/magicmapclient/.classpath	2008-01-02 22:07:28 UTC (rev 713)
@@ -4,7 +4,7 @@
 	<classpathentry kind="src" path="test"/>
 	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="src" path="res"/>
-	<classpathentry sourcepath="/magicmapserver/src" kind="lib" path="/magicmapserver/dist/magicmap-server.jar"/>
+	<classpathentry kind="lib" path="/magicmapserver/dist/magicmap-server.jar" sourcepath="/magicmapserver/src"/>
 	<classpathentry kind="lib" path="lib/commons-httpclient-3.0-rc3.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="lib" path="lib/colt.jar"/>
@@ -35,5 +35,6 @@
 	<classpathentry kind="lib" path="lib/foxtrot.jar"/>
 	<classpathentry kind="lib" path="lib/nekohtml.jar"/>
 	<classpathentry kind="lib" path="lib-dev/junit.jar"/>
+	<classpathentry kind="lib" path="lib/looks-2.1.4.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-02 18:57:36
      
     | 
| Revision: 712
          http://magicmap.svn.sourceforge.net/magicmap/?rev=712&view=rev
Author:   jan_fride
Date:     2008-01-02 10:57:34 -0800 (Wed, 02 Jan 2008)
Log Message:
-----------
Path
Modified Paths:
--------------
    branches/info/magicmapclient/magicmapclient/.classpath
Modified: branches/info/magicmapclient/magicmapclient/.classpath
===================================================================
--- branches/info/magicmapclient/magicmapclient/.classpath	2008-01-02 18:25:53 UTC (rev 711)
+++ branches/info/magicmapclient/magicmapclient/.classpath	2008-01-02 18:57:34 UTC (rev 712)
@@ -15,7 +15,7 @@
 	<classpathentry kind="lib" path="lib/xmlParserAPIs.jar"/>
 	<classpathentry kind="lib" path="lib/RelativeLayout.jar"/>
 	<classpathentry kind="lib" path="lib/forms-1.0.5.jar"/>
-	<classpathentry kind="lib" path="lib/looks-1.2.2.jar"/>
+	<classpathentry kind="lib" path="lib/looks-2.1.4.jar"/>
 	<classpathentry kind="lib" path="lib/activation.jar"/>
 	<classpathentry kind="lib" path="lib/mail.jar"/>
 	<classpathentry kind="lib" path="lib/commons-discovery.jar"/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-02 18:25:55
      
     | 
| Revision: 711
          http://magicmap.svn.sourceforge.net/magicmap/?rev=711&view=rev
Author:   jan_fride
Date:     2008-01-02 10:25:53 -0800 (Wed, 02 Jan 2008)
Log Message:
-----------
Added Paths:
-----------
    branches/info/magicmapclient/magicmapclient/
    branches/info/magicmapclient/magicmapclient/build.xml
    branches/info/magicmapclient/magicmapclient/lib/looks-2.1.4.jar
    branches/info/magicmapclient/magicmapclient/magicmapclient.iml
    branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
    branches/info/magicmapclient/magicmapclient/src/edu/uci/ics/jung/visualization/VisualizationViewer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/core/MagicMapApplication.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/INodePlacer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/IMagicEdge.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/INodeModel.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/IGraphEdge.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/IGraphElement.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/IGraphNode.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/INodeGraph.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/impl/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/impl/BaseGraphElement.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/impl/BaseGraphNode.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/impl/BaseNodeGraph.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/graph/jung/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/location/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/location/ForwardingNodePlacer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/InterceptableNodeModel.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/KeyGenerator.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/NodeFilter.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/NodeIndex.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/NodeModelInterceptor.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/SearchableNodeIndex.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/SearchableNodeModel.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/impl/
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/impl/BaseNodeIndex.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/impl/MacNodeKeyGenerator.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/core/model/node/impl/NodeIndexFactory.java
Removed Paths:
-------------
    branches/info/magicmapclient/magicmapclient/build.xml
    branches/info/magicmapclient/magicmapclient/magicmapclient.iml
    branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
    branches/info/magicmapclient/magicmapclient/src/edu/uci/ics/jung/visualization/VisualizationViewer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/core/MagicMapApplication.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/INodePlacer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/location/jung/JungNodePlacer.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/IMagicEdge.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/INodeModel.java
    branches/info/magicmapclient/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
Copied: branches/info/magicmapclient/magicmapclient (from rev 704, trunk/magicmapclient)
Deleted: branches/info/magicmapclient/magicmapclient/build.xml
===================================================================
--- trunk/magicmapclient/build.xml	2007-12-21 12:06:47 UTC (rev 704)
+++ branches/info/magicmapclient/magicmapclient/build.xml	2008-01-02 18:25:53 UTC (rev 711)
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<project name="magicmapclient" default="jar" basedir=".">
-	<property name="application" value="magicmap" />
-	<!-- Version Information -->
-	<property name="version.number" value="0.9.2" />
-	<property name="version.appendix" value="beta 1" />
-	<property name="jar.name" value="${application}.jar" />
-	<property name="main.class" value="net.sf.magicmap.client.core.MagicMapApplication" />
-
-	<!-- Setting for maven path-->
-	<property name="maven.home" value="D:\_development\_Tools\maven-2.0.5"/>
-
-
-
-	<property name="server" value="../magicmapserver" />
-	<property name="build" value="build" />
-	<property name="build-test" value="build-test" />
-	<property name="dist" value="dist" />
-	<property name="test" value="test" />
-	<property name="src" value="src" />
-	<property name="src.gen" value="src-gen" />
-	<property name="res" value="res" />
-
-	<path id="build.classpath">
-		<fileset dir=".">
-			<include name="${jar.name}" />
-		</fileset>
-		<fileset dir="lib">
-			<include name="**/*.jar" />
-		</fileset>
-		<!-- use server classes -->
-		<fileset dir="${server}/dist">
-			<include name="*.jar" />
-		</fileset>
-	</path>
-	<path id="test.classpath">
-		<fileset dir=".">
-			<include name="${jar.name}" />
-		</fileset>
-		<fileset dir="lib">
-			<include name="**/*.jar" />
-		</fileset>
-		<!-- use server classes -->
-		<fileset dir="${server}/dist">
-			<include name="*.jar" />
-		</fileset>
-		<pathelement location="${build}"></pathelement>
-	</path>
-
-	<pathconvert property="classpath" pathsep=" " dirsep="/">
-		<path>
-			<fileset dir=".">
-				<include name="${jar.name}" />
-			</fileset>
-			<fileset dir="lib">
-				<include name="**/*.jar" />
-			</fileset>
-			<!-- use server classes -->
-			<filelist dir="lib" files="magicmap-server.jar" />
-		</path>
-		<map from="${basedir}" to="." />
-	</pathconvert>
-
-	<path id="axis.classpath">
-		<fileset dir="lib">
-			<include name="**/*.jar" />
-		</fileset>
-		<fileset dir="lib-dev">
-			<include name="**/*.jar" />
-		</fileset>
-	</path>
-
-	<taskdef resource="axis-tasks.properties" classpathref="axis.classpath" />
-
-	<target name="prepare" depends="clean">
-		<mkdir dir="${build}" />
-		<mkdir dir="${build-test}" />
-		<mkdir dir="${dist}" />
-		<mkdir dir="${test}" />
-		<mkdir dir="${src.gen}" />
-	</target>
-
-	<target name="clean">
-		<delete dir="${build}" />
-		<delete dir="${build-test}" />
-		<delete dir="${dist}" />
-		<delete file="${jar.name}" />
-		<delete dir="${src.gen}" />
-	</target>
-
-	<target name="axis" depends="prepare">
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/PositionFacade.wsdl" />
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/SessionFacade.wsdl" />
-		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/MapFacade.wsdl" />
-	</target>
-
-	<target name="compile" depends="axis">
-		<javac destdir="${build}" target="1.5" debug="true" deprecation="true" debuglevel="lines,vars,source" fork="true" encoding="ISO-8859-1">
-			<classpath refid="build.classpath" />
-			<src path="${src}" />
-			<src path="${src.gen}" />
-		</javac>
-	</target>
-
-	<target name="compile-tests" depends="compile">
-		<javac destdir="${build-test}" target="1.5" debug="true" deprecation="true" debuglevel="lines,vars,source" fork="true" encoding="ISO-8859-1">
-			<classpath refid="test.classpath" />
-			<src path="${test}" />
-		</javac>
-	</target>
-
-	<target name="version" depends="compile">
-		<tstamp>
-			<format property="build.number" pattern="yyyyMMddHHmm" />
-		</tstamp>
-		<propertyfile file="res/version.properties">
-			<entry key="version" value="${version.number}" />
-			<entry key="appendix" value="${version.appendix}" />
-			<entry key="buildnumber" value="${build.number}" />
-		</propertyfile>
-	</target>
-
-	<target name="jar" depends="version">
-		<jar jarfile="${application}.jar">
-			<fileset dir="${build}" />
-			<fileset dir="${res}" />
-			<manifest>
-				<attribute name="Main-Class" value="${main.class}" />
-				<attribute name="Class-Path" value="${classpath}" />
-			</manifest>
-		</jar>
-	</target>
-
-	<target name="dist" depends="jar">
-		<zip destfile="dist/${application}-${version.number}-${version.appendix}.zip">
-			<fileset dir="." includes="lib/*" />
-			<fileset dir="." includes="plugins/*" />
-			<fileset dir="." includes="${jar.name}" />
-			<zipfileset dir="${server}/dist" includes="magicmap-server.jar" fullpath="lib/magicmap-server.jar" />
-			<fileset dir="." includes="start.bat start.sh start_nightly.bat start_nightly.sh" />
-		</zip>
-	</target>
-
-	<target name="run" depends="jar">
-		<java classname="${main.class}" fork="true" failonerror="true" maxmemory="128m">
-			<classpath refid="build.classpath" />
-			<arg value="-h" />
-		</java>
-	</target>
-
-	<target name="copy-resources">
-		<copy todir="build">
-			<fileset dir="${res}"></fileset>
-		</copy>
-	</target>
-
-	<!-- Setting for maven path must be checked.-->
-    <target name="maven-install">
-      <exec executable="${maven.home}/bin/mvn.bat">
-        <arg value="install:install-file"/>
-       	<arg value="-Dfile=magicmap.jar"/>
-        <arg value="-DgroupId=net.sf.magicmap"/>
-        <arg value="-DartifactId=magicmapclient"/>
-      	<arg value="-Dversion=${version.number}"/>
-      	<arg value="-Dpackaging=jar"/>
-      </exec>
-    </target>
-</project>
Copied: branches/info/magicmapclient/magicmapclient/build.xml (from rev 710, trunk/magicmapclient/build.xml)
===================================================================
--- branches/info/magicmapclient/magicmapclient/build.xml	                        (rev 0)
+++ branches/info/magicmapclient/magicmapclient/build.xml	2008-01-02 18:25:53 UTC (rev 711)
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<project name="magicmapclient" default="jar" basedir=".">
+	<property name="application" value="magicmap" />
+	<!-- Version Information -->
+	<property name="version.number" value="0.9.2" />
+	<property name="version.appendix" value="beta 1" />
+	<property name="jar.name" value="${application}.jar" />
+	<property name="main.class" value="net.sf.magicmap.client.core.MagicMapApplication" />
+
+	<!-- Setting for maven path-->
+	<property name="maven.home" value="/usr/local/maven"/>
+
+
+
+	<property name="server" value="../magicmapserver" />
+	<property name="build" value="build" />
+	<property name="build-test" value="build-test" />
+	<property name="dist" value="dist" />
+	<property name="test" value="test" />
+	<property name="src" value="src" />
+	<property name="src.gen" value="src-gen" />
+	<property name="res" value="res" />
+
+	<path id="build.classpath">
+		<fileset dir=".">
+			<include name="${jar.name}" />
+		</fileset>
+		<fileset dir="lib">
+			<include name="**/*.jar" />
+		</fileset>
+		<!-- use server classes -->
+		<fileset dir="${server}/dist">
+			<include name="*.jar" />
+		</fileset>
+	</path>
+	<path id="test.classpath">
+		<fileset dir=".">
+			<include name="${jar.name}" />
+		</fileset>
+		<fileset dir="lib">
+			<include name="**/*.jar" />
+		</fileset>
+		<!-- use server classes -->
+		<fileset dir="${server}/dist">
+			<include name="*.jar" />
+		</fileset>
+		<pathelement location="${build}"></pathelement>
+	</path>
+
+	<pathconvert property="classpath" pathsep=" " dirsep="/">
+		<path>
+			<fileset dir=".">
+				<include name="${jar.name}" />
+			</fileset>
+			<fileset dir="lib">
+				<include name="**/*.jar" />
+			</fileset>
+			<!-- use server classes -->
+			<filelist dir="lib" files="magicmap-server.jar" />
+		</path>
+		<map from="${basedir}" to="." />
+	</pathconvert>
+
+	<path id="axis.classpath">
+		<fileset dir="lib">
+			<include name="**/*.jar" />
+		</fileset>
+		<fileset dir="lib-dev">
+			<include name="**/*.jar" />
+		</fileset>
+	</path>
+
+	<taskdef resource="axis-tasks.properties" classpathref="axis.classpath" />
+
+	<target name="prepare" depends="clean">
+		<mkdir dir="${build}" />
+		<mkdir dir="${build-test}" />
+		<mkdir dir="${dist}" />
+		<mkdir dir="${test}" />
+		<mkdir dir="${src.gen}" />
+	</target>
+
+	<target name="clean">
+		<delete dir="${build}" />
+		<delete dir="${build-test}" />
+		<delete dir="${dist}" />
+		<delete file="${jar.name}" />
+		<delete dir="${src.gen}" />
+	</target>
+
+	<target name="axis" depends="prepare">
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/PositionFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/SessionFacade.wsdl" />
+		<axis-wsdl2java output="${src.gen}" testcase="false" verbose="false" noimports="true" debug="false" url="inf/MapFacade.wsdl" />
+	</target>
+
+	<target name="compile" depends="axis">
+		<javac destdir="${build}" target="1.5" debug="true" deprecation="true" debuglevel="lines,vars,source" fork="true" encoding="ISO-8859-1">
+			<classpath refid="build.classpath" />
+			<src path="${src}" />
+			<src path="${src.gen}" />
+		</javac>
+	</target>
+
+	<target name="compile-tests" depends="compile">
+		<javac destdir="${build-test}" target="1.5" debug="true" deprecation="true" debuglevel="lines,vars,source" fork="true" encoding="ISO-8859-1">
+			<classpath refid="test.classpath" />
+			<src path="${test}" />
+		</javac>
+	</target>
+
+	<target name="version" depends="compile">
+		<tstamp>
+			<format property="build.number" pattern="yyyyMMddHHmm" />
+		</tstamp>
+		<propertyfile file="res/version.properties">
+			<entry key="version" value="${version.number}" />
+			<entry key="appendix" value="${version.appendix}" />
+			<entry key="buildnumber" value="${build.number}" />
+		</propertyfile>
+	</target>
+
+	<target name="jar" depends="version">
+		<jar jarfile="${application}.jar">
+			<fileset dir="${build}" />
+			<fileset dir="${res}" />
+			<manifest>
+				<attribute name="Main-Class" value="${main.class}" />
+				<attribute name="Class-Path" value="${classpath}" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="dist" depends="jar">
+		<zip destfile="dist/${application}-${version.number}-${version.appendix}.zip">
+			<fileset dir="." includes="lib/*" />
+			<fileset dir="." includes="plugins/*" />
+			<fileset dir="." includes="${jar.name}" />
+			<zipfileset dir="${server}/dist" includes="magicmap-server.jar" fullpath="lib/magicmap-server.jar" />
+			<fileset dir="." includes="start.bat start.sh start_nightly.bat start_nightly.sh" />
+		</zip>
+	</target>
+
+	<target name="run" depends="jar">
+		<java classname="${main.class}" fork="true" failonerror="true" maxmemory="128m">
+			<classpath refid="build.classpath" />
+			<arg value="-h" />
+		</java>
+	</target>
+
+	<target name="copy-resources">
+		<copy todir="build">
+			<fileset dir="${res}"></fileset>
+		</copy>
+	</target>
+
+	<!-- Setting for maven path must be checked.-->
+    <target name="maven-install">
+      <exec executable="${maven.home}/bin/mvn">
+        <arg value="install:install-file"/>
+       	<arg value="-Dfile=magicmap.jar"/>
+        <arg value="-DgroupId=net.sf.magicmap"/>
+        <arg value="-DartifactId=magicmapclient"/>
+      	<arg value="-Dversion=${version.number}"/>
+      	<arg value="-Dpackaging=jar"/>
+      </exec>
+    </target>
+</project>
Copied: branches/info/magicmapclient/magicmapclient/lib/looks-2.1.4.jar (from rev 710, trunk/magicmapclient/lib/looks-2.1.4.jar)
===================================================================
(Binary files differ)
Deleted: branches/info/magicmapclient/magicmapclient/magicmapclient.iml
===================================================================
--- trunk/magicmapclient/magicmapclient.iml	2007-12-21 12:06:47 UTC (rev 704)
+++ branches/info/magicmapclient/magicmapclient/magicmapclient.iml	2008-01-02 18:25:53 UTC (rev 711)
@@ -1,302 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module version="4" relativePaths="false" type="JAVA_MODULE">
-  <component name="ModuleRootManager" />
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build" />
-    <exclude-output />
-    <output-test url="file://$MODULE_DIR$/build-test" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/res" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src-gen" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/build" />
-      <excludeFolder url="file://$MODULE_DIR$/build-test" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://X:/maven/junit/junit/3.8.1/junit-3.8.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/dom4j-1.6.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/forms-1.0.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-collections-3.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/foxtrot.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jaxrpc.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/ostermillerutils_1_05_00.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-codec-1.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/concurrent.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/colt.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/nekohtml.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-logging.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jung-1.5.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/saaj.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/xmlParserAPIs.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/derby.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/RelativeLayout.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/xercesImpl.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/xml-apis.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/mail.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jaxen-1.1-beta-9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-httpclient-3.0-rc3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jpox-20041204.032009.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/looks-1.2.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/log4j-1.2.8.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/axis.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/activation.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/wsdl4j.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-discovery.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib-dev/junit.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib-dev/axis-ant.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module" module-name="magicmapserver" />
-    <orderEntryProperties />
-  </component>
-</module>
-
Copied: branches/info/magicmapclient/magicmapclient/magicmapclient.iml (from rev 710, trunk/magicmapclient/magicmapclient.iml)
===================================================================
--- branches/info/magicmapclient/magicmapclient/magicmapclient.iml	                        (rev 0)
+++ branches/info/magicmapclient/magicmapclient/magicmapclient.iml	2008-01-02 18:25:53 UTC (rev 711)
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <output url="file://$MODULE_DIR$/build" />
+    <exclude-output />
+    <output-test url="file://$MODULE_DIR$/build-test" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/res" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src-gen" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="false" />
+    </content>
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../magicmapserver/dist/magicmap-server.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES>
+          <root url="file://$MODULE_DIR$/../magicmapserver/src" />
+        </SOURCES>
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-httpclient-3.0-rc3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/colt.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-collections-3.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/concurrent.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/xercesImpl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/xml-apis.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/xmlParserAPIs.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/RelativeLayout.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/forms-1.0.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/activation.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/mail.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-discovery.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-logging.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jaxrpc.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/saaj.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/wsdl4j.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/axis.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jung-1.5.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/derby.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jpox-20041204.032009.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/log4j-1.2.8.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/ostermillerutils_1_05_00.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/dom4j-1.6.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/commons-codec-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jaxen-1.1-beta-9.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/foxtrot.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/nekohtml.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib-dev/junit.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/looks-2.1.4.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntryProperties />
+  </component>
+</module>
+
Deleted: branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
===================================================================
--- trunk/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java	2007-12-21 12:06:47 UTC (rev 704)
+++ branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java	2008-01-02 18:25:53 UTC (rev 711)
@@ -1,409 +0,0 @@
-/*
- * Copyright (c) 2003 JGoodies Karsten Lentzsch. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- *  o Redistributions of source code must retain the above copyright notice, 
- *    this list of conditions and the following disclaimer. 
- *     
- *  o Redistributions in binary form must reproduce the above copyright notice, 
- *    this list of conditions and the following disclaimer in the documentation 
- *    and/or other materials provided with the distribution. 
- *     
- *  o Neither the name of JGoodies Karsten Lentzsch nor the names of 
- *    its contributors may be used to endorse or promote products derived 
- *    from this software without specific prior written permission. 
- *     
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-package com.jgoodies.uif_lite.panel;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.GradientPaint;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Insets;
-import java.awt.LayoutManager;
-import java.awt.Paint;
-
-import javax.swing.BorderFactory;
-import javax.swing.Icon;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JToolBar;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
-import javax.swing.border.AbstractBorder;
-
-import net.sf.magicmap.client.gui.utils.ShadowBorder;
-
-import com.jgoodies.plaf.LookUtils;
-
-/** 
- * A <code>JPanel</code> subclass that has a drop shadow border and 
- * that provides a header with icon, title and tool bar.<p>
- * 
- * This class can be used to replace the <code>JInternalFrame</code>,
- * for use outside of a <code>JDesktopPane</code>. 
- * The <code>SimpleInternalFrame</code> is less flexible but often
- * more usable; it avoids overlapping windows and scales well 
- * up to IDE size.
- * Several customers have reported that they and their clients feel 
- * much better with both the appearance and the UI feel.<p>
- * 
- * The SimpleInternalFrame provides the following bound properties:
- * <i>frameIcon, title, toolBar, content, selected.</i><p>
- * 
- * By default the SimpleInternalFrame is in <i>selected</i> state.
- * If you don't do anything, multiple simple internal frames will
- * be displayed as selected.
- * 
- * @author Karsten Lentzsch
- * @version $Revision$
- * 
- * @see    javax.swing.JInternalFrame
- * @see    javax.swing.JDesktopPane
- */
-
-public class SimpleInternalFrame extends JPanel {
-
-  private JLabel        titleLabel;
-  private GradientPanel gradientPanel;
-  private JPanel        headerPanel;
-  private boolean       isSelected;
-
-  // Instance Creation ****************************************************
-
-  /**
-   * Constructs a <code>SimpleInternalFrame</code> with the specified title.
-   * 
-   * @param title       the initial title
-   */
-  public SimpleInternalFrame(String title) {
-    this(null, title, null, null);
-  }
-
-  /**
-   * Constructs a <code>SimpleInternalFrame</code> with the specified 
-   * icon, and title.
-   * 
-   * @param icon        the initial icon
-   * @param title       the initial title
-   */
-  public SimpleInternalFrame(Icon icon, String title) {
-    this(icon, title, null, null);
-  }
-
-  /**
-   * Constructs a <code>SimpleInternalFrame</code> with the specified 
-   * title, tool bar, and content panel.
-   * 
-   * @param title       the initial title
-   * @param bar         the initial tool bar
-   * @param content     the initial content pane
-   */
-  public SimpleInternalFrame(String title, JToolBar bar, JComponent content) {
-    this(null, title, bar, content);
-  }
-
-  /**
-   * Constructs a <code>SimpleInternalFrame</code> with the specified 
-   * icon, title, tool bar, and content panel.
-   * 
-   * @param icon        the initial icon
-   * @param title       the initial title
-   * @param bar         the initial tool bar
-   * @param content     the initial content pane
-   */
-  public SimpleInternalFrame(Icon icon, String title, JToolBar bar, JComponent content) {
-    super(new BorderLayout());
-    this.isSelected = false;
-    this.titleLabel = new JLabel(title, icon, SwingConstants.LEADING);
-    JPanel top = buildHeader(titleLabel, bar);
-
-    add(top, BorderLayout.NORTH);
-    if (content != null){
-      setContent(content);
-    }
-    setBorder(new ShadowBorder());
-    setSelected(true);
-    updateHeader();
-  }
-
-  // Public API ***********************************************************
-
-  /**
-   * Returns the frame's icon.
-   * 
-   * @return the frame's icon
-   */
-  public Icon getFrameIcon(){
-    return titleLabel.getIcon();
-  }
-
-  /**
-   * Sets a new frame icon.
-   * 
-   * @param newIcon   the icon to be set
-   */
-  public void setFrameIcon(Icon newIcon){
-    Icon oldIcon = getFrameIcon();
-    titleLabel.setIcon(newIcon);
-    firePropertyChange("frameIcon", oldIcon, newIcon);
-  }
-
-  /**
-   * Returns the frame's title text.
-   * 
-   * @return String   the current title text
-   */
-  public String getTitle(){
-    return titleLabel.getText();
-  }
-
-  /**
-   * Sets a new title text.
-   * 
-   * @param newText  the title text tp be set
-   */
-  public void setTitle(String newText){
-    String oldText = getTitle();
-    titleLabel.setText(newText);
-    firePropertyChange("title", oldText, newText);
-  }
-
-  /**
-   * Returns the current toolbar, null if none has been set before.
-   * 
-   * @return the current toolbar - if any
-   */
-  public JToolBar getToolBar(){
-    return headerPanel.getComponentCount() > 1 ? (JToolBar) headerPanel.getComponent(1) : null;
-  }
-
-  /**
-   * Sets a new tool bar in the header.
-   * 
-   * @param newToolBar the tool bar to be set in the header
-   */
-  public void setToolBar(JToolBar newToolBar){
-    JToolBar oldToolBar = getToolBar();
-    if (oldToolBar == newToolBar){
-      return;
-    }
-    if (oldToolBar != null){
-      headerPanel.remove(oldToolBar);
-    }
-    if (newToolBar != null){
-      newToolBar.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
-      headerPanel.add(newToolBar, BorderLayout.EAST);
-    }
-    updateHeader();
-    firePropertyChange("toolBar", oldToolBar, newToolBar);
-  }
-
-  /**
-   * Returns the content - null, if none has been set.
-   * 
-   * @return the current content
-   */
-  public Component getContent(){
-    return hasContent() ? getComponent(1) : null;
-  }
-
-  /**
-   * Sets a new panel content; replaces any existing content, if existing.
-   * 
-   * @param newContent   the panel's new content
-   */
-  public void setContent(Component newContent){
-    Component oldContent = getContent();
-    if (hasContent()){
-      remove(oldContent);
-    }
-    add(newContent, BorderLayout.CENTER);
-    firePropertyChange("content", oldContent, newContent);
-  }
-
-  /**
-   * Answers if the panel is currently selected (or in other words active)
-   * or not. In the selected state, the header background will be
-   * rendered differently.
-   * 
-   * @return boolean  a boolean, where true means the frame is selected 
-   *                  (currently active) and false means it is not  
-   */
-  public boolean isSelected(){
-    return isSelected;
-  }
-
-  /**
-   * This panel draws its title bar differently if it is selected,
-   * which may be used to indicate to the user that this panel
-   * has the focus, or should get more attention than other
-   * simple internal frames.
-   *
-   * @param newValue  a boolean, where true means the frame is selected 
-   *                  (currently active) and false means it is not
-   */
-  public void setSelected(boolean newValue){
-    boolean oldValue = isSelected();
-    isSelected = newValue;
-    updateHeader();
-    firePropertyChange("selected", oldValue, newValue);
-  }
-
-  // Building *************************************************************
-
-  /**
-   * Creates and answers the header panel, that consists of:
-   * an icon, a title label, a tool bar, and a gradient background.
-   * 
-   * @param label   the label to paint the icon and text
-   * @param bar     the panel's tool bar
-   * @return the panel's built header area
-   */
-  private JPanel buildHeader(JLabel label, JToolBar bar){
-    gradientPanel = new GradientPanel(new BorderLayout(), getHeaderBackground());
-    label.setOpaque(false);
-
-    gradientPanel.add(label, BorderLayout.WEST);
-    gradientPanel.setBorder(BorderFactory.createEmptyBorder(3, 4, 3, 1));
-
-    headerPanel = new JPanel(new BorderLayout());
-    headerPanel.add(gradientPanel, BorderLayout.CENTER);
-    setToolBar(bar);
-    headerPanel.setBorder(new RaisedHeaderBorder());
-    headerPanel.setOpaque(false);
-    return headerPanel;
-  }
-
-  /**
-   * Updates the header.
-   */
-  private void updateHeader(){
-    gradientPanel.setBackground(getHeaderBackground());
-    gradientPanel.setOpaque(isSelected());
-    titleLabel.setForeground(getTextForeground(isSelected()));
-    headerPanel.repaint();
-  }
-
-  /**
-   * Updates the UI. In addition to the superclass behavior, we need
-   * to update the header component.
-   */
-  public void updateUI(){
-    super.updateUI();
-    if (titleLabel != null){
-      updateHeader();
-    }
-  }
-
-  // Helper Code **********************************************************
-
-  /**
-   * Checks and answers if the panel has a content component set.
-   * 
-   * @return true if the panel has a content, false if it's empty
-   */
-  private boolean hasContent(){
-    return getComponentCount() > 1;
-  }
-
-  /**
-   * Determines and answers the header's text foreground color.
-   * Tries to lookup a special color from the L&F.
-   * In case it is absent, it uses the standard internal frame forground.
-   * 
-   * @param selected   true to lookup the active color, false for the inactive
-   * @return the color of the foreground text
-   */
-  protected Color getTextForeground(boolean selected){
-    Color c = UIManager.getColor(selected
-        ? "SimpleInternalFrame.activeTitleForeground"
-        : "SimpleInternalFrame.inactiveTitleForeground");
-    if (c != null){
-      return c;
-    }
-    return UIManager.getColor(selected ? "InternalFrame.activeTitleForeground" : "Label.foreground");
-
-  }
-
-  /**
-   * Determines and answers the header's background color.
-   * Tries to lookup a special color from the L&F.
-   * In case it is absent, it uses the standard internal frame background.
-   * 
-   * @return the color of the header's background
-   */
-  protected Color getHeaderBackground(){
-    Color c = UIManager.getColor("SimpleInternalFrame.activeTitleBackground");
-    if (c != null) return c;
-    if (LookUtils.IS_LAF_WINDOWS_XP_ENABLED) c = UIManager.getColor("InternalFrame.activeTitleGradient");
-    return c != null ? c : UIManager.getColor("InternalFrame.activeTitleBackground");
-  }
-
-  // Helper Classes *******************************************************
-
-  // A custom border for the raised header pseudo 3D effect.
-  private static class RaisedHeaderBorder extends AbstractBorder {
-
-    private static final Insets INSETS = new Insets(1, 1, 1, 0);
-
-    public Insets getBorderInsets(Component c){
-      return INSETS;
-    }
-
-    public void paintBorder(Component c, Graphics g, int x, int y, int w, int h){
-
-      g.translate(x, y);
-      g.setColor(UIManager.getColor("controlLtHighlight"));
-      g.fillRect(0, 0, w, 1);
-      g.fillRect(0, 1, 1, h - 1);
-      g.setColor(UIManager.getColor("controlShadow"));
-      g.fillRect(0, h - 1, w, 1);
-      g.translate(-x, -y);
-    }
-  }
-
-  // A panel with a horizontal gradient background.
-  private static class GradientPanel extends JPanel {
-
-    private GradientPanel(LayoutManager lm, Color background) {
-      super(lm);
-      setBackground(background);
-    }
-
-    public void paintComponent(Graphics g){
-      super.paintComponent(g);
-      if (!isOpaque()){
-        return;
-      }
-      Color control = UIManager.getColor("control");
-      int width = getWidth();
-      int height = getHeight();
-
-      Graphics2D g2 = (Graphics2D) g;
-      Paint storedPaint = g2.getPaint();
-      g2.setPaint(new GradientPaint(0, 0, getBackground(), width, 0, control));
-      g2.fillRect(0, 0, width, height);
-      g2.setPaint(storedPaint);
-    }
-  }
-
-}
\ No newline at end of file
Copied: branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java (from rev 710, trunk/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java)
===================================================================
--- branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java	                        (rev 0)
+++ branches/info/magicmapclient/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java	2008-01-02 18:25:53 UTC (rev 711)
@@ -0,0 +1,392 @@
+/*
+ * Copyright (c) 2003 JGoodies Karsten Lentzsch. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without 
+ * modification, are permitted provided that the following conditions are met:
+ * 
+ *  o Redistributions of source code must retain the above copyright notice, 
+ *    this list of conditions and the following disclaimer. 
+ *     
+ *  o Redistributions in binary form must reproduce the above copyright notice, 
+ *    this list of conditions and the following disclaimer in the documentation 
+ *    and/or other materials provided with the distribution. 
+ *     
+ *  o Neither the name of JGoodies Karsten Lentzsch nor the names of 
+ *    its contributors may be used to endorse or promote products derived 
+ *    from this software without specific prior written permission. 
+ *     
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+package com.jgoodies.uif_lite.panel;
+
+import com.jgoodies.looks.LookUtils;
+import net.sf.magicmap.client.gui.utils.ShadowBorder;
+
+import javax.swing.*;
+import javax.swing.border.AbstractBorder;
+import java.awt.*;
+
+/** 
+ * A <code>JPanel</code> subclass that has a drop shadow border and 
+ * that provides a header with icon, title and tool bar.<p>
+ * 
+ * This class can be used to replace the <code>JInternalFrame</code>,
+ * for use outside of a <code>JDesktopPane</code>. 
+ * The <code>SimpleInternalFrame</code> is less flexible but often
+ * more usable; it avoids overlapping windows and scales well 
+ * up to IDE size.
+ * Several customers have reported that they and their clients feel 
+ * much better with both the appearance and the UI feel.<p>
+ * 
+ * The SimpleInternalFrame provides the following bound properties:
+ * <i>frameIcon, title, toolBar, content, selected.</i><p>
+ * 
+ * By default the SimpleInternalFrame is in <i>selected</i> state.
+ * If you don't do anything, multiple simple internal frames will
+ * be displayed as selected.
+ * 
+ * @author Karsten Lentzsch
+ * @version $Revision$
+ * 
+ * @see    javax.swing.JInternalFrame
+ * @see    javax.swing.JDesktopPane
+ */
+
+public class SimpleInternalFrame extends JPanel {
+
+  private JLabel        titleLabel;
+  private GradientPanel gradientPanel;
+  private JPanel        headerPanel;
+  private boolean       isSelected;
+
+  // Instance Creation ****************************************************
+
+  /**
+   * Constructs a <code>SimpleInternalFrame</code> with the specified title.
+   * 
+   * @param title       the initial title
+   */
+  public SimpleInternalFrame(String title) {
+    this(null, title, null, null);
+  }
+
+  /**
+   * Constructs a <code>SimpleInternalFrame</code> with the specified 
+   * icon, and title.
+   * 
+   * @param icon        the initial icon
+   * @param title       the initial title
+   */
+  public SimpleInternalFrame(Icon icon, String title) {
+    this(icon, title, null, null);
+  }
+
+  /**
+   * Constructs a <code>SimpleInternalFrame</code> with the specified 
+   * title, tool bar, and content panel.
+   * 
+   * @param title       the initial title
+   * @param bar         the initial tool bar
+   * @param content     the initial content pane
+   */
+  public SimpleInternalFrame(String title, JToolBar bar, JComponent content) {
+    this(null, title, bar, content);
+  }
+
+  /**
+   * Constructs a <code>SimpleInternalFrame</code> with the specified 
+   * icon, title, tool bar, and content panel.
+   * 
+   * @param icon        the initial icon
+   * @param title       the initial title
+   * @param bar         the initial tool bar
+   * @param content     the initial content pane
+   */
+  public SimpleInternalFrame(Icon icon, String title, JToolBar bar, JComponent content) {
+    super(new BorderLayout());
+    this.isSelected = false;
+    this.titleLabel = new JLabel(title, icon, SwingConstants.LEADING);
+    JPanel top = buildHeader(titleLabel, bar);
+
+    add(top, BorderLayout.NORTH);
+    if (content != null){
+      setContent(content);
+    }
+    setBorder(new ShadowBorder());
+    setSelected(true);
+    updateHeader();
+  }
+
+  // Public API ***********************************************************
+
+  /**
+   * Returns the frame's icon.
+   * 
+   * @return the frame's icon
+   */
+  public Icon getFrameIcon(){
+    return titleLabel.getIcon();
+  }
+
+  /**
+   * Sets a new frame icon.
+   * 
+   * @param newIcon   the icon to be set
+   */
+  public void setFrameIcon(Icon newIcon){
+    Icon oldIcon = getFrameIcon();
+    titleLabel.setIcon(newIcon);
+    firePropertyChange("frameIcon", oldIcon, newIcon);
+  }
+
+  /**
+   * Returns the frame's title text.
+   * 
+   * @return String   the current title text
+   */
+  public String getTitle(){
+    return titleLabel.getText();
+  }
+
+  /**
+   * Sets a new title text.
+   * 
+   * @param newText  the title text tp be set
+   */
+  public void setTitle(String newText){
+    String oldText = getTitle();
+    titleLabel.setText(newText);
+    firePropertyChange("title", oldText, newText);
+  }
+
+  /**
+   * Returns the current toolbar, null if none has been set before.
+   * 
+   * @return the current toolbar - if any
+   */
+  public JToolBar getToolBar(){
+    return headerPanel.getComponentCount() > 1 ? (JToolBar) headerPanel.getComponent(1) : null;
+  }
+
+  /**
+   * Sets a new tool bar in the header.
+   * 
+   * @param newToolBar the tool bar to be set in the header
+   */
+  public void setToolBar(JToolBar newToolBar){
+    JToolBar oldToolBar = getToolBar();
+    if (oldToolBar == newToolBar){
+      return;
+    }
+    if (oldToolBar != null){
+      headerPanel.remove(oldToolBar);
+    }
+    if (newToolBar != null){
+      newToolBar.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
+      headerPanel.add(newToolBar, BorderLayout.EAST);
+    }
+    updateHeader();
+    firePropertyChange("toolBar", oldToolBar, newToolBar);
+  }
+
+  /**
+   * Returns the content - null, if none has been set.
+   * 
+   * @return the current content
+   */
+  public Component getContent(){
+    return hasContent() ? getComponent(1) : null;
+  }
+
+  /**
+   * Sets a new panel content; replaces any existing content, if existing.
+   * 
+   * @param newContent   the panel's new content
+   */
+  public void setContent(Component newContent){
+    Component oldContent = getContent();
+    if (hasContent()){
+      remove(oldContent);
+    }
+    add(newContent, BorderLayout.CENTER);
+    firePropertyChange("content", oldContent, newContent);
+  }
+
+  /**
+   * Answers if the panel is currently selected (or in other words active)
+   * or not. In the selected state, the header background will be
+   * rendered differently.
+   * 
+   * @return boolean  a boolean, where true means the frame is selected 
+   *                  (currently active) and false means it is not  
+   */
+  public boolean isSelected(){
+    return isSelected;
+  }
+
+  /**
+   * This panel draws its title bar differently if it is selected,
+   * which may be used to indicate to the user that this panel
+   * has the focus, or should get more attention than other
+   * simple internal frames.
+   *
+   * @param newValue  a boolean, where true means the frame is selected 
+   *                  (currently active) and false means it is not
+   */
+  public void setSelected(boolean newValue){
+    boolean oldValue = isSelected();
+    isSelected = newValue;
+    updateHeader();
+    firePropertyChange("selected", oldValue, newValue);
+  }
+
+  // Building *************************************************************
+
+  /**
+   * Creates and answers the header panel, that consists of:
+   * an icon, a title label, a tool bar, and a gradient background.
+   * 
+   * @param label   the label to paint the icon and text
+   * @param bar     the panel's tool bar
+   * @return the panel's built header area
+   */
+  private JPanel buildHeader(JLabel label, JToolBar bar){
+    gradientPanel = new GradientPanel(new BorderLayout(), getHeaderBackground());
+    label.setOpaque(false);
+
+    gradientPanel.add(label, BorderLayout.WEST);
+    gradientPanel.setBorder(BorderFactory.createEmptyBorder(3, 4, 3, 1));
+
+    headerPanel = new JPanel(new BorderLayout());
+    headerPanel.add(gradientPanel, BorderLayout.CENTER);
+    setToolBar(bar);
+    headerPanel.setBorder(new RaisedHeaderBorder());
+    headerPanel.setOpaque(false);
+    return headerPanel;
+  }
+
+  /**
+   * Updates the header.
+   */
+  private void updateHeader(){
+    gradientPanel.setBackground(getHeaderBackground());
+    gradientPanel.setOpaque(isSelected());
+    titleLabel.setForeground(getTextForeground(isSelected()));
+    headerPanel.repaint();
+  }
+
+  /**
+   * Updates the UI. In addition to the superclass behavior, we need
+   * to update the header component.
+   */
+  public void updateUI(){
+    super.updateUI();
+    if (titleLabel != null){
+      updateHeader();
+    }
+  }
+
+  // Helper Code **********************************************************
+
+  /**
+   * Checks and answers if the panel has a content component set.
+   * 
+   * @return true if the panel has a content, false if it's empty
+   */
+  private boolean hasContent(){
+    return getComponentCount() > 1;
+  }
+
+  /**
+   * Determines and answers the header's text foreground color.
+   * Tries to lookup a special color from the L&F.
+   * In case it is absent, it uses the standard internal frame forground.
+   * 
+   * @param selected   true to lookup the active color, false for the inactive
+   * @return the color of the foreground text
+   */
+  protected Color getTextForeground(boolean selected){
+    Color c = UIManager.getColor(selected
+        ? "SimpleInternalFrame.activeTitleForeground"
+        : "SimpleInternalFrame.inactiveTitleForeground");
+    if (c != null){
+      return c;
+    }
+    return UIManager.getColor(selected ? "InternalFrame.activeTitleForeground" : "Label.foreground");
+
+  }
+
+  /**
+   * Determines and answers the header's background color.
+   * Tries to lookup a special color from the L&F.
+   * In case it is absent, it uses the standard internal frame background.
+   * 
+   * @return the color of the header's background
+   */
+  protected Color getHeaderBackground(){
+    Color c = UIManager.getColor("SimpleInternalFrame.activeTitleBackground");
+    if (c != null) return c;
+    if (LookUtils.IS_LAF_WINDOWS_XP_ENABLED) c = UIManager.getColor("InternalFrame.activeTitleGradient");
+    return c != null ? c : UIManager.getColor("InternalFrame.activeTitleBackground");
+  }
+
+  // Helper Classes *****...
 
[truncated message content] | 
| 
      
      
      From: <jan...@us...> - 2008-01-02 18:15:00
      
     | 
| Revision: 710
          http://magicmap.svn.sourceforge.net/magicmap/?rev=710&view=rev
Author:   jan_fride
Date:     2008-01-02 10:14:57 -0800 (Wed, 02 Jan 2008)
Log Message:
-----------
Improved Os X Look.
Modified Paths:
--------------
    trunk/magicmapclient/build.xml
    trunk/magicmapclient/magicmapclient.iml
    trunk/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
    trunk/magicmapclient/src/edu/uci/ics/jung/visualization/VisualizationViewer.java
    trunk/magicmapclient/src/net/sf/magicmap/client/core/MagicMapApplication.java
    trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeModel.java
    trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
    trunk/magicmapserver/magicmapserver.iml
Added Paths:
-----------
    trunk/magicmapclient/lib/looks-2.1.4.jar
Modified: trunk/magicmapclient/build.xml
===================================================================
--- trunk/magicmapclient/build.xml	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/build.xml	2008-01-02 18:14:57 UTC (rev 710)
@@ -8,7 +8,7 @@
 	<property name="main.class" value="net.sf.magicmap.client.core.MagicMapApplication" />
 
 	<!-- Setting for maven path-->
-	<property name="maven.home" value="D:\_development\_Tools\maven-2.0.5"/>
+	<property name="maven.home" value="/usr/local/maven"/>
 
 
 
@@ -156,7 +156,7 @@
 
 	<!-- Setting for maven path must be checked.-->
     <target name="maven-install">
-      <exec executable="${maven.home}/bin/mvn.bat">
+      <exec executable="${maven.home}/bin/mvn">
         <arg value="install:install-file"/>
        	<arg value="-Dfile=magicmap.jar"/>
         <arg value="-DgroupId=net.sf.magicmap"/>
Added: trunk/magicmapclient/lib/looks-2.1.4.jar
===================================================================
(Binary files differ)
Property changes on: trunk/magicmapclient/lib/looks-2.1.4.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/magicmapclient/magicmapclient.iml
===================================================================
--- trunk/magicmapclient/magicmapclient.iml	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/magicmapclient.iml	2008-01-02 18:14:57 UTC (rev 710)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module version="4" relativePaths="false" type="JAVA_MODULE">
-  <component name="ModuleRootManager" />
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
     <output url="file://$MODULE_DIR$/build" />
     <exclude-output />
     <output-test url="file://$MODULE_DIR$/build-test" />
@@ -9,35 +8,34 @@
       <sourceFolder url="file://$MODULE_DIR$/res" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src-gen" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/build" />
-      <excludeFolder url="file://$MODULE_DIR$/build-test" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
+      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="false" />
     </content>
-    <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://X:/maven/junit/junit/3.8.1/junit-3.8.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../magicmapserver/dist/magicmap-server.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES />
+        <SOURCES>
+          <root url="file://$MODULE_DIR$/../magicmapserver/src" />
+        </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/dom4j-1.6.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/commons-httpclient-3.0-rc3.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="inheritedJdk" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/forms-1.0.5.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/colt.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -55,7 +53,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/foxtrot.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/concurrent.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -64,7 +62,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jaxrpc.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/xercesImpl.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -73,7 +71,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/ostermillerutils_1_05_00.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/xml-apis.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -82,7 +80,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-codec-1.3.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/xmlParserAPIs.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -91,7 +89,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/concurrent.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/RelativeLayout.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -100,7 +98,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/colt.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/forms-1.0.5.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -109,7 +107,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/nekohtml.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/activation.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -118,7 +116,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-logging.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/mail.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -127,7 +125,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jung-1.5.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/commons-discovery.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -136,7 +134,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/saaj.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/commons-logging.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -145,7 +143,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/xmlParserAPIs.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/jaxrpc.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -154,7 +152,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/derby.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/saaj.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -163,7 +161,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/RelativeLayout.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/wsdl4j.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -172,7 +170,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/xercesImpl.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/axis.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -181,7 +179,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/xml-apis.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/jung-1.5.2.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -190,7 +188,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/mail.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/derby.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -199,7 +197,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jaxen-1.1-beta-9.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/jpox-20041204.032009.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -208,7 +206,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-httpclient-3.0-rc3.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/log4j-1.2.8.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -217,7 +215,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/jpox-20041204.032009.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/ostermillerutils_1_05_00.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -226,7 +224,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/looks-1.2.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/dom4j-1.6.1.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -235,7 +233,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/log4j-1.2.8.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/commons-codec-1.3.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -244,7 +242,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/axis.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/jaxen-1.1-beta-9.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -253,7 +251,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/activation.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/foxtrot.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -262,7 +260,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/wsdl4j.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/nekohtml.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -271,15 +269,6 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-discovery.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
           <root url="jar://$MODULE_DIR$/lib-dev/junit.jar!/" />
         </CLASSES>
         <JAVADOC />
@@ -289,13 +278,12 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib-dev/axis-ant.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib/looks-2.1.4.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module" module-name="magicmapserver" />
     <orderEntryProperties />
   </component>
 </module>
Modified: trunk/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
===================================================================
--- trunk/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -30,30 +30,13 @@
 
 package com.jgoodies.uif_lite.panel;
 
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.GradientPaint;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Insets;
-import java.awt.LayoutManager;
-import java.awt.Paint;
+import com.jgoodies.looks.LookUtils;
+import net.sf.magicmap.client.gui.utils.ShadowBorder;
 
-import javax.swing.BorderFactory;
-import javax.swing.Icon;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JToolBar;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
+import javax.swing.*;
 import javax.swing.border.AbstractBorder;
+import java.awt.*;
 
-import net.sf.magicmap.client.gui.utils.ShadowBorder;
-
-import com.jgoodies.plaf.LookUtils;
-
 /** 
  * A <code>JPanel</code> subclass that has a drop shadow border and 
  * that provides a header with icon, title and tool bar.<p>
Modified: trunk/magicmapclient/src/edu/uci/ics/jung/visualization/VisualizationViewer.java
===================================================================
--- trunk/magicmapclient/src/edu/uci/ics/jung/visualization/VisualizationViewer.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/edu/uci/ics/jung/visualization/VisualizationViewer.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -24,7 +24,6 @@
 import java.awt.geom.AffineTransform;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 import javax.swing.JPanel;
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/core/MagicMapApplication.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/core/MagicMapApplication.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/core/MagicMapApplication.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -22,11 +22,16 @@
 
     /**
      * Main entry point for the whole client
-     * 
+     *
      * @param args
      */
     public static void main(String[] args){
         Settings.setup(args);
+        // set this before the first window.....
+        if (GUIUtils.isOsX()) {
+            System.setProperty("apple.laf.useScreenMenuBar", "true");
+            System.setProperty("com.apple.mrj.application.apple.menu.about.name", "MagicMap");
+        }
 
         JWindow splashScreen = new JWindow();
 
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/gui/utils/GUIUtils.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -5,32 +5,23 @@
 
 package net.sf.magicmap.client.gui.utils;
 
-import java.awt.Dimension;
-import java.awt.Window;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
+import com.jgoodies.looks.Options;
+import com.jgoodies.looks.plastic.Plastic3DLookAndFeel;
+import com.jgoodies.looks.plastic.PlasticLookAndFeel;
+import com.jgoodies.looks.plastic.theme.ExperienceBlue;
+import net.sf.magicmap.client.gui.MainGUI;
 
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
-import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.*;
 import javax.swing.border.EmptyBorder;
 import javax.swing.plaf.metal.MetalLookAndFeel;
+import java.awt.*;
+import java.util.*;
 
-import net.sf.magicmap.client.gui.MainGUI;
+import apple.laf.AquaLookAndFeel;
 
-import com.jgoodies.plaf.FontSizeHints;
-import com.jgoodies.plaf.Options;
-import com.jgoodies.plaf.plastic.Plastic3DLookAndFeel;
-import com.jgoodies.plaf.plastic.theme.ExperienceBlue;
-
 /**
  * @author msc
- * 
+ *
  */
 public class GUIUtils {
 
@@ -39,22 +30,44 @@
     private static Map<String, ResourceBundle> bundles = null;
 
     public static void setPlasticLookAndFeel(){
+
         try {
-            UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
+            if (!isOsX()) {
+                UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
+
+            } else {
+                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+            }
         } catch (UnsupportedLookAndFeelException e) {
             e.printStackTrace();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+        } catch (InstantiationException e) {
+            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
         }
 
-        UIManager.put("Application.useSystemFontSettings", Boolean.TRUE);
-        UIManager.put(Options.USE_SYSTEM_FONTS_APP_KEY, Boolean.TRUE);
-        UIManager.put(com.jgoodies.plaf.Options.DEFAULT_ICON_SIZE_KEY, new Dimension(18, 18));
-        Options.setGlobalFontSizeHints(FontSizeHints.MIXED);
-        // PlasticLookAndFeel.setFontSizeHints(FontSizeHints.SYSTEM);
-        MetalLookAndFeel.setCurrentTheme(new ExperienceBlue());
-        Options.setGlobalFontSizeHints(FontSizeHints.MIXED);
+        if (!isOsX()) {
+            UIManager.put("Application.useSystemFontSettings", Boolean.TRUE);
+            UIManager.put(Options.USE_SYSTEM_FONTS_APP_KEY, Boolean.TRUE);
+            //UIManager.put(com.jgoodies.plaf.Options.DEFAULT_ICON_SIZE_KEY, new Dimension(18, 18));
+            // Options.setGlobalFontSizeHints(FontSizeHints.MIXED);
+            // PlasticLookAndFeel.setFontSizeHints(FontSizeHints.SYSTEM);
+            MetalLookAndFeel.setCurrentTheme(new ExperienceBlue());
+            //Options.setGlobalFontSizeHints(FontSizeHints.MIXED);
+        }  else {
+                System.setProperty("apple.laf.useScreenMenuBar", "true");
+                System.setProperty("com.apple.mrj.application.apple.menu.about.name", "MagicMap");
+            }
 
     }
 
+    public static boolean isOsX() {
+        String lcOSName = System.getProperty("os.name").toLowerCase();
+        return lcOSName.startsWith("mac os x");
+    }
+
     public static void locateOnScreen(Window frame){
         Dimension paneSize = frame.getSize();
         Dimension screenSize = frame.getToolkit().getScreenSize();
@@ -155,14 +168,14 @@
         return JOptionPane.showOptionDialog(MainGUI.getInstance().getMainFrame(), GUIUtils.i18n("serverresponse")
                 + "\n" + message, GUIUtils.i18n("authentificationerror"), JOptionPane.OK_CANCEL_OPTION,
                 JOptionPane.ERROR_MESSAGE, null, new String[]{GUIUtils.i18n("retry"), GUIUtils.i18n("no")}, GUIUtils
-                        .i18n("retry")) == JOptionPane.YES_OPTION;
+                .i18n("retry")) == JOptionPane.YES_OPTION;
     }
 
     public static boolean showConnectionError(){
         return JOptionPane.showOptionDialog(MainGUI.getInstance().getMainFrame(), GUIUtils
                 .i18n("connectionsproblemsreconnect"), GUIUtils.i18n("connectionproblems"),
                 JOptionPane.OK_CANCEL_OPTION, JOptionPane.ERROR_MESSAGE, null, new String[]{GUIUtils.i18n("yes"),
-                        GUIUtils.i18n("no")}, GUIUtils.i18n("yes")) == JOptionPane.YES_OPTION;
+                GUIUtils.i18n("no")}, GUIUtils.i18n("yes")) == JOptionPane.YES_OPTION;
     }
 
     public static void showErrorDialog(String message){
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INode.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -3,15 +3,19 @@
 import java.util.List;
 
 /**
- * Created by IntelliJ IDEA.
- * User: Jan
- * Date: 08.02.2007
- * Time: 09:22:33
- * To change this template use File | Settings | File Templates.
+ * <p>
+ *  Interface for all nodes.  
+ * </p>
+ * @author Jan Friderici
  */
 public interface INode {
-	String getDisplayName();
 
+    /**
+     * 
+     * @return
+     */
+    String getDisplayName();
+
 	void setDisplayName(String displayName);
 
 	boolean isUpdate();
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeModel.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeModel.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/INodeModel.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -24,13 +24,13 @@
      *
      * @param node the node to add
      */
-    public abstract void addNode(Node node);
+    void addNode(Node node);
 
     /**
      * Remove a node
      * @param node removes a node from the model
      */
-    public abstract void removeNode(Node node);
+     void removeNode(Node node);
 
     /**
      * Notifies all listeners that the state of a given node
@@ -42,7 +42,7 @@
      * @param data new data, may be null.
      * @see NodeModelListener
      */
-    public abstract void updateNode(Node node, int type, Object data);
+    void updateNode(Node node, int type, Object data);
 
     /**
      * Aktualisiert den Hash-Schl\xFCssel f\xFCr einen Knoten.
@@ -51,7 +51,7 @@
      * @param node Knoten der aktualisiert werden soll
      * @param name Alter Hash-Wert
      */
-    public abstract void rehashNode(Node node, String name);
+    void rehashNode(Node node, String name);
 
     /**
      * returns all neighbours for the given node.
@@ -59,7 +59,7 @@
      * @param node the node
      * @return all neighbours of the given node.
      */
-    public abstract ArrayList<? extends Node> findNeighbors(Node node);
+    ArrayList<? extends Node> findNeighbors(Node node);
 
     /**
      * what for?
@@ -67,27 +67,27 @@
      * @return
      */
     @Deprecated
-    public abstract ArrayList<? extends Node> findNonNeighbors(Node node);
+    ArrayList<? extends Node> findNonNeighbors(Node node);
 
     /**
      * Adds a NodeModelListener
      * @param nodeModelListener  the list\xE9ner to add.
      */
-    public abstract void addNodeModelListener(NodeModelListener nodeModelListener);
+    void addNodeModelListener(NodeModelListener nodeModelListener);
 
     /**
      * remove a NodeModelListener
      * @param l the listener to remove
      */
-    public abstract void removeNodeModelListener(NodeModelListener l);
+    void removeNodeModelListener(NodeModelListener l);
 
     /**
      * returns an array of all NodeModelListener.
      * @return an array of all NodeModelListener registered to this model.
      */
-    public abstract NodeModelListener[] nodeModelListeners();
+    NodeModelListener[] nodeModelListeners();
 
-    public Set<AccessPointSeerNode> getAccessPointSeerNodes();
+    Set<AccessPointSeerNode> getAccessPointSeerNodes();
 
     /**
      *
Modified: trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java
===================================================================
--- trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapclient/src/net/sf/magicmap/client/model/node/Node.java	2008-01-02 18:14:57 UTC (rev 710)
@@ -104,6 +104,12 @@
         this.id = -1;
     }
 
+    /**
+     * <p>the name to display in the gui.</p>
+     * <p>The default value is the nodes name.</p>
+     *
+     * @return the display name for this node.
+     */
     public String getDisplayName(){
         if (this.displayName == null) {
             return this.name;
@@ -112,23 +118,43 @@
         }
     }
 
+    /**
+     * <p>Set the name to display.</p>
+     * @param displayName the new name.
+     */
     public void setDisplayName(String displayName){
         this.displayName = displayName;
     }
 
+    /**
+     * TODO what does this mean?
+     * @return
+     */
     public boolean isUpdate(){
         return update;
     }
 
+    /**
+     * TODO !?
+     * @param newupdate
+     */
     public void setUpdate(boolean newupdate){
         this.update = newupdate;
         this.model.updateNode(this, NodeModel.UPDATE_RESCAN, null);
     }
 
+    /**
+     *
+     * @return
+     */
     public boolean isFix(){
         return fix;
     }
 
+    /**
+     *
+     * @param fix
+     */
     public void setFix(boolean fix){
         this.fix = fix;
         this.model.updateNode(this, NodeModel.UPDATE_FIXSTATE, null);
@@ -152,12 +178,24 @@
         return y;
     }
 
+    /**
+     * Move the node without notifying.
+     * @param x
+     * @param y
+     * @param z
+     */
     public void setPositionSilent(int x, int y, int z){
         this.x = x;
         this.y = y;
         this.z = z;
     }
 
+    /**
+     * Move this node an notify.
+     * @param x
+     * @param y
+     * @param z
+     */
     public void setPosition(int x, int y, int z){
         setPositionSilent(x, y, z);
         model.updateNode(this, NodeModel.UPDATE_POSITION, null);
@@ -165,6 +203,10 @@
 
     public abstract ArrayList<? extends Node> getNeighbors();
 
+    /**
+     * The model this node belongs to
+     * @return
+     */
     public INodeModel getModel(){
         return model;
     }
@@ -179,6 +221,10 @@
         return internal;
     }
 
+    /**
+     *
+     * @return
+     */
     public long getId(){
         return id;
     }
@@ -199,10 +245,19 @@
         return parentNode;
     }
 
+    /**
+     * Set the parent node.
+     * @param parentNode
+     */
     public void setParentNode(Node parentNode){
         this.parentNode = parentNode;
     }
 
+
+    /**
+     * Ask if this node is a physical or information node.
+     * @return
+     */
     public boolean isPhysical(){
         return physical;
     }
Modified: trunk/magicmapserver/magicmapserver.iml
===================================================================
--- trunk/magicmapserver/magicmapserver.iml	2008-01-01 23:17:35 UTC (rev 709)
+++ trunk/magicmapserver/magicmapserver.iml	2008-01-02 18:14:57 UTC (rev 710)
@@ -1,22 +1,48 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module version="4" relativePaths="false" type="JAVA_MODULE">
-  <component name="ModuleRootManager" />
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" optional="false" version="2.5" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/web" relative="/" />
+        </webroots>
+        <building>
+          <setting name="EXPLODED_URL" value="file://" />
+          <setting name="EXPLODED_ENABLED" value="false" />
+          <setting name="JAR_URL" value="file://" />
+          <setting name="JAR_ENABLED" value="false" />
+          <setting name="BUILD_MODULE_ON_FRAME_DEACTIVATION" value="false" />
+          <setting name="BUILD_EXTERNAL_DEPENDENCIES" value="false" />
+          <setting name="EXCLUDE_EXPLODED_DIRECTORY" value="true" />
+          <setting name="RUN_JASPER_VALIDATION" value="true" />
+          <setting name="BUILD_ONLY_WEB_RESOURCES" value="false" />
+        </building>
+        <packaging>
+          <containerElement type="module" name="magicmapserver">
+            <attribute name="method" value="1" />
+            <attribute name="URI" value="/WEB-INF/classes" />
+          </containerElement>
+        </packaging>
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
     <output url="file://$MODULE_DIR$/target/classes" />
     <exclude-output />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/dblayer/src" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
-    <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="inheritedJdk" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://X:/maven/junit/junit/3.8.1/junit-3.8.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/log4j-1.2.8.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -25,7 +51,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib.dev/jasper-runtime.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/jpox-20041204.032009.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -34,7 +60,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib.dev/jsp-api.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/magicmap-db-layer.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -43,7 +69,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib.dev/servlet-api.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib.dev/jasper-runtime.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -52,7 +78,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/dom4j-1.6.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib.dev/jsp-api.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -61,7 +87,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/forms-1.0.5.jar!/" />
+          <root url="jar://$MODULE_DIR$/lib.dev/servlet-api.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -70,7 +96,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/commons-collections-3.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/commons-discovery.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -79,7 +105,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/foxtrot.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/commons-logging.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -88,7 +114,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/jaxrpc.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/saaj.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -97,7 +123,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/ostermillerutils_1_05_00.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/axis.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -106,7 +132,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/commons-codec-1.3.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/wsdl4j.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -115,7 +141,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/concurrent.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/jaxrpc.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -124,7 +150,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/colt.jar!/" />
+          <root url="jar://$MODULE_DIR$/web/WEB-INF/lib/axis-ant.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -133,7 +159,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/nekohtml.jar!/" />
+          <root url="jar://$MODULE_DIR$/../infoobject/lib/db4o-6.4.14.8131-java5.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -142,165 +168,12 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/commons-logging.jar!/" />
+          <root url="jar://$MODULE_DIR$/dist/magicmap-server.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/jung-1.5.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/saaj.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/xmlParserAPIs.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/derby.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/RelativeLayout.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/xercesImpl.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/xml-apis.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/mail.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/jaxen-1.1-beta-9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/commons-httpclient-3.0-rc3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/jpox-20041204.032009.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/looks-1.2.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/log4j-1.2.8.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/axis.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/activation.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/wsdl4j.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://E:/_Projekte/_Diplomarbeit/_magicmap/magicmap/magicmapclient/lib/commons-discovery.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
     <orderEntryProperties />
   </component>
 </module>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <jan...@us...> - 2008-01-01 23:17:37
      
     | 
| Revision: 709
          http://magicmap.svn.sourceforge.net/magicmap/?rev=709&view=rev
Author:   jan_fride
Date:     2008-01-01 15:17:35 -0800 (Tue, 01 Jan 2008)
Log Message:
-----------
Added Paths:
-----------
    branches/info/magicmapclient/lib/looks-2.1.4.jar
Added: branches/info/magicmapclient/lib/looks-2.1.4.jar
===================================================================
(Binary files differ)
Property changes on: branches/info/magicmapclient/lib/looks-2.1.4.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |