diff options
author | Stephan Schwaer | 2015-08-27 17:50:10 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-27 17:50:10 +0200 |
commit | 83b4445ff234b031f12f39e93e3c592fb07c5d6d (patch) | |
tree | c5bc0a0d1418feed33986cfdf72dee706adb5db8 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java | |
parent | [client] fix red search text color when regex is invalid (diff) | |
download | tutor-module-83b4445ff234b031f12f39e93e3c592fb07c5d6d.tar.gz tutor-module-83b4445ff234b031f12f39e93e3c592fb07c5d6d.tar.xz tutor-module-83b4445ff234b031f12f39e93e3c592fb07c5d6d.zip |
[client] Added functionality to change linked image of a lecture.
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 | 104 |
1 files changed, 63 insertions, 41 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 c84f5d54..9c96816c 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 @@ -24,6 +24,7 @@ import javax.swing.event.DocumentListener; import org.apache.log4j.Logger; import org.apache.thrift.TException; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; +import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.bwlp.thrift.iface.LectureRead; @@ -90,6 +91,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements */ private boolean permissionsChanged = false; + private boolean imageLinkChanged = false; + private Task dateChecker; private boolean reactive = false; @@ -115,8 +118,22 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements btnLinkImage.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - + ImageSummaryRead newImage = LectureChangeLinkedImage.open(me); + if(newImage != null) { + try { + image = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(), newImage.imageBaseId); + } catch (TException e1) { + LOGGER.error("Failed to retrieve details of new image: ", e1); + return; + } + lecture.imageBaseId = newImage.imageBaseId; + lecture.imageVersionId = newImage.latestVersionId; + fillVersionsCombo(); + cboVersions.setEnabled(false); + btnAutoUpdate.setSelected(true); + imageLinkChanged = true; + reactToChange(); + } } }); /** @@ -145,12 +162,12 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements public void actionPerformed(ActionEvent e) { UserListWindow.open(me, new UserAddedCallback() { - @Override - public void userAdded(UserInfo user, UserListWindow window) { - window.dispose(); - setLectureOwner(user); - } - }, "Besitzer festlegen"); + @Override + public void userAdded(UserInfo user, UserListWindow window) { + window.dispose(); + setLectureOwner(user); + } + }, "Besitzer festlegen"); } }); btnPermissions.addActionListener(new ActionListener() { @@ -195,23 +212,23 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements public void setLecture(final String lectureId) { ThriftActions.getLectureWithImageDetails(JOptionPane.getFrameForComponent(me), lectureId, new LectureMetaCallback() { - @Override - public void fetchedLectureDetails(LectureRead lectureDetails, - ImageDetailsRead imageDetails) { - synchronized (me) { - lecture = lectureDetails; - image = imageDetails; - permissionMap = ThriftActions.getLecturePermissions( - JOptionPane.getFrameForComponent(me), lecture.lectureId); - } - fill(); - } + @Override + public void fetchedLectureDetails(LectureRead lectureDetails, + ImageDetailsRead imageDetails) { + synchronized (me) { + lecture = lectureDetails; + image = imageDetails; + permissionMap = ThriftActions.getLecturePermissions( + JOptionPane.getFrameForComponent(me), lecture.lectureId); + } + fill(); + } - @Override - public void fetchedLecturePermissions(Map<String, LecturePermissions> permissions) { - return; - } - }); + @Override + public void fetchedLecturePermissions(Map<String, LecturePermissions> permissions) { + return; + } + }); } @@ -240,9 +257,28 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements lblUseCount.setText(Integer.toString(lecture.useCount)); + fillVersionsCombo(); + + 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()); + + listenToChange(); + makeEditable(true); + setVisible(true); + } + + private void fillVersionsCombo(){ // version combo List<ImageVersionDetails> versions = image.getVersions(); - for (Iterator<ImageVersionDetails> it = image.getVersions().iterator(); it.hasNext();) { ImageVersionDetails version = it.next(); if (!version.isValid && !lecture.imageVersionId.equals(version.versionId)) { @@ -261,22 +297,6 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements 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)); - 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()); - - listenToChange(); - makeEditable(true); - setVisible(true); } /** @@ -476,6 +496,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements changed = true; } else if (permissionsChanged) { changed = true; + } else if(imageLinkChanged) { + changed = true; } btnSaveChanges.setEnabled(changed); |