summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-19 20:05:27 +0200
committerSimon Rettberg2015-08-19 20:05:27 +0200
commit057ca667c7b371d0fe5b6034d6ac328f7317e3b8 (patch)
tree420167300cb710c1db2adf00c5e435abf6116abe /dozentenmodul/src/main/java
parent[client] Send block hashes to server (TODO: master sha1sum) (diff)
parent[client] Added default permission options to imageDetailsWindow. (diff)
downloadtutor-module-057ca667c7b371d0fe5b6034d6ac328f7317e3b8.tar.gz
tutor-module-057ca667c7b371d0fe5b6034d6ac328f7317e3b8.tar.xz
tutor-module-057ca667c7b371d0fe5b6034d6ac328f7317e3b8.zip
Merge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1
Diffstat (limited to 'dozentenmodul/src/main/java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java72
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java23
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/UpdateWizard.java41
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageUploadPageLayout.java10
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java7
6 files changed, 128 insertions, 27 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
index 8a46b4dd..8a765daf 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -14,6 +14,7 @@ import java.util.Map;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
@@ -36,10 +37,11 @@ import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout;
import org.openslx.dozmod.gui.wizard.LectureWizard;
+import org.openslx.dozmod.gui.wizard.UpdateWizard;
import org.openslx.dozmod.permissions.ImagePerms;
import org.openslx.dozmod.thrift.Session;
-import org.openslx.dozmod.thrift.ThriftError;
import org.openslx.dozmod.thrift.ThriftActions;
+import org.openslx.dozmod.thrift.ThriftError;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.thrift.cache.UserCache;
import org.openslx.dozmod.util.FormatHelper;
@@ -110,7 +112,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
btnUpdateImage.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- // TODO image version up
+ new UpdateWizard(SwingUtilities.getWindowAncestor(me), image).setVisible(true);
+ refresh(true);
}
});
btnChangeOwner.addActionListener(new ActionListener() {
@@ -270,11 +273,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user),
MessageType.INFO, null, null);
makeEditable(false);
- String baseId = image.getImageBaseId();
- synchronized (me) {
- image = null;
- }
- setImage(baseId);
+ refresh(true);
}
});
}
@@ -290,7 +289,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
((OperatingSystem)cboOperatingSystem.getSelectedItem()).osId,
image.virtId,
chkIsTemplate.isSelected(),
- image.defaultPermissions,
+ new ImagePermissions(chkCustomPermLink.isSelected(), chkCustomPermDownload.isSelected(), chkCustomPermEdit.isSelected(), chkCustomPermAdmin.isSelected()),
image.shareMode);
QuickTimer.scheduleOnce(new Task() {
@@ -306,11 +305,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
}
// no success message I'd say...
btnSaveChanges.setEnabled(false);
- String baseId = image.getImageBaseId();
- synchronized (me) {
- image = null;
- }
- setImage(baseId);
+ refresh(true);
callback.updated();
}
});
@@ -353,10 +348,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
Gui.asyncExec(new Runnable() {
@Override
public void run() {
- // "manual" refresh
- String baseId = image.getImageBaseId();
- image = null;
- setImage(baseId);
+ refresh(true);
}
});
}
@@ -369,6 +361,16 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
*
********************************************************************************/
/**
+ * @param forceRefresh
+ */
+ private void refresh(boolean forceRefresh) {
+ String baseId = image.getImageBaseId();
+ synchronized (me) {
+ image = null;
+ }
+ setImage(baseId);
+ }
+ /**
* callback function when we received the image's details from the server
*/
private void fill() {
@@ -443,14 +445,25 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
};
cboOperatingSystem.addItemListener(comboItemListener);
cboShareMode.addItemListener(comboItemListener);
- chkIsTemplate.addActionListener(new ActionListener() {
-
+
+ // Listener to detect changes in checkboxes
+ final ActionListener checkBoxListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- reactToChange();
-
+ reactToChange();
}
- });
+ };
+ chkCustomPermAdmin.setSelected(image.defaultPermissions.admin);
+ chkCustomPermEdit.setSelected(image.defaultPermissions.edit);
+ chkCustomPermDownload.setSelected(image.defaultPermissions.download);
+ chkCustomPermLink.setSelected(image.defaultPermissions.link);
+
+ chkIsTemplate.addActionListener(checkBoxListener);
+ chkCustomPermAdmin.addActionListener(checkBoxListener);
+ chkCustomPermEdit.addActionListener(checkBoxListener);
+ chkCustomPermDownload.addActionListener(checkBoxListener);
+ chkCustomPermLink.addActionListener(checkBoxListener);
+
// make fields editable is allowed
makeEditable(true);
// finally do show it all
@@ -465,13 +478,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
*/
private void makeEditable(boolean editable) {
editable = editable && ImagePerms.canEdit(image);
+ boolean adminEdit = editable && ImagePerms.canAdmin(image);
txtTitle.setEditable(editable);
txtDescription.setEditable(editable);
txtTags.setEditable(editable);
cboOperatingSystem.setEnabled(editable);
cboShareMode.setEnabled(editable);
btnCustomPermissions.setEnabled(editable);
- btnChangeOwner.setEnabled(editable && ImagePerms.canAdmin(image));
+ btnChangeOwner.setEnabled(adminEdit);
+ chkCustomPermAdmin.setEnabled(adminEdit);
+ chkCustomPermEdit.setEnabled(adminEdit);
+ chkCustomPermDownload.setEnabled(adminEdit);
+ chkCustomPermLink.setEnabled(adminEdit);
}
/**
@@ -493,6 +511,14 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
changed = true;
} else if (chkIsTemplate.isSelected() != image.isTemplate) {
changed = true;
+ } else if (chkCustomPermAdmin.isSelected() != image.defaultPermissions.admin) {
+ changed = true;
+ } else if (chkCustomPermEdit.isSelected() != image.defaultPermissions.edit) {
+ changed = true;
+ } else if (chkCustomPermDownload.isSelected() != image.defaultPermissions.download) {
+ changed = true;
+ } else if (chkCustomPermLink.isSelected() != image.defaultPermissions.link) {
+ changed = true;
}
// TODO TAGS
btnSaveChanges.setEnabled(changed);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
index 54c478e3..19df002e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
@@ -50,6 +50,11 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
protected final JTextField txtId;
protected final JTextField txtVersion;
+ protected final JCheckBox chkCustomPermAdmin;
+ protected final JCheckBox chkCustomPermEdit;
+ protected final JCheckBox chkCustomPermDownload;
+ protected final JCheckBox chkCustomPermLink;
+
protected final JButton btnCustomPermissions;
protected final JButton btnSaveChanges;
protected final JButton btnUpdateImage;
@@ -172,7 +177,23 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
grid.add(new JLabel("Image-UUID"));
grid.add(txtId, 2).expand(true, false).fill(true, false);
grid.nextRow();
- btnCustomPermissions = new JButton("Benutzerdefinierte Berechtigungen");
+
+ JPanel defaultPermissionPane = new JPanel();
+ defaultPermissionPane.setBorder(BorderFactory.createTitledBorder( "Default Berechtigungen"));
+ chkCustomPermAdmin = new JCheckBox("Admin");
+ chkCustomPermDownload = new JCheckBox("Download");
+ chkCustomPermEdit = new JCheckBox("Bearbeiten");
+ chkCustomPermLink = new JCheckBox("Link");
+ defaultPermissionPane.add(chkCustomPermLink);
+ defaultPermissionPane.add(chkCustomPermDownload);
+ defaultPermissionPane.add(chkCustomPermEdit);
+ defaultPermissionPane.add(chkCustomPermAdmin);
+
+ grid.add(defaultPermissionPane, 3);
+ grid.nextRow();
+
+
+ btnCustomPermissions = new JButton("Standart Berechtigungen");
grid.add(btnCustomPermissions);
grid.skip(2);
grid.nextRow();
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java
index eced8813..73235920 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java
@@ -33,7 +33,7 @@ public class ImageWizard extends Wizard implements UiFeedback {
*/
public ImageWizard(Window parent) {
super(parent);
- imageUploadPage = new ImageUploadPage(this, uploadWizardState);
+ imageUploadPage = new ImageUploadPage(this, uploadWizardState, false);
imageMetaDataPage = new ImageMetaDataPage(this, uploadWizardState);
imageCustomPermissionPage = new ImageCustomPermissionPage(this, uploadWizardState);
addPage(imageUploadPage);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/UpdateWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/UpdateWizard.java
new file mode 100644
index 00000000..46eb1de7
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/UpdateWizard.java
@@ -0,0 +1,41 @@
+package org.openslx.dozmod.gui.wizard;
+
+import java.awt.Window;
+
+import org.apache.log4j.Logger;
+import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
+import org.openslx.dozmod.gui.helper.UiFeedback;
+import org.openslx.dozmod.gui.wizard.page.ImageUploadPage;
+import org.openslx.dozmod.state.UploadWizardState;
+
+@SuppressWarnings("serial")
+public class UpdateWizard extends Wizard implements UiFeedback {
+
+ private final static Logger LOGGER = Logger.getLogger(ImageWizard.class);
+
+ protected ImageUploadPage imageUploadPage;
+ public UpdateWizard(final Window parent, final ImageDetailsRead image) {
+ super(parent);
+ UploadWizardState uploadWizardState = new UploadWizardState();
+ imageUploadPage = new ImageUploadPage(this, uploadWizardState, true);
+ addPage(imageUploadPage);
+ }
+
+ @Override
+ public boolean wantConfirmQuit() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void escapePressed() {
+ dispose();
+ }
+
+ @Override
+ public String getWindowTitle() {
+ // TODO Auto-generated method stub
+ return "Neue Image-Version hochladen";
+ }
+
+}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageUploadPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageUploadPageLayout.java
index ff1e3f1d..32b127a6 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageUploadPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageUploadPageLayout.java
@@ -2,7 +2,9 @@ package org.openslx.dozmod.gui.wizard.layout;
import java.awt.event.KeyEvent;
+import javax.swing.Box;
import javax.swing.JButton;
+import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
@@ -16,6 +18,7 @@ public abstract class ImageUploadPageLayout extends WizardPage {
protected JTextField imageNameTextField;
protected JButton imageFileBrowseButton;
protected JTextField imageFileTextField;
+ protected JCheckBox softwareLicenseBox;
/**
* Page for uploading an imagefile
@@ -43,7 +46,12 @@ public abstract class ImageUploadPageLayout extends WizardPage {
grid.add(imageNameTextField, 2, 1).fill(true, false).expand(true, false);
grid.nextRow();
+ // -- Software license changed - shown only in UploadWizard --
+ softwareLicenseBox = new JCheckBox("Lizensierte Software enthalten");
+ grid.skip();
+ grid.add(softwareLicenseBox, 2, 1).fill(false, false).expand(true, false);
+ grid.nextRow();
+
grid.finish(true);
-
}
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
index 1831a5d3..173d11c8 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
@@ -39,12 +39,17 @@ public class ImageUploadPage extends ImageUploadPageLayout {
private UploadWizardState state;
private String lastDetectedName = null;
+ private boolean updateExisting = false;
- public ImageUploadPage(Wizard wizard, UploadWizardState uploadWizardState) {
+ public ImageUploadPage(Wizard wizard, UploadWizardState uploadWizardState, boolean updateExisting) {
super(wizard);
setPageComplete(false);
this.canComeBack = false;
this.state = uploadWizardState;
+ this.updateExisting = updateExisting;
+
+ // hide software license checkbox if we are only uploading an image version
+ softwareLicenseBox.setVisible(updateExisting);
// Browse for *.vmx
imageFileBrowseButton.addActionListener(new ActionListener() {