ExtJS: Как установить id combobox?

У меня небольшая проблема. В моем приложении я всегда создаю два связанных выпадающих списка - страна и города (затем выбирается страна - города начали загружаться). Так я подумал - написать конструктор и свернуть код? Хорошо, я сделал это. Но у меня проблема: у меня есть 2-3 пары таких связанных комбинированных списков на странице, и когда я выбрал вторую комбинированную страну, данные (города) загружаются в первую комбинацию, потому что у нее тот же идентификатор. Хорошо - теперь я пытаюсь взять идентификатор параметра в конструктор, и это не сработало. Как установить идентификатор поля со списком, после чего я создаю объект?

Комбинация страны

comboCountryClass = Ext.extend(Ext.form.ComboBox, {
            fieldLabel: 'country',
            anchor: '95%',
            lazyRender:true,
            store:new Ext.data.Store({
                  proxy: new Ext.data.HttpProxy(
                    {url: '../lib/getRFB.php?rfb_type=countrys',
                    method: 'GET'}
                  ),
                  reader: countryReader,
                  autoLoad: true
            }),
            displayField:'country_name',
            valueField:'country_id',
            triggerAction:'all',
            mode:'local',
            listeners:{
                select:{
                    fn:function(combo, value) {
                        var modelCmp = Ext.getCmp(this.town_name_id);
                        alert(this.town_name_id);
                        modelCmp.setValue('');
                        modelCmp.getStore().proxy.setUrl('../lib/getRFB.php');
                        modelCmp.store.reload({
                            params: { 'country_id': this.getValue(),rfb_type: 'towns' }
                        });
                    }
                }
            },
            hiddenName:'country_id',
            initComponent: function() {comboCountryClass.superclass.initComponent.call(this);}})

И комбо города

comboTownClass = Ext.extend(Ext.form.ComboBox, {
            fieldLabel:'town',
            displayField:'town_name',
            valueField:'town_id',
            hiddenName:'town_id',
            anchor: '95%',
            id:this.town_name_id || 'youuuu',
            store: new Ext.data.Store({
                  proxy: new Ext.data.HttpProxy(  
                    {url: 'lib/handlers/orgHandler.php?action=read&towns=true',
                    method: 'GET'}
                  ),
                  reader: townReader
            }),
            triggerAction:'all',
            mode:'local',
            initComponent: function() {comboTownClass.superclass.initComponent.call(this);}})

новый comboTownClass ({town_name_id: 'townFormSearch'})

новый comboCountryClass ({town_name_id: ' } static Map getHashMap () {return new HashMap

public static void main(String[] args) {
    Map<String, Map<Long, List<String>>> map = getHashMap();
}

static <K,V> Map<K,V> getHashMap()
{
    return new HashMap<K, V>();
}

Я видел похожий код в google guava (как фабричные методы) для создания экземпляров Hashmap без упоминания универсальных типов. Я не понимаю, как общий вид выводится из Я имею в виду, как функция getHashMap может понять тип карты, поскольку я не передаю в функцию никакой информации о типе.

8
задан Sean Patrick Floyd 21 September 2010 в 13:01
поделиться