From e56c2a41c2d0c21f4ed4ffaf720064aff89e3f7f Mon Sep 17 00:00:00 2001 From: Nino Breuer Date: Fri, 31 Oct 2014 13:21:52 +0100 Subject: implemented äääääh template filter --- .../main/java/gui/image/SearchEditImage_GUI.java | 28 ++++-- .../src/main/java/gui/image/SearchImage_GUI.java | 105 +++++++++++++++------ .../src/main/java/thrift/ThriftConnection.java | 2 +- 3 files changed, 96 insertions(+), 39 deletions(-) (limited to 'dozentenmodul/src/main/java') diff --git a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java index 403520a0..baf4c9be 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java @@ -264,25 +264,35 @@ public class SearchEditImage_GUI extends JFrame { //System.out.println("Help, I don't want to be filtered yet...."); // Wenn Textfield nicht leer - if (stext.trim().length() > 0) { + if (stext.trim().length() > 0) + { + activeSearch = true; // Filtere nach der Eingabe - filters.clear(); - filters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive - filters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive - rf = RowFilter.orFilter(filters); - rowSorterMyImages.setRowFilter(rf); - - + + filters.clear(); + + filters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive + filters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive + + rf = RowFilter.orFilter(filters); + rowSorterMyImages.setRowFilter(rf); + + } + else + { - } else { activeSearch = false; filters.clear(); filters.add(RowFilter.regexFilter(".", 0)); //case insensitive, filter for anything + rf = RowFilter.orFilter(filters); + rowSorterMyImages.setRowFilter(rf); + } + tablemyImages.clearSelection(); resetImageInfo(); diff --git a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java index afbbbab2..ce40ee7b 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java @@ -145,16 +145,35 @@ public class SearchImage_GUI extends JFrame { final TableRowSorter rowSorterPublicVorlagen = new TableRowSorter( modelPublicVorlagen); - RowFilter rf = null; - List> filters = new ArrayList>(2); + + + + RowFilter orFilter = null; + List> orFilters = new ArrayList>(); + + //needed for templates, filter for name OR desc AND temp_flag --> (name || desc) && (temp_flag) + RowFilter andFilter = null; + List> andFilters = new ArrayList>(); + //the final filter which handles the search in the templates + RowFilter finalFilter = null; + ArrayList> finalFilters = new ArrayList>(); + + /** * Create the dialog. */ public SearchImage_GUI(Component formerGUI) { - filters.add(RowFilter.regexFilter(".", 0)); - rf = RowFilter.orFilter(filters); + + orFilters.add(RowFilter.regexFilter(".", 0)); //search for anything + orFilter = RowFilter.orFilter(orFilters); + + andFilters.add(RowFilter.regexFilter("1", 8)); + andFilter = RowFilter.andFilter(andFilters); + + finalFilters.add(andFilter); + finalFilters.add(orFilter); addWindowListener(new WindowAdapter() { @Override @@ -307,6 +326,11 @@ public class SearchImage_GUI extends JFrame { // Textfield eingabe auslesen String stext = textFieldName.getText().trim(); + + + + + // Wenn Textfield nicht leer if (stext != "") { @@ -314,44 +338,54 @@ public class SearchImage_GUI extends JFrame { // Filtere nach der Eingabe - filters.clear(); - filters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive - filters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive - rf = RowFilter.orFilter(filters); + orFilters.clear(); + andFilters.clear(); + finalFilters.clear(); + + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive + + orFilter = RowFilter.orFilter(orFilters); + + rowSorterAll.setRowFilter(orFilter); + rowSorterMyImages.setRowFilter(orFilter); + + orFilters.clear(); - rowSorterAll.setRowFilter(rf); - rowSorterMyImages.setRowFilter(rf); + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive + + orFilter = RowFilter.orFilter(orFilters); - filters.clear(); - filters.add(RowFilter.regexFilter("1", 8)); - rf = RowFilter.andFilter(filters); - rowSorterPublicVorlagen.setRowFilter(rf); - //rowSorterAll.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); - //rowSorterMyImages.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); - //rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); + andFilters.add(RowFilter.regexFilter("1", 8)); + andFilter = RowFilter.andFilter(andFilters); + finalFilters.add(andFilter); + finalFilters.add(orFilter); + finalFilter = RowFilter.andFilter(finalFilters); + rowSorterPublicVorlagen.setRowFilter(finalFilter); //TODO füttere finalFilter mit andFilter und orFilter --> TEST } else { //refresh list activeSearch = false; String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); - filters.clear(); - filters.add(RowFilter.regexFilter(username, 4)); //case insensitive, filter for anything - rf = RowFilter.orFilter(filters); + orFilters.clear(); + orFilters.add(RowFilter.regexFilter(username, 4)); //case insensitive, filter for anything + orFilter = RowFilter.andFilter(orFilters); - rowSorterMyImages.setRowFilter(rf); - rowSorterAll.setRowFilter(rf); + rowSorterMyImages.setRowFilter(orFilter); + rowSorterAll.setRowFilter(orFilter); //in addition, templates can only be shown when they really are templates! - filters.clear(); - filters.add(RowFilter.regexFilter("1", 8)); - rf = RowFilter.andFilter(filters); - rowSorterPublicVorlagen.setRowFilter(rf); - //rowSorterMyImages.setRowFilter(RowFilter.regexFilter(username, 4)); - //rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8)); - //rowSorterAll.setRowFilter(null); + orFilters.clear(); + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive + orFilters.add(RowFilter.regexFilter("1", 8)); + orFilter = RowFilter.orFilter(orFilters); + rowSorterPublicVorlagen.setRowFilter(orFilter); } + tablemyImages.clearSelection(); tableAllImages.clearSelection(); tablePublicVorlagen.clearSelection(); @@ -472,6 +506,10 @@ public class SearchImage_GUI extends JFrame { new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { + + + if(tableAllImages.getSelectedRow() != -1) + { String imageid = modelAll.getValueAt( tableAllImages .convertRowIndexToModel(tableAllImages @@ -485,6 +523,7 @@ public class SearchImage_GUI extends JFrame { writeImageData(imageid, version); } + } }); tableAllImages.setModel(modelAll); tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit(); @@ -532,6 +571,9 @@ public class SearchImage_GUI extends JFrame { tablePublicVorlagen.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { + + if(tablePublicVorlagen.getSelectedRow() != -1) + { String imageid = modelPublicVorlagen .getValueAt( tablePublicVorlagen @@ -546,6 +588,9 @@ public class SearchImage_GUI extends JFrame { .toString(); writeImageData(imageid, version); } + } + + }); tablePublicVorlagen.setModel(modelPublicVorlagen); tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit(); @@ -954,8 +999,10 @@ public class SearchImage_GUI extends JFrame { images.get(x).id, images.get(x).getVersion(), images.get(x).getIsTemplate(), images.get(x).getDescription()}; + System.out.println("filling templates..."+images.get(x).getIsTemplate()); // Fuege diese Objekte der Tabelle hinzu model.addRow(obj); + System.out.println(model.getValueAt(x, 9)); x++; i.next(); diff --git a/dozentenmodul/src/main/java/thrift/ThriftConnection.java b/dozentenmodul/src/main/java/thrift/ThriftConnection.java index 98f4cb77..50315ae5 100644 --- a/dozentenmodul/src/main/java/thrift/ThriftConnection.java +++ b/dozentenmodul/src/main/java/thrift/ThriftConnection.java @@ -45,7 +45,7 @@ public class ThriftConnection { LOGGER.info("Verbindung zu "+satAddress+" wurde aufgebaut."); return client; - } + } public void closeThriftConnection() { -- cgit v1.2.3-55-g7522