diff options
author | Simon Rettberg | 2015-08-14 16:43:40 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-14 16:43:40 +0200 |
commit | 13b8f65c5e51d42591acb17bd8a25805e594ed06 (patch) | |
tree | 4d03540c2b147b146ca5818f0c57b24d48ff5756 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java | |
parent | [server] Return permissions for lectures, LectureRead changed (diff) | |
download | tutor-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.java | 89 |
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())); |