diff options
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java | 217 |
1 files changed, 185 insertions, 32 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java index 67aab17d..1d0a37ce 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,39 @@ public class SearchImage_GUI extends JFrame { modelMyImages);
final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>(
modelPublicVorlagen);
+
+
+
+
+ RowFilter orFilter = null;
+ List<RowFilter<Object,Object>> orFilters = new ArrayList<RowFilter<Object,Object>>();
+
+ //needed for templates, filter for name OR desc AND temp_flag --> (name || desc) && (temp_flag)
+ RowFilter andFilter = null;
+ List<RowFilter<Object,Object>> andFilters = new ArrayList<RowFilter<Object,Object>>();
+ //the final filter which handles the search in the templates
+ RowFilter templateFilter = null;
+ ArrayList<RowFilter<Object, Object>> finalFilters = new ArrayList<RowFilter<Object, Object>>();
+
+
/**
* Create the dialog.
*/
public SearchImage_GUI(Component formerGUI) {
+
+
+ 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);
+
+ templateFilter = RowFilter.andFilter(finalFilters);
+
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
@@ -160,7 +189,7 @@ public class SearchImage_GUI extends JFrame { public void windowOpened(WindowEvent arg0) {
initTableModel(modelAll);
initTableModel(modelMyImages);
- initTableModel(modelPublicVorlagen);
+ initTableModelTemplates(modelPublicVorlagen);
// auszublendende Angaben
// 1=Lizenzpflichtig
@@ -183,32 +212,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 +250,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();
}
});
@@ -299,24 +328,63 @@ public class SearchImage_GUI extends JFrame { // Textfield eingabe auslesen
String stext = textFieldName.getText().trim();
+
+
+
+
+
// Wenn Textfield nicht leer
if (stext != "")
{
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));
+ 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);
+
+ andFilters.add(RowFilter.regexFilter("1", 8));
+ andFilter = RowFilter.andFilter(andFilters);
+
+ finalFilters.add(andFilter);
+ finalFilters.add(orFilter);
+ templateFilter = RowFilter.andFilter(finalFilters);
+ rowSorterPublicVorlagen.setRowFilter(templateFilter); //TODO füttere finalFilter mit andFilter und orFilter --> TEST
}
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);
+
+ orFilters.clear();
+ orFilters.add(RowFilter.regexFilter(username, 4)); //case insensitive, filter for anything
+ orFilter = RowFilter.andFilter(orFilters);
+
+ rowSorterMyImages.setRowFilter(orFilter);
+ rowSorterAll.setRowFilter(orFilter);
+
+ //in addition, templates can only be shown when they really are templates!
+ 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();
+
+ resetImageInfo();
}
});
@@ -432,6 +500,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
@@ -445,6 +517,7 @@ public class SearchImage_GUI extends JFrame { writeImageData(imageid, version);
}
+ }
});
tableAllImages.setModel(modelAll);
tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit();
@@ -457,10 +530,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 +544,10 @@ public class SearchImage_GUI extends JFrame { .getSelectedRow()), 7)
.toString();
writeImageData(imageid, version);
+ }
}
+
+
});
tablemyImages.setModel(modelMyImages);
tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit();
@@ -487,6 +565,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
@@ -501,6 +582,9 @@ public class SearchImage_GUI extends JFrame { .toString();
writeImageData(imageid, version);
}
+ }
+
+
});
tablePublicVorlagen.setModel(modelPublicVorlagen);
tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit();
@@ -680,7 +764,7 @@ public class SearchImage_GUI extends JFrame { });
okButton.setActionCommand("OK");
buttonPane.add(okButton);
- getRootPane().setDefaultButton(okButton);
+ //getRootPane().setDefaultButton(okButton); //causes the main menue to open and the search gui to close when pressing enter in search bar
}
}
@@ -907,9 +991,12 @@ 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()};
+ 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();
@@ -925,7 +1012,73 @@ public class SearchImage_GUI extends JFrame { }
return model;
}
+
+
+ // Initiale Beffuelung eines Table models
+ public DefaultTableModel initTableModelTemplates(DefaultTableModel model) {
+ List<server.generated.Image> images;
+ try {
+ // Hole eine Liste der Images
+ images = client.getImageListAllTemplates();
+
+ Iterator<server.generated.Image> i = images.iterator();
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ int x = 0;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = { images.get(x).getImageName(),
+ images.get(x).getLicenseRestriction(),
+ images.get(x).getOsName(),
+ images.get(x).getLectureName(),
+ 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).getDescription()};
+ // Fuege diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ i.next();
+ }
+
+ return model;
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(c,
+ e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ return model;
+ }// end initTableModelTemplates
+
+
+
+
+
+
+
+ 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");
|
