Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin Sort on Date column / 5 сообщений из 5, страница 1 из 1
20.11.2013, 14:50:33
    #38471322
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Sort on Date column
всем привет,

использую Ваадин 6.7.4

получаю датасет из бд и результат заполняю в Vaadin таблицу.

есть колонка типа Date, которую надо отформатировать, для этого использую formatPropertyValue
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
mainComponent.addContainerProperty(transactionDt, TDate.class, null);

@Override
    protected Table createMainComponentInstance() {
        return new Table()
        {
            /**
			 * 
			 */
			private static final long serialVersionUID = -8188804282068331981L;

			@Override
            protected String formatPropertyValue(Object rowId, Object colId, Property property) {
				
                // TDate field
                if (property.getType() == TDate.class) {
                	SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
                	try {
                		TDate dt = (TDate) property.getValue();
                		return df.format(dt.getUtilDate());
                	}
                	catch(Exception ex) {
                		
                	}
                }

                return super.formatPropertyValue(rowId, colId, property);
            }        	
        };
    }



после добавления этого форматирование сортировка по этой колонки не работает, клик по ней не реагирует. как можно пофиксить ?
...
Рейтинг: 0 / 0
20.11.2013, 15:41:40
    #38471433
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Sort on Date column
У вас при создании колонки контейнеру, например IndexedContainer должно быть присвоено свойство, например так

Код: java
1.
2.
IndexedContainer ic;
ic.addContainerProperty("Дата", Date.class, null);



А у вас скорее всего строка там. Кроме того, если там была строка, то даже без форматирования, сортировка была неверной, а была похожа на верную, только из-за того, что "изначальный" формат сортируется по порядку, например если он такой ГГГГ.ММ.дд ... ну и часы минуты секунды милисекунды...
...
Рейтинг: 0 / 0
20.11.2013, 15:47:53
    #38471442
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Sort on Date column
гыы, нашел свою старую тему по этому вопросу :)
...
Рейтинг: 0 / 0
20.11.2013, 16:50:38
    #38471550
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Sort on Date column
да я так вроде и делаю

Код: java
1.
mainComponent.addContainerProperty("Transaction Date", TDate.class, null);



mainComponent это Table
...
Рейтинг: 0 / 0
20.11.2013, 16:58:16
    #38471557
gda
gda
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Sort on Date column
разобрался спасибоб проблема была всетаки тут, надо так

Код: java
1.
mainComponent.addContainerProperty(transactionDt, Date.class, null);



уже ниже преобразовал TDate в Date. вот

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
@Override
    protected Table createMainComponentInstance() {
        return new Table()
        {
            /**
			 * 
			 */
			private static final long serialVersionUID = -8188804282068331981L;

			@Override
            protected String formatPropertyValue(Object rowId, Object colId, Property property) {
				
                // TDate field
                if (property.getType() == Date.class) {
                	SimpleDateFormat df = new SimpleDateFormat("dd MMMM yyyy");
                	try {
                		Date dt = (Date) property.getValue();
                		return df.format(dt);
                	}
                	catch(Exception ex) {
                		
                	}
                }

                return super.formatPropertyValue(rowId, colId, property);
            }        	
        };
    }

    private void useSearchResult(DOList searchResult) {
        for (int i = 0; i < searchResult.size(); i++) {
            DOCreditCardReport ccTransaction = (DOCreditCardReport) searchResult.elementAt(i);
            

            mainComponent.addItem(
                    new Object[] { 
                    				ccTransaction.CCPNRef, 
                    				//ccTransaction.transactionDate.formatIt(TDate.DDMONTHYYYY),
                    				ccTransaction.transactionDate.getUtilDate(),
                    				ccTransaction.ccUserFullName, 
                    				ccTransaction.publicationCompany,
                    				ccTransaction.tradeName, 
                    				ccTransaction.ccUserAddress, 
                    				ccTransaction.ccUserEmail,
                    				ccTransaction.formatCCLastFirstName(), 
                    				ccTransaction.ccTypeValue,
                    				TemplarUtil.formatCurrency(ccTransaction.transactionAmount , 2)                    				
                    			 }, i);
	            
            
        } // end of for
        
        mainComponent.setPageLength(pageSize);        
    } 
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin Sort on Date column / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]