2017-02-02 3 views
2

Ich habe Raster mit der Schaltfläche in der generierten Spalte. Screenshot:Wie blende ich die Schaltfläche in der generierten Spalte im Raster?

enter image description here

Je nach boolean Wert in der Spalte „Hat Stacktrace“ Ich möchte auf die Schaltfläche „Ansicht“ in der Spalte „Stacktrace“ ein- oder auszublenden.

Sollte ich Vaadins com.vaadin.ui.renderers.ButtonRenderer erweitern oder gibt es eine einfachere Option?

Antwort

0

Ich habe folgendes Problem zu umgehen, aber ich würde trotzdem gerne wissen, wie eine Schaltfläche zu machen:

// 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; 
       } 
      }); 
Verwandte Themen