summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-03 15:13:46 +0200
committerSimon Rettberg2015-08-03 15:13:46 +0200
commit733dae9f577b737d9dca725956efc1622d637249 (patch)
tree7a224f1ac23764e95f65c1c4e89fd0171e8daed9 /dozentenmodul/src/main/java
parent[client] Add eMail feature to PersonLabel (diff)
parentMerge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff)
downloadtutor-module-733dae9f577b737d9dca725956efc1622d637249.tar.gz
tutor-module-733dae9f577b737d9dca725956efc1622d637249.tar.xz
tutor-module-733dae9f577b737d9dca725956efc1622d637249.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/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/window/layout/ImageDetailsWindowLayout.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureListWindowLayout.java1
-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
7 files changed, 39 insertions, 11 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/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
index abc5d9a8..498c44f8 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
@@ -18,6 +18,7 @@ import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
+import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
@@ -66,7 +67,8 @@ public abstract class ImageDetailsWindowLayout extends JDialog {
// description
txtDescription = new JTextArea();
infoPanel.add(new JLabel("Beschreibung"), GridPos.get(0, 1, false, false));
- infoPanel.add(txtDescription, GridPos.get(1, 1, true, false));
+
+ infoPanel.add(new JScrollPane(txtDescription), GridPos.get(1, 1, true, false));
// owner
lblOwner = new PersonLabel();
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureListWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureListWindowLayout.java
index 7304fa99..87523519 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureListWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureListWindowLayout.java
@@ -66,7 +66,6 @@ public abstract class LectureListWindowLayout extends CompositePage {
JPanel tableGroup = new JPanel();
tableGroup.setBorder(new TitledBorder(tableGroupLabel));
tableGroup.setLayout(new GridBagLayout());
- tableGroup.setMinimumSize(new Dimension(800, 600));
tableGroup.setPreferredSize(tableGroup.getMinimumSize());
// filter text field
searchTextField = new JTextField();
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() {