summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java24
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java13
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java2
-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/page/ImageCustomPermissionPage.java2
5 files changed, 36 insertions, 9 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java
index 18c2b9e3..cf1a4c5f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java
@@ -6,6 +6,8 @@ import java.util.List;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
+import javax.swing.RowSorter;
+import javax.swing.SortOrder;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableRowSorter;
@@ -18,6 +20,7 @@ public abstract class ListTable<T> extends JTable {
private final ListModel model;
private final TableRowSorter<ListModel> sorter;
+ private List<RowSorter.SortKey> sortKeys = new ArrayList<>();
private final TableColumnAdjuster adjuster;
@@ -25,14 +28,13 @@ public abstract class ListTable<T> extends JTable {
//System.setProperty("sun.awt.noerasebackground", "true"); needed?
super();
this.model = new ListModel(columnNames);
- this.sorter = new TableRowSorter<>(model);
+ this.sorter = new TableRowSorter<ListModel>(model);
this.adjuster = new TableColumnAdjuster(this, 5);
this.setModel(model);
this.setRowSorter(sorter);
this.setShowGrid(false);
this.setCellSelectionEnabled(false);
this.createDefaultColumnsFromModel();
- //this.setAutoCreateRowSorter(true);
this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
this.getTableHeader().setReorderingAllowed(false);
this.setDefaultRenderer(Object.class, new TableRenderer());
@@ -43,7 +45,7 @@ public abstract class ListTable<T> extends JTable {
protected abstract Object getValueAtInternal(int rowIndex, int columnIndex);
public T get(int rowIndex) {
- if (rowIndex < 0 || rowIndex >= getRowCount())
+ if (rowIndex < 0 || rowIndex >= model.getRowCount())
throw new IndexOutOfBoundsException();
return model.data.get(rowIndex);
}
@@ -55,9 +57,22 @@ public abstract class ListTable<T> extends JTable {
return get(convertRowIndexToModel(rowIndex));
}
- public void setData(List<T> data) {
+ public void setData(List<T> data, boolean sort) {
model.setData(data);
adjuster.adjustColumns();
+ // handle sorting
+ if (!sort) return;
+ if (sortKeys.isEmpty()) {
+ // sort by the first column by default
+ sortKeys.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
+ sorter.setSortKeys(sortKeys);
+ }
+ // always sort
+ sorter.sort();
+ }
+ @Override
+ public TableRowSorter<ListModel> getRowSorter() {
+ return sorter;
}
/**
@@ -109,7 +124,6 @@ public abstract class ListTable<T> extends JTable {
/**
* This renderer simply removes the default dotted border when
* a cell is selected
- * @author joe
*
*/
class TableRenderer extends DefaultTableCellRenderer {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
index 241c3172..65084021 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
@@ -1,5 +1,6 @@
package org.openslx.dozmod.gui.window;
+import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
@@ -8,6 +9,7 @@ import java.util.List;
import javax.swing.JFrame;
import javax.swing.JTextField;
+import javax.swing.RowFilter;
import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
@@ -51,7 +53,13 @@ public class ImageListWindow extends ImageListWindowLayout {
@Override
public void changedUpdate(DocumentEvent e) {
- // TODO: Set filter
+ // stuff
+ try {
+ imageTable.getRowSorter().setRowFilter(RowFilter.regexFilter("(?i)"+searchTextField.getText(), 0, 1, 2));
+ } catch (Exception ex) {
+ // TODO set background color of search field to something redish
+ searchTextField.setBackground(Color.RED);
+ }
}
});
@@ -118,6 +126,7 @@ public class ImageListWindow extends ImageListWindowLayout {
@Override
public void actionPerformed(ActionEvent e) {
// TODO open download popup
+ refreshList(true);
}
});
@@ -147,7 +156,7 @@ public class ImageListWindow extends ImageListWindowLayout {
Gui.asyncExec(new Runnable() {
@Override
public void run() {
- imageTable.setData(imageList);
+ imageTable.setData(imageList, true);
}
});
}
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 8e60a375..4b24ce5e 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
@@ -140,7 +140,7 @@ public class LectureListWindow extends LectureListWindowLayout {
Gui.asyncExec(new Runnable() {
@Override
public void run() {
- lectureTable.setData(lectureList);
+ lectureTable.setData(lectureList, true);
}
});
}
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 97efd804..98fd8287 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,7 +7,9 @@ import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.ImageBaseWrite;
import org.openslx.bwlp.thrift.iface.ImageVersionWrite;
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.ImageListWindow;
import org.openslx.dozmod.gui.wizard.page.ImageCustomPermissionPage;
import org.openslx.dozmod.gui.wizard.page.ImageMetaDataPage;
import org.openslx.dozmod.gui.wizard.page.ImageUploadPage;
@@ -92,6 +94,8 @@ public class ImageWizard extends Wizard {
}
Gui.showMessageBox(this, "Creation of image worked :)", MessageType.INFO, LOGGER, null);
+ // redirect to ImageListWindow
+ MainWindow.showPage(ImageListWindow.class);
}
private boolean isStateValid() {
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 97a1a0b9..f7ec1d9e 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
@@ -36,7 +36,7 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
permissionList.add(new UserImagePermissions(user.getUserId(), new ImagePermissions(true, true,
true, false)));
}
- permissionTable.setData(permissionList);
+ permissionTable.setData(permissionList, true);
// add user button adapter
addUser.addActionListener(new ActionListener() {