package gui.lecture; 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.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.swing.JButton; import javax.swing.JComboBox; 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.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import javax.swing.table.DefaultTableModel; import models.Lecture; import models.Links; import models.person; import org.apache.thrift.TException; import server.Server.Client; import thrift.ThriftConnection; @SuppressWarnings("serial") public class EditLectureLink_GUI extends JFrame { private final JPanel contentPanel = new JPanel(); String[] result; JRadioButton rdbtnInternetJa; JRadioButton rdbtnInternetNein; JComboBox comboBox; JTable tableAllImages = new JTable(); JTable tablemyImages = new JTable(); JTable tableCoopImages = new JTable(); JTable tablePublicImages = new JTable(); JTable tablePublicVorlagen = new JTable(); private JTextField textFieldName; String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung", "Verantwortlicher", "Letztes Update", "Schlagwort", "ID", "Version" }; ThriftConnection con = new ThriftConnection(); Client client = models.Client.clientcon.getClient(); /** * Launch the application. */ public static void main(String[] args) { try { EditLectureLink_GUI dialog = new EditLectureLink_GUI(); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the dialog. */ public EditLectureLink_GUI() { addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { con.closeThriftConnection(); System.exit(0); } }); setResizable(false); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { // TODO Auto-generated catch block e.printStackTrace(); } setTitle("bwLehrpool Suite *Prototyp* - Veranstaltung bearbeiten"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int top = (screenSize.height - 603) / 2; int left = (screenSize.width - 722) / 2; setBounds(left, top, 603, 722); final DefaultTableModel modelAll = new DefaultTableModel(titles, 0); 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("Image verlinken"); 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("W\u00E4hlen Sie bitte ein Image aus, auf dem Ihre Versanstaltung basiert."); 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); JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:"); lblInternetIstInnerhalb.setBounds(10, 58, 250, 20); panel_1.add(lblInternetIstInnerhalb); textFieldName = new JTextField(); textFieldName.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { String stext = textFieldName.getText(); modelAll.setRowCount(0); initTableModel(modelAll); if (stext != "") for (int i = 0; i < modelAll.getRowCount(); i++) { if (modelAll.getValueAt(i, 0).toString() .startsWith(stext)) { } else { modelAll.removeRow(i); } } } }); 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) { ExtendedSearchForImages_GUI es = new ExtendedSearchForImages_GUI(); es.setVisible(true); } }); lblErweiterteSuche.setForeground(Color.BLUE); lblErweiterteSuche.setBounds(431, 106, 89, 14); panel_1.add(lblErweiterteSuche); comboBox = new JComboBox(); try { List list = client.getAllOS(); comboBox.addItem(""); for (int i = 0; i < list.size(); i++) { comboBox.addItem(list.get(i)); } } catch (TException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } comboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { modelAll.setRowCount(0); initTableModel(modelAll); String selItem = comboBox.getSelectedItem().toString(); if (selItem != "") { for (int i = 0; i < modelAll.getRowCount(); i++) { if (modelAll.getValueAt(i, 2).equals(selItem)) { } else { modelAll.removeRow(i); } } } } }); comboBox.setBounds(270, 58, 250, 20); panel_1.add(comboBox); JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); lblHauptmen.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { EditLectureLink_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, 76, 14); contentPanel.add(lblVlimage); JLabel label_2 = new JLabel(">"); label_2.setBounds(151, 11, 13, 14); contentPanel.add(label_2); JLabel lblNewLabel_1 = new JLabel("Veranstaltung verlinken"); lblNewLabel_1.setBounds(164, 11, 113, 14); contentPanel.add(lblNewLabel_1); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.setBounds(10, 197, 557, 300); contentPanel.add(tabbedPane); JScrollPane scrollPaneMyImage = new JScrollPane(); tablemyImages.setModel(model); 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 scrollPaneAllImages = new JScrollPane(); tableAllImages.setModel(modelAll); tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit(); tableAllImages.getColumnModel().getColumn(2).sizeWidthToFit(); tableAllImages.getColumnModel().getColumn(3).sizeWidthToFit(); tableAllImages.getColumnModel().getColumn(4).sizeWidthToFit(); tableAllImages.getColumnModel().getColumn(5).sizeWidthToFit(); scrollPaneAllImages.setViewportView(tableAllImages); tabbedPane.addTab("Alle", null, scrollPaneAllImages, null); scrollPaneMyImage.setViewportView(tablemyImages); tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null); JScrollPane scrollPaneCoopImages = new JScrollPane(); 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 Images", null, scrollPaneCoopImages, null); tabbedPane.setEnabledAt(2, false); JScrollPane scrollPanePublicImages = new JScrollPane(); 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(); 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); JButton btnLinkLschen = new JButton("Link l\u00F6schen"); btnLinkLschen.setEnabled(false); btnLinkLschen.setBounds(478, 508, 89, 23); contentPanel.add(btnLinkLschen); initTableModel(modelAll); { 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) { EditLectureAllgemein_GUI el = new EditLectureAllgemein_GUI(); el.setVisible(true); dispose(); } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton( "Veranstaltung ändern und abschlie\u00DFen"); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // check if a row is selected if ((tableAllImages.getSelectedRow() != -1) || (tablemyImages.getSelectedRow() != -1) || (tableCoopImages.getSelectedRow() != -1) || (tablePublicImages.getSelectedRow() != -1) || (tablePublicVorlagen.getSelectedRow() != -1)) { // a row is selected, do operations String imagename = tableAllImages.getValueAt( tableAllImages.getSelectedRow(), 0) .toString(); try { DateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss"); client.updateLecturedata( Lecture.lecture.getName(), Lecture.lecture.getNewName(), Lecture.lecture.getShortDesc(), Lecture.lecture.getDesc(), formatter.format( Lecture.lecture.getStartdate()) .toString(), formatter.format( Lecture.lecture.getEnddate()) .toString(), Lecture.lecture.isActive(), imagename, person.verantwortlicher.getVorname(), person.verantwortlicher.getName(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getEMail(), person.verantwortlicher.getTel(), person.verantwortlicher.getFakultät(), Lecture.lecture.getid()); JOptionPane .showMessageDialog( null, "Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmenü zurück.", "Veranstaltung angelegt", JOptionPane.INFORMATION_MESSAGE); } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { // nothing selected JOptionPane.showMessageDialog(null, "Bitte wählen Sie ein Image aus.", "Image Auswahl", JOptionPane.INFORMATION_MESSAGE); } MainMenue_GUI m = new MainMenue_GUI(); m.setVisible(true); dispose(); } }); 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 = new JMenu("Suchen"); menuBar.add(mnNewMenu); JMenuItem mntmVlSuche = new JMenuItem("VL Suche"); mnNewMenu.add(mntmVlSuche); JMenu mnNewMenu_1 = new JMenu("Hilfe"); menuBar.add(mnNewMenu_1); JMenuItem mntmFaq = new JMenuItem("FAQ"); mntmFaq.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent arg0) { String faq; faq = Links.getFAQ(); try { Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler " + faq ); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); mnNewMenu_1.add(mntmFaq); JMenuItem mntmOtrs = new JMenuItem("OTRS"); mntmOtrs.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent arg0) { String otrs; otrs = Links.getOTRS(); try { Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler " + otrs ); } catch (IOException f) { // TODO Auto-generated catch block f.printStackTrace(); } } }); mnNewMenu_1.add(mntmOtrs); } public DefaultTableModel initTableModel(DefaultTableModel model) { List images; try { images = client.getImageList(); Iterator i = images.iterator(); List ListObj = new ArrayList(); int x = 0; while (i.hasNext()) { i.next(); Object[] obj = { images.get(x).getImageName(), images.get(x).getLicenseRestriction(), images.get(x).getOsName(), images.get(x).getLectureName(), images.get(x).getUserData(), images.get(x).getUpdateTime(), "", images.get(x).id, images.get(x).getVersion() }; ListObj.add(obj); model.addRow(ListObj.get(x)); x++; } return model; } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return model; } }