diff options
Diffstat (limited to 'dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java | 181 |
1 files changed, 126 insertions, 55 deletions
diff --git a/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java b/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java index 415aea3c..929f9b2d 100644 --- a/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java +++ b/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java @@ -99,7 +99,7 @@ public class EditLectureLink_GUI extends JFrame { boolean activeSearch = false; Component c = null; String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung", - "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" }; + "Verantwortlicher", "Letztes Update", "ID", "Version", "Template", "Beschreibung" }; ThriftConnection con = new ThriftConnection(); Client client = models.Client.clientcon.getClient(); final DefaultTableModel modelAll = new DefaultTableModel(titles, 0) { @@ -126,6 +126,19 @@ public class EditLectureLink_GUI extends JFrame { modelPublicVorlagen); private JTextField textField; + + 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>>(); + + private static final String HELP_MESSAGE = "<html><div align=\"center\">" + "Ändern Sie hier das Image, zu dem Ihre Veranstaltung gehört.<br />" + "Wählen Sie das Image aus, das zu Ihrer Veranstaltung passt und klicken Sie anschließend auf \"Veranstaltung ändern und abschließen\"." @@ -178,32 +191,28 @@ public class EditLectureLink_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); @@ -220,6 +229,10 @@ public class EditLectureLink_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(); } }); @@ -290,26 +303,61 @@ public class EditLectureLink_GUI extends JFrame { public void keyReleased(KeyEvent e) { 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 { + orFilters.clear(); + andFilters.clear(); + finalFilters.clear(); + + orFilters.add(RowFilter.regexFilter("(?i)"+stext, 0)); //case insensitive + //preparation for search via lecture description. "9" has to be corrected as the index of titles + 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); + } + 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); + + String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); + + orFilters.clear(); + andFilters.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(); + + resetLectureInfo(); } @@ -335,20 +383,15 @@ public class EditLectureLink_GUI extends JFrame { // Prueft das die Auswahl nicht leer ist if (comboBox.getSelectedItem().toString() != "") { 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)); + rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox.getSelectedItem().toString(), 2)); + rowSorterMyImages.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( - "true", 8)); + rowSorterMyImages.setRowFilter(RowFilter.regexFilter(username, 4)); + rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8)); rowSorterAll.setRowFilter(null); } } @@ -388,6 +431,8 @@ public class EditLectureLink_GUI extends JFrame { contentPanel.add(lblNewLabel_1); tabbedPane = new JTabbedPane(JTabbedPane.TOP); + //not needed anymore, as the filters are set by the full text search completely + /* tabbedPane.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent arg0) { if (tabbedPane.getSelectedIndex() == 0 && activeSearch == false) { @@ -407,7 +452,7 @@ public class EditLectureLink_GUI extends JFrame { } }); - + */ tabbedPane.setBounds(10, 158, 557, 339); contentPanel.add(tabbedPane); @@ -415,6 +460,9 @@ public class EditLectureLink_GUI extends JFrame { tableAllImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { + + if(tableAllImages.getSelectedRow() != -1) + { String imageid = modelAll.getValueAt( tableAllImages @@ -427,7 +475,7 @@ public class EditLectureLink_GUI extends JFrame { .getSelectedRow()), 7) .toString(); writeImageData(imageid, version); - + } } }); tableAllImages.setModel(modelAll); @@ -441,6 +489,9 @@ public class EditLectureLink_GUI extends JFrame { tablemyImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { + + if(tablemyImages.getSelectedRow() != -1) + { String imageid = modelMyImages.getValueAt( tablemyImages .convertRowIndexToModel(tablemyImages //selber fehler wie bei image @@ -452,6 +503,7 @@ public class EditLectureLink_GUI extends JFrame { .getSelectedRow()), 7) .toString(); writeImageData(imageid, version); + } } }); tablemyImages.setModel(modelMyImages); @@ -469,6 +521,8 @@ public class EditLectureLink_GUI extends JFrame { tablePublicVorlagen.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { + if(tablePublicVorlagen.getSelectedRow() != -1) + { String imageid = modelPublicVorlagen .getValueAt( tablePublicVorlagen @@ -482,6 +536,7 @@ public class EditLectureLink_GUI extends JFrame { .getSelectedRow()), 7) .toString(); writeImageData(imageid, version); + } } }); tablePublicVorlagen.setModel(modelPublicVorlagen); @@ -935,9 +990,9 @@ public class EditLectureLink_GUI extends JFrame { labelVerantwortlicher.setBounds(10, 272, 296, 14); panel.add(labelVerantwortlicher); - JLabel label = new JLabel("Weitere Verantwortliche:"); - label.setBounds(10, 284, 130, 14); - panel.add(label); + JLabel lblWeitereAnsprechpartner = new JLabel("Weitere Ansprechpartner:"); + lblWeitereAnsprechpartner.setBounds(10, 284, 130, 14); + panel.add(lblWeitereAnsprechpartner); labelWeitereVerantwortliche = new JLabel(""); labelWeitereVerantwortliche.setBounds(10, 297, 296, 14); @@ -1120,12 +1175,12 @@ public class EditLectureLink_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++; i.next(); - } return model; @@ -1155,7 +1210,8 @@ public class EditLectureLink_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++; @@ -1168,7 +1224,22 @@ public class EditLectureLink_GUI extends JFrame { } - + private void resetLectureInfo() { + //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(""); + } |
