2017-10-06 7 views
2

슬라이더를 사용하여 Amount (2) 열의 값을 편집 할 수있는 Vaadin 8 격자를 만들고 싶습니다 (this example과 유사).내 슬라이더 편집기가 Vaadin 8 그리드에서 작동하지 않는 이유는 무엇입니까?

Grid

나는 그리드를 만들려면 다음 코드를 사용합니다.

fun createGrid(): Grid<Concept> { 
    val grid = Grid<Concept>() 
    val dataProvider = ListDataProvider<Concept>(ctl.getConcepts()) 
    grid.dataProvider = dataProvider 
    grid.addColumn(Concept::getName) 
      .setId("ID") 
      .setCaption("ID") 
    grid.addColumn(Concept::getDescription) 
      .setId("desc") 
      .setCaption("Description") 
    grid.addColumn(Concept::getOutput) 
      .setId("amountNumber") 
      .setCaption("Amount") 

    val conceptAmountditor = Slider() 
    conceptAmountditor.setWidth(100.0f, Sizeable.Unit.PERCENTAGE) 
    conceptAmountditor.min = 0.0 
    conceptAmountditor.max = 100.0 

    grid.addColumn(Concept::getOutput, ProgressBarRenderer()) 
      .setId("amountBar") 
      .setCaption("Amount (2)") 
      .setEditorComponent(
        conceptAmountditor, 
        Concept::setOutput 
      ) 
      .setEditable(true) 


    grid.setSizeFull() 
    return grid 
} 

그러나 개별 행을 클릭하면 슬라이더가 표시되지 않습니다.

내 코드가 잘못되었습니다. 특정 행을 두 번 클릭하면 진행률 막대를 슬라이더로 변환 할 수 있습니까?

답변

1

이 작동 : 자세한 내용은

val amount2Col = grid.addColumn(Concept::getOutput, amount2ColRenderer) 
      .setId("amountBar") 
      .setCaption("Amount (2)") 
    val binder = grid.editor.binder 
    val amount2ColSlider = Slider() 
    val amount2Binding: Binder.Binding<Concept, Double> = binder.bind(
      amount2ColSlider, Concept::getOutput, Concept::setOutput 
    ) 
    amount2Col.setEditorBinding(amount2Binding) 
    amount2Col.setEditable(true) 
    grid.editor.setEnabled(true) 

this page에 "절 그리드 내부 편집 항목"을 참조하십시오.