diff options
4 files changed, 184 insertions, 9 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 94c6e5ea..0e0af351 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 @@ -2,6 +2,7 @@ package org.openslx.dozmod.gui.helper; import java.text.SimpleDateFormat; import java.util.Date; + import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; @@ -11,20 +12,44 @@ import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.OperatingSystem; +import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.thrift.MetaDataCache; public final class TableHelper { private TableHelper() { } - private static void createColumn(TableViewer table, String colName, int width, int colNumber, + /** + * Create a column with the ability to be sorted + * + * @param tableViewer + * @param colName + * @param width column width + * @param colNumber index of the column + * @param provider the column label provider + */ + private static void createSortedColumn(TableViewer tableViewer, String colName, int width, int colNumber, ColumnLabelProvider provider) { - TableViewerColumn col = new TableViewerColumn(table, SWT.NONE); + TableViewerColumn col = new TableViewerColumn(tableViewer, SWT.NONE); col.getColumn().setWidth(width); col.getColumn().setText(colName); col.setLabelProvider(provider); // for column sorting - col.getColumn().addSelectionListener(getSelectionAdapter(col, colNumber, table)); + col.getColumn().addSelectionListener(getSelectionAdapter(col, colNumber, tableViewer)); + } + + /** + * Create a column for the given table viewer without sorting functionality + * @param tableViewer + * @param colName + * @param width + * @param provider + */ + private static void createUnsortedColumn(TableViewer tableViewer, String colName, int width, ColumnLabelProvider provider) { + TableViewerColumn col = new TableViewerColumn(tableViewer, SWT.NONE); + col.getColumn().setWidth(width); + col.getColumn().setText(colName); + col.setLabelProvider(provider); } // selection listener for column sorting @@ -45,13 +70,13 @@ public final class TableHelper { } /** - * Create the columns for the table in the VM main window. + * Create the columns for the table in the image main window. * Comparator has to be set beforehand. * * @param table the tableViewer */ public static void createImageTableColumns(TableViewer table) { - createColumn(table, "Name", 150, 0, new ColumnLabelProvider() { + createSortedColumn(table, "Name", 150, 0, new ColumnLabelProvider() { @Override public String getText(Object element) { ImageSummaryRead image = (ImageSummaryRead) element; @@ -59,11 +84,12 @@ public final class TableHelper { } }); - createColumn(table, "OS", 90, 1, new ColumnLabelProvider() { + createSortedColumn(table, "OS", 130, 1, new ColumnLabelProvider() { @Override public String getText(Object element) { ImageSummaryRead image = (ImageSummaryRead) element; OperatingSystem os = MetaDataCache.getOsById(image.getOsId()); + if (os == null) { return "Unknown"; } else { @@ -72,7 +98,7 @@ public final class TableHelper { } }); - createColumn(table, "Verantwortlicher", 130, 2, new ColumnLabelProvider() { + createSortedColumn(table, "Verantwortlicher", 130, 2, new ColumnLabelProvider() { @Override public String getText(Object element) { ImageSummaryRead image = (ImageSummaryRead) element; @@ -80,7 +106,7 @@ public final class TableHelper { } }); - createColumn(table, "Letztes Update", 110, 3, new ColumnLabelProvider() { + createSortedColumn(table, "Letztes Update", 110, 3, new ColumnLabelProvider() { @Override public String getText(Object element) { ImageSummaryRead image = (ImageSummaryRead) element; @@ -91,7 +117,7 @@ public final class TableHelper { } }); - createColumn(table, "Größe", 80, 4, new ColumnLabelProvider() { + createSortedColumn(table, "Größe", 80, 4, new ColumnLabelProvider() { @Override public String getText(Object element) { ImageSummaryRead image = (ImageSummaryRead) element; @@ -99,5 +125,54 @@ public final class TableHelper { } }); + } + + /** + * Create the columns for the custom permission wizard page + * @param permissionTableViewer + */ + public static void createImagePermissionTableColumns( + TableViewer permissionTableViewer) { + createUnsortedColumn(permissionTableViewer, "User", 150, new ColumnLabelProvider() { + @Override + public String getText(Object element) { + // TODO correct? + UserInfo user = (UserInfo) element; + return user.firstName + " " + user.lastName; + } + }); + + createUnsortedColumn(permissionTableViewer, "Link", 90, new ColumnLabelProvider() { + @Override + public String getText(Object element) { + // TODO what to show? + return " "; + } + }); + + createUnsortedColumn(permissionTableViewer, "Download", 90, new ColumnLabelProvider() { + @Override + public String getText(Object element) { + // TODO what to show? + return " "; + } + }); + + createUnsortedColumn(permissionTableViewer, "Edit", 90, new ColumnLabelProvider() { + @Override + public String getText(Object element) { + // TODO what to show? + return " "; + } + }); + + createUnsortedColumn(permissionTableViewer, "Admin", 90, new ColumnLabelProvider() { + @Override + public String getText(Object element) { + // TODO what to show? + return " "; + } + }); + }; } 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 4812b7e2..d16f7768 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 @@ -7,6 +7,7 @@ import org.openslx.bwlp.thrift.iface.ImageBaseWrite; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.helper.MessageType; +import org.openslx.dozmod.gui.wizard.page.ImageCustomPermissionPage; import org.openslx.dozmod.gui.wizard.page.ImageMetaDataPage; import org.openslx.dozmod.gui.wizard.page.ImageUploadPage; import org.openslx.dozmod.state.UploadWizardState; @@ -20,6 +21,7 @@ public class ImageWizard extends Wizard { private UploadWizardState uploadWizardState; protected ImageUploadPage imageUploadPage; protected ImageMetaDataPage imageMetaDataPage; + //protected ImageCustomPermissionPage imageCustomPermissionPage; protected boolean editExistingImage; /** @@ -44,8 +46,10 @@ 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); + //addPage(imageCustomPermissionPage); } @Override diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java new file mode 100644 index 00000000..e8341a87 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java @@ -0,0 +1,65 @@ +package org.openslx.dozmod.gui.wizard.layout; + +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Table; + +public class ImageCustomPermissionPageLayout extends WizardPage { + + protected Composite container; + + // The table viewer + protected TableViewer permissionTableViewer; + + // Buttons + protected Button addUser; + protected Button removeUser; + + protected String addUserLabel = "Benutzer Hinzufügen"; + protected String removeUserLabel = "Benutzer entfernen"; + + + /** + * wizard page for setting custom permissions + */ + public ImageCustomPermissionPageLayout() { + super("Eingabe Ihrer Daten", "Eingabe Ihrer Daten", null); + setDescription("Setzen Sie hier spezielle Berechtigungen, sofern Sie dies wünschen."); + } + + @Override + public void createControl(Composite parent) { + container = new Composite(parent, SWT.NONE); + GridLayout layout = new GridLayout(); + container.setLayout(layout); + layout.numColumns = 2; + + // table + Table vmTable = new Table(container, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); + GridData tableGridData = new GridData(SWT.FILL, SWT.FILL, true, true); + tableGridData.horizontalSpan = 2; + vmTable.setLayoutData(tableGridData); + vmTable.setHeaderVisible(true); + vmTable.setLinesVisible(true); + + // TableViewer on the table + permissionTableViewer = new TableViewer(vmTable); + permissionTableViewer.setContentProvider(ArrayContentProvider.getInstance()); + + // Buttons below Table + addUser = new Button(container, SWT.PUSH); + addUser.setText(addUserLabel); + + removeUser = new Button(container, SWT.PUSH); + removeUser.setText(removeUserLabel); + + 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 new file mode 100644 index 00000000..e2f4566b --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java @@ -0,0 +1,31 @@ +package org.openslx.dozmod.gui.wizard.page; + +import org.apache.log4j.Logger; +import org.eclipse.swt.widgets.Composite; +import org.openslx.dozmod.gui.helper.TableHelper; +import org.openslx.dozmod.gui.wizard.layout.ImageCustomPermissionPageLayout; + + +public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { + + private final static Logger LOGGER = Logger.getLogger(ImageCustomPermissionPage.class); + + /** + * wizard page for setting custom permissions + */ + public ImageCustomPermissionPage() { + super(); + } + + @Override + public void createControl(Composite parent) { + super.createControl(parent); + + TableHelper.createImagePermissionTableColumns(permissionTableViewer); + + // TODO set the input of the table then implement ColumnLabelProviders in TableHelper + permissionTableViewer.setInput(null); + permissionTableViewer.refresh(); + } + +} |
