package gui.lecture; import gui.image.EditImageAllgemein_GUI; import gui.intro.MainMenue_GUI; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.SystemColor; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Iterator; import java.util.List; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; 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.JTextField; import javax.swing.JTextPane; import javax.swing.RowFilter; 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.table.DefaultTableModel; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; import models.Lecture; import models.person; //import models.person; import org.apache.thrift.TException; import server.Server.Client; import thrift.ThriftConnection; @SuppressWarnings("serial") public class SearchEditLecture_GUI extends JFrame { private final JPanel contentPanel = new JPanel(); String[] result; JRadioButton rdbtnInternetJa; JRadioButton rdbtnInternetNein; JTable tableAllLectures; JTable tablemyLectures; private JTextField textFieldName; JTabbedPane tabbedPane; String[] titles= {"Veranstaltungsname", "Beschreibung", "Gültigkeitsdatum", "Aktiv","Letzte Benutzung" ,"Verantwortlicher", "Image", "Schlagwort","ID"}; ThriftConnection con=new ThriftConnection(); Client client=con.getThriftConnection(); final DefaultTableModel modelAll = new DefaultTableModel( titles, 0 ); final DefaultTableModel modelMyLectures = new DefaultTableModel( titles, 0 ); final TableRowSorter rowSorterAll = new TableRowSorter( modelAll ); final TableRowSorter rowSorterMyLectures = new TableRowSorter( modelMyLectures ); /** * Launch the application. */ public static void main(String[] args) { try { SearchEditLecture_GUI dialog = new SearchEditLecture_GUI(); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the dialog. */ public SearchEditLecture_GUI() { addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { //Beendet die Anwendung nach klick auf X con.closeThriftConnection(); System.exit(0); } }); //Verhindert das Vergrößern Des Fensters setResizable(false); try { //Setzt das Look & Feel auf System UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { // TODO Auto-generated catch block e.printStackTrace(); } //Setzt den Fenstertitel setTitle("bwLehrpool Suite *Prototyp*"); //Zentriert das Fenster in die Bildmitte Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int top=(screenSize.height - 722) / 2; int left=(screenSize.width - 603) / 2; setBounds(left, top, 603, 722); final DefaultTableModel model = new DefaultTableModel( titles, 0 ); getContentPane().setLayout(null); { JPanel panel = new JPanel(); panel.setBackground(SystemColor.menu); panel.setBounds(10, 11, 577, 57); getContentPane().add(panel); panel.setLayout(null); { JLabel lblNewLabel = new JLabel("Suche nach Veranstaltung"); lblNewLabel.setBounds(10, 11, 509, 22); panel.add(lblNewLabel); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18)); } JTextPane txtpnBitteWhlenSie = new JTextPane(); txtpnBitteWhlenSie.setEditable(false); txtpnBitteWhlenSie.setBackground(SystemColor.menu); txtpnBitteWhlenSie.setText("Hier k\u00F6nnen Sie nach Ihrem gew\u00FCnschten VL-Image suchen und dieses f\u00FCr weitere Schritte ausw\u00E4hlen"); txtpnBitteWhlenSie.setBounds(10, 36, 509, 32); panel.add(txtpnBitteWhlenSie); } contentPanel.setBounds(10, 85, 577, 531); contentPanel.setBackground(SystemColor.menu); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel); contentPanel.setLayout(null); JPanel panel_1 = new JPanel(); panel_1.setBackground(SystemColor.menu); panel_1.setBorder(new TitledBorder(null, "Filterfunktionen", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_1.setBounds(10, 49, 557, 131); contentPanel.add(panel_1); panel_1.setLayout(null); JLabel lblNewLabel_2 = new JLabel("Anzeigename:"); lblNewLabel_2.setBounds(10, 30, 250, 20); panel_1.add(lblNewLabel_2); 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(); //Wenn Textfield nicht leer if(stext!="") { //Filtere nach der Eingabe rowSorterAll.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); rowSorterMyLectures.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0)); } }}); textFieldName.setBounds(270, 30, 250, 20); panel_1.add(textFieldName); textFieldName.setColumns(10); JLabel lblErweiterteSuche = new JLabel("Erweiterte Suche"); lblErweiterteSuche.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { //Öffnet das Fenster Extended GUI con.closeThriftConnection(); ExtendedSearchForImages_GUI es=new ExtendedSearchForImages_GUI(); es.setVisible(true); } }); lblErweiterteSuche.setForeground(Color.BLUE); lblErweiterteSuche.setBounds(431, 106, 89, 14); panel_1.add(lblErweiterteSuche); JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); lblHauptmen.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { //Öffnet das Hauptmenü con.closeThriftConnection(); SearchEditLecture_GUI.this.setVisible(false); MainMenue_GUI main=new MainMenue_GUI(); main.setVisible(true); } }); lblHauptmen.setForeground(Color.BLUE); lblHauptmen.setBounds(10, 11, 61, 14); contentPanel.add(lblHauptmen); JLabel label_1 = new JLabel(">"); label_1.setBounds(69, 11, 13, 14); contentPanel.add(label_1); JLabel lblVlimage = new JLabel("Veranstaltung"); lblVlimage.setForeground(Color.BLUE); lblVlimage.setBounds(81, 11, 75, 14); contentPanel.add(lblVlimage); JLabel label_2 = new JLabel(">"); label_2.setBounds(152, 11, 13, 14); contentPanel.add(label_2); JLabel lblNewLabel_1 = new JLabel("Veranstaltungsauswahl"); lblNewLabel_1.setBounds(166, 11, 128, 14); contentPanel.add(lblNewLabel_1); tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent arg0) { System.out.println(tabbedPane.getSelectedIndex()); if(tabbedPane.getSelectedIndex()==0){ String username= person.verantwortlicher.getName()+" "+person.verantwortlicher.getVorname(); rowSorterMyLectures.setRowFilter(RowFilter.regexFilter(username, 5)); } else if(tabbedPane.getSelectedIndex()==1){ } } }); tabbedPane.setBounds(10, 197, 557, 323); contentPanel.add(tabbedPane); System.out.println("haaaaaaaaaaa"); initTableModel(modelMyLectures); JScrollPane scrollPaneAllImages = new JScrollPane(); tableAllLectures=new JTable(); tableAllLectures.setModel(modelAll); tableAllLectures.getColumnModel().getColumn(1).sizeWidthToFit(); tableAllLectures.getColumnModel().getColumn(2).sizeWidthToFit(); tableAllLectures.getColumnModel().getColumn(3).sizeWidthToFit(); tableAllLectures.getColumnModel().getColumn(4).sizeWidthToFit(); tableAllLectures.getColumnModel().getColumn(5).sizeWidthToFit(); initTableModel(modelAll); JScrollPane scrollPaneMyImage = new JScrollPane(); tablemyLectures=new JTable(); tablemyLectures.setModel(modelMyLectures); tablemyLectures.getColumnModel().getColumn(1).sizeWidthToFit(); tablemyLectures.getColumnModel().getColumn(2).sizeWidthToFit(); tablemyLectures.getColumnModel().getColumn(3).sizeWidthToFit(); tablemyLectures.getColumnModel().getColumn(4).sizeWidthToFit(); tablemyLectures.getColumnModel().getColumn(5).sizeWidthToFit(); tablemyLectures.setRowSorter(rowSorterMyLectures); scrollPaneMyImage.setViewportView(tablemyLectures); tabbedPane.addTab("Meine Veranstaltungen", null, scrollPaneMyImage, null); tableAllLectures.setRowSorter(rowSorterAll); scrollPaneAllImages.setViewportView(tableAllLectures); tabbedPane.addTab("Alle", null, scrollPaneAllImages, null); JScrollPane scrollPaneCoopImages = new JScrollPane(); JTable tableCoopImages=new JTable(); tableCoopImages.setModel(model); tableCoopImages.getColumnModel().getColumn(1).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(2).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(3).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(4).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(5).sizeWidthToFit(); scrollPaneCoopImages.setViewportView(tableCoopImages); tabbedPane.addTab("Kooperative Veranstaltungen", null, scrollPaneCoopImages, null); tabbedPane.setEnabledAt(2, false); JScrollPane scrollPanePublicImages = new JScrollPane(); JTable tablePublicImages=new JTable(); tablePublicImages.setModel(model); tablePublicImages.getColumnModel().getColumn(1).sizeWidthToFit(); tablePublicImages.getColumnModel().getColumn(2).sizeWidthToFit(); tablePublicImages.getColumnModel().getColumn(3).sizeWidthToFit(); tablePublicImages.getColumnModel().getColumn(4).sizeWidthToFit(); tablePublicImages.getColumnModel().getColumn(5).sizeWidthToFit(); scrollPanePublicImages.setViewportView(tablePublicImages); tabbedPane.addTab("\u00D6ffentliche Images", null, scrollPanePublicImages, null); tabbedPane.setEnabledAt(3, false); JScrollPane scrollPanePublicVorlagen = new JScrollPane(); JTable tablePublicVorlagen=new JTable(); tablePublicVorlagen.setModel(model); tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit(); tablePublicVorlagen.getColumnModel().getColumn(2).sizeWidthToFit(); tablePublicVorlagen.getColumnModel().getColumn(3).sizeWidthToFit(); tablePublicVorlagen.getColumnModel().getColumn(4).sizeWidthToFit(); tablePublicVorlagen.getColumnModel().getColumn(5).sizeWidthToFit(); scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen); tabbedPane.addTab("\u00D6ffentliche Vorlagen", null, scrollPanePublicVorlagen, null); tabbedPane.setEnabledAt(4, false); { JPanel buttonPane = new JPanel(); buttonPane.setBounds(0, 640, 597, 33); buttonPane.setBackground(SystemColor.menu); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane); { JButton okButton = new JButton("Zur\u00FCck"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //Öffnet das Hauptmenü con.closeThriftConnection(); MainMenue_GUI main=new MainMenue_GUI(); main.setVisible(true); dispose(); } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton("Weiter"); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //Image.image.setImageId(imageid); if(tabbedPane.getSelectedIndex()==0){ Lecture.lecture.setid(modelMyLectures.getValueAt(tablemyLectures.convertRowIndexToModel(tablemyLectures.getSelectedRow()), 8).toString()); Lecture.lecture.setName(modelMyLectures.getValueAt(tablemyLectures.convertRowIndexToModel(tablemyLectures.getSelectedRow()), 0).toString()); Lecture.lecture.setDesc(modelMyLectures.getValueAt(tablemyLectures.convertRowIndexToModel(tablemyLectures.getSelectedRow()), 1).toString()); String date=modelMyLectures.getValueAt(tablemyLectures.convertRowIndexToModel(tablemyLectures.getSelectedRow()), 2).toString(); Lecture.lecture.setLinkedImagename(modelMyLectures.getValueAt(tablemyLectures.convertRowIndexToModel(tablemyLectures.getSelectedRow()), 6).toString()); String startdate=date.substring(0,date.indexOf(" ")); String enddate=date.substring(date.indexOf(" ")); DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { Lecture.lecture.setEnddate(df.parse(enddate)); Lecture.lecture.setStartdate(df.parse(startdate)); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if(modelMyLectures.getValueAt(tablemyLectures.convertRowIndexToModel(tablemyLectures.getSelectedRow()), 3).toString().equals("1")){ Lecture.lecture.setActive(true); } else { Lecture.lecture.setActive(false); } con.closeThriftConnection(); EditImageAllgemein_GUI ea=new EditImageAllgemein_GUI(); ea.setVisible(true); dispose(); } else{ JOptionPane.showMessageDialog(null, "Bitte wählen Sie ein eigenes Image aus", "Message", JOptionPane.INFORMATION_MESSAGE); } } }); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } JSeparator separator = new JSeparator(); separator.setBounds(0, 78, 597, 2); getContentPane().add(separator); JSeparator separator_1 = new JSeparator(); separator_1.setBounds(0, 627, 597, 2); getContentPane().add(separator_1); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu mnNewMenu_1 = new JMenu("Hilfe"); menuBar.add(mnNewMenu_1); JMenuItem mntmFaq = new JMenuItem("FAQ"); mnNewMenu_1.add(mntmFaq); JMenuItem mntmOtrs = new JMenuItem("OTRS"); mnNewMenu_1.add(mntmOtrs); } //Initiale Beffülung eines Table models public DefaultTableModel initTableModel(DefaultTableModel model){ List lectures; try { //Hole eine Liste der Images lectures = client.getLectureList(); Iterator i=lectures.iterator(); int x=0; while(i.hasNext()) { //erzeuge Objekte für die Tabelle Object [] obj={lectures.get(x).lecturename,lectures.get(x).desc,lectures.get(x).starttime+" "+lectures.get(x).endtime,lectures.get(x).isActive,lectures.get(x).lastused,lectures.get(x).username," ",lectures.get(x).imagename,lectures.get(x).id}; //Füge diese Objekte der Tabelle hinzu model.addRow(obj); x++; i.next(); } return model; } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return model; } }