[Commits] r2023 - in sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint: examples lib/GeoExt.ux

commits at geoext.org commits at geoext.org
Tue Mar 23 15:04:38 CET 2010


Author: pgiraud
Date: 2010-03-23 15:04:38 +0100 (Tue, 23 Mar 2010)
New Revision: 2023

Modified:
   sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/examples/PrintExtent.js
   sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/lib/GeoExt.ux/MultiPagePrint.js
Log:
more changes in PrintExtent, no default page is created by default

Modified: sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/examples/PrintExtent.js
===================================================================
--- sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/examples/PrintExtent.js	2010-03-23 12:42:04 UTC (rev 2022)
+++ sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/examples/PrintExtent.js	2010-03-23 14:04:38 UTC (rev 2023)
@@ -34,6 +34,8 @@
  *          plugins: printExtent
  *      });
  *
+ *      printExtent.addPage();
+ *
  *      // print the map
  *      printExtent.print();
  */
@@ -130,7 +132,6 @@
         );
 
         GeoExt.plugins.PrintExtent.superclass.constructor.apply(this, arguments);
-
     },
 
     /** api: method[print]
@@ -151,6 +152,20 @@
     init: function(mapPanel) {
         this.map = mapPanel.map;
         mapPanel.on("destroy", this.onMapPanelDestroy, this);
+
+        if (!this.layer) {
+            this.layer = new OpenLayers.Layer.Vector(null, {
+                displayInLayerSwitcher: false
+            });
+        }
+        this.createControl();
+
+        if(this.initialConfig.pages) {
+            for(var i=0, len=this.initialConfig.pages.length; i<len; ++i) {
+                var page = this.initialConfig.pages[i];
+                this.addPage(page);
+            }
+        }
         this.setUp();
     },
 
@@ -209,22 +224,11 @@
      *  the first page if no pages were specified in the configuration.
      */
     setUp: function() {
-        this.initLayer();
-
-        this.initControl();
+        this.map.addLayer(this.layer);
         this.map.addControl(this.control);
         this.control.activate();
 
         this.printProvider.on("layoutchange", this.updateBox, this);
-
-        if(!this.initialConfig.pages) {
-            this.addPage();
-        } else {
-            for(var i=0, len=this.initialConfig.pages.length; i<len; ++i) {
-                var page = this.initialConfig.pages[i];
-                this.addPage(page);
-            }
-        }
     },
 
     /** private: method[tearDown]
@@ -251,13 +255,6 @@
         }
 
         var layer = this.layer;
-        if(layer && layer.events) {
-            for(var i=0, len=this.pages.length; i<len; ++i) {
-                var page = this.pages[i];
-                page.un("change", this.onPageChange, this);
-                layer.removeFeatures([page.feature]);
-            }
-        }
 
         if(!this.initialConfig.layer &&
            map && map.events &&
@@ -291,82 +288,65 @@
         delete this.page;
         this.map = null;
     },
-
-    /** private: method[initLayer]
-     */
-    initLayer: function() {
-        if(!this.layer) {
-            this.layer = new OpenLayers.Layer.Vector(null, {
-                displayInLayerSwitcher: false
-            });
-        }
-        if(!this.layer.map) {
-            this.map.addLayer(this.layer);
-        }
-    },
     
-    /** private: method[initControl]
+    /** private: method[createControl]
      */
