summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-07 14:02:33 +0200
committerStephan Schwaer2015-08-07 14:02:33 +0200
commit728db030d7aa593656ce704fc312de12cda0d01c (patch)
treed167820de37c48fe0dae0c710670ce50defba723 /dozentenmodul/src/main/java/org/openslx/dozmod/gui
parent[client] little less buggy popup (diff)
downloadtutor-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')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java15
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java62
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;
+ }
}