diff options
| author | Nino Breuer | 2014-10-28 20:02:36 +0100 |
|---|---|---|
| committer | Nino Breuer | 2014-10-28 20:02:36 +0100 |
| commit | f1a4b248da7e636a8fb9f2d3001fdd4ba628471c (patch) | |
| tree | 9d74e7ec861c7c81c0c39a2d07e1b6a41fa94720 | |
| parent | Merge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module (diff) | |
| download | tutor-module-f1a4b248da7e636a8fb9f2d3001fdd4ba628471c.tar.gz tutor-module-f1a4b248da7e636a8fb9f2d3001fdd4ba628471c.tar.xz tutor-module-f1a4b248da7e636a8fb9f2d3001fdd4ba628471c.zip | |
changed implementation of full text search in some classes
7 files changed, 477 insertions, 600 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java b/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java index 27197447..974ab860 100644 --- a/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java @@ -21,6 +21,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; @@ -92,7 +93,7 @@ public class DeleteImage_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 @@ -130,17 +131,30 @@ public class DeleteImage_GUI extends JFrame { return false; } }; + /* final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>( modelAll); + */ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>( modelMyImages); + /* final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>( modelPublicVorlagen); + */ + RowFilter rf = null; + List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2); + /** * Create the dialog. */ public DeleteImage_GUI(Component formerGUI) { + + + filters.add(RowFilter.regexFilter(".", 0)); + rf = RowFilter.orFilter(filters); + + addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { @@ -176,54 +190,11 @@ public class DeleteImage_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 - * (3).setWidth(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 - * (6).setWidth(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); - * - * tableAllImages.getColumnModel().getColumn(1).setWidth(0); - * tableAllImages.getColumnModel().getColumn(1).setMinWidth(0); - * tableAllImages.getColumnModel().getColumn(1).setMaxWidth(0); - * tableAllImages.getColumnModel().getColumn(3).setWidth(0); - * tableAllImages.getColumnModel().getColumn(3).setMinWidth(0); - * tableAllImages.getColumnModel().getColumn(3).setMaxWidth(0); - * tableAllImages.getColumnModel().getColumn(8).setWidth(0); - * tableAllImages.getColumnModel().getColumn(8).setMinWidth(0); - * tableAllImages.getColumnModel().getColumn(8).setMaxWidth(0); - * tableAllImages.getColumnModel().getColumn(6).setWidth(0); - * tableAllImages.getColumnModel().getColumn(6).setMinWidth(0); - * tableAllImages.getColumnModel().getColumn(6).setMaxWidth(0); - * tableAllImages.getColumnModel().getColumn(7).setWidth(0); - * tableAllImages.getColumnModel().getColumn(7).setMinWidth(0); - * tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0); - */ + // bis hier textFieldName.requestFocusInWindow(); } @@ -293,33 +264,38 @@ public class DeleteImage_GUI extends JFrame { textFieldName = new JTextField(); // Key Listener der Tastatureingabe registriert + + textFieldName.addKeyListener(new KeyAdapter() { @Override - public void keyReleased(KeyEvent e) { + public void keyReleased(KeyEvent e) + { // Textfield eingabe auslesen String stext = textFieldName.getText(); // Wenn Textfield nicht leer - if (stext != "") { + 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)); - - } else { + 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 + { 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(".", 0)); //case insensitive, filter for anything + rf = RowFilter.orFilter(filters); + rowSorterMyImages.setRowFilter(rf); } + tablemyImages.clearSelection(); + + resetImageInfo(); } }); @@ -351,21 +327,22 @@ public class DeleteImage_GUI extends JFrame { // Prueft das die Auswahl nicht leer ist if (comboBox.getSelectedItem().toString() != "") { activeSearch = true; - rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox - .getSelectedItem().toString(), 2)); + + /*rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox + .getSelectedItem().toString(), 2));*/ rowSorterMyImages.setRowFilter(RowFilter.regexFilter( comboBox.getSelectedItem().toString(), 2)); - rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( - comboBox.getSelectedItem().toString(), 2)); + /*rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( + comboBox.getSelectedItem().toString(), 2));*/ } else { activeSearch = false; String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); rowSorterMyImages.setRowFilter(RowFilter.regexFilter( username, 4)); - rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( + /*rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( "true", 8)); - rowSorterAll.setRowFilter(null); + rowSorterAll.setRowFilter(null);*/ } } @@ -506,134 +483,6 @@ public class DeleteImage_GUI extends JFrame { } } - /* - * } else if (tablePublicVorlagen.getSelectedRowCount() != 0 - * && modelPublicVorlagen .getValueAt( tablePublicVorlagen - * .convertRowIndexToModel(tablePublicVorlagen - * .getSelectedRow()), 4) .equals(username)) { - * - * // frage, soll das selektierte Daten geloescht werden? - * eingabe = JOptionPane.showConfirmDialog(null, - * "Wollen Sie diese Daten löschen?", "Löschen?", - * JOptionPane.YES_NO_OPTION); - * - * if (eingabe == JOptionPane.YES_OPTION) { - * - * imageid = modelPublicVorlagen .getValueAt( - * tablePublicVorlagen - * .convertRowIndexToModel(tablePublicVorlagen - * .getSelectedRow()), 6) .toString(); - * - * imageversion = modelPublicVorlagen .getValueAt( - * tablePublicVorlagen - * .convertRowIndexToModel(tablePublicVorlagen - * .getSelectedRow()), 7) .toString(); - * - * // TODO // Image darf nur geloescht werden, wenn keine // - * Veranstaltung mehr auf das Image verweist. // Unbdingt - * abfragen! - * - * try { if (!client.connectedToLecture(imageid, - * imageversion)) { try { client.deleteImageServer(imageid, - * imageversion); if (client.deleteImageData(imageid, - * imageversion)) { // if (client.deleteImageServer(imageid - * // ,imageversion)) { - * - * DeleteImage_GUI di = new DeleteImage_GUI(); - * di.setVisible(true); dispose(); - * - * - * - * } else { - * - * JOptionPane .showConfirmDialog( null, - * "Löschen von der DB hat leider nicht geklappt!!", - * "Fehler", JOptionPane.INFORMATION_MESSAGE); } } catch - * (HeadlessException e) { // TODO Auto-generated catch - * block e.printStackTrace(); JOptionPane.showMessageDialog( - * null, e.getCause() + "\n" + e.getStackTrace(), - * "Debug-Message", JOptionPane.ERROR_MESSAGE); } catch - * (TException e) { // TODO Auto-generated catch block - * e.printStackTrace(); JOptionPane.showMessageDialog( null, - * e.getCause() + "\n" + e.getStackTrace(), "Debug-Message", - * JOptionPane.ERROR_MESSAGE); } - * - * } else { - * - * JOptionPane .showMessageDialog( null, - * "Image kann nicht gelöscht werden, da mindestens eine Veranstaltung mit diesem Image verlinkt ist." - * , "Verlinkung vorhanden", - * JOptionPane.INFORMATION_MESSAGE); } } catch (TException - * e) { // TODO Auto-generated catch block - * e.printStackTrace(); JOptionPane.showMessageDialog(null, - * e.getCause() + "\n" + e.getStackTrace(), "Debug-Message", - * JOptionPane.ERROR_MESSAGE); } } - * - * } else if (tableAllImages.getSelectedRowCount() != 0 && - * modelAll.getValueAt( tableAllImages - * .convertRowIndexToModel(tableAllImages - * .getSelectedRow()), 4).equals( username)) { - * - * // frage, soll das selektierte Daten geloescht werden? - * eingabe = JOptionPane.showConfirmDialog(null, - * "Wollen Sie diese Daten löschen?", "Löschen?", - * JOptionPane.YES_NO_OPTION); - * - * if (eingabe == JOptionPane.YES_OPTION) { - * - * imageid = modelAll.getValueAt( tableAllImages - * .convertRowIndexToModel(tableAllImages - * .getSelectedRow()), 6) .toString(); - * - * imageversion = modelAll.getValueAt( tableAllImages - * .convertRowIndexToModel(tableAllImages - * .getSelectedRow()), 7) .toString(); - * - * // TODO // Image darf nur geloescht werden, wenn keine // - * Veranstaltung mehr auf das Image verweist. // Unbdingt - * abfragen! - * - * try { if (!client.connectedToLecture(imageid, - * imageversion)) { try { client.deleteImageServer(imageid, - * imageversion); if (client.deleteImageData(imageid, - * imageversion)) { // if (client.deleteImageServer(imageid - * // ,imageversion)) { - * - * DeleteImage_GUI di = new DeleteImage_GUI(); - * di.setVisible(true); dispose(); - * - * - * } else { - * - * JOptionPane .showConfirmDialog( null, - * "Löschen von der DB hat leider nicht geklappt!!", - * "Fehler", JOptionPane.INFORMATION_MESSAGE); } } catch - * (HeadlessException e) { // TODO Auto-generated catch - * block e.printStackTrace(); JOptionPane.showMessageDialog( - * null, e.getCause() + "\n" + e.getStackTrace(), - * "Debug-Message", JOptionPane.ERROR_MESSAGE); } catch - * (TException e) { // TODO Auto-generated catch block - * e.printStackTrace(); JOptionPane.showMessageDialog( null, - * e.getCause() + "\n" + e.getStackTrace(), "Debug-Message", - * JOptionPane.ERROR_MESSAGE); } - * - * } else { - * - * JOptionPane .showMessageDialog( null, - * "Image kann nicht gelöscht werden, da mindestens eine Veranstaltung mit diesem Image verlinkt ist." - * , "Verlinkung vorhanden", - * JOptionPane.INFORMATION_MESSAGE); } } catch (TException - * e) { // TODO Auto-generated catch block - * e.printStackTrace(); JOptionPane.showMessageDialog(null, - * e.getCause() + "\n" + e.getStackTrace(), "Debug-Message", - * JOptionPane.ERROR_MESSAGE); } } - * - * } else { - * - * JOptionPane.showMessageDialog(null, - * "Bitte wählen Sie ein eigenes Image aus", "Message", - * JOptionPane.INFORMATION_MESSAGE); - */ } } @@ -923,7 +772,8 @@ public class DeleteImage_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++; @@ -941,6 +791,24 @@ public class DeleteImage_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 { diff --git a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java index 09cf5dd8..8378b6a8 100644 --- a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java @@ -76,7 +76,6 @@ public class PermissionCreateImage_GUI extends JFrame { Object[] titles = { "Name", "Read", "Write", "Link", "Admin", "userID" }; private List<Person> map = null; // List of people who have rights Component c = null; - // Map<String,String> ogUsers = new HashMap(); final DefaultTableModel model = new DefaultTableModel(titles, 0) { @@ -129,7 +128,7 @@ public class PermissionCreateImage_GUI extends JFrame { // TODO Auto-generated catch block e.printStackTrace(); } - setTitle("bwLehrpool Suite - Image erzeugen"); + setTitle("bwLehrpool Suite - Image bearbeiten"); setBounds(0, 0, 603, 722); setLocationRelativeTo(formerGUI); @@ -153,7 +152,7 @@ public class PermissionCreateImage_GUI extends JFrame { txtpnBitteWhlenSie.setEditable(false); txtpnBitteWhlenSie.setBackground(SystemColor.menu); txtpnBitteWhlenSie - .setText("Definieren Sie hier bitte die gewünschten Berechtigungen für ihr Image"); + .setText("Definieren Sie hier bitte die gewünschten Berechtigungen für Ihr Image"); txtpnBitteWhlenSie.setBounds(10, 36, 509, 32); panel.add(txtpnBitteWhlenSie); } @@ -269,6 +268,7 @@ public class PermissionCreateImage_GUI extends JFrame { (String) titles[1])); // tc1.setCellRenderer(cellRenderer) + TableColumn tc2 = table.getColumnModel().getColumn(2); tc2.setCellEditor(table.getDefaultEditor(Boolean.class)); tc2.setCellRenderer(table.getDefaultRenderer(Boolean.class)); @@ -595,7 +595,15 @@ public class PermissionCreateImage_GUI extends JFrame { table.setValueAt(new Boolean(checked), x, 2); // set write table.setValueAt(new Boolean(checked), x, 3); // set link table.setValueAt(new Boolean(checked), x, 4); //set admin + //TODO + //also set table header (un-)selected } + JTableHeader header = table.getTableHeader(); + //header.getColumnModel().getColumn(1).setHeaderValue(Status.); + //header.getColumnModel().getColumn(2).setHeaderValue(new Boolean(checked)); + //model.setValueAt(new Boolean(checked), 0, 1); + //table.setValueAt(new Boolean(checked), 0, 1); + } } @@ -676,11 +684,14 @@ public class PermissionCreateImage_GUI extends JFrame { } // end class -class CheckBoxHeader extends JCheckBox implements TableCellRenderer, - MouseListener { +class CheckBoxHeader extends JCheckBox implements TableCellRenderer,MouseListener +{ + protected CheckBoxHeader rendererComponent; protected int column; protected boolean mousePressed = false; + //protected boolean readFlag = false, writeFlag = false, linkFlag = false, adminFlag = false; + public CheckBoxHeader(ItemListener itemListener, String text) { rendererComponent = this; @@ -713,20 +724,59 @@ class CheckBoxHeader extends JCheckBox implements TableCellRenderer, return column; } - protected void handleClickEvent(MouseEvent e) { - if (mousePressed) { + protected void handleClickEvent(MouseEvent e) + { + + if (mousePressed) + { mousePressed = false; JTableHeader header = (JTableHeader) (e.getSource()); JTable tableView = header.getTable(); TableColumnModel columnModel = tableView.getColumnModel(); int viewColumn = columnModel.getColumnIndexAtX(e.getX()); int column = tableView.convertColumnIndexToModel(viewColumn); + - if (viewColumn == this.column && e.getClickCount() == 1 - && column != -1) { + if (viewColumn == this.column && e.getClickCount() == 1 && column != -1) + { doClick(); } + + + /* + //also set dependent headers clicked + switch(viewColumn) + { + + case 2: //write + //also set read + if (viewColumn == ++this.column && e.getClickCount() == 1 && column != -1 && writeFlag == false && readFlag == false) //going backward through table --> ++ + { + doClick(); + writeFlag = true; + readFlag = true; + } + break; + case 3: //link + //also set read + if (viewColumn == (this.column+2) && e.getClickCount() == 1 && column != -1) //going backward through table --> ++ + { + //System.out.println("clickCount: " + e.getClickCount()); + doClick(); + //System.out.println("viewColumn = " + viewColumn + "++this.column = "+ ++this.column); + } + break; + + case 4: //admin + + break; + default: + break; + } + */ } + + //doClick(); } public void mouseClicked(MouseEvent e) { diff --git a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java index 5942c49d..403520a0 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchEditImage_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; @@ -36,7 +37,6 @@ import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JSeparator; -import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; @@ -46,8 +46,6 @@ import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; @@ -63,9 +61,8 @@ import org.apache.thrift.TException; import server.generated.Server.Client; import thrift.ThriftConnection; -import util.GuiOrganizer; -//import models.person; import util.OpenLinks; +//import models.person; @SuppressWarnings("serial") public class SearchEditImage_GUI extends JFrame { @@ -73,8 +70,9 @@ public class SearchEditImage_GUI extends JFrame { /** * Logger instance for this class. */ - private final static Logger LOGGER = Logger.getLogger(SearchEditImage_GUI.class); - + private final static Logger LOGGER = Logger + .getLogger(SearchEditImage_GUI.class); + private final JPanel contentPanel = new JPanel(); JLabel labelName; JLabel labelUpdate; @@ -100,52 +98,56 @@ public class SearchEditImage_GUI extends JFrame { Component c = null; int requiredPermission = 1; // 0=Read, 1= Write, 2=LinkAllowed, 3=Admin String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung", - "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" };// Angezeigt + "Verantwortlicher", "Letztes Update", "ID", "Version", "Template", "Beschreibung" };// Angezeigt // werden // aber // nur - // Name (0), - // OS (2), - // Verantwortlicher (4), + // Name + // (0), + // OS + // (2), + // Verantwortlicher + // (4), // Letztes - // Update (5) - - private static final String HELP_MESSAGE = "<html><div align=\"center\">" + - "Suchen Sie Images und laden Sie sie direkt herunter.<br />" + - "Sie können die Volltextsuche nutzen und nach Betriebssystemen filtern.<br />" + - "Die Volltextsuche sucht in den Feldern Name und Beschreibung.<br />" + - "Klicken Sie auf \"Weiter\" um das Image für weitere Schritte auszuwählen." + - "</div></html>"; + // Update + // (5) + + private static final String HELP_MESSAGE = "<html><div align=\"center\">" + + "Suchen Sie Images und laden Sie sie direkt herunter.<br />" + + "Sie können die Volltextsuche nutzen und nach Betriebssystemen filtern.<br />" + + "Die Volltextsuche sucht in den Feldern Name und Beschreibung.<br />" + + "Klicken Sie auf \"Weiter\" um das Image für weitere Schritte auszuwählen." + + "</div></html>"; ThriftConnection con = new ThriftConnection(); Client client = models.Client.clientcon.getClient(); - final DefaultTableModel modelAll = new DefaultTableModel(titles, 0) { - public boolean isCellEditable(int rowIndex, int mColIndex) { - return false; - } - }; + + + final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0) { public boolean isCellEditable(int rowIndex, int mColIndex) { return false; } }; - final DefaultTableModel modelPublicVorlagen = new DefaultTableModel(titles, - 0) { - public boolean isCellEditable(int rowIndex, int mColIndex) { - return false; - } - }; - final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>( - modelAll); + + final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>( - modelMyImages); - final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>( - modelPublicVorlagen); + modelMyImages); + + RowFilter rf = null; + List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2); + /** - * Create the dialog. + * Create the dialog. */ public SearchEditImage_GUI(Component formerGUI) { + + + filters.add(RowFilter.regexFilter(".", 0)); + rf = RowFilter.orFilter(filters); + + addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { @@ -157,15 +159,14 @@ public class SearchEditImage_GUI extends JFrame { @Override public void windowOpened(WindowEvent arg0) { initTableModel(modelMyImages); - initTableModel(modelAll); - initTableModel(modelPublicVorlagen); - - //auszublendende Angaben - //1=Lizenzpflichtig - //3=Veranstaltung - //6=ID - //7=Version - //8=Template + + // auszublendende Angaben + // 1=Lizenzpflichtig + // 3=Veranstaltung + // 6=ID + // 7=Version + // 8=Template + // 9=Beschreibung (needed for full text search) tablemyImages.getColumnModel().getColumn(1).setWidth(0); tablemyImages.getColumnModel().getColumn(1).setMinWidth(0); tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0); @@ -181,49 +182,10 @@ public class SearchEditImage_GUI extends JFrame { tablemyImages.getColumnModel().getColumn(7).setWidth(0); tablemyImages.getColumnModel().getColumn(7).setMinWidth(0); tablemyImages.getColumnModel().getColumn(7).setMaxWidth(0); - /* - tablePublicVorlagen.getColumnModel().getColumn(1).setWidth(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(8).setWidth(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(7).setWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(7) - .setMinWidth(0); - tablePublicVorlagen.getColumnModel().getColumn(7) - .setMaxWidth(0); - - tableAllImages.getColumnModel().getColumn(1).setWidth(0); - tableAllImages.getColumnModel().getColumn(1).setMinWidth(0); - tableAllImages.getColumnModel().getColumn(1).setMaxWidth(0); - tableAllImages.getColumnModel().getColumn(3).setWidth(0); - tableAllImages.getColumnModel().getColumn(3).setMinWidth(0); - tableAllImages.getColumnModel().getColumn(3).setMaxWidth(0); - tableAllImages.getColumnModel().getColumn(8).setWidth(0); - tableAllImages.getColumnModel().getColumn(8).setMinWidth(0); - tableAllImages.getColumnModel().getColumn(8).setMaxWidth(0); - tableAllImages.getColumnModel().getColumn(6).setWidth(0); - tableAllImages.getColumnModel().getColumn(6).setMinWidth(0); - tableAllImages.getColumnModel().getColumn(6).setMaxWidth(0); - tableAllImages.getColumnModel().getColumn(7).setWidth(0); - tableAllImages.getColumnModel().getColumn(7).setMinWidth(0); - tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0); - */ + tablemyImages.getColumnModel().getColumn(9).setWidth(0); + tablemyImages.getColumnModel().getColumn(9).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(9).setMaxWidth(0); + textFieldName.requestFocusInWindow(); } }); @@ -235,7 +197,6 @@ public class SearchEditImage_GUI extends JFrame { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { - // TODO Auto-generated catch block e.printStackTrace(); } // Setzt den Fenstertitel @@ -244,7 +205,7 @@ public class SearchEditImage_GUI extends JFrame { setBounds(0, 0, 918, 722); setLocationRelativeTo(formerGUI); - final DefaultTableModel model = new DefaultTableModel(titles, 0); + //final DefaultTableModel model = new DefaultTableModel(titles, 0); getContentPane().setLayout(null); { @@ -254,7 +215,7 @@ public class SearchEditImage_GUI extends JFrame { getContentPane().add(panel); panel.setLayout(null); { - + lblNewLabel.setBounds(10, 11, 509, 22); panel.add(lblNewLabel); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18)); @@ -291,34 +252,42 @@ public class SearchEditImage_GUI extends JFrame { panel_1.add(lblInternetIstInnerhalb); textFieldName = new JTextField(); + // Key Listener der Tastatureingabe registriert textFieldName.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { // Textfield eingabe auslesen + String stext = textFieldName.getText(); + + //System.out.println("Help, I don't want to be filtered yet...."); // Wenn Textfield nicht leer - if (stext.isEmpty() == false) { + if (stext.trim().length() > 0) { 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); + rowSorterMyImages.setRowFilter(rf); + + + } else { 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(".", 0)); //case insensitive, filter for anything + rf = RowFilter.orFilter(filters); + rowSorterMyImages.setRowFilter(rf); } + tablemyImages.clearSelection(); + + resetImageInfo(); } + }); textFieldName.setBounds(133, 30, 400, 20); @@ -337,11 +306,12 @@ public class SearchEditImage_GUI extends JFrame { comboBox.addItem(list.get(i)); } } catch (TException e2) { - // TODO Auto-generated catch block e2.printStackTrace(); - JOptionPane.showMessageDialog(c, - "Konnte die Liste der Betriebssysteme vom Server nicht abfragen!", "Fehlermeldung", - JOptionPane.ERROR_MESSAGE); + JOptionPane + .showMessageDialog( + c, + "Konnte die Liste der Betriebssysteme vom Server nicht abfragen!", + "Fehlermeldung", JOptionPane.ERROR_MESSAGE); } // Registriert Auswahlaenderungen der Box comboBox.addActionListener(new ActionListener() { @@ -350,21 +320,19 @@ public class SearchEditImage_GUI extends JFrame { if (comboBox.getSelectedItem().toString().isEmpty() == false) { // Filtert nach dem ausgewaehlten Betriebssystem activeSearch = true; - rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox - .getSelectedItem().toString(), 2)); - rowSorterMyImages.setRowFilter(RowFilter.regexFilter( - comboBox.getSelectedItem().toString(), 2)); - rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( - comboBox.getSelectedItem().toString(), 2)); + + rowSorterMyImages.setRowFilter(RowFilter.regexFilter(comboBox.getSelectedItem().toString(), 2)); + + + } else { + + 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); + rowSorterMyImages.setRowFilter(RowFilter.regexFilter(username, 4)); + } } @@ -412,154 +380,74 @@ public class SearchEditImage_GUI extends JFrame { String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); // check if user is in correct tab - /*if (tabbedPane.getSelectedIndex() == 0) { */ - // check if a row is selected - if (tablemyImages.getSelectedRow() != -1) { - String imageid = modelMyImages.getValueAt( - tablemyImages - .convertRowIndexToModel(tablemyImages - .getSelectedRow()), 6) - .toString(); - - Image.image.setImageId(imageid); - String imageversion = modelMyImages.getValueAt( - tablemyImages - .convertRowIndexToModel(tablemyImages - .getSelectedRow()), 7) - .toString(); - - Image.image.setVersion(imageversion); - - FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI(c); - ea.setVisible(true); - dispose(); - /* } - } else if (tabbedPane.getSelectedIndex() == 1) { - if (tablePublicVorlagen.getSelectedRow() != -1) { - if (modelPublicVorlagen - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), 4) - .equals(username) == true - || modelPublicVorlagen - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), - 8).equals("true") == true) { - String imageid = modelPublicVorlagen - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), - 6).toString(); + /* if (tabbedPane.getSelectedIndex() == 0) { */ + // check if a row is selected + if (tablemyImages.getSelectedRow() != -1) { + String imageid = modelMyImages.getValueAt( + tablemyImages.convertRowIndexToModel(tablemyImages + .getSelectedRow()), 6).toString(); - Image.image.setImageId(imageid); - String imageversion = modelPublicVorlagen - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), - 7).toString(); + Image.image.setImageId(imageid); + String imageversion = modelMyImages.getValueAt( + tablemyImages.convertRowIndexToModel(tablemyImages + .getSelectedRow()), 7).toString(); - Image.image.setVersion(imageversion); + Image.image.setVersion(imageversion); - FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI(); - ea.setVisible(true); - dispose(); - } else { - JOptionPane - .showMessageDialog( - null, - "Sie haben keine Berechtigung fremde Images herunterzuladen.", - "Message", - JOptionPane.INFORMATION_MESSAGE); - } - } - } else if (tabbedPane.getSelectedIndex() == 2) { - if (tableAllImages.getSelectedRow() != -1) { - if (modelAll.getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), 4).equals( - username) == true - || modelAll - .getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), - 8).equals("true") == true) { - String imageid = modelAll - .getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), - 6).toString(); - - Image.image.setImageId(imageid); - String imageversion = modelAll - .getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), - 7).toString(); - - Image.image.setVersion(imageversion); + FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI(c); + ea.setVisible(true); + dispose(); - FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI(); - ea.setVisible(true); - dispose(); - } else { - JOptionPane - .showMessageDialog( - null, - "Sie haben keine Berechtigung fremde Images herunterzuladen.", - "Message", - JOptionPane.INFORMATION_MESSAGE); - }//end actionPerformed - } */ } else { - JOptionPane - .showMessageDialog( - c, - "Bitte wählen Sie ein Image für den Download aus", - "Message", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(c, + "Bitte wählen Sie ein Image für den Download aus", + "Message", JOptionPane.INFORMATION_MESSAGE); } } }); btnDownload.setBounds(449, 508, 118, 23); contentPanel.add(btnDownload); + + JScrollPane scrollPaneMyImage = new JScrollPane(); + scrollPaneMyImage.setBounds(10, 158, 557, 339); + contentPanel.add(scrollPaneMyImage); + tablemyImages = new JTable(); + + tablemyImages.getSelectionModel().addListSelectionListener( + new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + + if (tablemyImages.getSelectedRow() != -1) { + + //zeige die ganzen Details an + String imageid = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), + 6).toString(); + String version = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), + 7).toString(); + writeImageData(imageid, version); + } + } + }); + tablemyImages.setModel(modelMyImages); + tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit(); + tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit(); + tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit(); + tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit(); + tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit(); - JScrollPane scrollPaneMyImage = new JScrollPane(); - scrollPaneMyImage.setBounds(10, 158, 557, 339); - contentPanel.add(scrollPaneMyImage); - tablemyImages = new JTable(); - tablemyImages.getSelectionModel().addListSelectionListener( - new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { - String imageid = modelMyImages.getValueAt( - tablemyImages - .convertRowIndexToModel(tablemyImages - .getSelectedRow()), 6) - .toString(); - String version = modelMyImages.getValueAt( - tablemyImages - .convertRowIndexToModel(tablemyImages - .getSelectedRow()), 7) - .toString(); - writeImageData(imageid, version); - } - }); - tablemyImages.setModel(modelMyImages); - tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit(); - tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit(); - tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit(); - tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit(); - tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit(); - tablemyImages.setRowSorter(rowSorterMyImages); - - scrollPaneMyImage.setViewportView(tablemyImages); + rowSorterMyImages.setRowFilter(rf); + tablemyImages.setRowSorter(rowSorterMyImages); + + + scrollPaneMyImage.setViewportView(tablemyImages); { JPanel buttonPane = new JPanel(); buttonPane.setBounds(0, 640, 902, 33); @@ -589,97 +477,33 @@ public class SearchEditImage_GUI extends JFrame { String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); // check if user is in correct tab - //if (tabbedPane.getSelectedIndex() == 0) { - // check if a row is selected - if (tablemyImages.getSelectedRow() != -1) { - String imageid = modelMyImages - .getValueAt( - tablemyImages - .convertRowIndexToModel(tablemyImages - .getSelectedRow()), - 6).toString(); - - Image.image.setImageId(imageid); - String imageversion = modelMyImages - .getValueAt( - tablemyImages - .convertRowIndexToModel(tablemyImages - .getSelectedRow()), - 7).toString(); - - Image.image.setVersion(imageversion); - - EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI(c); - ea.setVisible(true); - dispose(); - } - /* } else if (tabbedPane.getSelectedIndex() == 1) { - if (tablePublicVorlagen.getSelectedRow() != -1 - && modelPublicVorlagen //deprecated(?) - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), - 4).equals(username) == true) { - String imageid = modelPublicVorlagen - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), - 6).toString(); - - Image.image.setImageId(imageid); - String imageversion = modelPublicVorlagen - .getValueAt( - tablePublicVorlagen - .convertRowIndexToModel(tablePublicVorlagen - .getSelectedRow()), - 7).toString(); - - Image.image.setVersion(imageversion); - - EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI(); - ea.setVisible(true); - dispose(); - } - } else if (tabbedPane.getSelectedIndex() == 2) { - if (tableAllImages.getSelectedRow() != -1 - && modelAll - .getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), - 4).equals(username) == true) { - String imageid = modelAll - .getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), - 6).toString(); - - Image.image.setImageId(imageid); - String imageversion = modelAll - .getValueAt( - tableAllImages - .convertRowIndexToModel(tableAllImages - .getSelectedRow()), - 7).toString(); - - Image.image.setVersion(imageversion); - - EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI(); - ea.setVisible(true); - dispose(); - } else { - JOptionPane - .showMessageDialog( - null, - "Bitte wählen Sie ein eigenes Image aus.", - "Image Auswahl", - JOptionPane.INFORMATION_MESSAGE); - } - }// end check if correct tab is selected - */}//end actionPerformed + // if (tabbedPane.getSelectedIndex() == 0) { + // check if a row is selected + if (tablemyImages.getSelectedRow() != -1) { + String imageid = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), + 6).toString(); + + Image.image.setImageId(imageid); + String imageversion = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), + 7).toString(); + + Image.image.setVersion(imageversion); + + EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI( + c); + ea.setVisible(true); + dispose(); + } + + }// end actionPerformed }); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); @@ -875,37 +699,49 @@ public class SearchEditImage_GUI extends JFrame { } }); mnNewMenu_1.add(mntmAbout); - + JMenu mnNewMenu_Info = new JMenu("Info"); mnNewMenu_Info.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { - JOptionPane.showMessageDialog(c, HELP_MESSAGE, "Hilfe zu dieser Oberfläche", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(c, HELP_MESSAGE, + "Hilfe zu dieser Oberfläche", + JOptionPane.INFORMATION_MESSAGE); } }); menuBar.add(mnNewMenu_Info); c = this; + } // Initiale Beffuelung eines Table models public DefaultTableModel initTableModel(DefaultTableModel model) { + + LOGGER.debug("trying to init table first time... in: searcheditimage_gui"); + List<server.generated.Image> images; try { // Hole eine Liste der passenden Images - images = client.getImageListPermissionWrite(person.verantwortlicher.getUserID()); - System.out.println("User is: "+person.verantwortlicher.getUserID()); - //images = client.getImageList(person.verantwortlicher.getUserID(), requiredPermission); + images = client.getImageListPermissionWrite(person.verantwortlicher + .getUserID()); + System.out.println("User is: " + + person.verantwortlicher.getUserID()); + // images = client.getImageList(person.verantwortlicher.getUserID(), + // requiredPermission); 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; + //System.out.println("Imagesize is: "+images.size()); while (i.hasNext()) { // erzeuge Objekte fuer die Tabelle - LOGGER.debug("Image last updated on: " + images.get(x).updateTime); + LOGGER.debug("Image last updated on: " + + images.get(x).updateTime); LOGGER.debug("Image name: " + images.get(x).getImageName()); + Object[] obj = { images.get(x).getImageName(), images.get(x).getLicenseRestriction(), images.get(x).getOsName(), @@ -913,14 +749,16 @@ public class SearchEditImage_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); + LOGGER.info("Counting model.getRowCount(): "+model.getRowCount()); x++; i.next(); - } + LOGGER.info("Finished counting crap, mo"+model.getRowCount()); return model; } catch (TException | ParseException e1) { @@ -932,6 +770,25 @@ public class SearchEditImage_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 { @@ -941,7 +798,8 @@ public class SearchEditImage_GUI extends JFrame { labelName.setText(res.get("name")); labelOS.setText(res.get("os")); labelUpdate.setText(out.format(in.parse(res.get("lastupdate")))); - labelVerantwortlicher.setText(res.get("owner") + " (" + res.get("mail") + ")"); + labelVerantwortlicher.setText(res.get("owner") + " (" + + res.get("mail") + ")"); labelWeitereVerantwortliche.setText("Noch nicht Verfügbar"); if (res.get("template").equals("true")) { labelVorlage.setText("Ja"); diff --git a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java index 49e71b7d..67aab17d 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java @@ -300,24 +300,21 @@ public class SearchImage_GUI extends JFrame { String stext = textFieldName.getText().trim();
// Wenn Textfield nicht leer
- if (stext != "") {
+ 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));
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0));
- } else { //refresh list (deprecated, remove tabfolder)
+ }
+ 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));
+ String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8));
rowSorterAll.setRowFilter(null);
}
}
@@ -463,7 +460,7 @@ public class SearchImage_GUI extends JFrame { public void valueChanged(ListSelectionEvent e) {
String imageid = modelMyImages.getValueAt(
tablemyImages
- .convertRowIndexToModel(tablemyImages
+ .convertRowIndexToModel(tablemyImages //hier wird auf myImages zugegriffen, obwohl man sich in Vorlage oder "Alle" befindet.
.getSelectedRow()), 6)
.toString();
String version = modelMyImages.getValueAt(
diff --git a/dozentenmodulserver/src/main/java/server/generated/Image.java b/dozentenmodulserver/src/main/java/server/generated/Image.java index 1c8291f7..707864e6 100644 --- a/dozentenmodulserver/src/main/java/server/generated/Image.java +++ b/dozentenmodulserver/src/main/java/server/generated/Image.java @@ -44,6 +44,7 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav private static final org.apache.thrift.protocol.TField UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("updateTime", org.apache.thrift.protocol.TType.STRING, (short)7); private static final org.apache.thrift.protocol.TField USER_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("userData", org.apache.thrift.protocol.TType.STRING, (short)8); private static final org.apache.thrift.protocol.TField IS_TEMPLATE_FIELD_DESC = new org.apache.thrift.protocol.TField("isTemplate", org.apache.thrift.protocol.TType.STRING, (short)9); + private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)10); private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); static { @@ -60,6 +61,7 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav public String updateTime; // required public String userData; // required public String isTemplate; // required + public String description; // required /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -71,7 +73,8 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav LECTURE_NAME((short)6, "lectureName"), UPDATE_TIME((short)7, "updateTime"), USER_DATA((short)8, "userData"), - IS_TEMPLATE((short)9, "isTemplate"); + IS_TEMPLATE((short)9, "isTemplate"), + DESCRIPTION((short)10, "description"); private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); @@ -104,6 +107,8 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav return USER_DATA; case 9: // IS_TEMPLATE return IS_TEMPLATE; + case 10: // DESCRIPTION + return DESCRIPTION; default: return null; } @@ -165,6 +170,8 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.IS_TEMPLATE, new org.apache.thrift.meta_data.FieldMetaData("isTemplate", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Image.class, metaDataMap); } @@ -181,7 +188,8 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav String lectureName, String updateTime, String userData, - String isTemplate) + String isTemplate, + String description) { this(); this.id = id; @@ -193,6 +201,7 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav this.updateTime = updateTime; this.userData = userData; this.isTemplate = isTemplate; + this.description = description; } /** @@ -226,6 +235,9 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav if (other.isSetIsTemplate()) { this.isTemplate = other.isTemplate; } + if (other.isSetDescription()) { + this.description = other.description; + } } public Image deepCopy() { @@ -243,6 +255,7 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav this.updateTime = null; this.userData = null; this.isTemplate = null; + this.description = null; } public String getId() { @@ -461,6 +474,30 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav } } + public String getDescription() { + return this.description; + } + + public Image setDescription(String description) { + this.description = description; + return this; + } + + public void unsetDescription() { + this.description = null; + } + + /** Returns true if field description is set (has been assigned a value) and false otherwise */ + public boolean isSetDescription() { + return this.description != null; + } + + public void setDescriptionIsSet(boolean value) { + if (!value) { + this.description = null; + } + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case ID: @@ -535,6 +572,14 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav } break; + case DESCRIPTION: + if (value == null) { + unsetDescription(); + } else { + setDescription((String)value); + } + break; + } } @@ -567,6 +612,9 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav case IS_TEMPLATE: return getIsTemplate(); + case DESCRIPTION: + return getDescription(); + } throw new IllegalStateException(); } @@ -596,6 +644,8 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav return isSetUserData(); case IS_TEMPLATE: return isSetIsTemplate(); + case DESCRIPTION: + return isSetDescription(); } throw new IllegalStateException(); } @@ -694,6 +744,15 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav return false; } + boolean this_present_description = true && this.isSetDescription(); + boolean that_present_description = true && that.isSetDescription(); + if (this_present_description || that_present_description) { + if (!(this_present_description && that_present_description)) + return false; + if (!this.description.equals(that.description)) + return false; + } + return true; } @@ -800,6 +859,16 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav return lastComparison; } } + lastComparison = Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetDescription()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -891,6 +960,14 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav sb.append(this.isTemplate); } first = false; + if (!first) sb.append(", "); + sb.append("description:"); + if (this.description == null) { + sb.append("null"); + } else { + sb.append(this.description); + } + first = false; sb.append(")"); return sb.toString(); } @@ -1006,6 +1083,14 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; + case 10: // DESCRIPTION + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.description = iprot.readString(); + struct.setDescriptionIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } @@ -1066,6 +1151,11 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav oprot.writeString(struct.isTemplate); oprot.writeFieldEnd(); } + if (struct.description != null) { + oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC); + oprot.writeString(struct.description); + oprot.writeFieldEnd(); + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -1111,7 +1201,10 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav if (struct.isSetIsTemplate()) { optionals.set(8); } - oprot.writeBitSet(optionals, 9); + if (struct.isSetDescription()) { + optionals.set(9); + } + oprot.writeBitSet(optionals, 10); if (struct.isSetId()) { oprot.writeString(struct.id); } @@ -1139,12 +1232,15 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav if (struct.isSetIsTemplate()) { oprot.writeString(struct.isTemplate); } + if (struct.isSetDescription()) { + oprot.writeString(struct.description); + } } @Override public void read(org.apache.thrift.protocol.TProtocol prot, Image struct) throws org.apache.thrift.TException { TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(9); + BitSet incoming = iprot.readBitSet(10); if (incoming.get(0)) { struct.id = iprot.readString(); struct.setIdIsSet(true); @@ -1181,6 +1277,10 @@ public class Image implements org.apache.thrift.TBase<Image, Image._Fields>, jav struct.isTemplate = iprot.readString(); struct.setIsTemplateIsSet(true); } + if (incoming.get(9)) { + struct.description = iprot.readString(); + struct.setDescriptionIsSet(true); + } } } diff --git a/dozentenmodulserver/src/main/java/sql/SQL.java b/dozentenmodulserver/src/main/java/sql/SQL.java index 3bd672e6..3af3bb8f 100644 --- a/dozentenmodulserver/src/main/java/sql/SQL.java +++ b/dozentenmodulserver/src/main/java/sql/SQL.java @@ -350,22 +350,23 @@ public class SQL { // ResultSet
// res=stm.executeQuery("SELECT vl.GUID_imageID, vl.imageVersion,vl.image_name, vl.cond_hasLicenseRestriction, os.name,os.architecture, '' as lecture,vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate FROM bwLehrpool.pm_VLData_image as pmi, bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and vl.image_owner=u.userID and vl.image_name not in (SELECT vl.image_name FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_VLData_lecture lect, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and lect.imageID=vl.GUID_imageID and vl.image_owner=u.userID) union SELECT vl.GUID_imageID, vl.imageVersion,vl.image_name, vl.cond_hasLicenseRestriction, os.name,os.architecture, lect.name as lecture, vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_VLData_lecture lect, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and lect.imageID=vl.GUID_imageID and vl.image_owner=u.userID;");
ResultSet res = stm
- .executeQuery("SELECT DISTINCT vl.GUID_imageID, vl.imageVersion, vl.image_name, vl.cond_hasLicenseRestriction, os.name, os.architecture, '' as lecture, vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate FROM bwLehrpool.pm_VLData_image pmi, bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u WHERE pmi.userID='"
+ .executeQuery("SELECT DISTINCT vl.GUID_imageID, vl.imageVersion, vl.image_name, vl.cond_hasLicenseRestriction, os.name, os.architecture, '' as lecture, vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate, vl.image_description FROM bwLehrpool.pm_VLData_image pmi, bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u WHERE pmi.userID='"
+ userID
+ "' AND u.userID = pmi.userID AND pmi.image_write = 1 AND pmi.GUID_imageID = vl.GUID_imageID AND vl.content_operatingSystem=os.operatingSystemID;");
while (res.next()) {
- list.add(new Image(res.getString("GUID_imageID"), res
- .getString("imageVersion"),
- res.getString("image_name"), res
- .getString("cond_hasLicenseRestriction"), res
- .getString("name")
- + " "
- + res.getString("architecture") + " bit", res
- .getString("lecture"), res
- .getString("image_update_time"), res
- .getString("user"), res
- .getString("image_isTemplate")));
+ list.add(new Image(res.getString("GUID_imageID"),
+ res.getString("imageVersion"),
+ res.getString("image_name"),
+ res.getString("cond_hasLicenseRestriction"),
+ res.getString("name")
+ + " " +
+ res.getString("architecture") + " bit",
+ res.getString("lecture"),
+ res.getString("image_update_time"),
+ res.getString("user"),
+ res.getString("image_isTemplate"),
+ res.getString("image_description")));
}
con.close();
} catch (SQLException e) {
@@ -388,7 +389,7 @@ public class SQL { // ResultSet
// res=stm.executeQuery("SELECT vl.GUID_imageID, vl.imageVersion,vl.image_name, vl.cond_hasLicenseRestriction, os.name,os.architecture, '' as lecture,vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate FROM bwLehrpool.pm_VLData_image as pmi, bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and vl.image_owner=u.userID and vl.image_name not in (SELECT vl.image_name FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_VLData_lecture lect, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and lect.imageID=vl.GUID_imageID and vl.image_owner=u.userID) union SELECT vl.GUID_imageID, vl.imageVersion,vl.image_name, vl.cond_hasLicenseRestriction, os.name,os.architecture, lect.name as lecture, vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_VLData_lecture lect, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and lect.imageID=vl.GUID_imageID and vl.image_owner=u.userID;");
ResultSet res = stm
- .executeQuery("SELECT DISTINCT vl.GUID_imageID, vl.imageVersion, vl.image_name, vl.cond_hasLicenseRestriction, os.name, os.architecture, '' as lecture, vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate FROM bwLehrpool.pm_VLData_image pmi, bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u WHERE pmi.userID='"
+ .executeQuery("SELECT DISTINCT vl.GUID_imageID, vl.imageVersion, vl.image_name, vl.cond_hasLicenseRestriction, os.name, os.architecture, '' as lecture, vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user, vl.image_isTemplate, vl.image_description FROM bwLehrpool.pm_VLData_image pmi, bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u WHERE pmi.userID='"
+ userID
+ "' AND u.userID = pmi.userID AND pmi.image_read = 1 AND pmi.GUID_imageID = vl.GUID_imageID AND vl.content_operatingSystem=os.operatingSystemID;");
@@ -403,7 +404,8 @@ public class SQL { .getString("lecture"), res
.getString("image_update_time"), res
.getString("user"), res
- .getString("image_isTemplate")));
+ .getString("image_isTemplate"),
+ res.getString("image_description")));
}
con.close();
} catch (SQLException e) {
@@ -441,7 +443,8 @@ public class SQL { .getString("lecture"), res
.getString("image_update_time"), res
.getString("user"), res
- .getString("image_isTemplate")));
+ .getString("image_isTemplate"),
+ res.getString("image_description")));
}
con.close();
} catch (SQLException e) {
diff --git a/dozentenmodulserver/thrift/server.thrift b/dozentenmodulserver/thrift/server.thrift index 0f060808..9d8f7882 100644 --- a/dozentenmodulserver/thrift/server.thrift +++ b/dozentenmodulserver/thrift/server.thrift @@ -21,6 +21,7 @@ struct Image{ 7: string updateTime, 8: string userData, 9: string isTemplate, + 10: string description, } struct Lecture{ 1: string id, |
