[Users] Adding a menu item to an existing Tbar, not working

Andrew Stewart Andrew.Stewart at reddeer.ca
Tue Oct 5 17:03:38 CEST 2010


I noticed that in the example the menu items are added to the toolbar as well as in the menu, is this required for it to work? Because I wasn't planning on setting it up this way as I wanted the menu separate, but I will try to add the items to the toolbar also and see if it changes anything.. Maybe I can just hide them after I add them. 



-----Original Message-----
From: users-bounces at geoext.org [mailto:users-bounces at geoext.org] On Behalf Of Andrew Stewart
Sent: October 05, 2010 8:48 AM
To: 'Eric Lemoine'
Cc: users at geoext.org
Subject: Re: [Users] Adding a menu item to an existing Tbar, not working

Thank you for the suggestion, so it is almost working now. Unfortunately for some reason my pan tool is broken. Not sure why because I basically copied/pasted the code from my zoom tool which works good. Every other tool works when you click the redline ones they work until you click a different tool (other than pan) and it switches to that tool. Except only when I click on pan it goes back to the previous redline tool.. Makes no sense why. Very much appreciate the assistance, below is my code but I still cannot figure out why the pan tool goes back to using the previous redline tool but all others work.


//---------------------------------Begin ToolBar


        var ctrl, toolbarItems = [], action, actions = {};
        
                //Home Action
                action = new GeoExt.Action({
                text: "  Home",
                handler: function() {window.location.reload();},
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Home',
                icon: '../images/toolbar/home.gif'
                });
                
                actions["home"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                
                //Queries Action
                action = new GeoExt.Action({
                text: "  Queries",
                handler: function() {document.getElementById('show-btn').click();},
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Queries',
                icon: '../images/toolbar/query.gif'
                });
                
                actions["queries"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                //Zoom In Action
                action = new GeoExt.Action({
                text: "  Zoom In",
                control: new OpenLayers.Control.ZoomBox({alwaysZoom:true}),
                map: map,
                toggleGroup: "tools",
                group: "tools",
                cls: 'x-btn-text-icon',
                tooltip: 'Zoom In',
                icon: '../images/toolbar/zoomin.gif'
                });
                
                actions["zoom_in"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                //Zoom Out Action
                action = new GeoExt.Action({
                text: "  Zoom Out",
                control: new OpenLayers.Control.ZoomBox({alwaysZoom:true, out:true}),
                map: map,
                toggleGroup: "tools",
                group: "tools",
                cls: 'x-btn-text-icon',
                tooltip: 'Zoom Out',
                icon: '../images/toolbar/zoomout.gif'
                });
                
                actions["zoom_out"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');

                //Zoom Previous Action
                action = new GeoExt.Action({
                text: "  Zoom Previous",
                control: nav.previous,
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Zoom Previous',
                icon: '../images/toolbar/zoomprevious.gif'
                });
                
                actions["zoom_previous"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                //Pan Map Action
                action = new GeoExt.Action({
                text: "  Pan",
                control: new OpenLayers.Control.MouseDefaults(),
                map: map,
                toggleGroup: "tools",
                group: "tools",
                cls: 'x-btn-text-icon',
                tooltip: 'Pan',
                icon: '../images/toolbar/pan.gif'
                });
                
                actions["pan_map"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');

 
                //Center Map Action
                action = new GeoExt.Action({
                text: "  Center Map",
                control: click,
                map: map,
                toggleGroup: "tools",
                group: "tools",
                cls: 'x-btn-text-icon',
                tooltip: 'Center Map',
                icon: '../images/toolbar/mapcenterclick.gif'
                });
                
                actions["center_map"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                //Fit Map Action            
                action = new GeoExt.Action({
                text: "  Fit Map",
                handler: function(){var bounds = new OpenLayers.Bounds(-12688352.278757,6834703.490456,-12648605.022533,6864246.4030152); map.zoomToExtent(bounds)},
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Fit Map',
                icon: '../images/toolbar/overview.gif'
                });
                
                actions["fit_map"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                
  // -------- Begin RedLine Menu Items------------------------// 
  
  
               //Redline Line
                action = new GeoExt.Action({
                text: "Line",
                control: drawLine,
                map: map,
                toggleGroup: "tools",
                group: "tools"
                });
                
                actions["redline"] = action;
                
               
                //Redline Polgygon
                action = new GeoExt.Action({
                text: "Polygon",
                control: drawPolygon,
                map: map,
                toggleGroup: "tools",
                group: "tools"
                });
                
                actions["polygon"] = action;
                
                
                //Redline Point
                action = new GeoExt.Action({
                text: "Point",
                control: drawPoint,
                enableToggle: true,
                toggleGroup: "tools",
                group: "tools",
                map: map
                });
                
                actions["point"] = action;
                
                //Delete All Redlines
                action = new GeoExt.Action({
                text: "Delete Redlines",
                handler: function() {Ext.Msg.show({title:'Delete Red Lines?', msg: 'You are about to delete Redlines from map, are you sure?',buttons: 		    Ext.Msg.YESNOCANCEL,fn: processResult,animEl: 'elId',icon: Ext.MessageBox.QUESTION}); function processResult(){map.removeLayer(vlayer);}},
                map: map
                });
                
                actions["delete"] = action;
                
                //Create menu for Redlines
                toolbarItems.push({
                    text: 'Redline Toolbox',
                    toggleGroup: "tools",
                    group: "tools",
                    menu: new Ext.menu.Menu({
                        items: [
                        //Redline
                        new Ext.menu.CheckItem(actions["redline"]),
                        //Polygon
                        new Ext.menu.CheckItem(actions["polygon"]),
                        //Point
                        new Ext.menu.CheckItem(actions["point"]),
                        //Delete Redlines
                        new Ext.menu.CheckItem(actions["delete"])
                        ]
                       })
                   });
                

 //------------------End RedLine Menu Items -------------------// 
 
 
                //Print Action
                action = new GeoExt.Action({
                text: "  Print Map",
                handler: function() {window.print(); },
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Print Map',
                icon: '../images/toolbar/print.gif'
                });
                
                actions["print"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');
                
                 
                //Help Action
                action = new GeoExt.Action({
                text: "  Help",
                handler: function() {window_Help.show();},
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Display Help',
                icon: '../images/toolbar/help.gif'
                });
                
                actions["help"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');

                //Tutorial Action
                action = new GeoExt.Action({
                text: "  Tutorial",
                handler: function() {window_Tutorial.show();},
                map: map,
                cls: 'x-btn-text-icon',
                tooltip: 'Display Tutorial',
                icon: '../images/toolbar/tutorial.gif'
                });
                
                actions["tutorial"] = action;
                toolbarItems.push(action);
                toolbarItems.push('-');

           //Define MapPanel for use with GeoExt
            
            var mapPanel = new GeoExt.MapPanel({
            collapsed: false,
            height: 800,
            renderTo: '',
            map: map,
            center: lonLat,
            zoom: startupLevel,
            tbar: toolbarItems



-----Original Message-----
From: Eric Lemoine [mailto:eric.lemoine at camptocamp.com] 
Sent: October 05, 2010 12:19 AM
To: Andrew Stewart
Cc: users at geoext.org
Subject: Re: [Users] Adding a menu item to an existing Tbar, not working

On Monday, October 4, 2010, Andrew Stewart <Andrew.Stewart at reddeer.ca> wrote:
>
>
>
>
>
>
>
>
>
> I am trying to add a button with a menu to my existing toolbar but unfortunately when I click on it the drawfeature control associated with the button won't fire and the pan tool stays active. If I just add the GeoExt.Action that adds redline directly
> to the tbar this works, but if I add the menu with it it doesn't. Not sure what I am missing here just trying to get a menu because I want to allow the drawfeature to use options for a line or polygon. Any help appreciated.

You may might a CheckItem for the Redline action. See the toolbar
example again, <http://trac.geoext.org/browser/core/trunk/geoext/examples/toolbar.js>.

-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : eric.lemoine at camptocamp.com
http://www.camptocamp.com


[This message has been scanned for security content threats and viruses.]

[The City of Red Deer I.T. Services asks that you please consider the environment before printing this e-mail.]




_______________________________________________
Users mailing list
Users at geoext.org
http://www.geoext.org/cgi-bin/mailman/listinfo/users


[This message has been scanned for security content threats and viruses.]

[The City of Red Deer I.T. Services asks that you please consider the environment before printing this e-mail.]






More information about the Users mailing list