PS. where    entimap is a public static variable of an utility class eg.
CommonsUIVars.class

2009/9/23 Stefano Gargiulo <[email protected]>

> Hi, in the render method override the record parameter that you are using
> is not referred to the combobox's store record but to the grid one.. then is
> not useful for what you want to do...
>
> for this i've suggested to create a static hash map from the String[][]
> every time you reload it from RPC:
>
> for instance you can have these utility methods:
>
>       /**
>      * @return the enti
>      */
>     public static String[][] getEnti() {
>         return enti;
>     }
>
>       /**
>      * @param aEnti the enti to set
>      */
>     public static void setEnti(String[][] aEnti) {
>         enti = aEnti;
>         int i=0;
>         entimap=new HashMap();
>         while (i<enti.length){
>             entimap.put(enti[i][0], enti[i++][1]);
>         }
>     }
>
>
>
>> so, i used the below code to solve the problem. but i am getting null
>> from record.getAsString("
>
> countryName");
>>
>>
>>    col.setRenderer(new Renderer() {
>>            public String render(Object value, CellMetadata
>> cellMetadata,Record record,
>>                        int rowIndex, int colNum, Store store) {
>>                 String name = record.getAsString("countryName");
>>                return name;
>>            }
>> });
>>
>
>
>
>
>
>
>
> 2009/9/23 Patrizio De Michele <[email protected]>
>
> maybe there are some parts of your code skipped for some exception....
>> insert some system out at the end of your methods and see if the text is
>> outputted....
>> how you update your store onFocus?
>> you call a store.removeAll() and after you append new data??
>> hope it helps, Pat
>>
>> 2009/9/23 kilaru <[email protected]>
>>
>>
>>> Thanks for your answer.
>>>
>>>  i have implemented as you have said. but i have String[][] for me for
>>> countries, where i am storing (id, value)
>>>
>>> as i am having this store.
>>> Store gridCountriesStore = new SimpleStore(new String[]{"countryid",
>>> "countryName"}, new String[][]);
>>>
>>> and i am updating this store with values in "onFocus" method of
>>> ComboBoxListenerAdapter. and i am getting values in to store as
>>>
>>> // copied this while debugging in the eclipse.
>>> [[1, INDIA], [2, US], [11, UK], [12, Australia], [13, England], [14,
>>> Srilanka], [15, China], [16, West Indies], [17, Asia], [19, South
>>> America], [24, Africa]]
>>>
>>> i am able to see country names when i see int he dropdown. but after
>>> selecting a particular country and tabbing out from there, immediately
>>> id is populated in the grid cell.   For Example: if i select England
>>> from dropdown, and tabbed out from there, 13 is displayed in the cell.
>>>
>>> so, i used the below code to solve the problem. but i am getting null
>>> from record.getAsString("countryName");
>>>
>>>
>>>    col.setRenderer(new Renderer() {
>>>            public String render(Object value, CellMetadata
>>> cellMetadata,Record record,
>>>                        int rowIndex, int colNum, Store store) {
>>>                 String name = record.getAsString("countryName");
>>>                return name;
>>>            }
>>> });
>>>
>>>
>>> please help me..
>>>
>>>
>>> On Sep 22, 12:51 pm, Stefano Gargiulo <[email protected]> wrote:
>>> > i had the same problem... it solved it setting a custom render for the
>>> cell:
>>> > col.setEditor(cbeditor);
>>> > col.setRenderer(new Renderer() {
>>> >
>>> >             public String render(Object value, CellMetadata
>>> cellMetadata,
>>> > Record record,
>>> >                     int rowIndex, int colNum, Store store) {
>>> >                 return (String)
>>> > SharedUIControls.compartIDtoValueMap.get(value.toString());
>>> >             }
>>> >     });
>>> >
>>> > where `compartIDtoValueMap` is a static HashMap populed via GWT RPC at
>>> > application startup (and whatever is needed)
>>> >
>>> > 2009/9/22 kilaru <[email protected]>
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > >  I have EditorGridPanel and in that one of the cells I am showing
>>> > > ComboBox to the user. With the below code combobox is displayed in a
>>> > > cell when I click on a cell. Also I can see list of countries which
>>> > > are retrieved from database. Problem is when I select a country from
>>> > > combobox, and when focus is lost from that combobox, the value of
>>> > > countryPk is displayed instead of country name. Where I am expecting
>>> > > the value of countryPk should be send to server and country name
>>> > > should be displayed to user.
>>> >
>>> > > Please help me in this problem.
>>> >
>>> > > // Code to add combobox to the gridpanel
>>> > > ----------------------------------------------------
>>> >
>>> > >
>>> ---------------------------------------------------------------------------
>>> ---------------------------------
>>> >
>>> > > ColumnConfig countryConfig = new ColumnConfig("Country", "countryPk",
>>> > > 100);
>>> >
>>> > > final String[] countryHeadings = new String[]{"countryPk",
>>> > > "country"};
>>> >
>>> > > final ComboBox countryComboBox = new ComboBox("Select
>>> > > Country","countryPk");
>>> >
>>> > > final Store gridCountriesStore = new SimpleStore(countryHeadings, new
>>> > > String[][]{});
>>> >
>>> > > gridCountriesStore.load();
>>> >
>>> > >              countryComboBox .setStore(gridCountriesStore);
>>> >
>>> > >              countryComboBox .setDisplayField("country");
>>> >
>>> > >              countryComboBox .setMode(ComboBox.LOCAL);
>>> >
>>> > >              countryComboBox .setTriggerAction(ComboBox.ALL);
>>> >
>>> > >              countryComboBox .setForceSelection(true);
>>> >
>>> > >              countryComboBox .setValueField("countryPk");
>>> >
>>> > >              countryComboBox .setReadOnly(true);
>>> >
>>> > > countryComboBox.addListener(new ComboBoxListenerAdapter() {
>>> >
>>> > >                  LookupController lookupController = new
>>> > > LookupController();
>>> >
>>> > >                  @Override
>>> >
>>> > >                  public void onFocus(Field field) {
>>> >
>>> > >                        lookupController.updateCountriesComboStore
>>> > > (gridCountriesStore, countryHeadings);
>>> >
>>> > >                  }
>>> >
>>> > >            });
>>> >
>>> > >  countryConfig.setEditor(new GridEditor(countryComboBox));
>>> >
>>> > >  countryConfig.setWidth(60);
>>> >
>>> > > //
>>> >
>>> > >
>>> ---------------------------------------------------------------------------
>>> ---------------------------------
>>> >
>>> > > //Code to get update the countries store
>>> > >
>>> ………………………………………………………………………………………….-----------------------------------
>>> >
>>> > >
>>> ---------------------------------------------------------------------------
>>> ------------------------------------
>>> >
>>> > > private LookupServiceAsync service = (LookupServiceAsync) GWT.create
>>> > > (LookupService.class);
>>> >
>>> > > public void updateCountriesComboStore(final Store store, final String
>>> > > [] headings) {
>>> >
>>> > >            GWT.log("Calling getCountries() of LookupServiceImpl",
>>> > > null);
>>> >
>>> > >            service.getCountries(new AsyncCallback<String[][]>(){
>>> >
>>> > >                  public void onFailure(Throwable caught) {
>>> >
>>> > >                        GWT.log("Unable to retreive Countries from
>>> > > ServletContext scope", null);
>>> >
>>> > >                  }
>>> >
>>> > >                  public void onSuccess(String[][] result) {
>>> >
>>> > >                        GWT.log("Retrieve Countries from
>>> > > ServletContext scope", null);
>>> >
>>> > >                        StoreCreator.updateStore(store, headings,
>>> > > result);
>>> >
>>> > >                  }
>>> >
>>> > >            });
>>> >
>>> > >      }
>>> >
>>> > >
>>> //-------------------------------------------------------------------------
>>> ------------------------------------
>>> >
>>> > > // Code to update any given store object
>>> > >
>>> ----------------------------------------------------------------------
>>> >
>>> > >
>>> ---------------------------------------------------------------------------
>>> ------------------------------------
>>> >
>>> > > public static void updateStore(final Store store, String[] headings,
>>> > > String[][] data)
>>> > >      {
>>> >
>>> > >             if (store != null)
>>> > >         {
>>> >
>>> > >              Store storeTemp = new SimpleStore(headings, data);
>>> >
>>> > >              storeTemp.reload();
>>> >
>>> > >              store.removeAll();
>>> >
>>> > >              store.add(storeTemp.getRecords());
>>> >
>>> > >         }
>>> >
>>> > >      }
>>> >
>>> > >
>>> ---------------------------------------------------------------------------
>>> --------------------------------------------------------
>>>
>>>
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"GWT-Ext Developer Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/gwt-ext?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to