-    initControl: function() {
-        var pages = this.pages;
-
-        if(!this.control) {
-            this.control = new OpenLayers.Control.TransformFeature(this.layer, {
-                preserveAspectRatio: true,
-                eventListeners: {
-                    "beforesetfeature": function(e) {
-                        for(var i=0, len=this.pages.length; i<len; ++i) {
-                            if(this.pages[i].feature === e.feature) {
-                                this.page = this.pages[i];
-                                e.object.rotation = -this.pages[i].rotation;
-                                break;
-                            }
+    createControl: function() {
+        this.control = new OpenLayers.Control.TransformFeature(this.layer, {
+            preserveAspectRatio: true,
+            eventListeners: {
+                "beforesetfeature": function(e) {
+                    for(var i=0, len=this.pages.length; i<len; ++i) {
+                        if(this.pages[i].feature === e.feature) {
+                            this.page = this.pages[i];
+                            e.object.rotation = -this.pages[i].rotation;
+                            break;
                         }
-                    },
-                    "setfeature": function(e) {
-                        for(var i=0, len=this.pages.length; i<len; ++i) {
-                            if(this.pages[i].feature === e.feature) {
-                                this.fireEvent("selectpage", this.pages[i]);
-                                break;
-                            }
+                    }
+                },
+                "setfeature": function(e) {
+                    for(var i=0, len=this.pages.length; i<len; ++i) {
+                        if(this.pages[i].feature === e.feature) {
+                            this.fireEvent("selectpage", this.pages[i]);
+                            break;
                         }
-                    },
-                    "beforetransform": function(e) {
-                        this._updating = true;
-                        var page = this.page;
-                        if(e.rotation) {
-                            if(this.printProvider.layout.get("rotation")) {
-                                page.setRotation(-e.object.rotation);
-                            } else {
-                                e.object.setFeature(page.feature);
-                            }
-                        } else if(e.center) {
-                            page.setCenter(OpenLayers.LonLat.fromString(
-                                e.center.toShortString()
-                            ));
+                    }
+                },
+                "beforetransform": function(e) {
+                    this._updating = true;
+                    var page = this.page;
+                    if(e.rotation) {
+                        if(this.printProvider.layout.get("rotation")) {
+                            page.setRotation(-e.object.rotation);
                         } else {
-                            page.fit(e.object.box);
-                            var minScale = this.printProvider.scales.getAt(0);
-                            var maxScale = this.printProvider.scales.getAt(
-                                this.printProvider.scales.getCount() - 1);
-                            var boxBounds = e.object.box.geometry.getBounds();
-                            var pageBounds = page.feature.geometry.getBounds();
-                            var tooLarge = page.scale === minScale &&
-                                boxBounds.containsBounds(pageBounds);
-                            var tooSmall = page.scale === maxScale &&
-                                pageBounds.containsBounds(boxBounds);
-                            if(tooLarge === true || tooSmall === true) {
-                                this.updateBox();
-                            }
+                            e.object.setFeature(page.feature);
                         }
-                        delete this._updating;
-                        return false;
-                    },
-                    "transformcomplete": this.updateBox,
-                    scope: this
-                }
-            });
-        }
+                    } else if(e.center) {
+                        page.setCenter(OpenLayers.LonLat.fromString(
+                            e.center.toShortString()
+                        ));
+                    } else {
+                        page.fit(e.object.box);
+                        var minScale = this.printProvider.scales.getAt(0);
+                        var maxScale = this.printProvider.scales.getAt(
+                            this.printProvider.scales.getCount() - 1);
+                        var boxBounds = e.object.box.geometry.getBounds();
+                        var pageBounds = page.feature.geometry.getBounds();
+                        var tooLarge = page.scale === minScale &&
+                            boxBounds.containsBounds(pageBounds);
+                        var tooSmall = page.scale === maxScale &&
+                            pageBounds.containsBounds(boxBounds);
+                        if(tooLarge === true || tooSmall === true) {
+                            this.updateBox();
+                        }
+                    }
+                    delete this._updating;
+                    return false;
+                },
+                "transformcomplete": this.updateBox,
+                scope: this
+            }
+        });
     },
 
     /** private: method[fitPage]

Modified: sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/lib/GeoExt.ux/MultiPagePrint.js
===================================================================
--- sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/lib/GeoExt.ux/MultiPagePrint.js	2010-03-23 12:42:04 UTC (rev 2022)
+++ sandbox/pgiraud/playground/print-multipage/geoext.ux/ux/MultiPagePrint/lib/GeoExt.ux/MultiPagePrint.js	2010-03-23 14:04:38 UTC (rev 2023)
@@ -245,7 +245,7 @@
                 scope: this
             })
         }
-        this.addPageForm(this.printExtent.pages[0]);
+        this.addPage();
 
         this.printExtent.on('selectpage', function(page) {
             for(var i=0, len=this.printPages.length; i<len; ++i) {



More information about the Commits mailing list