GeoExt 0.5 Release Notes

This is the first Release of GeoExt. The release notes show a brief history of the project from the beginning, including a short description of the features (with API changes) and a list of bug fixes.

Dependencies

Ext JS >= 2.2

OpenLayers >= 2.8

GeoExt 0.5 was tested with Ext JS 2.2.1 and OpenLayers 2.8.

Overview Of GeoExt 0.5 Features

Data Components

GeoExt.data.ProtocolProxy - A data proxy (like Ext.data.Proxy) for use with OpenLayers.Protocol objects. Since #3, we have a way to pass more parameters than just the filter to the protocol the proxy is configured with.

​ GeoExt.data.FeatureStore - like Ext.data.Store, but designed to represent features of a vector layer (#18). Layer and store can be synchronized. GeoExt.data.FeatureReader is used to read features from an OpenLayers.Protocol.Response, and each feature is represented by a GeoExt.data.FeatureRecord. GeoExt.data.FeatureStoreMixin is available to create a custom store with the functionality to synchronize features with a layer. With #56, support for complex mappings was introduced for the FeatureReader.

GeoExt.data.LayerStore, GeoExt.data.LayerReader and GeoExt.data.LayerRecord are designed to store layers and synchronize with a map's layers array (#25). There is also a GeoExt.data.LayerStoreMixin to create a custom store. Since #27, the signature of LayerRecord matches the signature of Ext.data.Record. And since #29, custom readers can be used to populate a LayerStore. With #30, we introduced new bind and undbind methods to connect to / disconnect from a map, replacing the former setMap method which was similar to the new bind method. With #38 and #47, some more API changes were introduced, making the LayerStore look more familiar to Ext JS developers used to Ext.data.Store.

​ GeoExt.data.WMSCapabilitiesStore and GeoExt.data.WMSCapabilitiesReader are used to represent the contents of a WMS GetCapabilities response in a grid (#26). This is e.g. useful for selecting layers from the available layers of a WMS and add them to a map.

​ GeoExt.data.ScaleStore - a store used to present a map's configured scales in a combo box (#41). It is always in sync with the map it is configured with.

Widgets

​ GeoExt.MapPanel - a panel providing an easily configurable OpenLayers map. Initial version (#4), configuration made easier with #31 by allowing extent and center to be configured using arrays and #35 by removing the Base Layer / Overlay dichtomy. In #45 the map panel was made aware of items that are added to / removed from it.

​ GeoExt.ZoomSlider - a zoom slider designed to replace the OpenLayers ZoomBar with a slider matching the Ext UI. It can also be placed outside the map panel (#16). With #89, a new config property, "aggressive", was added, which will force the update of map zoom while dragging (if set to true). By default, the map zoom will only be updated when dragging the slider is finished.

​ GeoExt.LegendPanel - a panel for displaying a legend of the layers visible in the map with legend graphics (#2). Respects layer order and visibility and updates with changes in the map.

​ GeoExt.tree.LayerNode - a tree node to use in Ext trees, representing a map layer (#22). Layer nodes can either be used directly in an Ext.TreePanel, or ​ GeoExt.tree.LayerContainer, GeoExt.tree.BaseLayerContainer and GeoExt.tree.OverlayLayerContainer can be used to show all layers, base layers and overlay layers in a tree. Like the LegendPanel, the tree components respect layer order and visibility, and update with changes in the map.

​ GeoExt.Popup - a specialized Ext.Window that can be anchored to OpenLayers vector features or locations on a map (#21). It is not limited to live inside a map panel (#8) and can also be un-anchored from the feature/location and live on like a plain Ext.Window.

​ GeoExt.Action - a convenient way to connect OpenLayers controls to Ext toolbar buttons and menu items (#67).

​ GeoExt.form.FormPanel - a specialized FormPanel that creates filters based on the values entered in the form, performing filtered requests using an OpenLayers.Protocol (#49). This is e.g. useful for searching a WFS for features matching specific criteria.

Bug fixes

GeoExt.data.FeatureStore

feature and layer records should clone on copy (#34)

FeatureRecord.create and LayerRecord.create should not modify globally defined prototypes (#40)

layer and feature record copy should not clone layer and feature (#58)

GeoExt.data.LayerStore

feature and layer records should clone on copy (#34)

layer store should respect the order of layers in the map layers array (#37)

LayerStore and bound Map get out of sync when record is replaced through add() (#57)

layer and feature record copy should not clone layer and feature (#58)

LayerStore should fire update event when layer property changes (#66)

LayerRecord title field is not updated when layer.setName is called (#85)

Unbind the store when the map is being destroyed (#88)

Layers set in reverse order (#106, with RC2)

GeoExt.data.WMSCapabilitiesStore

WMSCapabilitiesStore assumes config parameter (#79)

GeoExt.data.ScaleStore

ScaleStore does this.map.register instead of this.map.events.register (#62)

Level 0 not included in ScaleStore (#84)

GeoExt.MapPanel

MapPanel should listen for ownerCt move (#32)

MapPanel should destroy any map it creates (#72)

incorrect map initialization sequence in MapPanel within a layout (#60)

GeoExt.ZoomSlider

ZoomSlider should start with Slider defaults (#83)

Renaming the anchor and unanchor methods so they don't conflict with ext properties (#44)

popup needs to account for destroyed map (#73)

mouse events should be stopped by popup when anchored (#80)

Popup tests cause errors in Map.js (#107, RC2)

GeoExt.LegendPanel

legend panel and layer container don't handle multiple record additions properly (#86)

calling map.destroy causes problem with legend and tree components (#90)

make sure legend and layer nodes update when layer name is changed (#96)

GeoExt.tree.LayerNode

Fix up double radio button for layer treenode (#68)

calling map.destroy causes problem with legend and tree components (#90)

GeoExt.Action