diff options
| -rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java | 30 | ||||
| -rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java | 6 |
2 files changed, 33 insertions, 3 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java index a6df2332..680a934a 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java @@ -1,5 +1,6 @@ package org.openslx.dozmod.gui.window; +import java.awt.Color; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -9,6 +10,11 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.List; +import javax.swing.RowFilter; +import javax.swing.UIManager; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; + import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.Gui; @@ -45,6 +51,30 @@ public class UserListWindow extends UserListWindowLayout { } }); + // filter the objects in the table depending on the search field + searchUserField.getDocument().addDocumentListener(new DocumentListener() { + @Override + public void removeUpdate(DocumentEvent e) { + changedUpdate(e); + } + + @Override + public void insertUpdate(DocumentEvent e) { + changedUpdate(e); + } + + @Override + public void changedUpdate(DocumentEvent e) { + try { + userTable.getRowSorter().setRowFilter(RowFilter.regexFilter("(?i)"+searchUserField.getText(), 0)); + searchUserField.setForeground(UIManager.getColor("TextField.foreground")); + } catch (IllegalArgumentException ex) { + // TODO set background color of search field to something redish + searchUserField.setForeground(Color.RED); + } + } + }); + // ActionListener for the two buttons final ActionListener al = new ActionListener() { @Override diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java index 85dd2545..3548d61a 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java @@ -42,7 +42,7 @@ public class UserListWindowLayout extends JDialog { protected final JButton setButton; protected final JButton cancelButton; - protected final JTextField filterField; + protected final JTextField searchUserField; private static String title = "Benutzerliste"; @@ -70,10 +70,10 @@ public class UserListWindowLayout extends JDialog { // filter stuff JPanel filterPanel = new JPanel(new GridBagLayout()); - filterField = new JTextField(); + searchUserField = new JTextField(); filterPanel.setBorder(BorderFactory.createEmptyBorder(10,10,0,10)); filterPanel.add(new JLabel("Suchen: "), GridPos.get(0, 0, false, false)); - filterPanel.add(filterField, GridPos.get(1, 0, true, true)); + filterPanel.add(searchUserField, GridPos.get(1, 0, true, true)); // pack it all Container contentPane = getContentPane(); |
