当前位置: 首页>>代码示例>>Scala>>正文


Scala ObservableBuffer类代码示例

本文整理汇总了Scala中scalafx.collections.ObservableBuffer的典型用法代码示例。如果您正苦于以下问题:Scala ObservableBuffer类的具体用法?Scala ObservableBuffer怎么用?Scala ObservableBuffer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ObservableBuffer类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: StenoDictionary

//设置package包名称以及导入依赖的类
package bozzy.steno

import java.io.File
import java.nio.charset.MalformedInputException

import scala.io.Source
import scalafx.collections.ObservableBuffer


class StenoDictionary(val filename: String, val format: DictionaryFormat.Value) {
  val entries = ObservableBuffer[DictionaryEntry]()
  val dictionaryName = new File(filename) getName

  if (format == DictionaryFormat.RTF) {
    try {
      // Ideally, we'd have UTF-8
      DictionaryFormat.parseRtfDictionary(Source.fromFile(filename).mkString)
        .foreach((entry: (String, String)) =>
          entries add new DictionaryEntry(entry._1, entry._2, DictionaryFormat.RTF, this))
    } catch {
      case _: MalformedInputException => {
        // But most traditional steno dictionaries will be in ANSI
        entries removeAll entries
        DictionaryFormat.parseRtfDictionary(Source.fromFile(filename, "Cp1252").mkString)
          .foreach((entry: (String, String)) =>
            entries add new DictionaryEntry(entry._1, entry._2, DictionaryFormat.RTF, this))
      }
    }
  } else if (format == DictionaryFormat.JSON) {
    val jsonDictionaryString = try Source.fromFile(filename).mkString catch {
      case _: MalformedInputException => Source.fromFile(filename, "Cp1252").mkString
    }
    DictionaryFormat.parseJsonDictionary(jsonDictionaryString).foreach((entry: (String, String)) =>
      entries add new DictionaryEntry(entry._1, entry._2, DictionaryFormat.JSON, this))
  }

  override def toString = dictionaryName
} 
开发者ID:morinted,项目名称:Bozzy,代码行数:39,代码来源:StenoDictionary.scala

示例2: UiUtils

//设置package包名称以及导入依赖的类
package net.mikolak.pomisos.utils

import net.mikolak.pomisos.crud.{DbIdable, MultiDao}
import net.mikolak.pomisos.data.WithDbId
import shapeless.Lens

import scalafx.beans.property.ObjectProperty
import scalafx.collections.ObservableBuffer
import scalafx.collections.ObservableBuffer.{Add, Remove, Update}

object UiUtils {

  def propFor[Type <: WithDbId, FieldType](l: Lens[Type, FieldType], o: Type)(
      saveFunc: Type => Type): ObjectProperty[FieldType] = {
    var obj = o

    val prop = ObjectProperty.apply(l.get(o))

    prop.onChange((_, _, newVal) => {
      obj = saveFunc(l.set(o)(newVal))
    })

    prop
  }

  def observerFor[T <: Product with Serializable: DbIdable](
      dao: MultiDao[T]): (ObservableBuffer[_ <: T], Seq[ObservableBuffer.Change[T]]) => Unit =
    (items, rawEvents) => {

      //splice Add and Remove events into collection
      val eventMap = rawEvents.groupBy {
        case Add(i, _)    => i
        case Remove(i, _) => i
      }

      val events = eventMap.toList.flatMap {
        case (index, rowEvents) => {
          if (rowEvents.exists(_.isInstanceOf[Add[T]]) && rowEvents.exists(_.isInstanceOf[Remove[T]])) {
            List(Update(index, index + 1))
          } else {
            rowEvents
          }
        }
      }

      val toId = implicitly[DbIdable[T]]
      events.collect {
        case Update(from, until) =>
          items.slice(from, until).foreach(dao.save)
        case Remove(_, removed) =>
          val ids = removed.toSeq.flatMap(toId.idsOf)
          dao.remove(ids: _*)
      }
    }

} 
开发者ID:mikolak-net,项目名称:pomisos,代码行数:57,代码来源:UiUtils.scala


注:本文中的scalafx.collections.ObservableBuffer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。