diff options
author | Stephan Schwaer | 2015-08-06 15:52:23 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-06 15:52:23 +0200 |
commit | 19f4b94479d2f39a5f48ddb69a955e611082a8aa (patch) | |
tree | 43247e1392e08ec7ed0b5ecaf1723cf520bb01a3 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java | |
parent | [client] first buggy popup menu (diff) | |
download | tutor-module-19f4b94479d2f39a5f48ddb69a955e611082a8aa.tar.gz tutor-module-19f4b94479d2f39a5f48ddb69a955e611082a8aa.tar.xz tutor-module-19f4b94479d2f39a5f48ddb69a955e611082a8aa.zip |
[client] Some layout fixes, added versions in comboBox for lectureDetailsWindow
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 | 77 |
1 files changed, 59 insertions, 18 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 7d1b03c9..ea826d0d 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,12 +1,20 @@ 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.List; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListCellRenderer; +import javax.swing.JList; import org.apache.log4j.Logger; +import org.openslx.bwlp.thrift.iface.ImageDetailsRead; +import org.openslx.bwlp.thrift.iface.ImageVersionDetails; import org.openslx.bwlp.thrift.iface.LectureRead; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; @@ -27,6 +35,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout { private final LectureDetailsWindow me = this; private LectureRead lecture = null; + private ImageDetailsRead image = null; public LectureDetailsWindow(Frame modalParent) { super(modalParent); @@ -48,13 +57,20 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout { } }); setFocusable(true); + + btnAutoUpdate.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + cboVersions.setEnabled(!btnAutoUpdate.isSelected()); + } + }); } /** * @param lectureId the id of the lecture to be displayed */ public void setLecture(final String lectureId) { - QuickTimer.scheduleOnce(new Task() { @Override public void fire() { @@ -68,11 +84,24 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout { } catch (Exception 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; Gui.asyncExec(new Runnable() { @Override public void run() { - if (e != null || lecture == null) { + if (e != null || lecture == null || image == null) { Gui.showMessageBox(null, "Konnte Daten der Vorlesung nicht abrufen", MessageType.ERROR, LOGGER, e); dispose(); @@ -89,29 +118,40 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout { * callback function when we received the lecture's details from the server */ private void fill() { - if (lecture == null) + if (lecture == null || image == null) return; txtTitle.setText(lecture.getLectureName()); txtDescription.setText(lecture.getDescription()); - if (lecture.image != null) - txtImageName.setText(lecture.image.getImageName()); + txtImageName.setText(image.getImageName()); lblOwner.setUser(UserCache.find(lecture.getOwnerId())); lblUpdater.setUser(UserCache.find(lecture.getUpdaterId())); lblCreateTime.setText(FormatHelper.longDate(lecture.getCreateTime())); lblUpdateTime.setText(FormatHelper.longDate(lecture.getUpdateTime())); lblStartTime.setText(FormatHelper.longDate(lecture.getStartTime())); lblEndTime.setText(FormatHelper.longDate(lecture.getEndTime())); - txtId.setText(lecture.getLectureId()); btnIsExam.setSelected(lecture.isExam); btnAutoUpdate.setSelected(lecture.autoUpdate); + cboVersions.setEnabled(!lecture.autoUpdate); lblUseCount.setText(Integer.toString(lecture.useCount)); - // TODO fill combo with versions - // List<ImageVersionDetails> versions = lecture.image. - //cboVersions.setModel(new DefaultComboBoxModel<Organization>(orgs.toArray(new Organization[orgs.size()]))); + // version combo + List<ImageVersionDetails> versions = image.getVersions(); + 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.longDate(version.getCreateTime())); + } + return this; + } + }); // TODO grey out non editable components, lecture image has no permissions yet @@ -128,19 +168,20 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout { */ private void makeEditable(boolean editable) { txtTitle.setEnabled(editable); - txtDescription.setEnabled(editable); - txtId.setEnabled(editable); - txtDescription.setEnabled(editable); - - // lblCreateTime.setText(FormatHelper.longDate(lecture.getCreateTime())); - // lblUpdateTime.setText(FormatHelper.longDate(lecture.getUpdateTime())); - // lblStartTime.setText(FormatHelper.longDate(lecture.getStartTime())); - // lblEndTime.setText(FormatHelper.longDate(lecture.getEndTime())); - // + 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())); + // lblStartTime.setText(FormatHelper.longDate(lecture.getStartTime())); + // lblEndTime.setText(FormatHelper.longDate(lecture.getEndTime())); + btnLinkImage.setEnabled(editable); btnIsExam.setEnabled(editable); btnAutoUpdate.setEnabled(editable); cboVersions.setEnabled(editable); + btnSaveChanges.setEnabled(editable); } /** |