diff options
| author | Simon Rettberg | 2015-08-03 15:13:46 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2015-08-03 15:13:46 +0200 |
| commit | 733dae9f577b737d9dca725956efc1622d637249 (patch) | |
| tree | 7a224f1ac23764e95f65c1c4e89fd0171e8daed9 | |
| parent | [client] Add eMail feature to PersonLabel (diff) | |
| parent | Merge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff) | |
| download | tutor-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
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() { |
