From 16cadcd0c0d9ea752b9e9a16f9bd390ecbe81e26 Mon Sep 17 00:00:00 2001 From: Nino Breuer Date: Thu, 30 Oct 2014 09:58:59 +0100 Subject: • added full text search in earch search-gui • fixed bug: arrayIndexOutOfBounds (several classes) • fixed bug: failed to update image data • changed text examples • fixed bug: any image has been shown as template when changing value of search bar (each direction) --- .../src/main/java/gui/image/SearchImage_GUI.java | 125 ++++++++++++++++----- 1 file changed, 95 insertions(+), 30 deletions(-) (limited to 'dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java') diff --git a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java index 67aab17d..afbbbab2 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java @@ -20,6 +20,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -100,7 +101,7 @@ public class SearchImage_GUI extends JFrame { boolean activeSearch = false; Component c = null; String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung", - "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" }; // Angezeigt + "Verantwortlicher", "Letztes Update", "ID", "Version", "Template", "Beschreibung" }; // Angezeigt // werden // aber // nur @@ -143,11 +144,18 @@ public class SearchImage_GUI extends JFrame { modelMyImages); final TableRowSorter rowSorterPublicVorlagen = new TableRowSorter( modelPublicVorlagen); + + RowFilter rf = null; + List> filters = new ArrayList>(2); /** * Create the dialog. */ public SearchImage_GUI(Component formerGUI) { + + filters.add(RowFilter.regexFilter(".", 0)); + rf = RowFilter.orFilter(filters); + addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { @@ -183,32 +191,28 @@ public class SearchImage_GUI extends JFrame { tablemyImages.getColumnModel().getColumn(7).setWidth(0); tablemyImages.getColumnModel().getColumn(7).setMinWidth(0); tablemyImages.getColumnModel().getColumn(7).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(9).setWidth(0); + tablemyImages.getColumnModel().getColumn(9).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(9).setMaxWidth(0); tablePublicVorlagen.getColumnModel().getColumn(1).setWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(1) - .setMinWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(1) - .setMaxWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(1).setMinWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(1).setMaxWidth(0); tablePublicVorlagen.getColumnModel().getColumn(3).setWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(3) - .setMinWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(3) - .setMaxWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(3).setMinWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(3).setMaxWidth(0); tablePublicVorlagen.getColumnModel().getColumn(8).setWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(8) - .setMinWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(8) - .setMaxWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(8).setMinWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(8).setMaxWidth(0); tablePublicVorlagen.getColumnModel().getColumn(6).setWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(6) - .setMinWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(6) - .setMaxWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(6).setMinWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(6).setMaxWidth(0); tablePublicVorlagen.getColumnModel().getColumn(7).setWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(7) - .setMinWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(7) - .setMaxWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(7).setMinWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(7).setMaxWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(9).setWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(9).setMinWidth(0); + tablePublicVorlagen.getColumnModel().getColumn(9).setMaxWidth(0); tableAllImages.getColumnModel().getColumn(1).setWidth(0); tableAllImages.getColumnModel().getColumn(1).setMinWidth(0); @@ -225,6 +229,10 @@ public class SearchImage_GUI extends JFrame { tableAllImages.getColumnModel().getColumn(7).setWidth(0); tableAllImages.getColumnModel().getColumn(7).setMinWidth(0); tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0); + tableAllImages.getColumnModel().getColumn(9).setWidth(0); + tableAllImages.getColumnModel().getColumn(9).setMinWidth(0); + tableAllImages.getColumnModel().getColumn(9).setMaxWidth(0); + textFieldName.requestFocusInWindow(); } }); @@ -304,19 +312,51 @@ public class SearchImage_GUI extends JFrame { { activeSearch = true; // Filtere nach der Eingabe - rowSorterAll.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); - rowSorterMyImages.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); - rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); + + + filters.clear(); + filters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive + filters.add(RowFilter.regexFilter("(?i)"+stext, 9)); //case insensitive + rf = RowFilter.orFilter(filters); + + rowSorterAll.setRowFilter(rf); + rowSorterMyImages.setRowFilter(rf); + + 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)); } else { //refresh list activeSearch = false; String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); - rowSorterMyImages.setRowFilter(RowFilter.regexFilter(username, 4)); - rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8)); - rowSorterAll.setRowFilter(null); + + filters.clear(); + filters.add(RowFilter.regexFilter(username, 4)); //case insensitive, filter for anything + rf = RowFilter.orFilter(filters); + + rowSorterMyImages.setRowFilter(rf); + rowSorterAll.setRowFilter(rf); + + //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); } + tablemyImages.clearSelection(); + tableAllImages.clearSelection(); + tablePublicVorlagen.clearSelection(); + + resetImageInfo(); } }); @@ -457,10 +497,12 @@ public class SearchImage_GUI extends JFrame { tablemyImages = new JTable(); tablemyImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { + public void valueChanged(ListSelectionEvent e) + { + if (tablemyImages.getSelectedRow() != -1) { String imageid = modelMyImages.getValueAt( tablemyImages - .convertRowIndexToModel(tablemyImages //hier wird auf myImages zugegriffen, obwohl man sich in Vorlage oder "Alle" befindet. + .convertRowIndexToModel(tablemyImages //fehler nur, wenn zeile selektiert und dann suche eingegeben wird! .getSelectedRow()), 6) .toString(); String version = modelMyImages.getValueAt( @@ -469,7 +511,10 @@ public class SearchImage_GUI extends JFrame { .getSelectedRow()), 7) .toString(); writeImageData(imageid, version); + } } + + }); tablemyImages.setModel(modelMyImages); tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit(); @@ -907,7 +952,8 @@ public class SearchImage_GUI extends JFrame { images.get(x).getUserData(), out.format(in.parse(images.get(x).updateTime)), images.get(x).id, images.get(x).getVersion(), - images.get(x).getIsTemplate() }; + images.get(x).getIsTemplate(), + images.get(x).getDescription()}; // Fuege diese Objekte der Tabelle hinzu model.addRow(obj); x++; @@ -926,6 +972,25 @@ public class SearchImage_GUI extends JFrame { return model; } + + private void resetImageInfo() { + //reset the detailed information on the right hand side when changing search string + labelID.setText(""); + labelVersion.setText(""); + labelName.setText(""); + textAreadesc.setText(""); + labelOS.setText(""); + labelUpdate.setText(""); + labelVerantwortlicher.setText(""); + labelWeitereVerantwortliche.setText(""); + labelVorlage.setText(""); + labelLizenzSoftware.setText(""); + labelInternet.setText(""); + labelRam.setText(""); + labelCPU.setText(""); + + } + public void writeImageData(String id, String version) { try { SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -- cgit v1.2.3-55-g7522