/*
* Copyright 2008 Google Inc.
*
* 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 com.google.gwt.demos.spinner.client;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.widgetideas.client.ValueSpinner;
import com.google.gwt.widgetideas.client.VolumeSlider;
import com.google.gwt.widgetideas.datepicker.client.DateTimePicker;
import com.google.gwt.widgetideas.datepicker.client.TimePicker;
import java.util.Date;
/**
* Spinner demo panel.
*/
public class SpinnerDemoPanel extends Composite {
public SpinnerDemoPanel() {
FlexTable table = new FlexTable();
table.setHTML(1, 0, "Value spinner:");
// Create a value spinner with initial value=0 that allows values between
// -1000 and 1000
final ValueSpinner simpleSpinner = new ValueSpinner(0, -1000, 1000);
table.setWidget(1, 1, simpleSpinner);
final CheckBox enableSpinner = new CheckBox("Enable/disable");
enableSpinner.setChecked(simpleSpinner.isEnabled());
enableSpinner.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
simpleSpinner.setEnabled(enableSpinner.isChecked());
}
});
table.setWidget(1, 2, enableSpinner);
// Create a value spinner that displays the value as a formatted date
final ValueSpinner dateSpinner = new ValueSpinner(new Date().getTime()) {
protected String formatValue(long value) {
return DateTimeFormat.getLongDateFormat().format(new Date(value));
}
protected long parseValue(String value) {
return DateTimeFormat.getLongDateFormat().parse(value).getTime();
}
};
// Min step = milliseconds per day
dateSpinner.getSpinner().setMinStep(86400000);
dateSpinner.setStylePrimaryName("dateSpinner");
table.setHTML(2, 0, "Date spinner:");
table.setWidget(2, 1, dateSpinner);
final CheckBox enableDateSpinner = new CheckBox("Enable/disable");
enableDateSpinner.setChecked(dateSpinner.isEnabled());
enableDateSpinner.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
dateSpinner.setEnabled(enableDateSpinner.isChecked());
}
});
table.setWidget(2, 2, enableDateSpinner);
// A TimePicker using AM/PM 12h format
final TimePicker timePicker = new TimePicker(false);
table.setHTML(3, 0, "Time picker:");
table.setWidget(3, 1, timePicker);
final CheckBox enableTimePicker = new CheckBox("Enable/disable");
enableTimePicker.setChecked(timePicker.isEnabled());
enableTimePicker.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
timePicker.setEnabled(enableTimePicker.isChecked());
}
});
table.setWidget(3, 2, enableTimePicker);
// Creating a date time picker with AM/PM 12h TimePicker
final DateTimePicker dateTimePicker = new DateTimePicker(false);
dateTimePicker.setWidth("200px");
// Create a label to display the selected date
final Label dateLabel = new Label();
Button getDate = new Button("Show date");
getDate.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
// Display the selected date/time using DateTimeFormat
dateLabel.setText(DateTimeFormat.getMediumDateTimeFormat().format(
dateTimePicker.getDate()));
}
});
dateLabel.setStyleName("sandbox-Date");
table.setHTML(4, 0, "Date time picker:");
table.setWidget(4, 1, dateTimePicker);
table.setWidget(5, 0, getDate);
table.setWidget(5, 1, dateLabel);
final CheckBox enableDateTimePicker = new CheckBox("Enable/disable");
enableDateTimePicker.setChecked(dateTimePicker.isEnabled());
enableDateTimePicker.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
dateTimePicker.setEnabled(enableDateTimePicker.isChecked());
}
});
table.setWidget(4, 2, enableDateTimePicker);
final VolumeSlider volumeSlider = new VolumeSlider(0, -100, 100);
volumeSlider.setWidth("250px");
table.setHTML(7, 0, "Volume slider:");
table.setWidget(7, 1, volumeSlider);
final CheckBox enableVolumeSlider = new CheckBox("Enable/disable");
enableVolumeSlider.setChecked(volumeSlider.isEnabled());
enableVolumeSlider.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
volumeSlider.setEnabled(enableVolumeSlider.isChecked());
}
});
table.setWidget(7, 2, enableVolumeSlider);
final TimePicker customTimePicker = new TimePicker(new Date(), null,
DateTimeFormat.getFormat("HH"), DateTimeFormat.getFormat("mm"), null);
table.setHTML(8, 0, "Another time picker (24h):");
table.setWidget(8, 1, customTimePicker);
final CheckBox enable = new CheckBox("Enable/disable");
enable.setChecked(customTimePicker.isEnabled());
enable.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
customTimePicker.setEnabled(enable.isChecked());
}
});
table.setWidget(8, 2, enable);
initWidget(table);
}
}