summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-27 17:50:10 +0200
committerStephan Schwaer2015-08-27 17:50:10 +0200
commit83b4445ff234b031f12f39e93e3c592fb07c5d6d (patch)
treec5bc0a0d1418feed33986cfdf72dee706adb5db8 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
parent[client] fix red search text color when regex is invalid (diff)
downloadtutor-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.java104
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);