2015-11-16 6 views
1

Я хотел бы переопределить метод getSortableContainerPropertyIds, но я понятия не имею, как это сделать. В IndexedContainer есть метод getContainerPropertyIds, но я должен его повторно реализовать, потому что реализация по умолчанию не дает мне все, что мне нужно.Переопределение метода анонимного класса в java

IndexedContainer diagnosesContainer = new IndexedContainer() 
    { 
      @Override 
      public Collection<?> getSortableContainerPropertyIds() { 
       // Default implementation allows sorting only if the property 
       // type can be cast to Comparable 
       return getContainerPropertyIds(); 
      } 
    }; 
+0

Какая у вас проблема? –

+5

Вы можете заменить строку «return getContainerPropertyIds()» кодом, который делает то, что вы хотите сделать. Если это не так - добавьте больше информации о том, что вы пытаетесь сделать. – TR1

+0

В основном, дело в том, что в Vaadin при использовании стандартной реализации getSortableContainerPropertyIds в контейнере Table он сортирует каждый столбец в пользовательском интерфейсе, и я этого не хочу. https://vaadin.com/api/com/vaadin/data/util/IndexedContainer.html#getSortableContainerPropertyIds() – Sami

ответ

0

Если вы хотите, чтобы отключить сортировку для некоторых из столбцов, можно переопределить метод, подобный следующему:

IndexedContainer diagnosesContainer = new IndexedContainer() { 

     @Override 
     public Collection<?> getSortableContainerPropertyIds() { 
      Collection<?> propertyIds = getContainerPropertyIds(); 

      // Remove the ids that should not be sortable 
      propertyIds.remove("propertyId"); 

      return propertyIds; 
     } 
}; 

В то время как вы удалите собственности идентификаторы колонок вы не хотите сортировать и возвращать только идентификаторы, которые следует сортировать.