2015-05-12 2 views
0

Я использую ColumnConfig для представления и редактирования данных. Для пола я хочу иметь RadioButtons, который, если он определен путем перечисления.ToggleGroup в GXT ColumnConfig

В каждой строке я хочу иметь:

идентификатор | (x) мужчина() женщина | имя | Дата

Единственный способ, который я нашел было добавление «кнопки» с определенным кодом рендеринга. Но я не могу получить значения или действия для нажатого радио.

ColumnConfig<SomeValueGto, String> begIdCol = createColumnConfig(begIdProvider, "Id", sizeBegId); 

//gender 
ColumnConfig<SomeValueGto, GenderCode> genderCol = createColumnConfig(GRID_PROPERTIES.sex(), "Sex*", sizeGender); 

ColumnConfig<SomeValueGto, String> nameCol = createColumnConfig(GRID_PROPERTIES.name(), "Name*", sizeName); 

ColumnConfig<SomeValueGto, Date> birthdateCol = createColumnConfig(GRID_PROPERTIES.birthdate(), "Birthdate*", sizeBirthdate); 
DateCell gebCell = new DateCell(DateTimeFormat.getFormat("dd.MM.yyyy")); 
geburtsdatumCol.setCell(gebCell); 

//add fields to the row 
List<ColumnConfig<SomeValueGto, ?>> columnList = new ArrayList<ColumnConfig<SomeValueGto, ?>>(); 
columnList.add(begIdCol); 
columnList.add(genderCol); 
columnList.add(nameCol); 
columnList.add(birthdateCol); 

ColumnModel<SomeValueGto> cm = new ColumnModel<SomeValueGto>(columnList); 

ListStore<SomeValueGto> gridStore = new ListStore<SomeValueGto>(GRID_PROPERTIES.id()); 

myGrid = new SLGrid<SomeValueGto>(gridStore, cm); 

// empty entries. default ids 1/2/3 
myGrid.getStore().add(new SomeValueGto(1)); 
myGrid.getStore().add(new SomeValueGto(2)); 
myGrid.getStore().add(new SomeValueGto(3)); 

final GridInlineEditing<SomeValueGto> editing = new GridInlineEditing<SomeValueGto>(myGrid); 
editing.setErrorSummary(false); 
editing.addEditor(nameCol, new TextField()); 

final SLDateField dateField = new SLDateField("date", false, true); 
editing.addEditor(geburtsdatumCol, new Converter<Date, Date>() {.....}, dateField); 

Помощник createColumnConfig:

private <T> ColumnConfig<SomeValueGto, T> createColumnConfig(ValueProvider<SomeValueGto, T> aValueProvider, String aHeader, int aWidth) { 
    ColumnConfig<SomeValueGto, T> columnCol = new ColumnConfig<SomeValueGto, T>(aValueProvider); 
    columnCol.setHeader(aHeader); 
    columnCol.setWidth(aWidth); 
    columnCol.setMenuDisabled(true); 

    return columnCol; 
} 

Кто-нибудь уже решил проблему, как это?

ответ

0

GXT Сетка использует com.google.gwt.cell.client.Cell для визуализации данных в сетке. Я не думаю, что какая-то ячейка, которую вы хотите, существует в GXT. Поэтому я думаю, вам придется реализовать свою собственную ячейку. Вы можете взять пример ColorPaletteCell, который позволяет пользователю select a color из самой ячейки.

Поэтому вам нужно будет реализовать методы и onBrowserEvent для управления вашими переключателями и добавлениями, когда пользователь нажимает на него.

Смежные вопросы