summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-14 17:36:06 +0200
committerSimon Rettberg2015-08-14 17:36:06 +0200
commit4908138a474579b263222be3644184f6c135fdbe (patch)
tree919ece302f4de9b9a676cd3b682cc6f2cd199f7f /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
parent[client] Support Ctrl-W shortcut (diff)
downloadtutor-module-4908138a474579b263222be3644184f6c135fdbe.tar.gz
tutor-module-4908138a474579b263222be3644184f6c135fdbe.tar.xz
tutor-module-4908138a474579b263222be3644184f6c135fdbe.zip
[client] Use GridManager in lecture details window
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.java49
1 files changed, 47 insertions, 2 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 d901881f..400d7018 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
@@ -10,14 +10,18 @@ import java.util.Date;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
+import javax.swing.JOptionPane;
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.UserInfo;
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.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.window.layout.LectureDetailsWindowLayout;
import org.openslx.dozmod.permissions.LecturePerms;
import org.openslx.dozmod.thrift.Session;
@@ -56,6 +60,22 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
cboVersions.setEnabled(!btnAutoUpdate.isSelected());
}
});
+
+ btnChangeOwner.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ UserListWindow.open(JOptionPane.getFrameForComponent(btnChangeOwner),
+ new UserAddedCallback() {
+ @Override
+ public void userAdded(UserInfo user, UserListWindow window) {
+ window.dispose();
+ setLectureOwner(user);
+ }
+
+ }, "Besitzer festlegen");
+ }
+ });
+ makeEditable(false);
}
/**
@@ -147,21 +167,45 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
endCal.get(Calendar.DATE));
endTime.getModel().setValue(endCal.getTime());
- makeEditable(LecturePerms.canEdit(lecture));
+ makeEditable(true);
pack();
MainWindow.centerShell(this);
setVisible(true);
}
+ private void setLectureOwner(final UserInfo user) {
+ QuickTimer.scheduleOnce(new Task() {
+ @Override
+ public void fire() {
+ try {
+ ThriftManager.getSatClient().setLectureOwner(Session.getSatelliteToken(),
+ lecture.getLectureId(), user.getUserId());
+ } catch (TException e) {
+ ThriftError.showMessage(me, LOGGER, e, "Fehler beim Übertragen der Besitzrechte");
+ return;
+ }
+ Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user),
+ MessageType.INFO, null, null);
+ makeEditable(false);
+ String lectureId = lecture.getLectureId();
+ synchronized (me) {
+ image = null;
+ lecture = null;
+ }
+ setLecture(lectureId);
+ }
+ });
+ }
+
/**
* Enables/disables the editable fields based on 'editable'
*
* @param editable true to make fields editable, false otherwise.
*/
private void makeEditable(boolean editable) {
+ editable = editable && LecturePerms.canEdit(lecture);
txtTitle.setEnabled(editable);
txtDescription.setEditable(editable);
- txtId.setEditable(editable);
// TODO functionality for changing dates still missing
// lblCreateTime.setText(FormatHelper.longDate(lecture.getCreateTime()));
@@ -174,6 +218,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout {
btnAutoUpdate.setEnabled(editable);
cboVersions.setEnabled(editable);
btnSaveChanges.setEnabled(editable);
+ btnChangeOwner.setEnabled(editable && LecturePerms.canAdmin(lecture));
}
/**