/*******************************************************************************
* Copyright 2015 xWic group (http://www.xwic.de)
*
* Licensed under the Apache License, Version 2.0 (the "License").
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*******************************************************************************/
package de.jwic.demo.basics;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import de.jwic.base.ControlContainer;
import de.jwic.base.IControlContainer;
import de.jwic.controls.Button;
import de.jwic.controls.DateChangedListener;
import de.jwic.controls.DatePicker;
import de.jwic.controls.DateTimePicker;
import de.jwic.controls.Label;
import de.jwic.controls.LabelControl;
import de.jwic.events.SelectionEvent;
import de.jwic.events.SelectionListener;
import de.jwic.events.ValueChangedEvent;
import de.jwic.events.ValueChangedListener;
import de.jwic.samples.controls.propeditor.PropertyEditorView;
public class DatePickerDemo extends ControlContainer {
private DatePicker datePicker;
private DateTimePicker datePickerMaster, datePickerSlave;
private DateTimePicker dateTimePicker;
private LabelControl lblInfo;
private Button btCurrentDate;
/**
* Constructor.
* @param container
*/
public DatePickerDemo(IControlContainer container) {
super(container);
// create the button instance
datePicker = new DatePicker(this, "datePicker");
dateTimePicker = new DateTimePicker(this, "dateTimePicker");
Button btn = new Button(this, "btn");
btn.setTitle("Switch locale");
btn.addSelectionListener(new SelectionListener() {
private boolean DE = false;
public void objectSelected(SelectionEvent event) {
if (DE) {
datePicker.setLocale(Locale.ENGLISH);
dateTimePicker.setLocale(Locale.ENGLISH);
DE = false;
} else {
datePicker.setLocale(Locale.GERMAN);
dateTimePicker.setLocale(Locale.GERMAN);
DE = true;
}
}
});
btCurrentDate = new Button(this, "btCurrentDate");
btCurrentDate.setTitle("Set Current Date/Time (Default TZ)");
btCurrentDate.addSelectionListener(new SelectionListener() {
@Override
public void objectSelected(SelectionEvent event) {
DateFormat dateFormatter = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG);
dateFormatter.setTimeZone(TimeZone.getDefault());
DateFormat dateFormatter2 = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG);
dateFormatter2.setTimeZone(TimeZone.getTimeZone("UTC"));
Date d = Calendar.getInstance().getTime();
datePicker.setDate(d);
dateTimePicker.setDate(d);
datePickerMaster.setDate(d);
lblInfo.setText("Date is set to: "
+ dateFormatter.format(d) + "(" + dateFormatter2.format(d) +")");
}
});
DateChangedListener listener = new DateChangedListener() {
public void onDateChanged(Date oldDate, Date newDate) {
DateFormat dateFormatter = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG);
dateFormatter.setTimeZone(TimeZone.getDefault());
if (newDate != null) {
lblInfo.setText("Selected Date is: "
+ dateFormatter.format(newDate));
} else {
lblInfo.setText("Selected Date is: null");
}
}
};
datePicker.addDateChangedListener(listener);
dateTimePicker.addDateChangedListener(listener);
datePicker.setUpdateOnChange(true);
lblInfo = new LabelControl(this, "lblInfo");
final PropertyEditorView propEditor = new PropertyEditorView(this, "propEditor");
propEditor.setBean(dateTimePicker);
datePicker.addValueChangedListener(new ValueChangedListener() {
/* (non-Javadoc)
* @see de.jwic.events.ValueChangedListener#valueChanged(de.jwic.events.ValueChangedEvent)
*/
public void valueChanged(ValueChangedEvent event) {
propEditor.loadValues(); // reload values.
}
});
DateChangedListener listener2 = new DateChangedListener() {
@Override
public void onDateChanged(Date oldDate, Date newDate) {
System.out.println(oldDate+" to "+newDate);
}
};
propEditor.loadValues(); // refresh values.
Date d = Calendar.getInstance().getTime();
datePickerMaster = new DateTimePicker(this, "dateTimeMaster");
datePickerMaster.setUpdateOnChange(true);
datePickerMaster.addDateChangedListener(listener2);
datePickerMaster.setDate(d);
datePickerSlave = new DateTimePicker(this, "dateTimeSlave");
datePickerSlave.setUpdateOnChange(true);
datePickerSlave.addDateChangedListener(listener2);
datePickerSlave.setMaster(datePickerMaster);
new Button(this,"openDatePicker").addSelectionListener(new SelectionListener() {
@Override
public void objectSelected(SelectionEvent event) {
datePickerMaster.toggle();
}
});
final Label l = new Label(this, "state");
l.setText(datePickerMaster.isOpen()+"");
new Button(this,"checkState").addSelectionListener(new SelectionListener() {
@Override
public void objectSelected(SelectionEvent event) {
l.setText(datePickerMaster.isOpen()+"");
}
});
}
}