diff options
| author | Stephan Schwaer | 2015-07-21 14:06:15 +0200 |
|---|---|---|
| committer | Stephan Schwaer | 2015-07-21 14:06:15 +0200 |
| commit | 0f11cba785319a2e62df9a812819c6455899ddaa (patch) | |
| tree | 04df8b62ff34f5fb39e800e8bc67e9e898edd4f4 | |
| parent | [server] Make uploads cancellable, configurable transfer timeouts (diff) | |
| download | tutor-module-0f11cba785319a2e62df9a812819c6455899ddaa.tar.gz tutor-module-0f11cba785319a2e62df9a812819c6455899ddaa.tar.xz tutor-module-0f11cba785319a2e62df9a812819c6455899ddaa.zip | |
[client] Added UserToPermissionLink class, wizard for lecture and first page.
8 files changed, 201 insertions, 13 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/TableHelper.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/TableHelper.java index e37e6319..bb6a848b 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/TableHelper.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/TableHelper.java @@ -6,8 +6,6 @@ import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.ViewerCell; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.events.SelectionAdapter; @@ -20,11 +18,12 @@ import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.LectureSummary; import org.openslx.bwlp.thrift.iface.OperatingSystem; import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.dozmod.gui.wizard.ImageWizard; import org.openslx.dozmod.thrift.MetaDataCache; import org.openslx.dozmod.thrift.UserCache; import org.openslx.dozmod.util.FormatHelper; + + public final class TableHelper { /** @@ -153,8 +152,7 @@ public final class TableHelper { createUnsortedColumn(permissionTableViewer, "Admin", 90, colprov); - - }; + } /** * Create a column with the ability to be sorted diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/UserToPermissionLink.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/UserToPermissionLink.java new file mode 100644 index 00000000..a2debbfb --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/UserToPermissionLink.java @@ -0,0 +1,40 @@ +package org.openslx.dozmod.gui.helper; + +import org.eclipse.swt.widgets.Button; +import org.openslx.bwlp.thrift.iface.ImagePermissions; + +/** + * Helper class for linking UserIds to permissions of an image. + */ +public class UserToPermissionLink { + + private String userId; + private ImagePermissions permission; + + public Button adminButton; + public Button linkButton; + public Button downloadButton; + public Button editButton; + + + public UserToPermissionLink(String userId, ImagePermissions permission){ + this.setUserId(userId); + this.setPermission(permission); + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public ImagePermissions getPermission() { + return permission; + } + + public void setPermission(ImagePermissions permission) { + this.permission = permission; + } +} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java index 026057fd..29a65639 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java @@ -6,6 +6,7 @@ import org.apache.log4j.Logger; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.SelectionAdapter; @@ -18,6 +19,7 @@ import org.openslx.dozmod.gui.helper.LectureListComparator; import org.openslx.dozmod.gui.helper.LectureListFilter; import org.openslx.dozmod.gui.helper.TableHelper; import org.openslx.dozmod.gui.window.layout.LectureListWindowLayout; +import org.openslx.dozmod.gui.wizard.LectureWizard; import org.openslx.dozmod.thrift.LectureCache; import org.openslx.dozmod.thrift.UserCache; import org.openslx.dozmod.util.FormatHelper; @@ -86,6 +88,7 @@ public class LectureListWindow extends LectureListWindowLayout { newButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { + new WizardDialog(mainShell, new LectureWizard(false)).open(); } }); 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 adbe352c..a947bc87 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 @@ -46,9 +46,9 @@ public class ImageWizard extends Wizard { // create the shared object for all pages of the wizard imageUploadPage = new ImageUploadPage(uploadWizardState, editExistingImage); imageMetaDataPage = new ImageMetaDataPage(uploadWizardState); - imageCustomPermissionPage = new ImageCustomPermissionPage(); -// addPage(imageUploadPage); -// addPage(imageMetaDataPage); + imageCustomPermissionPage = new ImageCustomPermissionPage(uploadWizardState); + addPage(imageUploadPage); + addPage(imageMetaDataPage); addPage(imageCustomPermissionPage); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java new file mode 100644 index 00000000..f77016f7 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java @@ -0,0 +1,45 @@ +package org.openslx.dozmod.gui.wizard; + +import org.apache.log4j.Logger; +import org.eclipse.jface.wizard.Wizard; +import org.openslx.dozmod.gui.wizard.layout.LectureCreationPageLayout; +import org.openslx.dozmod.gui.wizard.page.LectureCreationPage; + +public class LectureWizard extends Wizard { + + private final static Logger LOGGER = Logger.getLogger(LectureWizard.class); + + protected LectureCreationPageLayout lectureCreationPage; + protected boolean editExistingLecture; + + /** + * Wizard for creating or editing a lecture + * @param editExistingLecture whether to create new or edit existing lecture + */ + public LectureWizard(boolean editExistingLecture) { + super(); + setNeedsProgressMonitor(true); + this.editExistingLecture = editExistingLecture; + } + + + @Override + public String getWindowTitle() { + return "Neue Veranstaltung erzeugen"; + } + + @Override + public void addPages() { + // create the shared object for all pages of the wizard + lectureCreationPage = new LectureCreationPage(editExistingLecture); + + addPage(lectureCreationPage); + } + + + @Override + public boolean performFinish() { + // TODO Auto-generated method stub + return false; + } +} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCreationPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCreationPageLayout.java new file mode 100644 index 00000000..3acb05d1 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCreationPageLayout.java @@ -0,0 +1,37 @@ +package org.openslx.dozmod.gui.wizard.layout; + +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; + +public abstract class LectureCreationPageLayout extends WizardPage { + + protected Text lectureNameTextField; + protected Composite container; + + + /** + * Page for creating lectures + * + * @param editExistingLecture wether to edit existing lecture or create new + * one + */ + public LectureCreationPageLayout() { + super("Eingabe Ihrer Daten"); + setTitle("Eingabe Ihrer Daten"); + setDescription("Geben Sie bitte einen aussagekräftigen Namen für die neue Veranstaltung ein."); + } + + @Override + public void createControl(Composite parent) { + container = new Composite(parent, SWT.NONE); + GridLayout layout = new GridLayout(); + layout.verticalSpacing = 16; + container.setLayout(layout); + layout.numColumns = 4; + + setControl(container); + } +} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java index 3fe8c97f..16aff2da 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java @@ -3,6 +3,7 @@ package org.openslx.dozmod.gui.wizard.page; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.log4j.Logger; import org.eclipse.jface.viewers.ColumnLabelProvider; @@ -18,7 +19,10 @@ import org.eclipse.swt.widgets.TableItem; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.helper.TableHelper; +import org.openslx.dozmod.gui.helper.UserToPermissionLink; import org.openslx.dozmod.gui.wizard.layout.ImageCustomPermissionPageLayout; +import org.openslx.dozmod.state.UploadWizardState; +import org.openslx.dozmod.thrift.ImageCache; import org.openslx.dozmod.thrift.UserCache; @@ -26,11 +30,15 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { private final static Logger LOGGER = Logger.getLogger(ImageCustomPermissionPage.class); + private UploadWizardState uploadWizardState; + + /** * wizard page for setting custom permissions */ - public ImageCustomPermissionPage() { - super(); // needed? + public ImageCustomPermissionPage(UploadWizardState uploadWizardState) { + super(); + this.uploadWizardState = uploadWizardState; } @SuppressWarnings("serial") @@ -77,11 +85,9 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { put(user.getUserId(), new ImagePermissions(true, true, false, false)); }}); } - permissionTableViewer.setInput(userList); permissionTableViewer.refresh(); - for (TableColumn tc : permissionTableViewer.getTable().getColumns()) { tc.pack(); } @@ -89,7 +95,39 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { addUser.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - LOGGER.debug("addUser"); + System.out.println(ImageCache.get(false).get(0).getOwnerId()); + ArrayList<UserToPermissionLink> permissionList = new ArrayList<UserToPermissionLink>(); + Map<String, ImagePermissions> imagePermissionsMap = new HashMap<String, ImagePermissions>(){{ + put("foo", new ImagePermissions(false, false, false, false)); + }}; +// try { +// ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), ImageCache.get(false).get(0).getImageBaseId(), +// new HashMap<String, ImagePermissions>(){{ +// put("foo", new ImagePermissions(false, false, false, false)); +// }}); +// } catch (TException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } +// try { +// imagePermissionsMap = ThriftManager.getSatClient().getImagePermissions(Session.getSatelliteToken(), ImageCache.get(false).get(0).getImageBaseId()); +// } catch (TException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } + + + + List<String> mapKeys = new ArrayList<String>(imagePermissionsMap.keySet()); + if (imagePermissionsMap != null){ + for (String key : mapKeys) { + permissionList.add(new UserToPermissionLink(key, imagePermissionsMap.get(key))); + } + } + + + permissionTableViewer.setInput(permissionList); + permissionTableViewer.refresh(); } }); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java new file mode 100644 index 00000000..7b21d089 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java @@ -0,0 +1,27 @@ +package org.openslx.dozmod.gui.wizard.page; + +import org.eclipse.swt.widgets.Composite; +import org.openslx.dozmod.gui.wizard.layout.LectureCreationPageLayout; + +public class LectureCreationPage extends LectureCreationPageLayout { + + protected boolean editExistingLecture; + + + /** + * Page for creating lectures + * + * @param editExistingImage wether to edit existing lecture or create new + * one + */ + public LectureCreationPage(boolean editExistingLecture) { + super(); + this.editExistingLecture = editExistingLecture; + + } + + @Override + public void createControl(Composite parent) { + super.setControl(parent); + } +} |
