2017-02-02 2 views
2

У меня есть сетка с кнопкой в ​​созданном столбце. Смотрите скриншот:Как скрыть кнопку в созданном столбце в сетке?

enter image description here

В зависимости от логического значения в столбце «Has StackTrace» Я хотел бы, чтобы показать или скрыть кнопку «вид» в столбце «StackTrace».

Должен ли я распространять Vaadin's com.vaadin.ui.renderers.ButtonRenderer или есть какой-либо более простой вариант?

ответ

0

я сделал следующее обходной путь, но я все еще хотел бы знать, как сделать кнопку:

// create container 
IndexedContainer container = new IndexedContainer(...); 
container.addContainerProperty("stacktrace", String.class, null); 

// set data 
importSession.getRows().forEach(importSessionRow -> { 
    Item item = gpcontainer.getItem(importSessionRow.getId()); 
    item.getItemProperty("stacktrace").setValue(importSessionRow.isHasStacktrace() ? "/admin/instrument/import/row/" + importSessionRow.getId() + "/stacktrace.html" : null); 
}); 

// set renderer 
grid.getColumn("stacktrace").setRenderer(new HtmlRenderer(), 
      new Converter<String, String>() { 
       @Override 
       public String convertToModel(String value, 
              Class<? extends String> targetType, Locale locale) 
         throws Converter.ConversionException { 
        return "not implemented"; 
       } 

       @Override 
       public String convertToPresentation(String value, 
                Class<? extends String> targetType, Locale locale) 
         throws Converter.ConversionException { 
        return value != null ? "<a href='" + value + "' target='_blank'>view</a>" : null; 
       } 

       @Override 
       public Class<String> getModelType() { 
        return String.class; 
       } 

       @Override 
       public Class<String> getPresentationType() { 
        return String.class; 
       } 
      }); 
Смежные вопросы