]> gitweb @ CieloNegro.org - task-reporter.git/blob - src/main/scala/jp/ymir/taskReporter/ui/DateChooser.scala
wip
[task-reporter.git] / src / main / scala / jp / ymir / taskReporter / ui / DateChooser.scala
1 package jp.ymir.taskReporter.ui
2 import com.toedter.calendar._
3 import java.beans.PropertyChangeEvent
4 import java.beans.PropertyChangeListener
5 import java.util.Calendar
6 import java.util.Date
7 import scala.swing._
8 import scala.swing.event._
9
10 class DateChooser extends Component {
11   override lazy val peer = new JDateChooser()
12
13   case class DateChanged(from: Option[Date], to: Option[Date]) extends Event
14
15   peer.addPropertyChangeListener("date", new PropertyChangeListener {
16     def propertyChange(e: PropertyChangeEvent) {
17       if (e.getPropertyName == "date") {
18         publish(
19           DateChanged(
20             from = Option(e.getOldValue.asInstanceOf[Date]),
21             to   = Option(e.getNewValue.asInstanceOf[Date])))
22       }
23     }
24   })
25
26   def calendar: Option[Calendar] = peer.getCalendar match {
27     case null => None
28     case cal  => Some(cal)
29   }
30   def calendar_=(cal: Option[Calendar])
31     = peer.setCalendar(cal.getOrElse(null))
32
33   def calendarChooser: CalendarChooser = new CalendarChooser(peer.getJCalendar)
34
35   def dateFormatString: String        = peer.getDateFormatString
36   def dateFormatString_=(fmt: String) = peer.setDateFormatString(fmt)
37 }