view app/view/panel/Ort.js @ 1361:5c2d6812d85a

Merge behaviour of Stammdaten panel and ortszuordnungs grid according to the recent changes in Ortszuordnung and Ortserstellung.
author Maximilian Krambach <mkrambach@intevation.de>
date Tue, 07 Feb 2017 19:50:36 +0100
parents 195c5d9b234b
children b58868c47f02
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);
        var map = this.down('map');
        var osg = this.down('ortstammdatengrid');
        osg.setLoading(true);
        map.setLoading(true);
        this.setStore();
    },

    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');
        osg.setLoading(true);
        map.setLoading(true);

        if (!store) {
            this.ortstore = Ext.data.StoreManager.get('orte');
            //this.ortstore.clearFilter(true);
        } else {
            this.ortstore = store;
        }
        // store.clearFilter(true);
        this.ortstore.load({
            callback: function() {
                osg.setStore(me.ortstore);
                map.addLocations(me.ortstore);
                osg.setLoading(false);
                map.setLoading(false);
            }
        });
        //enable buttons
        this.down('toolbar button[action=add]').enable();
        this.down('toolbar button[action=addMap]').enable();
        this.connectListeners();
    },

    getStore: function() {
        return this.ortstore;
    },

    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