Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 2.63 KB | None | 0 0
  1.   val valueColumn = new TableColumn[Symbol, Symbol] {
  2.  
  3.             text        = t"ui.cue_metadata_editor.col_val"
  4.             cellFactory = {column =>
  5.                 new CustomTableCell[Symbol, Symbol]() {
  6.                     val comboBox = new ComboBox[Option[String]] {
  7.                         editable    = true
  8.                         converter   =
  9.                                 StringConverter({string =>
  10.                                                     if(string eq unsetValue) None else Some(string)
  11.                                                 },
  12.                                                 {
  13.                                                     case Some(str)  => str
  14.                                                     case None       => unsetValue
  15.                                                 })
  16.                     }
  17.  
  18.                     override val delegate = new JFXTableCellUpdateDelegate[Symbol, Symbol] {
  19.                         override def startEdit(): Unit = {
  20.                             text    = null
  21.                             graphic = comboBox
  22.                             comboBox.items.getValue.clear()
  23.                             comboBox.items += unsetValue
  24.                             cueSheet.metaData(item.value) match {
  25.                                 case Some(value)    =>
  26.                                     comboBox.items += value
  27.                                     comboBox.selectionModel.select(value)
  28.                                 case None           =>
  29.                                     comboBox.selectionModel.select(unsetValue)
  30.                             }
  31.                         }
  32.  
  33.                         override def cancelEdit(): Unit = {
  34.                             text = cueSheet.metaData(item.value) match {
  35.                                 case Some(value)    => value
  36.                                 case None           => unsetValue
  37.                             }
  38.                         }
  39.  
  40.                         override def commitEdit(value: Symbol): Unit = {
  41.  
  42.                         }
  43.                     }
  44.  
  45.                     override def updateItem(item: Symbol, empty: Boolean): Unit = empty match {
  46.                         case true =>
  47.                             text    = null
  48.                             graphic = null
  49.                         case false =>
  50.                             text    = cueSheet.metaData(item) match {
  51.                                 case Some(value)    => value
  52.                                 case None           => unsetValue
  53.                             }
  54.                     }
  55.                 }
  56.             }
  57.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement