Module: nagvis
Branch: master
Commit: a6c50510afb840af8149701e45520f8df43d5ea4
URL:    
http://nagvis.git.sourceforge.net/git/gitweb.cgi?p=nagvis/nagvis;a=commit;h=a6c50510afb840af8149701e45520f8df43d5ea4

Author: Lars Michelsen <[email protected]>
Date:   Thu Jan 20 13:26:29 2011 +0100

Fixed movement of object controls when an object which depends on another 
object which is moved

---

 TODO                                               |    2 +
 share/frontend/nagvis-js/js/NagVisObject.js        |    9 +++--
 .../frontend/nagvis-js/js/NagVisStatefulObject.js  |   12 +++++--
 share/frontend/nagvis-js/js/frontend.js            |   34 ++++++++++---------
 4 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/TODO b/TODO
index b623c17..d189923 100644
--- a/TODO
+++ b/TODO
@@ -7,6 +7,8 @@ Relative Koordinaten:
        - Beim Löschen von Objekten prüfen, ob andere Objekte auf dieses 
Objekt verweisen
        - Wie funktionieren Linien zu Linien Referenzen? Geht das überhaupt?
   - Es gibt noch Probleme, wenn die object_id nur aus Zahlen besteht. Abfangen!
+       - Dokumentation
+       - WUI: Von absoluten zu relativen Koordinaten umschalten
 
 HTML/JS Frontend:
   - aMapObjects in Objekt umbauen - mit object_id als Schlüssel
diff --git a/share/frontend/nagvis-js/js/NagVisObject.js 
b/share/frontend/nagvis-js/js/NagVisObject.js
index d2f4277..782f306 100644
--- a/share/frontend/nagvis-js/js/NagVisObject.js
+++ b/share/frontend/nagvis-js/js/NagVisObject.js
@@ -405,14 +405,17 @@ var NagVisObject = Base.extend({
                                var objectId  = parts[0];
                                var offset    = parts[1];
                                var refObj    = getMapObjByDomObjId(objectId);
-                               return parseFloat(refObj.conf[dir]) + 
parseFloat(offset);
+                               if(refObj)
+                                       return parseFloat(refObj.conf[dir]) + 
parseFloat(offset);
+                               else
+                                       return offset;
                        } else {
                                // Only an object id. Get the coordinate and 
return it
                                var refObj = getMapObjByDomObjId(val);
-                               if(refObj !== -1)
+                               if(refObj)
                                        return refObj.conf[dir];
                                else
-                                       return val;
+                                       return 0;
                        }
                }
        },
diff --git a/share/frontend/nagvis-js/js/NagVisStatefulObject.js 
b/share/frontend/nagvis-js/js/NagVisStatefulObject.js
index dbaebf5..715f93b 100644
--- a/share/frontend/nagvis-js/js/NagVisStatefulObject.js
+++ b/share/frontend/nagvis-js/js/NagVisStatefulObject.js
@@ -938,14 +938,20 @@ var NagVisStatefulObject = NagVisObject.extend({
                oControls = null;
        },
 
-       move: function() {
+       reposition: function() {
                if(this.conf.view_type === 'line')
                        this.drawLine();
                else
                        this.moveIcon();
 
                for(var i = 0, l = this.childs.length; i < l; i++)
-                       this.childs[i].move();
+                       this.childs[i].reposition();
+
+               // redraw the controls
+               if(!this.bIsLocked) {
+                       this.removeControls();
+                       this.parseControls();
+               }
        },
 
        /**
@@ -977,7 +983,7 @@ var NagVisStatefulObject = NagVisObject.extend({
                jsObj.conf.x = newPos[0];
                jsObj.conf.y = newPos[1];
 
-               jsObj.move();
+               jsObj.reposition();
 
                jsObj      = null;      
                objId      = null;
diff --git a/share/frontend/nagvis-js/js/frontend.js 
b/share/frontend/nagvis-js/js/frontend.js
index 5709cf5..7fdabc7 100644
--- a/share/frontend/nagvis-js/js/frontend.js
+++ b/share/frontend/nagvis-js/js/frontend.js
@@ -1021,27 +1021,29 @@ function setMapObjects(aMapObjectConf) {
                        break;
                }
                
-               if(oObj !== null) {
-                       // Save object to map objects array
+               // Save object to map objects array
+               if(oObj !== null)
                        aMapObjects.push(oObj);
-                       
-                       // Parse object to map
-                       if(oPageProperties.view_type === 'map') {
-                               aMapObjects[aMapObjects.length-1].parse();
-                       } else if(oPageProperties.view_type === 'automap') {
-                               if(aMapObjectConf[i].type === 'host')
-                                       
aMapObjects[aMapObjects.length-1].parseAutomap();
-                               else
-                                       
aMapObjects[aMapObjects.length-1].parse();
-                       }
-               }
                oObj = null;
        }
 
-       // Store the object position dependencies. Before this
-       // can be done all objects need to be added to the map.
-       // so this seems to be a good place for it
+       // First parse the objects on the map
+       // Then store the object position dependencies.
+       //
+       // Before both can be done all objects need to be added
+       // to the map objects list
        for(var i = 0, len = aMapObjects.length; i < len; i++) {
+               // Parse object to map
+               if(oPageProperties.view_type === 'map') {
+                       aMapObjects[i].parse();
+               } else if(oPageProperties.view_type === 'automap') {
+                       if(aMapObjects[i].conf.type === 'host')
+                               aMapObjects[i].parseAutomap();
+                       else
+                               aMapObjects[i].parse();
+               }
+
+               // Store object dependencies
                var parents = aMapObjects[i].getParentObjectIds();
                if(parents) {
                        for (var objectId in parents) {


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins

Reply via email to