I am very close to getting the program below to work. I am using LightTable. I have included the java exception at the end. I am passing in a nil to the JDatePanelImpl constructor which is clearly wrong, but I am not sure how to build this property:
//This is the java definition
public JDatePanelImpl(DateModel<?> model, Properties i18nStrings)
{
...
}
This the project.clj
(defproject jdatepickertest "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies
[
[org.clojure/clojure "1.6.0"]
[org.jdatepicker/jdatepicker "1.3.4"]
]
)
Code follows
(ns jdatepickertest.core)
(import
'(java.util Enumeration Locale Properties ResourceBundle)
'(org.jdatepicker JDatePicker JDatePanel)
'(org.jdatepicker.i18n)
'(org.jdatepicker.impl JDatePanelImpl JDatePickerImpl UtilDateModel UtilCalendarModel)
)
(Locale. "pt")
(defn now [] (new java.util.Date))
(defn CreateUtilDateModel[yyyy m d]
(doto (UtilDateModel.) (.setDate yyyy m d) (.setSelected true)))
(defn CreateJDatePanelImpl[model properties](JDatePanelImpl. model properties))
(defn CreateJDatePickerImpl[datePanel properties](JDatePickerImpl. datePanel properties))
(defn SetModelDefaultDate[model yyyy m d](. model setDate yyyy m d))
(defn GetDefaultStrings[]
(doto(Properties.)
(.put "text.today", "Today")
(.put "text.nextMonth", "Next month")
(.put "text.previousMonth", "Previous month")
(.put "text.nextYear", "Next year")
(.put "text.previousYear", "Previous year")
(.put "text.clear", "Clear")
)
)
(defn PutitAllTogether[]
(let [model (CreateUtilDateModel 2014 12 5)
prop (GetDefaultStrings)
jdpanel (CreateJDatePanelImpl model prop)
jdpicker (CreateJDatePickerImpl jdpanel nil)]
)
)
;(CreateUtilDateModel 2014 12 5)
(defn PutAlittleTogether[]
(let[model (CreateUtilDateModel 2014 12 5)]))
;(PutAlittleTogether)
(PutitAllTogether)