summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-14 16:43:40 +0200
committerSimon Rettberg2015-08-14 16:43:40 +0200
commit13b8f65c5e51d42591acb17bd8a25805e594ed06 (patch)
tree4d03540c2b147b146ca5818f0c57b24d48ff5756 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
parent[server] Return permissions for lectures, LectureRead changed (diff)
downloadtutor-module-13b8f65c5e51d42591acb17bd8a25805e594ed06.tar.gz
tutor-module-13b8f65c5e51d42591acb17bd8a25805e594ed06.tar.xz
tutor-module-13b8f65c5e51d42591acb17bd8a25805e594ed06.zip
[client] Design improvements
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java89
1 files changed, 27 insertions, 62 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 09f787e4..d901881f 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
@@ -1,11 +1,8 @@
package org.openslx.dozmod.gui.window;
-import java.awt.Component;
import java.awt.Frame;
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.Collections;
import java.util.Comparator;
@@ -13,20 +10,18 @@ import java.util.Date;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.JList;
import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.bwlp.thrift.iface.ImageVersionDetails;
import org.openslx.bwlp.thrift.iface.LectureRead;
-import org.openslx.bwlp.thrift.iface.Organization;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.MainWindow;
-import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.window.layout.LectureDetailsWindowLayout;
import org.openslx.dozmod.permissions.LecturePerms;
import org.openslx.dozmod.thrift.Session;
+import org.openslx.dozmod.thrift.ThriftError;
import org.openslx.dozmod.thrift.UserCache;
import org.openslx.dozmod.util.FormatHelper;
import org.openslx.thrifthelper.ThriftManager;
@@ -53,16 +48,6 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
dispose();
}
});
- // ESC closes this window
- addKeyListener(new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
- dispose();
- }
- }
- });
- setFocusable(true);
btnAutoUpdate.addActionListener(new ActionListener() {
@@ -80,36 +65,26 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
- Exception error = null;
+ TException error = null;
try {
synchronized (me) {
if (lecture != null)
return;
- lecture = ThriftManager.getSatClient().getLectureDetails(Session.getSatelliteToken(), lectureId);
+ lecture = ThriftManager.getSatClient().getLectureDetails(Session.getSatelliteToken(),
+ lectureId);
+ image = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(),
+ lecture.getImageBaseId());
}
- } catch (Exception e) {
+ } catch (TException e) {
error = e;
}
- // getting imageDetailsRead for the versions
- if (lecture != null) {
- try {
- synchronized (me) {
- if (image != null)
- return;
- image = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(), lecture.getImage().getImageBaseId());
- }
- } catch (Exception e) {
-
- error = e;
- }
- }
- final Exception e = error;
+ final TException e = error;
Gui.asyncExec(new Runnable() {
@Override
public void run() {
if (e != null || lecture == null || image == null) {
- Gui.showMessageBox(null, "Konnte Daten der Vorlesung nicht abrufen",
- MessageType.ERROR, LOGGER, e);
+ ThriftError.showMessage(btnAutoUpdate, LOGGER, e,
+ "Konnte Daten der Vorlesung nicht abrufen");
dispose();
} else {
fill();
@@ -147,42 +122,32 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
// version combo
List<ImageVersionDetails> versions = image.getVersions();
-
- // sort versions with createtime
+
+ // sort versions by createtime
Collections.sort(versions, new Comparator<ImageVersionDetails>() {
public int compare(ImageVersionDetails o1, ImageVersionDetails o2) {
- return - Long.compare(o1.getCreateTime(), o2.getCreateTime());
+ return -Long.compare(o1.getCreateTime(), o2.getCreateTime());
}
});
-
- cboVersions.setModel(new DefaultComboBoxModel<ImageVersionDetails>(versions.toArray(new ImageVersionDetails[versions.size()])));
- cboVersions.setRenderer(new DefaultListCellRenderer() {
- @Override
- public Component getListCellRendererComponent(JList<?> list, Object value, int index,
- boolean isSelected, boolean cellHasFocus) {
- super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
- if (value instanceof ImageVersionDetails) {
- ImageVersionDetails version = (ImageVersionDetails) value;
- setText(FormatHelper.shortDate(version.getCreateTime()));
- }
- return this;
- }
- });
-
+
+ cboVersions.setModel(new DefaultComboBoxModel<ImageVersionDetails>(
+ versions.toArray(new ImageVersionDetails[versions.size()])));
+ cboVersions.setSelectedItem(new ImageVersionDetails(lecture.getImageVersionId(), 0, 0, 0, null, true,
+ true, true, null));
+
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));
+ 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));
+ 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));
+ makeEditable(LecturePerms.canEdit(lecture));
pack();
MainWindow.centerShell(this);
setVisible(true);
@@ -197,7 +162,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
txtTitle.setEnabled(editable);
txtDescription.setEditable(editable);
txtId.setEditable(editable);
-
+
// TODO functionality for changing dates still missing
// lblCreateTime.setText(FormatHelper.longDate(lecture.getCreateTime()));
// lblUpdateTime.setText(FormatHelper.longDate(lecture.getUpdateTime()));