diff options
author | Stephan Schwaer | 2015-08-07 14:02:33 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-07 14:02:33 +0200 |
commit | 728db030d7aa593656ce704fc312de12cda0d01c (patch) | |
tree | d167820de37c48fe0dae0c710670ce50defba723 /dozentenmodul/src/main/java/org/openslx/dozmod/gui | |
parent | [client] little less buggy popup (diff) | |
download | tutor-module-728db030d7aa593656ce704fc312de12cda0d01c.tar.gz tutor-module-728db030d7aa593656ce704fc312de12cda0d01c.tar.xz tutor-module-728db030d7aa593656ce704fc312de12cda0d01c.zip |
[client] date picker and time spinner in lecture details now initialize with correct date and time.
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui')
2 files changed, 72 insertions, 5 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index ea826d0d..a3520b55 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -6,6 +6,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; +import java.util.Calendar; +import java.util.Date; import java.util.List; import javax.swing.DefaultComboBoxModel; @@ -152,8 +154,19 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout { return this; } }); + + Calendar startCal = Calendar.getInstance(); + startCal.setTime(new Date(lecture.getStartTime() * 1000l)); + startDate.getModel().setDate(startCal.get(Calendar.YEAR), startCal.get(Calendar.MONTH), startCal.get(Calendar.DATE)); + startTime.getModel().setValue(startCal.getTime()); + + Calendar endCal = Calendar.getInstance(); + endCal.setTime(new Date(lecture.getEndTime() * 1000l)); + endDate.getModel().setDate(endCal.get(Calendar.YEAR), endCal.get(Calendar.MONTH), endCal.get(Calendar.DATE)); + endTime.getModel().setValue(endCal.getTime()); + - + // TODO grey out non editable components, lecture image has no permissions yet //makeEditable(LecturePerms.canEdit(lecture)); pack(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java index a5b0b0d9..eeedb763 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java @@ -5,6 +5,9 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; import java.awt.GridBagLayout; +import java.util.Calendar; +import java.util.Date; +import java.util.Properties; import javax.swing.BorderFactory; import javax.swing.Box; @@ -17,12 +20,19 @@ import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.JSpinner; import javax.swing.JTextArea; import javax.swing.JTextField; +import javax.swing.SpinnerDateModel; +import javax.swing.text.DateFormatter; +import org.jdatepicker.impl.JDatePanelImpl; +import org.jdatepicker.impl.JDatePickerImpl; +import org.jdatepicker.impl.UtilDateModel; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; import org.openslx.dozmod.gui.control.PersonLabel; import org.openslx.dozmod.gui.helper.GridPos; +import org.openslx.dozmod.util.DateLabelFormatter; @SuppressWarnings("serial") public abstract class LectureDetailsWindowLayout extends JDialog { @@ -45,8 +55,21 @@ public abstract class LectureDetailsWindowLayout extends JDialog { protected final JButton btnSaveChanges; protected final JButton btnClose; + protected JDatePickerImpl startDate; + protected JDatePickerImpl endDate; + protected JSpinner startTime; + protected JSpinner endTime; + // TODO: Permissions, ... + private static final Properties pickerStrings = new Properties(); + + static { + pickerStrings.put("text.today", "Heute"); + pickerStrings.put("text.month", "Monat"); + pickerStrings.put("text.year", "Jahr"); + } + public LectureDetailsWindowLayout(Frame modalParent) { super(modalParent, "der mit dem blub", ModalityType.APPLICATION_MODAL); setResizable(true); @@ -95,13 +118,28 @@ public abstract class LectureDetailsWindowLayout extends JDialog { versionPanel.add(cboVersions); infoPanel.add(versionPanel, GridPos.get(1, row++, false, false)); // start time of the lecture + JPanel startTimePanel = new JPanel(); + startTimePanel.setLayout(new BorderLayout()); + startDate = new JDatePickerImpl(new JDatePanelImpl(new UtilDateModel(new Date()), pickerStrings), + new DateLabelFormatter()); + startTime = makeTimeSpinner(23, 59); + startTimePanel.add(startDate, BorderLayout.WEST); + startTimePanel.add(startTime, BorderLayout.CENTER); lblStartTime = new JLabel(); - infoPanel.add(new JLabel("Startzeit"), GridPos.get(0, row, false, false)); - infoPanel.add(lblStartTime, GridPos.get(1, row++, true, false)); + infoPanel.add(new JLabel("Startdatum"), GridPos.get(0, row, false, false)); + infoPanel.add(startTimePanel, GridPos.get(1, row++, false, false)); + // end time of the lecture + JPanel endTimePanel = new JPanel(); + endTimePanel.setLayout(new BorderLayout()); + endDate = new JDatePickerImpl(new JDatePanelImpl(new UtilDateModel(new Date()), pickerStrings), + new DateLabelFormatter()); + endTime = makeTimeSpinner(00, 59); + endTimePanel.add(endDate, BorderLayout.WEST); + endTimePanel.add(endTime, BorderLayout.CENTER); lblEndTime = new JLabel(); - infoPanel.add(new JLabel("Endzeit"), GridPos.get(0, row, false, false)); - infoPanel.add(lblEndTime, GridPos.get(1, row++, true, false)); + infoPanel.add(new JLabel("Enddatum"), GridPos.get(0, row, false, false)); + infoPanel.add(endTimePanel, GridPos.get(1, row++, false, false)); // owner lblOwner = new PersonLabel(); infoPanel.add(new JLabel("Besitzer"), GridPos.get(0, row, false, false)); @@ -143,4 +181,20 @@ public abstract class LectureDetailsWindowLayout extends JDialog { buttonPanel.add(btnClose); add(buttonPanel, BorderLayout.SOUTH); } + + private JSpinner makeTimeSpinner(int h, int m) { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY, h); // 24 == 12 PM == 00:00:00 + calendar.set(Calendar.MINUTE, m); + calendar.set(Calendar.SECOND, 0); + SpinnerDateModel model = new SpinnerDateModel(); + model.setValue(calendar.getTime()); + JSpinner spinner = new JSpinner(model); + JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "HH:mm"); + DateFormatter formatter = (DateFormatter) editor.getTextField().getFormatter(); + formatter.setAllowsInvalid(false); // this makes what you want + formatter.setOverwriteMode(true); + spinner.setEditor(editor); + return spinner; + } } |