view app/view/panel/Ort.js @ 1364:b58868c47f02

reintroduced filtered display of Stammdaten panel
author Maximilian Krambach <mkrambach@intevation.de>
date Wed, 08 Feb 2017 12:53:24 +0100
parents 5c2d6812d85a
children 48c9c7b0ceef
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');
        osg.setLoading(true);
        map.setLoading(true);
        var ortstore = store;
        if (!ortstore) {
            ortstore = Ext.data.StoreManager.get('orte');
        }
        ortstore.clearFilter(true);
        osg.setStore(ortstore);
        map.addLocations(ortstore);
        me.down('toolbar button[action=add]').enable();
        me.down('toolbar button[action=addMap]').enable();
        me.connectListeners();
    },

    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