Как использовать Ext 3 и Ext 4 вместе с GeoExt? - PullRequest
1 голос
/ 10 ноября 2011

Мы пытаемся загрузить как Ext 3, так и Ext 4 с использованием ext-all-sandbox.js, чтобы иметь возможность использовать GeoExt в Ext 4.

В нашем DOMПохоже, что мы успешно загрузили Ext 3, Ext 4, GeoExt и OpenLayers, но все еще получаем ошибки вроде:

«Ext.functionFactory () не является функцией» и «Ext.supports не определен».

Кто-нибудь пробовал подобное?

Это index.jsp, куда мы загружаем файлы js.

<!DOCTYPE HTML>
<%@ page pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>

<!-- Ext 4 with sandbox mode -->

<script type="text/javascript" src="../gt-static/extjs/ext-all.js"></script>
<script type="text/javascript" src="../gt-static/extjs/builds/ext-all-sandbox.js">
</script>
<link rel="stylesheet" type="text/css" href="../gt-static/extjs/resources/css/ext-all-gray.css"/>
<link rel="stylesheet" type="text/css" href="../gt-static/extjs/resources/css/ext-sandbox.css">

<!-- Ext 3 -->

<script src="../gt-static/ext-3.2.1/adapter/ext/ext-base.js" type="text/javascript">   </script>
<script src="../gt-static/ext-3.2.1/ext-all.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../gt-static/ext-3.2.1/resources/css/ext-all.css"></link>

<!-- OpenLayers -->
<script src="../gt-static/OpenLayers/OpenLayers/OpenLayers.js" type="text/javascript"></script>


<script type="text/javascript">
// Start app on ready
Ext4.Loader.onReady(function(){
Ext4.Loader.setConfig({enabled: true});
Ext4.require(['Ext4.picker.Date']);
var head = Ext4.fly(document.getElementsByTagName('head')[0]);

// GeoExt
Ext4.core.DomHelper.append(head, {
    tag : 'script',
    type : 'text/javascript',
    src : '../gt-static/GeoExt/lib/GeoExt.js'
});
Ext4.core.DomHelper.append(head, {
    tag : 'script',
    type : 'text/javascript',
    src : '../gt-static/GeoExt/resources/css/geoext-all-debug.css'
});
Ext4.core.DomHelper.append(head, {
    tag : 'script',
    type : 'text/javascript',
    src : 'app.js'
});
},this,true);

</script>

</head>
<body></body>
</html>

и где мы используем GeoExt вместе с Ext 3 и Ext 4:

Ext4.define('GT.controller.Authenticated', {
    extend : 'Ext4.app.Controller',

    views : [ 'Authenticated' ],

    init : function () {
        "use strict";
        this.control({
            'authenticated' : {
                render : function () {
                    var panel = new Ext.Panel({
                        title : 'EXT3'
                    });
                    Ext4.getCmp('mappanel').add(panel);
                    var map = new OpenLayers.Map();
                    var layer = new OpenLayers.Layer.WMS("Global Imagery",
                            "http://maps.opengeo.org/geowebcache/service/wms",
                            {
                                layers : "bluemarble"
                            });
                    map.addLayer(layer);

                    new GeoExt.MapPanel({
                        renderTo : 'mappanel',
                        height : 400,
                        width : 600,
                        map : map,
                        title : 'A Simple GeoExt Map'
                    });
                }
            }
        });
    }
});

Снимки экрана

FireBug - DOM http://img842.imageshack.us/img842/492/dommq.png

FireBug - Ошибки - Консоль http://img33.imageshack.us/img33/3703/errorsp.png

1 Ответ

1 голос
/ 11 ноября 2011

Нам удалось решить множество проблем:

<script type="text/javascript" src="../gt-static/ext-3.3.1/adapter/ext/ext-base.js"></script> 
<script src="../gt-static/ext-3.3.1/ext-all.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../gt-static/ext-3.3.1/resources/css/ext-all.css"></link>

<script src="../gt-static/OpenLayers/OpenLayers/OpenLayers.js" type="text/javascript"></script>
<script src="../gt-static/GeoExt/lib/GeoExt.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../gt-static/GeoExt/resources/css/geoext-all.css"></link>

<script type="text/javascript" src="../gt-static/extjs/builds/ext-all-sandbox.js"></script>

<link rel="stylesheet" type="text/css" href="../gt-static/extjs/resources/css/ext-sandbox.css"/>

Теперь можно загрузить GeoExt MapPanel в контейнер Ext 4.

Теперь наша проблема в том, что CSS-файлы, кажется, работают как ext-all-grey.css

Если у вас, ребята, есть мысли по этому поводу, это было бы очень признательно

...