]> gitweb @ CieloNegro.org - task-reporter.git/blobdiff - src/main/scala/jp/ymir/taskReporter/ui/DateChooser.scala
wip
[task-reporter.git] / src / main / scala / jp / ymir / taskReporter / ui / DateChooser.scala
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 (file)
index 0000000..0bc7c75
--- /dev/null
@@ -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)
+}