summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2015-07-21 12:22:55 +0200
committerJonathan Bauer2015-07-21 12:22:55 +0200
commitd5be2796ec1514d36ce834f20e3fc8c20872beef (patch)
treea8a86652673d94dbf255ec5dd0432c7ac7be74b0
parent[client] fix OS combo box not scaling in width (diff)
downloadtutor-module-d5be2796ec1514d36ce834f20e3fc8c20872beef.tar.gz
tutor-module-d5be2796ec1514d36ce834f20e3fc8c20872beef.tar.xz
tutor-module-d5be2796ec1514d36ce834f20e3fc8c20872beef.zip
[client] checkbox in tablecolumns [WIP] far from ready
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/TableHelper.java217
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java61
4 files changed, 188 insertions, 98 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 933831af..e37e6319 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
@@ -1,28 +1,38 @@
package org.openslx.dozmod.gui.helper;
+import java.util.HashMap;
+
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;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TableItem;
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 {
- private TableHelper() {
- }
/**
- * Create the columns for the table in the lecture main window.
- * Comparator has to be set beforehand.
- * @param table the tableViewer
+ * Create the columns for the table in the lecture main window. Comparator
+ * has to be set beforehand.
+ *
+ * @param table
+ * the tableViewer
*/
public static void createLectureTableColumns(TableViewer table) {
createSortedColumn(table, "Name", 150, 0, new ColumnLabelProvider() {
@@ -33,26 +43,29 @@ public final class TableHelper {
}
});
- createSortedColumn(table, "Verantwortlicher", 130, 1, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- LectureSummary lecture = (LectureSummary) element;
- String ownerId = lecture.getOwnerId();
- UserInfo user = UserCache.find(ownerId);
- if (user == null){
- return "Unknown";
- }else {
- return user.getLastName() + ", " + user.getFirstName();
- }
- }
- });
+ createSortedColumn(table, "Verantwortlicher", 130, 1,
+ new ColumnLabelProvider() {
+ @Override
+ public String getText(Object element) {
+ LectureSummary lecture = (LectureSummary) element;
+ String ownerId = lecture.getOwnerId();
+ UserInfo user = UserCache.find(ownerId);
+ if (user == null) {
+ return "Unknown";
+ } else {
+ return user.getLastName() + ", "
+ + user.getFirstName();
+ }
+ }
+ });
}
/**
- * Create the columns for the table in the image main window.
- * Comparator has to be set beforehand.
+ * Create the columns for the table in the image main window. Comparator has
+ * to be set beforehand.
*
- * @param table the tableViewer
+ * @param table
+ * the tableViewer
*/
public static void createImageTableColumns(TableViewer table) {
createSortedColumn(table, "Name", 150, 0, new ColumnLabelProvider() {
@@ -77,28 +90,31 @@ public final class TableHelper {
}
});
- createSortedColumn(table, "Verantwortlicher", 130, 2, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- ImageSummaryRead image = (ImageSummaryRead) element;
- String ownerId = image.getOwnerId();
- UserInfo user = UserCache.find(ownerId);
- if (user == null){
- return "Unknown";
- }else {
- return user.getLastName() + ", " + user.getFirstName();
- }
- }
- });
+ createSortedColumn(table, "Verantwortlicher", 130, 2,
+ new ColumnLabelProvider() {
+ @Override
+ public String getText(Object element) {
+ ImageSummaryRead image = (ImageSummaryRead) element;
+ String ownerId = image.getOwnerId();
+ UserInfo user = UserCache.find(ownerId);
+ if (user == null) {
+ return "Unknown";
+ } else {
+ return user.getLastName() + ", "
+ + user.getFirstName();
+ }
+ }
+ });
- createSortedColumn(table, "Letztes Update", 110, 3, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- ImageSummaryRead image = (ImageSummaryRead) element;
+ createSortedColumn(table, "Letztes Update", 110, 3,
+ new ColumnLabelProvider() {
+ @Override
+ public String getText(Object element) {
+ ImageSummaryRead image = (ImageSummaryRead) element;
- return FormatHelper.shortDate(image.getUpdateTime());
- }
- });
+ return FormatHelper.shortDate(image.getUpdateTime());
+ }
+ });
createSortedColumn(table, "Größe", 80, 4, new ColumnLabelProvider() {
@Override
@@ -112,50 +128,31 @@ 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;
- }
+ final TableViewer permissionTableViewer, final ColumnLabelProvider colprov) {
+ createUnsortedColumn(permissionTableViewer, "User", 150,
+ new ColumnLabelProvider() {
+ @Override
+ public String getText(Object element) {
+ UserInfo user = (UserInfo) element;
+ return FormatHelper.userName(user);
+ }
});
- createUnsortedColumn(permissionTableViewer, "Link", 90, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- // TODO what to show?
- return " ";
- }
- });
+ createUnsortedColumn(permissionTableViewer, "Link", 90,
+ colprov);
- createUnsortedColumn(permissionTableViewer, "Download", 90, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- // TODO what to show?
- return " ";
- }
- });
+ createUnsortedColumn(permissionTableViewer, "Download", 90,
+ colprov);
- createUnsortedColumn(permissionTableViewer, "Edit", 90, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- // TODO what to show?
- return " ";
- }
- });
+ createUnsortedColumn(permissionTableViewer, "Edit", 90,
+ colprov);
- createUnsortedColumn(permissionTableViewer, "Admin", 90, new ColumnLabelProvider() {
- @Override
- public String getText(Object element) {
- // TODO what to show?
- return " ";
- }
- });
+ createUnsortedColumn(permissionTableViewer, "Admin", 90,
+ colprov);
};
@@ -164,28 +161,35 @@ public final class TableHelper {
*
* @param tableViewer
* @param colName
- * @param width column width
- * @param colNumber index of the column
- * @param provider the column label provider
+ * @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,
+ private static void createSortedColumn(TableViewer tableViewer,
+ String colName, int width, int colNumber,
ColumnLabelProvider provider) {
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, tableViewer));
+ 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) {
+ 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);
@@ -193,18 +197,21 @@ public final class TableHelper {
}
// selection listener for column sorting
- private static SelectionListener getSelectionAdapter(final TableViewerColumn col,
- final int colNumber, final TableViewer table) {
- SelectionAdapter selectionAdapter = new SelectionAdapter() {
+ private static SelectionListener getSelectionAdapter(
+ final TableViewerColumn col, final int colNumber,
+ final TableViewer table) {
+ return new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int dir = 0;
if (table.getComparator() instanceof ImageListComparator) {
- ImageListComparator comparator = (ImageListComparator) table.getComparator();
+ ImageListComparator comparator = (ImageListComparator) table
+ .getComparator();
comparator.setColumn(colNumber);
dir = comparator.getDirection();
} else if (table.getComparator() instanceof LectureListComparator) {
- LectureListComparator comparator = (LectureListComparator) table.getComparator();
+ LectureListComparator comparator = (LectureListComparator) table
+ .getComparator();
comparator.setColumn(colNumber);
dir = comparator.getDirection();
}
@@ -213,6 +220,38 @@ public final class TableHelper {
table.refresh();
}
};
- return selectionAdapter;
+ }
+ private static final Button createButton(Composite parent, int style) {
+ Button newButton = new Button(parent, style);
+ newButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Button o = (Button)e.getSource();
+ System.out.println(o.toString());
+ }
+ });
+ return newButton;
+ }
+ private static final ColumnLabelProvider newCheckboxedColumnLabelProvider() {
+ return new ColumnLabelProvider() {
+ private HashMap<Object, Button> buttons = new HashMap<Object, Button>();
+ @Override
+ public void update(ViewerCell cell) {
+ TableItem item = (TableItem) cell.getItem();
+ Button button;
+ if (buttons.containsKey(cell.getElement())) {
+ button = buttons.get(cell.getElement());
+ } else {
+ button = createButton((Composite) cell
+ .getViewerRow().getControl(), SWT.CHECK);
+ buttons.put(cell.getElement(), button);
+ }
+ TableEditor editor = new TableEditor(item.getParent());
+ editor.grabHorizontal = true;
+ editor.grabVertical = true;
+ editor.setEditor(button, item, cell.getColumnIndex());
+ editor.layout();
+ }
+ };
}
}
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 d5caa4af..adbe352c 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
@@ -47,8 +47,8 @@ public class ImageWizard extends Wizard {
imageUploadPage = new ImageUploadPage(uploadWizardState, editExistingImage);
imageMetaDataPage = new ImageMetaDataPage(uploadWizardState);
imageCustomPermissionPage = new ImageCustomPermissionPage();
- addPage(imageUploadPage);
- addPage(imageMetaDataPage);
+// addPage(imageUploadPage);
+// addPage(imageMetaDataPage);
addPage(imageCustomPermissionPage);
}
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
index e8341a87..eb353b56 100644
--- 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
@@ -42,9 +42,7 @@ public class ImageCustomPermissionPageLayout extends WizardPage {
// 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.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
vmTable.setHeaderVisible(true);
vmTable.setLinesVisible(true);
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 ee6db9b1..3fe8c97f 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
@@ -1,11 +1,21 @@
package org.openslx.dozmod.gui.wizard.page;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TableColumn;
+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.wizard.layout.ImageCustomPermissionPageLayout;
@@ -20,19 +30,62 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
* wizard page for setting custom permissions
*/
public ImageCustomPermissionPage() {
- super();
+ super(); // needed?
}
+ @SuppressWarnings("serial")
@Override
public void createControl(Composite parent) {
super.createControl(parent);
-
- TableHelper.createImagePermissionTableColumns(permissionTableViewer);
+ ImagePermissions perms = new ImagePermissions(true, true, false, false);
+ TableHelper.createImagePermissionTableColumns(permissionTableViewer,
+ new ColumnLabelProvider() {
+ private HashMap<Object, Button> buttons = new HashMap<Object, Button>();
+ private final Button createButton(Composite parent, int style) {
+ Button newButton = new Button(parent, style);
+ newButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Button o = (Button)e.getSource();
+ System.out.println(o.toString());
+ }
+ });
+ return newButton;
+ }
+ @Override
+ public void update(ViewerCell cell) {
+ TableItem item = (TableItem) cell.getItem();
+ Button button;
+ if (buttons.containsKey(cell.getElement())) {
+ button = buttons.get(cell.getElement());
+ } else {
+ button = createButton((Composite) cell
+ .getViewerRow().getControl(), SWT.CHECK);
+ buttons.put(cell.getElement(), button);
+ }
+ TableEditor editor = new TableEditor(item.getParent());
+ editor.grabHorizontal = true;
+ editor.grabVertical = true;
+ editor.setEditor(button, item, cell.getColumnIndex());
+ editor.layout();
+ }
+ });
List<UserInfo> userList = UserCache.getAll();
-
+ List<HashMap<String, ImagePermissions>> perms2 = new ArrayList<HashMap<String, ImagePermissions>>();
+ for (final UserInfo user : userList) {
+ perms2.add(new HashMap<String, ImagePermissions>() {{
+ put(user.getUserId(), new ImagePermissions(true, true, false, false));
+ }});
+ }
+
permissionTableViewer.setInput(userList);
permissionTableViewer.refresh();
+
+ for (TableColumn tc : permissionTableViewer.getTable().getColumns()) {
+ tc.pack();
+ }
+
addUser.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {