# HG changeset patch # User Raimund Renkert # Date 1484039037 -3600 # Node ID a792eecf16149af5656cc278427a5290c79eaf5d # Parent a4c1a9862a88b484b22b1504555d6b386e450d24 Updated Layout and Map for 'ortsbezug'-window. WIP! diff -r a4c1a9862a88 -r a792eecf1614 app/controller/form/Ortszuordnung.js --- a/app/controller/form/Ortszuordnung.js Wed Dec 14 10:21:48 2016 +0100 +++ b/app/controller/form/Ortszuordnung.js Tue Jan 10 10:03:57 2017 +0100 @@ -18,7 +18,7 @@ init: function() { this.control({ 'ortszuordnungform button[action=setOrt]': { - toggle: this.pickOrt + toggle: this.chooseLocation }, 'ortszuordnungform button[action=save]': { click: this.save @@ -143,6 +143,22 @@ } }, + chooseLocation: function(button, pressed, opts) { + var win = button.up('window'); + var gridPanel = win.down('panel[name=ortgrid]'); + if (pressed) { + win.setHeight(Ext.getBody().getViewSize().height - 50); + win.setY(25); + gridPanel.show(); + } + else { + var y = (Ext.getBody().getViewSize().height - 465) / 2 + win.setHeight(465); + win.setY(y); + gridPanel.hide(); + } + }, + /** * The dirtyForm function enables or disables the save and discard diff -r a4c1a9862a88 -r a792eecf1614 app/view/form/Ortszuordnung.js --- a/app/view/form/Ortszuordnung.js Wed Dec 14 10:21:48 2016 +0100 +++ b/app/view/form/Ortszuordnung.js Tue Jan 10 10:03:57 2017 +0100 @@ -21,7 +21,7 @@ ], layout: 'fit', - margin: 5, + margin: '5, 5, 0, 5', border: 0, record: null, @@ -70,65 +70,92 @@ }], items: [{ layout: 'vbox', - border: 0, - margin: '0, 10, 0, 0', - items: [{ - xtype: 'tfield', - labelWidth: 125, - maxLength: 100, - name: 'ortszusatztext', - fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszusatztext') - }, { - xtype: 'textfield', - labelWidth: 125, - maxLength: 1, - allowBlank: false, - regex: /[UEZA]/, - activeError: 'U, E, Z oder A eingeben', - name: 'ortszuordnungTyp', - fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp') - }, { - xtype: 'textfield', - submitValue: true, - readOnly: true, - hidden: true, - name: 'ortId' - }] - }, { - layout: 'vbox', - flex: 1, - margin: '0, 10, 0, 0', + autoscroll: true, border: 0, items: [{ - xtype: 'displayfield', - labelWidth: 125, - fieldLabel: i18n.getMsg('orte.gemeinde'), - name: 'gemeinde' + layout: 'vbox', + border: 0, + margin: '0, 10, 0, 0', + items: [{ + xtype: 'tfield', + labelWidth: 125, + maxLength: 100, + name: 'ortszusatztext', + fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszusatztext') + }, { + xtype: 'textfield', + labelWidth: 125, + maxLength: 1, + allowBlank: false, + regex: /[UEZA]/, + activeError: 'U, E, Z oder A eingeben', + name: 'ortszuordnungTyp', + fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp') + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.ortid'), + submitValue: true, + name: 'ortId' + }] }, { - xtype: 'displayfield', - labelWidth: 125, - fieldLabel: i18n.getMsg('staat'), - name: 'staat' - }] - }, { - layout: 'vbox', - flex: 1, - margin: '0, 10, 0, 0', - border: 0, - items: [{ - xtype: 'displayfield', - labelWidth: 125, - fieldLabel: i18n.getMsg('orte.lon'), - name: 'lon' - }, { - xtype: 'displayfield', - labelWidth: 125, - fieldLabel: i18n.getMsg('orte.lat'), - name: 'lat' + layout: 'vbox', + flex: 1, + margin: '0, 10, 0, 0', + border: 0, + items: [{ + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.kurztext'), + name: 'kurztext' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.langtext'), + name: 'langtext' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('staat'), + name: 'staatISO' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.gemeinde'), + name: 'gemeinde' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.gemeindename'), + name: 'gemeinde' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.kda'), + name: 'kdaId' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.koordx'), + name: 'koordXExtern' + }, { + xtype: 'displayfield', + labelWidth: 125, + fieldLabel: i18n.getMsg('orte.koordy'), + name: 'koordYExtern' + }] }] }] - }] - }]; + //}, { + // layout: 'vbox', + // flex: 1, + // margin: '0, 10, 0, 0', + // border: 0, + // items: [{ + // xtype: '' + // }] + }] + }]; this.callParent(arguments); }, diff -r a4c1a9862a88 -r a792eecf1614 app/view/grid/Ortszuordnung.js --- a/app/view/grid/Ortszuordnung.js Wed Dec 14 10:21:48 2016 +0100 +++ b/app/view/grid/Ortszuordnung.js Tue Jan 10 10:03:57 2017 +0100 @@ -73,7 +73,7 @@ header: 'Ort-ID', dataIndex: 'ortId', flex: 2, - renderer: function(value) { + renderer: function(value, meta, zuordnung) { var store = Ext.data.StoreManager.get('orte'); var record = store.getById(value); if (!record) { diff -r a4c1a9862a88 -r a792eecf1614 app/view/panel/Map.js --- a/app/view/panel/Map.js Wed Dec 14 10:21:48 2016 +0100 +++ b/app/view/panel/Map.js Tue Jan 10 10:03:57 2017 +0100 @@ -29,10 +29,11 @@ * OpenLayers map options. */ mapOptions: { - maxExtent: new OpenLayers.Bounds(2.9, 42.95, 18.1, 60.6), - scales: [5000000, 3000000, 2000000, 1000000, 500000, 250000, 100000, 25000], - units: 'dd', - projection: new OpenLayers.Projection('EPSG:4326') + maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), + //scales: [5000000, 3000000, 2000000, 1000000, 500000, 250000, 100000, 25000], + //numZoomLevels: 7, + projection: 'EPSG:3857', + displayProjection: new OpenLayers.Projection('EPSG:4326') }, @@ -43,17 +44,16 @@ initComponent: function() { var id = Ext.id(); this.layers = [ - new OpenLayers.Layer.WMS( + new OpenLayers.Layer.TMS( 'Standard' + id, - 'http://osm.intevation.de/cgi-bin/standard.fcgi?', + 'http://www.imis.bfs.de/mapcache/tms/', { - layers: 'OSM-WMS-Dienst', - format: 'image/png', - BGCOLOR: '0xFFFFFF' - }, { + layername: 'osm_bfs_google@GoogleMapsCompatible', isBaseLayer: true, - buffer: 0, - visibility: true + displayInLayerSwitcher: false, + type: 'png', + visibility: true, + projection: 'EPSG:3857', }) ]; this.map = new OpenLayers.Map('map_' + id, { @@ -138,7 +138,7 @@ // Create a new Feature Layer and add it to the map if (!this.featureLayer) { - this.featureLayer = new OpenLayers.Layer.Vector('vector_' + this.map.name, { + this.featureLayer = new OpenLayers.Layer.Vector('alle Messpunkte', { styleMap: new OpenLayers.StyleMap({ 'default': new OpenLayers.Style(OpenLayers.Util.applyDefaults({ externalGraphic: 'resources/lib/OpenLayers/img/marker-green.png', @@ -157,7 +157,11 @@ fontColor: 'blue', fontWeight: 'bold' }) - }) + }), + projection: new OpenLayers.Projection('EPSG:4326'), + preFeatureInsert: function(feature) { + feature.geometry.transform(new OpenLayers.Projection('EPSG:4326'), new OpenLayers.Projection('EPSG:3857')); + } }); this.selectControl = new OpenLayers.Control.SelectFeature(this.featureLayer, { clickout: false, diff -r a4c1a9862a88 -r a792eecf1614 app/view/window/Ortszuordnung.js --- a/app/view/window/Ortszuordnung.js Wed Dec 14 10:21:48 2016 +0100 +++ b/app/view/window/Ortszuordnung.js Tue Jan 10 10:03:57 2017 +0100 @@ -21,7 +21,7 @@ collapsible: true, maximizable: true, autoshow: true, - layout: 'vbox', + layout: 'fit', constrain: true, probe: null, @@ -68,7 +68,7 @@ handler: this.close }]; this.width = 900; - this.height = 515; + this.height = 465; this.bodyStyle = {background: '#fff'}; // add listeners to change the window appearence when it becomes inactive @@ -81,16 +81,61 @@ } }); + this.items = [{ - xtype: 'ortszuordnungform', - layout: 'fit', - width: '100%', - margin: 5 - }, { - xtype: 'ortpanel', - flex: 1, - toolbarPos: 'bottom', - margin: 5 + layout: 'border', + bodyStyle: {background: '#fff'}, + border: 0, + items: [{ + xtype: 'map', + region: 'center', + layout: 'border', + margin: '13, 5, 10, 5', + minHeight: 380, + externalOrteStore: true + }, { + xtype: 'ortszuordnungform', + region: 'east', + minHeight: 380, + }, { + region: 'south', + border: 0, + layout: 'fit', + name: 'ortgrid', + hidden: true, + maxHeight: '45%', + items: [{ + xtype: 'ortstammdatengrid', + maxHeight: '45%' + }], + dockedItems: [{ + xtype: 'toolbar', + dock: 'bottom', + border: '0, 1, 1, 1', + style: { + borderBottom: '1px solid #b5b8c8 !important', + borderLeft: '1px solid #b5b8c8 !important', + borderRight: '1px solid #b5b8c8 !important' + }, + items: [{ + xtype: 'textfield', + labelWidth: 50, + fieldLabel: i18n.getMsg('ortszuordnung.ortsuche'), + }, '->', { + text: i18n.getMsg('orte.new'), + action: 'createort', + }, { + text: i18n.getMsg('orte.frommap'), + action: 'frommap', + }, { + text: i18n.getMsg('orte.clone'), + action: 'clone', + }, { + text: i18n.getMsg('orte.select'), + action: 'select', + }] + }] + }] }]; this.callParent(arguments); }, @@ -99,6 +144,7 @@ * Initialise the Data of this Window */ initData: function() { + var me = this; if (!this.record) { this.record = Ext.create('Lada.model.Ortszuordnung'); if (!this.record.get('letzteAenderung')) { @@ -107,7 +153,36 @@ this.record.set('probeId', this.probe.get('id')); } this.down('ortszuordnungform').setRecord(this.record); - this.down('ortpanel').setStore(); + var map = this.down('map'); + var osg = this.down('ortstammdatengrid'); + var ortstore = Ext.create('Lada.store.Orte', { + defaultPageSize: 0, + autoLoad: false, + listeners: { + beforeload: { + fn: function() { + osg.setLoading(true); + map.setLoading(true); + } + }, + load: { + fn: function() { + osg.setLoading(false); + map.setLoading(false); + osg.setStore(ortstore); + var store = Ext.create('Lada.store.Orte', { + autoLoad: false + }); + store.add(ortstore.getRange()); + var rec = store.getById(me.record.get('ortId')); + store.remove(rec); + console.log(rec); + map.addLocations(store); + } + } + } + }); + ortstore.load(); }, /** @@ -116,8 +191,9 @@ */ afterRender: function(){ this.superclass.afterRender.apply(this, arguments); - var map = this.down('ortpanel').down('map'); - map.map.zoomToMaxExtent(); + var map = this.down('map'); + map.map.addControl(new OpenLayers.Control.LayerSwitcher()); + //map.map.zoomToMaxExtent(); }, /** diff -r a4c1a9862a88 -r a792eecf1614 resources/i18n/Lada_de-DE.properties --- a/resources/i18n/Lada_de-DE.properties Wed Dec 14 10:21:48 2016 +0100 +++ b/resources/i18n/Lada_de-DE.properties Tue Jan 10 10:03:57 2017 +0100 @@ -149,10 +149,20 @@ ortszuordnung.form.fset.title:Ortszuordnung ortszuordnung.form.field.ortszusatztext:Ortszusatztext ortszuordnung.form.field.ortszuordnungtyp:Typ der Ortszuordnung -ortszuordnung.form.setOrt:Neuen Ort setzen +ortszuordnung.form.setOrt: Zuordnung ändern ortszuordnung.form.setOrt.qtip:Wenn dieser Button gedrückt ist, kann der neue Ort durch Auswahl in der unten stehenden Liste gewählt werden. ortszuordnung.form.setOrt.pressed:Ort wählen orte.gemeinde:Gemeinde +orte.ortid:Id +orte.gemeindename:Name +orte.kda:Koordinatenart +orte.koordx:X-Koordinate +orte.koordy:Y-Koordinate +orte.new:Neuer Messpunkt +orte.frommap:Messpunkt aus Karte +orte.clone:Ähnlicher Messpunkt +orte.select:Messpunkt auswählen +ortszuordnung.ortsuche:Suche staat:Staat orte.lat:Breitengrad orte.lon:Längengrad