[fusion-commits] r2521 - in trunk: lib widgets

svn_fusion at osgeo.org svn_fusion at osgeo.org
Wed Jan 18 21:04:27 EST 2012


Author: hubu
Date: 2012-01-18 18:04:27 -0800 (Wed, 18 Jan 2012)
New Revision: 2521

Modified:
   trunk/lib/Widget.js
   trunk/widgets/BufferPanel.js
   trunk/widgets/FeatureInfo.js
   trunk/widgets/Help.js
   trunk/widgets/InvokeURL.js
   trunk/widgets/Measure.js
   trunk/widgets/Query.js
   trunk/widgets/QuickPlot.js
   trunk/widgets/Redline.js
   trunk/widgets/SelectWithin.js
   trunk/widgets/TaskPane.js
   trunk/widgets/Theme.js
Log:
on behalf of libr(Bruce li)

fix ticket#516.

solution:
The problem of 'go to previous' button doesn't work well, fundamentally, is caused by pushing same widget content to ExecutedTasklsit repeatedly.
so this patch add check before pushing widget content to judge whether the pushing widget is same with the last item of ExecutedTasklsit or not.

Modified: trunk/lib/Widget.js
===================================================================
--- trunk/lib/Widget.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/lib/Widget.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -158,7 +158,7 @@
     /**
      */
     shouldActivateWith: function(widget) {
-        return false;
+        return true;
     },
 
     /**

Modified: trunk/widgets/BufferPanel.js
===================================================================
--- trunk/widgets/BufferPanel.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/BufferPanel.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -118,7 +118,10 @@
         }
         url += params.join('&');
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             if ( pageElement ) {
                 pageElement.src = url;

Modified: trunk/widgets/FeatureInfo.js
===================================================================
--- trunk/widgets/FeatureInfo.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/FeatureInfo.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -72,7 +72,10 @@
         }
         url += params.join('&');
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             if ( pageElement ) {
                 pageElement.src = url;

Modified: trunk/widgets/Help.js
===================================================================
--- trunk/widgets/Help.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/Help.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -84,7 +84,10 @@
         /* check to see if this is going into a task pane */
         var taskPaneTarget = Fusion.getWidgetById(this.target);
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             /* check to see if it is going into a frame in the page */
             var pageElement = $(this.target);

Modified: trunk/widgets/InvokeURL.js
===================================================================
--- trunk/widgets/InvokeURL.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/InvokeURL.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -112,7 +112,10 @@
         url += params.join('&');
         var taskPaneTarget = Fusion.getWidgetById(this.sTarget);
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             var pageElement = $(this.sTarget);
             if ( pageElement ) {

Modified: trunk/widgets/Measure.js
===================================================================
--- trunk/widgets/Measure.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/Measure.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -468,7 +468,10 @@
             var taskPaneTarget = Fusion.getWidgetById(this.sTarget);
             var outputWin = window;
             if ( taskPaneTarget ) {
-                taskPaneTarget.setContent(url);
+                if(!taskPaneTarget.isSameWithLast(url))
+                {
+                    taskPaneTarget.setContent(url);
+                }
                 outputWin = taskPaneTarget.iframe.contentWindow;
             } else {
                 outputWin = window.open(url, this.sTarget, this.sWinFeatures);

Modified: trunk/widgets/Query.js
===================================================================
--- trunk/widgets/Query.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/Query.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -72,7 +72,10 @@
         }
         url += params.join('&');
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             if ( pageElement ) {
                 pageElement.src = url;

Modified: trunk/widgets/QuickPlot.js
===================================================================
--- trunk/widgets/QuickPlot.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/QuickPlot.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -156,7 +156,10 @@
         
         if (taskPaneTarget) 
         {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } 
         else 
         {

Modified: trunk/widgets/Redline.js
===================================================================
--- trunk/widgets/Redline.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/Redline.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -126,7 +126,10 @@
         var outputWin = window;
 
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
             outputWin = taskPaneTarget.iframe.contentWindow;
         } else {
             outputWin = window.open(url, this.widget.sTarget, this.widget.sWinFeatures);

Modified: trunk/widgets/SelectWithin.js
===================================================================
--- trunk/widgets/SelectWithin.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/SelectWithin.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -111,7 +111,10 @@
         }
         url += params.join('&');
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             if ( pageElement ) {
                 pageElement.src = url;

Modified: trunk/widgets/TaskPane.js
===================================================================
--- trunk/widgets/TaskPane.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/TaskPane.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -161,13 +161,8 @@
         this.setContent(url);
     },
 
-    setContent: function(url) {
-        Fusion.triggerEvent(Fusion.Event.TASK_PANE_LOADED);
-        
-        if (this.nCurrentTask < this.aExecutedTasks.length-1) {
-            //this.aExecutedTasks.splice(this.nCurrentTask, this.aExecutedTasks.length - this.nCurrentTask);
-        }
-        
+
+    addCommonParams:function(url){
         //add in some common parameters if they aren't supplied already
         var baseUrl = url.split("?");
         var params = OpenLayers.Util.getParameters(url);
@@ -182,7 +177,17 @@
           params["mapname"] = widgetLayer.getMapName();
         }
         var newUrl = baseUrl[0] + "?" + OpenLayers.Util.getParameterString(params);
+        return newUrl;
+    },
+    
+    isSameWithLast:function(url){
+        return this.aExecutedTasks[this.aExecutedTasks.length-1] == this.addCommonParams(url) ;
+    },
+    
+    setContent: function(url) {
+        Fusion.triggerEvent(Fusion.Event.TASK_PANE_LOADED);
         
+        var newUrl = this.addCommonParams(url);
         this.aExecutedTasks.push(newUrl);
         ++this.nCurrentTask;
         this.loadFrame(newUrl);

Modified: trunk/widgets/Theme.js
===================================================================
--- trunk/widgets/Theme.js	2012-01-17 10:05:58 UTC (rev 2520)
+++ trunk/widgets/Theme.js	2012-01-19 02:04:27 UTC (rev 2521)
@@ -71,7 +71,10 @@
         }
         url += params.join('&');
         if ( taskPaneTarget ) {
-            taskPaneTarget.setContent(url);
+            if(!taskPaneTarget.isSameWithLast(url))
+            {
+                taskPaneTarget.setContent(url);
+            }
         } else {
             if ( pageElement ) {
                 pageElement.src = url;



More information about the fusion-commits mailing list