view app/view/panel/Ort.js @ 1293:16a80ca16732

map feature visibility, selection and grid layout messpunkt layer is now visible per default when in editing mode on selection in map, the form is updated ortszuordnung buttons should not render over grid anymore
author Maximilian Krambach <mkrambach@intevation.de>
date Wed, 01 Feb 2017 19:38:06 +0100
parents 291df0037835
children 195c5d9b234b
line wrap: on
line source
Ext.define('Lada.view.panel.Ort', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.ortpanel',

    requires: [
        'Lada.view.panel.Map',
        'Lada.view.grid.Orte'
    ],

    width: '100%',
    //height: 200,

    layout: {
        type: 'border'
    },
    toolbarPos: 'top',

    editableGrid: true,

    initComponent: function() {
        var i18n = Lada.getApplication().bundle;

        // Different Layout of toolbar depending on the bars position.
        if (this.toolbarPos == 'top') {
            this.dockedItems = [{
                xtype: 'toolbar',
                dock: 'top',
                items: [{
                    xtype: 'tbtext',
                    text: i18n.getMsg('orte.gridTitle')
                },
                '->',
                {
                    text: i18n.getMsg('map.button.add'),
                    icon: 'resources/img/list-add.png',
                    action: 'addMap',
                    disabled: true // disabled on startup, will be enabled by setStore
                }, {
                    text: i18n.getMsg('orte.button.add'),
                    icon: 'resources/img/list-add.png',
                    action: 'add',
                    disabled: true // disabled on startup, will be enabled by setStore
                }, {
                    text: i18n.getMsg('orte.button.delete'),
                    icon: 'resources/img/list-remove.png',
                    action: 'delete',
                    disabled: true // disabled on startup, will be enabled by controller if necessary
                }]
            }];
        }
        else {
            this.dockedItems = [{
                xtype: 'toolbar',
                dock: this.toolbarPos,
                items: [ '->',
                {
                    text: i18n.getMsg('map.button.add'),
                    icon: 'resources/img/list-add.png',
                    action: 'addMap',
                    disabled: true // disabled on startup, will be enabled by setStore
                }, {
                    text: i18n.getMsg('orte.button.add'),
                    icon: 'resources/img/list-add.png',
                    action: 'add',
                    disabled: true // disabled on startup, will be enabled by setStore
                }]
            }];
        }

        this.items = [{
            xtype: 'ortstammdatengrid',
            width: '60%',
            editableGrid: this.editableGrid,
            collapsible: true,
            region: 'east'
        }, {
            xtype: 'map',
            region: 'center',
            layout: 'border',
            title: i18n.getMsg('map.title'),
            externalOrteStore: true,
            listeners: {
                beforecollapse: function() {
                    var c = this.map.getControlsByClass('OpenLayers.Control.ScaleLine');
                    this.map.removeControl(c[0]);
                },
                expand: function() {
                    this.map.addControl(new OpenLayers.Control.ScaleLine());
                }
            }
        }];

        this.callParent(arguments);
    },

    afterRender: function() {
        this.superclass.afterRender.apply(this, arguments);
        this.down('map').map.zoomTo(6);
    },

    setStore: function(store) {
        var me = this;
        var osg = this.down('ortstammdatengrid');
        var map = this.down('map');

        if (!store) {
            var ortstore = Ext.create('Lada.store.Orte', {
                defaultPageSize: 0,
                listeners: {
                    beforeload: {
                        fn: function() {
                            osg.setLoading(true);
                            map.setLoading(true);
                        }
                    },
                    load: {
                        fn: function() {
                            osg.setLoading(false);
                            map.setLoading(false);
                            osg.setStore(ortstore);
                            map.addLocations(ortstore);
                        }
                    }
                }
            });
        }
        else {
            osg.setStore(store);
            map.addLocations(store);
        }
        this.connectListeners();
        //enable buttons
        me.down('toolbar button[action=add]').enable();
        me.down('toolbar button[action=addMap]').enable();
    },

    getStore: function() {
        return this.down('grid').getStore();
    },

    connectListeners: function() {
        var osg = this.down('ortstammdatengrid');
        var map = this.down('map');
        map.addListener('featureselected', osg.selectOrt, osg);
        osg.addListener('select', map.selectFeature, map);
    }
});

http://lada.wald.intevation.org