X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=task-reporter.git;a=blobdiff_plain;f=src%2Fmain%2Fscala%2Fjp%2Fymir%2FtaskReporter%2Fui%2FDateChooser.scala;fp=src%2Fmain%2Fscala%2Fjp%2Fymir%2FtaskReporter%2Fui%2FDateChooser.scala;h=0bc7c7578da88739f82f0d3075d5c83884d61209;hp=0000000000000000000000000000000000000000;hb=98a5e495638e1ef4c5826e2a67bbd7a93fb8d296;hpb=fc149e355937c9206e3a3c388b182ee5a1b81205 diff --git a/src/main/scala/jp/ymir/taskReporter/ui/DateChooser.scala b/src/main/scala/jp/ymir/taskReporter/ui/DateChooser.scala new file mode 100644 index 0000000..0bc7c75 --- /dev/null +++ b/src/main/scala/jp/ymir/taskReporter/ui/DateChooser.scala @@ -0,0 +1,37 @@ +package jp.ymir.taskReporter.ui +import com.toedter.calendar._ +import java.beans.PropertyChangeEvent +import java.beans.PropertyChangeListener +import java.util.Calendar +import java.util.Date +import scala.swing._ +import scala.swing.event._ + +class DateChooser extends Component { + override lazy val peer = new JDateChooser() + + case class DateChanged(from: Option[Date], to: Option[Date]) extends Event + + peer.addPropertyChangeListener("date", new PropertyChangeListener { + def propertyChange(e: PropertyChangeEvent) { + if (e.getPropertyName == "date") { + publish( + DateChanged( + from = Option(e.getOldValue.asInstanceOf[Date]), + to = Option(e.getNewValue.asInstanceOf[Date]))) + } + } + }) + + def calendar: Option[Calendar] = peer.getCalendar match { + case null => None + case cal => Some(cal) + } + def calendar_=(cal: Option[Calendar]) + = peer.setCalendar(cal.getOrElse(null)) + + def calendarChooser: CalendarChooser = new CalendarChooser(peer.getJCalendar) + + def dateFormatString: String = peer.getDateFormatString + def dateFormatString_=(fmt: String) = peer.setDateFormatString(fmt) +}