2013-07-17 4 views
0

Я хочу создать собственный фильтр для моего DataTable. Я хотел бы создать кнопку, которая, щелкнув по ней, изменит таблицу на свои данные. Я знаю о ChoiceFilteredPropertyColumn, который может предложить калитка, но это, по моему мнению, это раскрывающийся фильтр.Пользовательский фильтр калитки без раскрывающегося списка

Я пытаюсь добиться чего-то вроде следующего изображения (Блины кнопка кликабельны): example data table clickable button

Может кто-то мне точку в правильном направлении?

ответ

0

Я решил этот вопрос, создав настраиваемый фильтр (только панель с некоторой разметкой) и вернул ее в методе getFilter пользовательской FilteredPropertyColumn.

FilteredPropertyColumn: http://wicket.apache.org/apidocs/1.4/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilteredPropertyColumn.html

метод getFilter: http://wicket.apache.org/apidocs/1.4/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/IFilteredColumn.html#getFilter%28java.lang.String,%20org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm%29

ButtonFilter класс:

public class ButtonFilter extends Panel { 
    ... 
} 

В обычае FilteredPropertyColumn класс:

@Override 
public Component getFilter(String componentId, FilterForm<?> form) { 
    return new ButtonFilter<Y>(componentId, getFilterModel(form), filterChoices); 
} 
1

Ну ... суперкласс ChoiceFilteredPropertyColumn - FilteredPropertyColumn, который может сделать трюк. В противном случае вы всегда можете реализовать свою собственную колонку, которая реализует IFilteredColumn так, как вам нравится.

+0

Я CHEC k это. Спасибо за ответ. – Bram