Qt-based BB10 API Examples Documentation

main.qml Example File

routemapinvoker/assets/main.qml
    /* Copyright (c) 2012, 2013  BlackBerry Limited.
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */

    import bb.cascades 1.0
    import bb.platform 1.0
    import bb.data 1.0

    Page {
        Container {
            onCreationCompleted: cinemasDataSource.load()

            layout: DockLayout {}

            // The background image
            ImageView {
                horizontalAlignment: HorizontalAlignment.Fill
                verticalAlignment: VerticalAlignment.Fill

                imageSource: "asset:///images/background.png"
            }

            Container {
                horizontalAlignment: HorizontalAlignment.Fill
                verticalAlignment: VerticalAlignment.Fill

                leftPadding: 30
                topPadding: 30
                rightPadding: 30
                bottomPadding: 30

                // The title label
                Label {
                    horizontalAlignment: HorizontalAlignment.Center

                    text: qsTr ("Route from main station to...")
                    textStyle {
                        base: SystemDefaults.TextStyles.TitleText
                        textAlign: TextAlign.Center
                    }
                }

                // The address list view
                ListView {
                    topMargin: 50

                    dataModel: cinemasModel

                    listItemComponents: ListItemComponent {
                        type: "item"

                        StandardListItem {
                            title: ListItemData.Title
                            description: qsTr ("%1, %2").arg(ListItemData.Address).arg(ListItemData.City)
                        }
                    }

                    onTriggered: {
                        clearSelection()
                        select(indexPath)

                        routeInvoker.endLatitude = dataModel.data(indexPath).Latitude
                        routeInvoker.endLongitude = dataModel.data(indexPath).Longitude
                    }
                }

                // The 'Get route' button
                Button {
                    horizontalAlignment: HorizontalAlignment.Center
                    topMargin: 50

                    text: qsTr ("Get route")

                    onClicked: routeInvoker.go();
                }
            }
        }

        attachedObjects:[
            // The wrapper object to invoke the route map
            RouteMapInvoker {
                id: routeInvoker

                // Use fixed coordinates for start position ...
                // Note: This does not work with current BB10 version but will work with future ones
                //startLatitude: 42.814513
                //startLongitude: -73.94206

                // ... and center the map view around them.
                centerLatitude: startLatitude
                centerLongitude: startLongitude
            },

            // The data source that loads the cinema addresses
            DataSource {
                id: cinemasDataSource

                source: "cinemas.xml"
                query: "/ResultSet/Result"

                onDataLoaded: {
                    cinemasModel.clear()
                    cinemasModel.insertList(data)
                }
            },

            // The data model that contains the cinema addresses
            GroupDataModel {
                id: cinemasModel

                grouping: ItemGrouping.None
            }
        ]
    }