diff options
| author | Jonathan Bauer | 2014-09-11 15:04:50 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2014-09-11 15:04:50 +0200 |
| commit | e90286005f1cbedc77bfff91f867cb6aec25a595 (patch) | |
| tree | 361faf449e987518ffe33757d64af69539f0ef5c /dozentenmodul/src/main/java/gui/lecture | |
| parent | lower case names for folder please (diff) | |
| download | tutor-module-e90286005f1cbedc77bfff91f867cb6aec25a595.tar.gz tutor-module-e90286005f1cbedc77bfff91f867cb6aec25a595.tar.xz tutor-module-e90286005f1cbedc77bfff91f867cb6aec25a595.zip | |
oops
Diffstat (limited to 'dozentenmodul/src/main/java/gui/lecture')
9 files changed, 6417 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/gui/lecture/CreateLectureAllgemein_GUI.java b/dozentenmodul/src/main/java/gui/lecture/CreateLectureAllgemein_GUI.java new file mode 100644 index 00000000..76bf3933 --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/CreateLectureAllgemein_GUI.java @@ -0,0 +1,579 @@ +package gui.lecture; + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.ScrollPane; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.net.URI; +import java.net.URISyntaxException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import javax.swing.JButton; +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.JSeparator; +import javax.swing.JTextArea; +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 models.Image; +import models.Lecture; +import models.Links; +import models.person; +import util.GuiOrganizer; +import util.OpenLinks; + +import com.toedter.calendar.JDateChooser; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeEvent; + +@SuppressWarnings("serial") +public class CreateLectureAllgemein_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + private JTextField Vorname; + private JTextField Nachname; + private JTextField Hochschule; + private JTextField EMail; + private JTextField txtFldVeranstaltungsname; + JTextArea description; + JRadioButton radioButtonyes; + JRadioButton radioButtonno; + JDateChooser dateChooserend; + JDateChooser dateChooserstart; + Date startDate = new Date(); + Date endDate; + private boolean descriptionLengthOK = false; // description may not be + // longer than + // MAX_DESCRIPTION_LENGTH + private final int MAX_DESCRIPTION_LENGTH = 254; + + int maxLifeTime = 180; // Anzahl Tage, die eine Veranstaltung in der Zukunft + // aktiv sein darf + boolean isDateOrderCorrect, isDateMaxLifeTimeCorrect, + isAllInformationReady = false; + + /** + * Create the dialog. + */ + public CreateLectureAllgemein_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + System.exit(0); + } + + @Override + public void windowOpened(WindowEvent arg0) { + txtFldVeranstaltungsname.requestFocusInWindow(); + } + }); + setResizable(false); + + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException + | IllegalAccessException | UnsupportedLookAndFeelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + setTitle("bwLehrpool Suite - Veranstaltung erzeugen"); + setBounds(0, 0, 603, 722); + GuiOrganizer.centerGUI(this); + + 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("Eingabe Ihrer Daten"); + 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("Geben Sie hier bitte einen sprechenden Imagename sowie Ihre Kontaktdaten an"); + txtpnBitteWhlenSie.setBounds(10, 36, 509, 21); + panel.add(txtpnBitteWhlenSie); + } + contentPanel.setBounds(10, 85, 577, 493); + 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, "Informationen zum Besitzer", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_1.setBounds(10, 331, 557, 162); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JLabel label = new JLabel("Vorname: *"); + label.setBackground(SystemColor.menu); + label.setBounds(10, 33, 125, 20); + panel_1.add(label); + + Vorname = new JTextField(); + Vorname.setEditable(false); + Vorname.setEnabled(false); + Vorname.setText(person.verantwortlicher.getVorname()); + Vorname.setBackground(Color.WHITE); + Vorname.setColumns(10); + Vorname.setBounds(145, 33, 350, 20); + panel_1.add(Vorname); + + JLabel label_7 = new JLabel("Nachname: *"); + label_7.setBackground(SystemColor.menu); + label_7.setBounds(10, 64, 125, 20); + panel_1.add(label_7); + + Nachname = new JTextField(); + Nachname.setEnabled(false); + Nachname.setEditable(false); + Nachname.setText(person.verantwortlicher.getName()); + Nachname.setBackground(Color.WHITE); + Nachname.setColumns(10); + Nachname.setBounds(145, 64, 350, 20); + panel_1.add(Nachname); + + JLabel label_8 = new JLabel("Hochschule: *"); + label_8.setBackground(SystemColor.menu); + label_8.setBounds(10, 95, 125, 20); + panel_1.add(label_8); + + Hochschule = new JTextField(); + Hochschule.setEnabled(false); + Hochschule.setEditable(false); + Hochschule.setText(person.verantwortlicher.getHochschule()); + Hochschule.setBackground(Color.WHITE); + Hochschule.setColumns(10); + Hochschule.setBounds(145, 95, 350, 20); + panel_1.add(Hochschule); + + JLabel label_9 = new JLabel("E-Mail: *"); + label_9.setBackground(SystemColor.menu); + label_9.setBounds(10, 126, 125, 20); + panel_1.add(label_9); + + EMail = new JTextField(); + EMail.setEnabled(false); + EMail.setEditable(false); + EMail.setText(person.verantwortlicher.getEMail()); + EMail.setBackground(Color.WHITE); + EMail.setColumns(10); + EMail.setBounds(145, 126, 350, 20); + panel_1.add(EMail); + + JPanel panel = new JPanel(); + panel.setBounds(10, 402, 577, 33); + contentPanel.add(panel); + panel.setLayout(null); + panel.setBorder(new EmptyBorder(5, 5, 5, 5)); + panel.setBackground(SystemColor.menu); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + + CreateLectureAllgemein_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, 70, 14); + contentPanel.add(lblVlimage); + + JLabel label_2 = new JLabel(">"); + label_2.setBounds(161, 11, 13, 14); + contentPanel.add(label_2); + + JLabel lblNewLabel_1 = new JLabel("Neu"); + lblNewLabel_1.setBounds(174, 11, 46, 14); + contentPanel.add(lblNewLabel_1); + + JPanel panel_2 = new JPanel(); + panel_2.setLayout(null); + panel_2.setBorder(new TitledBorder(null, "Veranstaltungsdaten", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_2.setBackground(SystemColor.menu); + panel_2.setBounds(10, 36, 557, 284); + contentPanel.add(panel_2); + + JLabel lblAnzeigename = new JLabel("Anzeigename: *"); + lblAnzeigename.setBounds(10, 25, 180, 14); + panel_2.add(lblAnzeigename); + + txtFldVeranstaltungsname = new JTextField(); + txtFldVeranstaltungsname.setColumns(10); + txtFldVeranstaltungsname.setBounds(200, 22, 347, 20); + txtFldVeranstaltungsname.setText(Lecture.lecture.getName()); + panel_2.add(txtFldVeranstaltungsname); + + JTextArea textArea = new JTextArea(); + textArea.setEditable(false); + textArea.setWrapStyleWord(true); + textArea.setText("Geben Sie bitte einen sprechenden Namen f\u00FCr das Image an. Dieser soll jedoch recht allgemein gehalten werden.\r\nBeispiel: \"Programmieren\", nicht \"Programmieren 1\""); + textArea.setLineWrap(true); + textArea.setFont(new Font("Tahoma", Font.PLAIN, 12)); + textArea.setBackground(SystemColor.menu); + textArea.setBounds(10, 49, 537, 49); + panel_2.add(textArea); + + JLabel lblDesc = new JLabel("Beschreibung: *"); + lblDesc.setBounds(10, 111, 180, 14); + panel_2.add(lblDesc); + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setBounds(200, 104, 347, 78); + panel_2.add(scrollPane); + description = new JTextArea(); + description.setFont(new Font("Tahoma", Font.PLAIN, 11)); + description.setLineWrap(true); + description.setText(Lecture.lecture.getDesc()); + scrollPane.add(description); + description.setBounds(0, 0, 4, 22); + scrollPane.add(description); + dateChooserstart = new JDateChooser(); + dateChooserstart + .addPropertyChangeListener(new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent arg0) { + endDate = addDays(dateChooserstart.getDate(), + maxLifeTime); // Datum darf weiter als 6 + // Monate in der Zukunft + // liegen + } + }); + if (Lecture.lecture.getStartdate() == null) { + // is not defined yet + dateChooserstart.setDate(startDate); + } else { + // already defined from last visit on this page + dateChooserstart.setDate(Lecture.lecture.getStartdate()); + } + dateChooserstart.setDateFormatString("yyyy-MM-dd HH:mm:ss"); + dateChooserstart.setBounds(226, 188, 143, 20); + panel_2.add(dateChooserstart); + + dateChooserend = new JDateChooser(); + endDate = addDays(dateChooserstart.getDate(), maxLifeTime); // Datum + // darf + // weiter + // als 6 + // Monate in der Zukunft + // liegen + dateChooserend.setDate(endDate); + if (Lecture.lecture.getEnddate() == null) { + // is not defined yet + dateChooserend.setDate(endDate); + } else { + // already defined from last visit on this page + dateChooserend.setDate(Lecture.lecture.getEnddate()); + } + dateChooserend.setDateFormatString("yyyy-MM-dd HH:mm:ss"); + dateChooserend.setBounds(404, 188, 143, 20); + panel_2.add(dateChooserend); + + JLabel lblBis = new JLabel("bis:"); + lblBis.setBounds(378, 188, 21, 20); + panel_2.add(lblBis); + + JLabel label_6 = new JLabel("von:"); + label_6.setBounds(200, 188, 30, 20); + panel_2.add(label_6); + + JLabel label_10 = new JLabel("G\u00FCltigkeitsdatum: *"); + label_10.setBounds(10, 194, 127, 14); + panel_2.add(label_10); + + JLabel label_11 = new JLabel("Aktiv:"); + label_11.setBounds(10, 229, 127, 14); + panel_2.add(label_11); + + radioButtonyes = new JRadioButton("Ja"); + radioButtonyes.setSelected(true); + radioButtonyes.setBounds(200, 225, 73, 23); + panel_2.add(radioButtonyes); + + radioButtonno = new JRadioButton("Nein"); + radioButtonyes.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + radioButtonyes.setSelected(true); + radioButtonno.setSelected(false); + } + }); + radioButtonno.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + radioButtonno.setSelected(true); + radioButtonyes.setSelected(false); + } + }); + radioButtonno.setBounds(296, 225, 73, 23); + panel_2.add(radioButtonno); + + JLabel lblimVmchooserSichtbar = new JLabel("(im VMChooser sichtbar)"); + lblimVmchooserSichtbar.setBounds(10, 245, 127, 14); + panel_2.add(lblimVmchooserSichtbar); + + JLabel lblmaxMonate = new JLabel("(max. 6 Monate)"); + lblmaxMonate.setBounds(10, 208, 127, 14); + panel_2.add(lblmaxMonate); + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 597, 33); + buttonPane.setBackground(SystemColor.menu); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane); + { + JButton backButton = new JButton("Zur\u00FCck"); + backButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (radioButtonyes.isSelected() == true) { + Lecture.lecture.setActive(true); + } else { + Lecture.lecture.setActive(false); + } + + Lecture.lecture.setName(txtFldVeranstaltungsname + .getText()); + Lecture.lecture.setDesc(description.getText()); + Lecture.lecture.setEnddate(dateChooserend.getDate()); + Lecture.lecture.setStartdate(dateChooserstart.getDate()); + Image.image.setImagename(txtFldVeranstaltungsname + .getText()); + + MainMenue_GUI sr = new MainMenue_GUI(); + sr.setVisible(true); + dispose(); + } + }); + backButton.setActionCommand("Cancel"); + buttonPane.add(backButton); + getRootPane().setDefaultButton(backButton); + } + { + JButton continueButton = new JButton("Weiter"); + continueButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + // liegt das End-Datum vor dem Start-Datum? + if (dateChooserend.getDate().before( + dateChooserstart.getDate())) { + // datum ist falsch rum + isDateOrderCorrect = false; + JOptionPane + .showMessageDialog( + null, + "Das End-Datum liegt vor dem Start-Datum. Bitte \u00e4ndern.", + "Datum fehlerhaft", + JOptionPane.INFORMATION_MESSAGE); + } else { + // bereit + isDateOrderCorrect = true; + } + // liegt das eingegebene Datum nach dem erlaubten + // End-Datum? + if (dateChooserend.getDate().after(endDate)) { + // Datum zu weit weg + isDateMaxLifeTimeCorrect = false; + JOptionPane.showMessageDialog(null, + "Das End-Datum liegt zu weit in der Zukunft. Erlaubt ist maximal:\n" + + endDate, "Datum fehlerhaft", + JOptionPane.INFORMATION_MESSAGE); + + dateChooserend.setDate(endDate); // setze Datum auf + // maximum + } else { + // bereit + isDateMaxLifeTimeCorrect = true; + } + // Pruefen ob alles eingegeben wurde + if (txtFldVeranstaltungsname.getText().isEmpty() == true + || description.getText().isEmpty() == true) { + // mind 1 Textfeld ist leer + isAllInformationReady = false; + JOptionPane + .showMessageDialog( + null, + "Bitte geben Sie einen Veranstaltungsnamen und eine Beschreibung ein.", + "Datum fehlerhaft", + JOptionPane.INFORMATION_MESSAGE); + } else { + // Textfelder bereit + isAllInformationReady = true; + } + + // welcher Radiobutton ist geklickt? + if (radioButtonyes.isSelected() == true) { + Lecture.lecture.setActive(true); + } else { + Lecture.lecture.setActive(false); + } + // Pruefe ob alle Eingaben korrekt sind, dann mache + // weiter + if (isAllInformationReady == true + && isDateMaxLifeTimeCorrect == true + && isDateOrderCorrect == true + && descriptionLenghtOK() == true) { + // everything is ok, proceed + Lecture.lecture.setName(txtFldVeranstaltungsname + .getText()); + Lecture.lecture.setDesc(description.getText()); + Lecture.lecture.setEnddate(dateChooserend.getDate()); + Lecture.lecture.setStartdate(dateChooserstart + .getDate()); + + Image.image.setImagename(txtFldVeranstaltungsname + .getText()); + + PermissionCreateLecture_GUI ev = new PermissionCreateLecture_GUI(); + ev.setVisible(true); + dispose(); + } + + } + }); + continueButton.setActionCommand("OK"); + buttonPane.add(continueButton); + } + } + + 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); + + JLabel lblPflichtfelder = new JLabel("* Pflichtfelder"); + lblPflichtfelder.setBounds(32, 602, 136, 14); + getContentPane().add(lblPflichtfelder); + + 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) { + OpenLinks open = new OpenLinks(); + URI windows; + try { + windows = new URI(Links.getFAQ()); + open.openWebpage(windows); + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + open.openWebpage(windows); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mnmtAbout = new JMenuItem("About"); + mnmtAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mnmtAbout); + + } + + public Date addDays(Date date, int days) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DATE, days); // minus number would decrement the days + return cal.getTime(); + }// end addDays() + + public boolean descriptionLenghtOK() { + descriptionLengthOK = false; + + // max length is 254 chars + if (description.getText().length() >= MAX_DESCRIPTION_LENGTH) { + descriptionLengthOK = false; + JOptionPane.showMessageDialog(null, + "Die Beschreibung darf max 254 Zeichen enthalten. Aktuell enthält sie " + + description.getText().length() + ".", + "Beschreibung zu umfangreich", + JOptionPane.INFORMATION_MESSAGE); + } else { + descriptionLengthOK = true; + + } + + return descriptionLengthOK; + }// enddescriptionLenghtOK() + +}// end class diff --git a/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java b/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java new file mode 100644 index 00000000..f4d1bdd8 --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java @@ -0,0 +1,1013 @@ +package gui.lecture; + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.SystemColor; +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.net.URI; +import java.net.URISyntaxException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.swing.JButton; +import javax.swing.JComboBox; +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.JTextArea; +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.table.DefaultTableModel; +import javax.swing.table.TableModel; +import javax.swing.table.TableRowSorter; + +import models.Lecture; +import models.Links; +import models.person; + +import org.apache.thrift.TException; + +import server.Server.Client; +import thrift.ThriftConnection; +import util.GuiOrganizer; +import util.OpenLinks; +import javax.swing.event.ChangeListener; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +@SuppressWarnings("serial") +public class CreateLectureLink_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + JRadioButton rdbtnInternetJa; + JRadioButton rdbtnInternetNein; + JComboBox<String> comboBox; + JTabbedPane tabbedPane; + JLabel labelName; + JLabel labelUpdate; + JLabel labelVerantwortlicher; + JLabel labelWeitereVerantwortliche; + JLabel labelVorlage; + JLabel labelLizenzSoftware; + JLabel labelInternet; + JLabel labelRam; + JLabel labelCPU; + JLabel labelID; + JLabel labelVersion; + JTextArea textAreadesc; + private JLabel labelOS; + JTable tableAllImages = new JTable(); + JTable tablemyImages = new JTable(); + JTable tableCoopImages = new JTable(); + JTable tablePublicVorlagen = new JTable(); + boolean activeSearch=false; + private JTextField textFieldName; + String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung", + "Verantwortlicher", "Letztes Update", "ID", "Version","Template" }; + 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); + private JTextField textField; + + /** + * Create the dialog. + */ + public CreateLectureLink_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + con.closeThriftConnection(); + System.exit(0); + } + + @Override + public void windowOpened(WindowEvent arg0) { + try { + initTableModel(modelMyImages); + initTableModel(modelAll); + initTableModel(modelPublicVorlagen); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // auszublendende Angaben + // 1=Lizenzpflichtig + // 3=Veranstaltung + // 6=ID + // 7=Version + // 8=Template + tablemyImages.getColumnModel().getColumn(1).setWidth(0); + tablemyImages.getColumnModel().getColumn(1).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(3).setWidth(0); + tablemyImages.getColumnModel().getColumn(3).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(3).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(8).setWidth(0); + tablemyImages.getColumnModel().getColumn(8).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(8).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(6).setWidth(0); + tablemyImages.getColumnModel().getColumn(6).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(6).setMaxWidth(0); + 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); + textFieldName.requestFocusInWindow(); + } + }); + setResizable(false); + + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException + | IllegalAccessException | UnsupportedLookAndFeelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + setTitle("bwLehrpool Suite - Veranstaltung erzeugen"); + setBounds(0, 0, 918, 722); + GuiOrganizer.centerGUI(this); + + + final DefaultTableModel model = new DefaultTableModel(titles, 0); + + getContentPane().setLayout(null); + { + JPanel panel = new JPanel(); + panel.setBackground(SystemColor.menu); + panel.setBounds(10, 11, 892, 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, 92); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JLabel lblNewLabel_2 = new JLabel("Anzeigename:"); + lblNewLabel_2.setBounds(10, 30, 80, 20); + panel_1.add(lblNewLabel_2); + + JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:"); + lblInternetIstInnerhalb.setBounds(10, 58, 80, 20); + panel_1.add(lblInternetIstInnerhalb); + + textFieldName = new JTextField(); + textFieldName.addKeyListener(new KeyAdapter() { + @Override + public void keyReleased(KeyEvent e) { + String stext = textFieldName.getText(); + // Wenn Textfield nicht leer + if (stext != "") { + activeSearch=true; + // Filtere nach der Eingabe + rowSorterAll.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + rowSorterMyImages.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + + }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); + } + + } + + }); + + textFieldName.setBounds(96, 30, 166, 20); + panel_1.add(textFieldName); + textFieldName.setColumns(10); + + + comboBox = new JComboBox<String>(); + try { + List<String> list = client.getAllOS(); + comboBox.addItem(""); + for (int i = 0; i < list.size(); i++) { + comboBox.addItem(list.get(i)); + } + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + JOptionPane.showMessageDialog(null, + e.getCause()+"\n"+e.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + comboBox.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + // 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)); + }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); + } + } + }); + comboBox.setBounds(96, 58, 166, 20); + panel_1.add(comboBox); + + JLabel label_3 = new JLabel("Beschreibung:"); + label_3.setBounds(291, 30, 80, 20); + panel_1.add(label_3); + + textField = new JTextField(); + textField.setColumns(10); + textField.setBounds(381, 30, 166, 20); + panel_1.add(textField); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + + CreateLectureLink_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("Imageauswahl"); + lblNewLabel_1.setBounds(164, 11, 85, 14); + contentPanel.add(lblNewLabel_1); + + tabbedPane = new JTabbedPane(JTabbedPane.TOP); + tabbedPane.addChangeListener(new ChangeListener() { + public void stateChanged(ChangeEvent arg0) { + if (tabbedPane.getSelectedIndex() == 0 && activeSearch==false) { + + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + rowSorterMyImages.setRowFilter(RowFilter.regexFilter( + username, 4)); + }else if(tabbedPane.getSelectedIndex()==1 && activeSearch==false){ + rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8)); + } else if(tabbedPane.getSelectedIndex()==2 && activeSearch==false){ + rowSorterAll.setRowFilter(null); + } + + } + + }); + + tabbedPane.setBounds(10, 152, 557, 345); + contentPanel.add(tabbedPane); + + JScrollPane scrollPaneMyImage = new JScrollPane(); + tablemyImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + String imageid = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), 6) + .toString(); + //System.out.println(imageid); + String version = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), 7) + .toString(); + //System.out.println(version); + try { + writeImageData(imageid, version); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + 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); + 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(); + + + JScrollPane scrollPanePublicVorlagen = new JScrollPane(); + tablePublicVorlagen.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + String imageid = modelPublicVorlagen + .getValueAt( + tablePublicVorlagen + .convertRowIndexToModel(tablePublicVorlagen + .getSelectedRow()), 6) + .toString(); + //System.out.println(imageid); + String version = modelPublicVorlagen + .getValueAt( + tablePublicVorlagen + .convertRowIndexToModel(tablePublicVorlagen + .getSelectedRow()), 7) + .toString(); + //System.out.println(version); + try { + writeImageData(imageid, version); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + tablePublicVorlagen.setModel(modelPublicVorlagen); + 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(); + tablePublicVorlagen.setRowSorter(rowSorterPublicVorlagen); + scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen); + tabbedPane.addTab("Vorlagen", null, + scrollPanePublicVorlagen, null); + + JScrollPane scrollPaneAllImages = new JScrollPane(); + tableAllImages = new JTable(); + tableAllImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + + String imageid = modelAll + .getValueAt( + tableAllImages + .convertRowIndexToModel(tableAllImages + .getSelectedRow()), 6) + .toString(); + //System.out.println(imageid); + String version = modelAll + .getValueAt( + tableAllImages + .convertRowIndexToModel(tableAllImages + .getSelectedRow()), 7) + .toString(); + //System.out.println(version); + try { + writeImageData(imageid, version); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + }); + 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(); + tableAllImages.setRowSorter(rowSorterAll); + + scrollPaneAllImages.setViewportView(tableAllImages); + tabbedPane.addTab("Alle", null, scrollPaneAllImages, null); + + + + scrollPaneCoopImages.setViewportView(tableCoopImages); + tabbedPane.addTab("bwLehrpool", null, scrollPaneCoopImages, + null); + tabbedPane.setEnabledAt(3, false); + + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 902, 33); + buttonPane.setBackground(SystemColor.menu); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane); + { + JButton cancelButton = new JButton("Zur\u00FCck"); + cancelButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + PermissionCreateLecture_GUI eVAG = new PermissionCreateLecture_GUI(); + eVAG.setVisible(true); + dispose(); + } + }); + cancelButton.setActionCommand("CANCEL"); + buttonPane.add(cancelButton); + getRootPane().setDefaultButton(cancelButton); + } + { + JButton doLinkButton = new JButton( + "Veranstaltung erzeugen und abschlie\u00DFen"); + doLinkButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + // check if a row is selected + if (tablemyImages.getSelectedRow() != -1){ + + // a row is selected, do operations + String imagename = tablemyImages.getValueAt( + tablemyImages.getSelectedRow(), 0) + .toString(); + try { + DateFormat formatter = new SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss"); + client.writeLecturedata( + Lecture.lecture.getName(), + Lecture.lecture.getShortDesc(), + Lecture.lecture.getDesc(), + formatter.format( + Lecture.lecture.getStartdate()) + .toString(), + formatter.format( + Lecture.lecture.getEnddate()) + .toString(), + Lecture.lecture.isActive(), + imagename, + person.verantwortlicher.getUsername(), + person.verantwortlicher.getVorname(), + person.verantwortlicher.getName(), + person.verantwortlicher.getHochschule(), + person.verantwortlicher.getEMail(), + person.verantwortlicher.getTel(), + person.verantwortlicher.getFakultaet()); + client.writeLectureRights(Lecture.lecture.getName(), person.verantwortlicher.getUsername(), person.verantwortlicher.getName(), person.verantwortlicher.getVorname(), person.verantwortlicher.getEMail(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getRole()); + JOptionPane + .showMessageDialog( + null, + "Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmen\u00fc zur\u00fcck.", + "Veranstaltung angelegt", + JOptionPane.INFORMATION_MESSAGE); + // zurueck zum Menue + MainMenue_GUI m = new MainMenue_GUI(); + m.setVisible(true); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane + .showMessageDialog( + null, + "Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.", + "Error", + JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + e1.getCause()+"\n"+e1.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + + dispose(); + + }else if (tablePublicVorlagen.getSelectedRow() != -1){ + + // a row is selected, do operations + String imagename = tablePublicVorlagen.getValueAt( + tablePublicVorlagen.getSelectedRow(), 0) + .toString(); + try { + DateFormat formatter = new SimpleDateFormat( + "yyyy-MM-dd hh:mm:ss"); + client.writeLecturedata( + Lecture.lecture.getName(), + Lecture.lecture.getShortDesc(), + Lecture.lecture.getDesc(), + formatter.format( + Lecture.lecture.getStartdate()) + .toString(), + formatter.format( + Lecture.lecture.getEnddate()) + .toString(), + Lecture.lecture.isActive(), + imagename, + person.verantwortlicher.getUsername(), + person.verantwortlicher.getVorname(), + person.verantwortlicher.getName(), + person.verantwortlicher.getHochschule(), + person.verantwortlicher.getEMail(), + person.verantwortlicher.getTel(), + person.verantwortlicher.getFakultaet()); + client.writeLectureRights(Lecture.lecture.getName(), person.verantwortlicher.getUsername(), person.verantwortlicher.getName(), person.verantwortlicher.getVorname(), person.verantwortlicher.getEMail(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getRole()); + JOptionPane + .showMessageDialog( + null, + "Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmen\u00fc zur\u00fcck.", + "Veranstaltung angelegt", + JOptionPane.INFORMATION_MESSAGE); + // zurueck zum Menue + MainMenue_GUI m = new MainMenue_GUI(); + m.setVisible(true); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane + .showMessageDialog( + null, + "Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.", + "Error", + JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + e1.getCause()+"\n"+e1.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + + dispose(); + + }else if (tableAllImages.getSelectedRow() != -1 &&tableAllImages.getValueAt(tableAllImages.getSelectedRow(), 4).toString().equals(username)){ + + // 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.writeLecturedata( + Lecture.lecture.getName(), + Lecture.lecture.getShortDesc(), + Lecture.lecture.getDesc(), + formatter.format( + Lecture.lecture.getStartdate()) + .toString(), + formatter.format( + Lecture.lecture.getEnddate()) + .toString(), + Lecture.lecture.isActive(), + imagename, + person.verantwortlicher.getUsername(), + person.verantwortlicher.getVorname(), + person.verantwortlicher.getName(), + person.verantwortlicher.getHochschule(), + person.verantwortlicher.getEMail(), + person.verantwortlicher.getTel(), + person.verantwortlicher.getFakultaet()); + client.writeLectureRights(Lecture.lecture.getName(), person.verantwortlicher.getUsername(), person.verantwortlicher.getName(), person.verantwortlicher.getVorname(), person.verantwortlicher.getEMail(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getRole()); + JOptionPane + .showMessageDialog( + null, + "Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmen\u00fc zur\u00fcck.", + "Veranstaltung angelegt", + JOptionPane.INFORMATION_MESSAGE); + // zurueck zum Menue + MainMenue_GUI m = new MainMenue_GUI(); + m.setVisible(true); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane + .showMessageDialog( + null, + "Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.", + "Error", + JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + e1.getCause()+"\n"+e1.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + + dispose(); + + } + else { + // nothing selected + JOptionPane.showMessageDialog(null, + "Bitte w\u00e4hlen Sie ein Image aus.", + "Image Auswahl", + JOptionPane.INFORMATION_MESSAGE); + } + + } + }); + doLinkButton.setActionCommand("OK"); + buttonPane.add(doLinkButton); + } + } + + JSeparator separator = new JSeparator(); + separator.setBounds(0, 79, 912, 1); + getContentPane().add(separator); + + JSeparator separator_1 = new JSeparator(); + separator_1.setBounds(0, 627, 912, 2); + getContentPane().add(separator_1); + + JPanel panel = new JPanel(); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Detailinformationen", + + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + panel.setBounds(586, 85, 316, 531); + getContentPane().add(panel); + + JLabel lblName = new JLabel("Name:"); + lblName.setBounds(10, 87, 130, 14); + panel.add(lblName); + + labelName = new JLabel(""); + labelName.setBounds(10, 102, 296, 14); + panel.add(labelName); + + JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:"); + lblVerantwortlicher.setBounds(10, 259, 130, 14); + panel.add(lblVerantwortlicher); + + labelOS = new JLabel(""); + labelOS.setBounds(10, 216, 296, 14); + panel.add(labelOS); + + JLabel lblWeitereVerantwortliche = new JLabel("Betriebssystem:"); + lblWeitereVerantwortliche.setBounds(10, 202, 130, 14); + panel.add(lblWeitereVerantwortliche); + + labelVerantwortlicher = new JLabel(""); + labelVerantwortlicher.setBounds(10, 272, 296, 14); + panel.add(labelVerantwortlicher); + + JLabel label = new JLabel("Weitere Verantwortliche:"); + label.setBounds(10, 284, 130, 14); + panel.add(label); + + labelWeitereVerantwortliche = new JLabel(""); + labelWeitereVerantwortliche.setBounds(10, 297, 296, 14); + panel.add(labelWeitereVerantwortliche); + + labelUpdate = new JLabel(""); + labelUpdate.setBounds(10, 245, 296, 14); + panel.add(labelUpdate); + + JLabel lblLetztesUpdate = new JLabel("Letztes Update:"); + lblLetztesUpdate.setBounds(10, 231, 130, 14); + panel.add(lblLetztesUpdate); + + JLabel lblImageIstVorlage = new JLabel("Image ist Vorlage:"); + lblImageIstVorlage.setBounds(10, 336, 130, 14); + panel.add(lblImageIstVorlage); + + labelVorlage = new JLabel(""); + labelVorlage.setBounds(10, 350, 296, 14); + panel.add(labelVorlage); + + labelLizenzSoftware = new JLabel(""); + labelLizenzSoftware.setBounds(10, 383, 296, 14); + panel.add(labelLizenzSoftware); + + JLabel lblLizenzpflichtigeSoftware = new JLabel("Lizenzpflichtige Software:"); + lblLizenzpflichtigeSoftware.setBounds(10, 367, 130, 14); + panel.add(lblLizenzpflichtigeSoftware); + + JLabel lblInternet = new JLabel("Internetsperre vorhanden:"); + lblInternet.setBounds(10, 400, 130, 14); + panel.add(lblInternet); + + labelInternet = new JLabel(""); + labelInternet.setBounds(10, 417, 296, 14); + panel.add(labelInternet); + + JLabel lblEmpfehlungRam = new JLabel("Empfehlung RAM:"); + lblEmpfehlungRam.setBounds(10, 432, 130, 14); + panel.add(lblEmpfehlungRam); + + labelRam = new JLabel(""); + labelRam.setBounds(10, 455, 296, 14); + panel.add(labelRam); + + JLabel lblEmpfehlungCpu = new JLabel("Empfehlung CPU:"); + lblEmpfehlungCpu.setBounds(10, 469, 130, 14); + panel.add(lblEmpfehlungCpu); + + labelCPU = new JLabel(""); + labelCPU.setBounds(10, 487, 296, 14); + panel.add(labelCPU); + + JLabel lblTechnischeDaten = new JLabel("Technische Daten:"); + lblTechnischeDaten.setBounds(10, 322, 296, 14); + panel.add(lblTechnischeDaten); + + JLabel lblId = new JLabel("ID:"); + lblId.setBounds(10, 23, 296, 14); + panel.add(lblId); + + labelID = new JLabel(""); + labelID.setBounds(10, 37, 296, 14); + panel.add(labelID); + + labelVersion = new JLabel(""); + labelVersion.setBounds(10, 73, 296, 14); + panel.add(labelVersion); + + JLabel lblVersion = new JLabel("Version:"); + lblVersion.setBounds(10, 57, 296, 14); + panel.add(lblVersion); + + JLabel lblBeschreibung = new JLabel("Beschreibung:"); + lblBeschreibung.setBounds(10, 119, 130, 14); + panel.add(lblBeschreibung); + + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setBounds(10, 135, 296, 65); + panel.add(scrollPane); + + textAreadesc = new JTextArea(); + textAreadesc.setLineWrap(true); + textAreadesc.setBackground(SystemColor.menu); + scrollPane.setViewportView(textAreadesc); + + JMenuBar menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + + 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getFAQ()); + + open.openWebpage(windows); + + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + + open.openWebpage(windows); + + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + + // Initiale Beffuelung eines Table models + public DefaultTableModel initTableModel(DefaultTableModel model) throws TException, ParseException { + List<server.Image> images; + + // Hole eine Liste der Images + images = client.getImageList(); + + Iterator<server.Image> i = images.iterator(); + SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); + int x = 0; + + while (i.hasNext()) { + // erzeuge Objekte fuer die Tabelle + Object[] obj = { images.get(x).getImageName(), + images.get(x).getLicenseRestriction(), + images.get(x).getOsName(), + images.get(x).getLectureName(), + images.get(x).getUserData(), + out.format(in.parse(images.get(x).updateTime)), images.get(x).id, + images.get(x).getVersion(), + images.get(x).getIsTemplate()}; + // Fuege diese Objekte der Tabelle hinzu + + model.addRow(obj); + x++; + i.next(); + + } + + return model; + + + } + public void writeImageData(String id, String version) throws TException, ParseException{ + + SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); + Map<String,String> res=client.getImageData(id,version); + labelName.setText(res.get("name")); + labelOS.setText(res.get("os")); + labelUpdate.setText(out.format(in.parse(res.get("lastupdate")))); + labelVerantwortlicher.setText(res.get("owner")); + labelWeitereVerantwortliche.setText("Noch nicht Verf�gbar"); + if(res.get("template").equals("true")){ + labelVorlage.setText("Ja"); + }else{ + labelVorlage.setText("Nein"); + } + if(res.get("license").equals("1")){ + labelLizenzSoftware.setText("Ja"); + } + else + { + labelLizenzSoftware.setText("Nein"); + } + if(res.get("internet").equals("1")){ + labelInternet.setText("Ja"); + } + else + { + labelInternet.setText("Nein"); + } + labelRam.setText(res.get("ram")); + labelCPU.setText(res.get("cpu")); + labelID.setText(res.get("id")); + labelVersion.setText(res.get("version")); + textAreadesc.setText(res.get("desc")); + + } +} diff --git a/dozentenmodul/src/main/java/gui/lecture/DeleteLecture_GUI.java b/dozentenmodul/src/main/java/gui/lecture/DeleteLecture_GUI.java new file mode 100644 index 00000000..ffadde1c --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/DeleteLecture_GUI.java @@ -0,0 +1,720 @@ +package gui.lecture; + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.SystemColor; +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.net.URI; +import java.net.URISyntaxException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.swing.JButton; +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.JTextArea; +import javax.swing.JTextField; +import javax.swing.JTextPane; +import javax.swing.RowFilter; +import javax.swing.ScrollPaneConstants; +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; +import javax.swing.table.TableModel; +import javax.swing.table.TableRowSorter; + +import models.Links; +import models.person; + +import org.apache.thrift.TException; + +import server.Server.Client; +import thrift.ThriftConnection; +import util.GuiOrganizer; +import util.OpenLinks; + +@SuppressWarnings("serial") +public class DeleteLecture_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + JRadioButton rdbtnInternetJa; + JRadioButton rdbtnInternetNein; + JLabel labelAktiv; + JLabel labelstartdate; + JLabel labelenddate; + JLabel labelimageversion; + JTextArea labelName; + JTextArea labelimage; + JTextArea labeldesc; + JLabel labelVerantwortlicher; + JTable tableAllLectures; + JTable tablemyLectures; + private JTextField textFieldName; + JTabbedPane tabbedPane; + boolean activeSearch=false; + String[] titles = { "Veranstaltungsname", "Beschreibung", + "G\u00fcltigkeitsdatum", "Aktiv", "Letzte Benutzung", + "Verantwortlicher", "Image", "Schlagwort", "ID" }; + ThriftConnection con = new ThriftConnection(); + Client client = models.Client.clientcon.getClient(); + final DefaultTableModel modelAll = new DefaultTableModel(titles, 0); + final DefaultTableModel modelMyLectures = new DefaultTableModel(titles, 0); + final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>( + modelAll); + final TableRowSorter<TableModel> rowSorterMyLectures = new TableRowSorter<TableModel>( + modelMyLectures); + private JButton button; + private JTextField textField; + + + /** + * Create the dialog. + */ + public DeleteLecture_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + // Beendet die Anwendung nach klick auf X + con.closeThriftConnection(); + System.exit(0); + } + @Override + public void windowOpened(WindowEvent arg0) { + textFieldName.requestFocusInWindow(); + try { + initTableModel(modelMyLectures); + initTableModel(modelAll); + + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // auszublendende Angaben + // 1=Beschreibung + // 2=G\u00fcltigkeitsdatum + // 3=Aktiv + // 6=Image + // 7=Schlagwort + // 8=ID + tablemyLectures.getColumnModel().getColumn(1).setWidth(0); + tablemyLectures.getColumnModel().getColumn(1).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(1).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(2).setWidth(0); + tablemyLectures.getColumnModel().getColumn(2).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(2).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(3).setWidth(0); + tablemyLectures.getColumnModel().getColumn(3).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(3).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(6).setWidth(0); + tablemyLectures.getColumnModel().getColumn(6).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(6).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(7).setWidth(0); + tablemyLectures.getColumnModel().getColumn(7).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(7).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(8).setWidth(0); + tablemyLectures.getColumnModel().getColumn(8).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(8).setMaxWidth(0); + + tableAllLectures.getColumnModel().getColumn(1).setWidth(0); + tableAllLectures.getColumnModel().getColumn(1).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(1).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(2).setWidth(0); + tableAllLectures.getColumnModel().getColumn(2).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(2).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(3).setWidth(0); + tableAllLectures.getColumnModel().getColumn(3).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(3).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(6).setWidth(0); + tableAllLectures.getColumnModel().getColumn(6).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(6).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(7).setWidth(0); + tableAllLectures.getColumnModel().getColumn(7).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(7).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(8).setWidth(0); + tableAllLectures.getColumnModel().getColumn(8).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(8).setMaxWidth(0); + } + }); + // Verhindert das Vergroessern 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 - Veranstaltung l\u00F6schen"); + // Zentriert das Fenster in die Bildmitte + setBounds(0, 0, 842, 722); + GuiOrganizer.centerGUI(this); + + + getContentPane().setLayout(null); + { + JPanel panel = new JPanel(); + panel.setBackground(SystemColor.menu); + panel.setBounds(10, 11, 816, 57); + getContentPane().add(panel); + panel.setLayout(null); + { + JLabel lblNewLabel = new JLabel( + "Zu l\u00F6schende Veranstaltung w\u00E4hlen"); + 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 aus der unten stehenden Liste die zu l\u00F6schende Veranstaltung aus."); + txtpnBitteWhlenSie.setBounds(10, 36, 509, 32); + panel.add(txtpnBitteWhlenSie); + } + contentPanel.setBounds(10, 85, 570, 518); + 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, 64); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JLabel lblNewLabel_2 = new JLabel("Name:"); + lblNewLabel_2.setBounds(10, 30, 80, 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 != "") { + activeSearch=true; + // Filtere nach der Eingabe + rowSorterAll.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + rowSorterMyLectures.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + + }else{ + activeSearch=false; + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + rowSorterMyLectures.setRowFilter(RowFilter.regexFilter( + username, 5)); + rowSorterAll.setRowFilter(null); + } + } + }); + + textFieldName.setBounds(96, 30, 166, 20); + panel_1.add(textFieldName); + textFieldName.setColumns(10); + + JLabel label = new JLabel("Beschreibung:"); + label.setBounds(291, 30, 80, 20); + panel_1.add(label); + + textField = new JTextField(); + textField.setColumns(10); + textField.setBounds(381, 30, 166, 20); + panel_1.add(textField); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + // oeffnet das Hauptmenue + + DeleteLecture_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("Veranstaltung l\u00F6schen"); + 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) { + if (tabbedPane.getSelectedIndex() == 0) { + + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + rowSorterMyLectures.setRowFilter(RowFilter.regexFilter( + username, 5)); + } else if (tabbedPane.getSelectedIndex() == 1) { + rowSorterAll.setRowFilter(null); + } + + } + }); + + tabbedPane.setBounds(10, 123, 557, 397); + contentPanel.add(tabbedPane); + + + JScrollPane scrollPaneAllImages = new JScrollPane(); + tableAllLectures = new JTable(); + tableAllLectures.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + String imageid = modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), 8) + .toString(); + //System.out.println(imageid); + + try { + writeLectureData(imageid); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + 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(); + tableAllLectures.setRowSorter(rowSorterAll); + JScrollPane scrollPaneMyImage = new JScrollPane(); + tablemyLectures = new JTable(); + tablemyLectures.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + String imageid = modelMyLectures + .getValueAt( + tablemyLectures + .convertRowIndexToModel(tablemyLectures + .getSelectedRow()), 8) + .toString(); + //System.out.println(imageid); + + try { + writeLectureData(imageid); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + 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); + + + scrollPaneAllImages.setViewportView(tableAllLectures); + tabbedPane.addTab("Alle", null, scrollPaneAllImages, null); + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 826, 33); + buttonPane.setBackground(SystemColor.menu); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane); + { + JButton btnBack = new JButton("Zur\u00FCck"); + btnBack.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + // oeffnet das Hauptmenue + + MainMenue_GUI main = new MainMenue_GUI(); + main.setVisible(true); + dispose(); + } + }); + btnBack.setActionCommand("OK"); + buttonPane.add(btnBack); + getRootPane().setDefaultButton(btnBack); + } + } + + JSeparator separator = new JSeparator(); + separator.setBounds(0, 79, 836, 1); + getContentPane().add(separator); + + JSeparator separator_1 = new JSeparator(); + separator_1.setBounds(0, 628, 836, 1); + getContentPane().add(separator_1); + + JPanel panel = new JPanel(); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Detailinformationen", + + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + panel.setBounds(591, 85, 235, 518); + getContentPane().add(panel); + + JLabel lblNewLabel_3 = new JLabel("Name:"); + lblNewLabel_3.setBounds(10, 27, 104, 14); + panel.add(lblNewLabel_3); + + JLabel lblAktiv = new JLabel("Aktiv:"); + lblAktiv.setBounds(10, 98, 104, 14); + panel.add(lblAktiv); + + labelAktiv = new JLabel(""); + labelAktiv.setBounds(10, 114, 218, 14); + panel.add(labelAktiv); + + labelstartdate = new JLabel(""); + labelstartdate.setBounds(10, 147, 218, 14); + panel.add(labelstartdate); + + JLabel lblStartdatum = new JLabel("Startdatum:"); + lblStartdatum.setBounds(10, 129, 104, 14); + panel.add(lblStartdatum); + + labelenddate = new JLabel(""); + labelenddate.setBounds(10, 175, 218, 14); + panel.add(labelenddate); + + JLabel lblEnddatum = new JLabel("Enddatum:"); + lblEnddatum.setBounds(10, 161, 104, 14); + panel.add(lblEnddatum); + + JLabel lblBeschreibung = new JLabel("Beschreibung:"); + lblBeschreibung.setBounds(10, 189, 104, 14); + panel.add(lblBeschreibung); + + JLabel lblImage = new JLabel("Image:"); + lblImage.setBounds(10, 293, 104, 14); + panel.add(lblImage); + + labelVerantwortlicher = new JLabel(""); + labelVerantwortlicher.setBounds(10, 426, 218, 14); + panel.add(labelVerantwortlicher); + + JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:"); + lblVerantwortlicher.setBounds(10, 411, 104, 14); + panel.add(lblVerantwortlicher); + + JLabel lblImageversion = new JLabel("Imageversion:"); + lblImageversion.setBounds(10, 381, 104, 14); + panel.add(lblImageversion); + + labelimageversion = new JLabel(""); + labelimageversion.setBounds(10, 399, 218, 14); + panel.add(labelimageversion); + + + labeldesc = new JTextArea(); + labeldesc.setFont(new Font("Tahoma", Font.PLAIN, 11)); + labeldesc.setEditable(false); + labeldesc.setLineWrap(true); + labeldesc.setBackground(SystemColor.menu); + labeldesc.setBounds(124, 127, 104, 110); + JScrollPane scrollPane = new JScrollPane(labeldesc); + scrollPane.setBounds(10, 209, 218, 81); + panel.add(scrollPane); + //panel.add(labeldesc); + + labelimage = new JTextArea(); + labelimage.setLineWrap(true); + labelimage.setFont(new Font("Tahoma", Font.PLAIN, 11)); + labelimage.setEditable(false); + labelimage.setBackground(SystemColor.menu); + labelimage.setBounds(124, 248, 101, 81); + JScrollPane scrollPaneImage = new JScrollPane(labelimage); + scrollPaneImage.setBounds(10, 309, 215, 69); + panel.add(scrollPaneImage); + + labelName = new JTextArea(); + labelName.setEditable(false); + labelName.setFont(new Font("Tahoma", Font.PLAIN, 11)); + labelName.setBackground(SystemColor.menu); + labelName.setBounds(124, 22, 101, 55); + JScrollPane scrollPaneName = new JScrollPane(labelName); + scrollPaneName.setBounds(10, 40, 218, 55); + panel.add(scrollPaneName); + + button = new JButton("L\u00F6schen"); + button.setBounds(469, 606, 118, 23); + getContentPane().add(button); + button.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String lectureID=""; + int eingabe; + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + //check if a row is selected + if (tablemyLectures.getSelectedRowCount() !=0){ + //a row is selected + //ask for confirmation + eingabe = JOptionPane.showConfirmDialog(null, + "Wollen Sie diese Daten l\u00f6schen?", "L\u00f6schen?", + JOptionPane.YES_NO_OPTION); + + if (eingabe == JOptionPane.YES_OPTION) { + //user has confirmed deletion, now get the ID of the selected lecture + lectureID = modelMyLectures.getValueAt(tablemyLectures.convertColumnIndexToModel(tablemyLectures.getSelectedRow()), 8).toString(); + System.out.println("L\u00f6sche Lecture "+lectureID); + try { + if(client.deleteLecture(lectureID, person.verantwortlicher.getHochschule(),person.verantwortlicher.getUsername())){ + System.out.println("L\u00f6schen erfolgreich"); + //delete successful + + DeleteLecture_GUI dl = new DeleteLecture_GUI(); + dl.setVisible(true); + dispose(); + } else { + //delete not successful + JOptionPane + .showMessageDialog( + null, + "L\u00f6schen aus Datenbank fehlgeschlagen.", + "Fehler", + JOptionPane.INFORMATION_MESSAGE); + } + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + }//end delete + }//end ask for confirmation + + }//end check if a row is selected + else if (tableAllLectures.getSelectedRowCount() !=0 && tableAllLectures.getValueAt(tableAllLectures.getSelectedRow(), 5).toString().equals(username)){ + //a row is selected + //ask for confirmation + eingabe = JOptionPane.showConfirmDialog(null, + "Wollen Sie diese Daten l\u00f6schen?", "L\u00f6schen?", + JOptionPane.YES_NO_OPTION); + + if (eingabe == JOptionPane.YES_OPTION) { + //user has confirmed deletion, now get the ID of the selected lecture + lectureID = tableAllLectures.getValueAt(tableAllLectures.convertColumnIndexToModel(tableAllLectures.getSelectedRow()), 8).toString(); + System.out.println("L\u00f6sche Lecture "+lectureID); + try { + if(client.deleteLecture(lectureID, person.verantwortlicher.getHochschule(),person.verantwortlicher.getUsername())){ + System.out.println("L\u00f6schen erfolgreich"); + //delete successful + + DeleteLecture_GUI dl = new DeleteLecture_GUI(); + dl.setVisible(true); + dispose(); + } else { + //delete not successful + JOptionPane + .showMessageDialog( + null, + "L\u00f6schen aus Datenbank fehlgeschlagen.", + "Fehler", + JOptionPane.INFORMATION_MESSAGE); + } + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + }//end delete + }//end ask for confirmation + + } else { //end check if a row is selected + JOptionPane + .showMessageDialog( + null, + "Bitte w\u00e4hlen Sie ein eigenes Image aus.", + "Message", + JOptionPane.INFORMATION_MESSAGE); + } + + } + }); + + JMenuBar menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getFAQ()); + + open.openWebpage(windows); + + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + + open.openWebpage(windows); + + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + + // Initiale Beffuelung eines Table models + public DefaultTableModel initTableModel(DefaultTableModel model) throws ParseException { + List<server.Lecture> lectures; + try { + // Hole eine Liste der Images + lectures = client.getLectureList(); + Iterator<server.Lecture> i = lectures.iterator(); + SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + int x = 0; + + while (i.hasNext()) { + // erzeuge Objekte fuer die Tabelle + Object[] obj = { + lectures.get(x).lecturename, + lectures.get(x).desc, + out.format(in.parse(lectures.get(x).starttime)) + " " + + out.format(in.parse(lectures.get(x).endtime)), + lectures.get(x).isActive, out.format(in.parse(lectures.get(x).lastused)), + lectures.get(x).username, + lectures.get(x).imagename," " ,lectures.get(x).id }; + // Fuege 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; + } + public void writeLectureData(String id) throws TException, ParseException{ + + SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + Map<String,String> res=client.getLectureData(id); + labelName.setText(res.get("name")); + labelAktiv.setText(res.get("isActive")); + labeldesc.setText(res.get("desc")); + labelVerantwortlicher.setText(res.get("owner")); + labelstartdate.setText(out.format(in.parse(res.get("startTime")))); + labelenddate.setText(out.format(in.parse(res.get("endTime")))); + labelimage.setText(res.get("imagepath").substring(res.get("imagepath").indexOf("/")+1)); + labelimageversion.setText(res.get("imageversion")); + + +} +} diff --git a/dozentenmodul/src/main/java/gui/lecture/EditLectureAllgemein_GUI.java b/dozentenmodul/src/main/java/gui/lecture/EditLectureAllgemein_GUI.java new file mode 100644 index 00000000..457b67db --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/EditLectureAllgemein_GUI.java @@ -0,0 +1,594 @@ +package gui.lecture; + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.ScrollPane; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Calendar; +import java.util.Date; + +import javax.swing.ButtonGroup; +import javax.swing.JButton; +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.JSeparator; +import javax.swing.JTextArea; +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 models.Image; +import models.Lecture; +import models.Links; +import models.person; +import util.GuiOrganizer; +import util.OpenLinks; + +import com.toedter.calendar.JDateChooser; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeEvent; + +@SuppressWarnings("serial") +public class EditLectureAllgemein_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + private JTextField Vorname; + private JTextField Nachname; + private JTextField Hochschule; + private JTextField EMail; + private JTextField textFieldLaborname; + JTextArea description; + JRadioButton radioButtonyes; + JDateChooser dateChooserend; + JDateChooser dateChooserstart; + JRadioButton radioButtonno; + Date startDate = new Date(); + Date endDate; + private final ButtonGroup buttonGroup = new ButtonGroup(); + private boolean descriptionLengthOK = false; // description may not be + // longer than + // MAX_DESCRIPTION_LENGTH + private final int MAX_DESCRIPTION_LENGTH = 254; + + int maxLifeTime = 180; // Anzahl Tage, die eine Veranstaltung in der Zukunft + // aktiv sein darf + boolean isDateOrderCorrect, isDateMaxLifeTimeCorrect, + isAllInformationReady = false; + + /** + * Create the dialog. + */ + public EditLectureAllgemein_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + 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 - Veranstaltung bearbeiten"); + ; + setBounds(0, 0, 603, 722); + GuiOrganizer.centerGUI(this); + + 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("Eingabe Ihrer Daten"); + 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("Geben Sie hier bitte einen sprechenden Imagename sowie Ihre Kontaktdaten an"); + txtpnBitteWhlenSie.setBounds(10, 36, 509, 21); + panel.add(txtpnBitteWhlenSie); + } + contentPanel.setBounds(10, 85, 577, 493); + 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, "Informationen zum Besitzer", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_1.setBounds(10, 331, 557, 162); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JLabel label = new JLabel("Vorname: *"); + label.setBackground(SystemColor.menu); + label.setBounds(10, 33, 125, 20); + panel_1.add(label); + + Vorname = new JTextField(); + Vorname.setEditable(false); + Vorname.setEnabled(false); + Vorname.setText(person.verantwortlicher.getVorname()); + Vorname.setBackground(Color.WHITE); + Vorname.setColumns(10); + Vorname.setBounds(145, 33, 350, 20); + panel_1.add(Vorname); + + JLabel label_7 = new JLabel("Nachname: *"); + label_7.setBackground(SystemColor.menu); + label_7.setBounds(10, 64, 125, 20); + panel_1.add(label_7); + + Nachname = new JTextField(); + Nachname.setEnabled(false); + Nachname.setEditable(false); + Nachname.setText(person.verantwortlicher.getName()); + Nachname.setBackground(Color.WHITE); + Nachname.setColumns(10); + Nachname.setBounds(145, 64, 350, 20); + panel_1.add(Nachname); + + JLabel label_8 = new JLabel("Hochschule: *"); + label_8.setBackground(SystemColor.menu); + label_8.setBounds(10, 95, 125, 20); + panel_1.add(label_8); + + Hochschule = new JTextField(); + Hochschule.setEnabled(false); + Hochschule.setEditable(false); + Hochschule.setText(person.verantwortlicher.getHochschule()); + Hochschule.setBackground(Color.WHITE); + Hochschule.setColumns(10); + Hochschule.setBounds(145, 95, 350, 20); + panel_1.add(Hochschule); + + JLabel label_9 = new JLabel("E-Mail: *"); + label_9.setBackground(SystemColor.menu); + label_9.setBounds(10, 126, 125, 20); + panel_1.add(label_9); + + EMail = new JTextField(); + EMail.setEnabled(false); + EMail.setEditable(false); + EMail.setText(person.verantwortlicher.getEMail()); + EMail.setBackground(Color.WHITE); + EMail.setColumns(10); + EMail.setBounds(145, 126, 350, 20); + panel_1.add(EMail); + + JPanel panel = new JPanel(); + panel.setBounds(10, 402, 577, 33); + contentPanel.add(panel); + panel.setLayout(null); + panel.setBorder(new EmptyBorder(5, 5, 5, 5)); + panel.setBackground(SystemColor.menu); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + + EditLectureAllgemein_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, 84, 14); + contentPanel.add(lblVlimage); + + JLabel label_2 = new JLabel(">"); + label_2.setBounds(175, 11, 13, 14); + contentPanel.add(label_2); + + JLabel lblNewLabel_1 = new JLabel("Bearbeiten"); + lblNewLabel_1.setBounds(188, 11, 72, 14); + contentPanel.add(lblNewLabel_1); + + JPanel panel_2 = new JPanel(); + panel_2.setLayout(null); + panel_2.setBorder(new TitledBorder(null, "Veranstaltungsdaten", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_2.setBackground(SystemColor.menu); + panel_2.setBounds(10, 36, 557, 284); + contentPanel.add(panel_2); + + JLabel label_3 = new JLabel("Laborname (Anzeigename): *"); + label_3.setBounds(10, 25, 180, 14); + panel_2.add(label_3); + + textFieldLaborname = new JTextField(); + textFieldLaborname.setText(Lecture.lecture.getName()); + textFieldLaborname.setColumns(10); + textFieldLaborname.setBounds(200, 22, 347, 20); + panel_2.add(textFieldLaborname); + + JTextArea textArea = new JTextArea(); + textArea.setEditable(false); + textArea.setWrapStyleWord(true); + textArea.setText("Geben Sie bitte einen sprechenden Namen f\u00FCr das Image an. Dieser soll jedoch recht allgemein gehalten werden.\r\nBeispiel: \"Programmieren\", nicht \"Programmieren 1\""); + textArea.setLineWrap(true); + textArea.setFont(new Font("Tahoma", Font.PLAIN, 12)); + textArea.setBackground(SystemColor.menu); + textArea.setBounds(10, 49, 537, 49); + panel_2.add(textArea); + + JLabel label_4 = new JLabel("Beschreibung: *"); + label_4.setBounds(10, 111, 180, 14); + panel_2.add(label_4); + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setBounds(200, 104, 347, 78); + panel_2.add(scrollPane); + description = new JTextArea(); + description.setFont(new Font("Tahoma", Font.PLAIN, 11)); + description.setText(Lecture.lecture.getDesc()); + description.setLineWrap(true); + scrollPane.add(description); + description.setBounds(0, 0, 4, 22); + scrollPane.add(description); + + dateChooserend = new JDateChooser(); + dateChooserend.setDateFormatString("dd-MM-yyyy HH:mm:ss"); + dateChooserend.setDate(Lecture.lecture.getEnddate()); + dateChooserend.setBounds(404, 188, 143, 20); + panel_2.add(dateChooserend); + + JLabel label_5 = new JLabel("bis"); + label_5.setBounds(378, 188, 21, 20); + panel_2.add(label_5); + + dateChooserstart = new JDateChooser(); + dateChooserstart + .addPropertyChangeListener(new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent arg0) { + endDate = addDays(dateChooserstart.getDate(), + maxLifeTime); // Datum darf weiter als 6 + // Monate in der Zukunft + // liegen + } + }); + + // initialize + if (Lecture.lecture.getStartdate() == null) { + // is not defined yet + dateChooserstart.setDate(startDate); + } else { + // already defined from last visit on this page + dateChooserstart.setDate(Lecture.lecture.getStartdate()); + } + + if (Lecture.lecture.getEnddate() == null) { + // is not defined yet + dateChooserend.setDate(endDate); + } else { + // already defined from last visit on this page + dateChooserend.setDate(Lecture.lecture.getEnddate()); + } + + dateChooserstart.setDateFormatString("yyyy-MM-dd HH:mm:ss"); + dateChooserstart.setDate(Lecture.lecture.getStartdate()); + dateChooserstart.setBounds(226, 188, 143, 20); + panel_2.add(dateChooserstart); + + JLabel label_6 = new JLabel("von:"); + label_6.setBounds(200, 188, 30, 20); + panel_2.add(label_6); + + JLabel label_10 = new JLabel("G\u00FCltigkeitsdatum: *"); + label_10.setBounds(10, 188, 250, 14); + panel_2.add(label_10); + + JLabel label_11 = new JLabel("Aktiv:"); + label_11.setBounds(10, 229, 250, 14); + panel_2.add(label_11); + + radioButtonyes = new JRadioButton("Ja"); + buttonGroup.add(radioButtonyes); + radioButtonyes.setBounds(240, 225, 109, 23); + panel_2.add(radioButtonyes); + radioButtonno = new JRadioButton("Nein"); + buttonGroup.add(radioButtonno); + radioButtonno.setBounds(385, 225, 109, 23); + panel_2.add(radioButtonno); + + radioButtonyes.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + radioButtonyes.setSelected(true); + radioButtonno.setSelected(false); + } + }); + radioButtonno.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + radioButtonno.setSelected(true); + radioButtonyes.setSelected(false); + } + }); + + JLabel label_12 = new JLabel("(Im VMChooser sichtbar)"); + label_12.setBounds(10, 254, 250, 14); + panel_2.add(label_12); + + JLabel lblmaxMonate = new JLabel("(max. 6 Monate)"); + lblmaxMonate.setBounds(10, 208, 127, 14); + panel_2.add(lblmaxMonate); + + { + 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) { + + if (radioButtonyes.isSelected() == true) { + Lecture.lecture.setActive(true); + } else { + Lecture.lecture.setActive(false); + } + + Lecture.lecture.setName(textFieldLaborname.getText()); + Lecture.lecture.setDesc(description.getText()); + Lecture.lecture.setEnddate(dateChooserend.getDate()); + Lecture.lecture.setStartdate(dateChooserstart.getDate()); + Image.image.setImagename(textFieldLaborname.getText()); + + MainMenue_GUI sr = new MainMenue_GUI(); + sr.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) { + * if(radioButtonyes.isSelected()==true) { + * Lecture.lecture.setActive(true); } else { + * Lecture.lecture.setActive(false); } + * + * Lecture.lecture.setName(textFieldLaborname.getText()); + * Lecture.lecture.setNewName(textFieldLaborname.getText()); + * Lecture.lecture.setDesc(description.getText()); + * Lecture.lecture.setEnddate(dateChooserend.getDate()); + * Lecture.lecture.setStartdate(dateChooserstart.getDate()); + * Image.image.setImagename(textFieldLaborname.getText()); + * + * + * PermissionEditLecture_GUI ev=new + * PermissionEditLecture_GUI(); ev.setVisible(true); + * dispose(); } + */ + public void actionPerformed(ActionEvent e) { + // liegt das End-Datum vor dem Start-Datum? + if (dateChooserend.getDate().before( + dateChooserstart.getDate())) { + // datum ist falsch rum + isDateOrderCorrect = false; + JOptionPane + .showMessageDialog( + null, + "Das End-Datum liegt vor dem Start-Datum. Bitte \u00e4ndern.", + "Datum fehlerhaft", + JOptionPane.INFORMATION_MESSAGE); + } else { + // bereit + isDateOrderCorrect = true; + } + // liegt das eingegebene Datum nach dem erlaubten + // End-Datum? + if (dateChooserend.getDate().after(endDate)) { + // Datum zu weit weg + isDateMaxLifeTimeCorrect = false; + JOptionPane.showMessageDialog(null, + "Das End-Datum liegt zu weit in der Zukunft. Erlaubt ist maximal:\n" + + endDate, "Datum fehlerhaft", + JOptionPane.INFORMATION_MESSAGE); + + dateChooserend.setDate(endDate); // setze Datum auf + // maximum + } else { + // bereit + isDateMaxLifeTimeCorrect = true; + } + // Pruefen ob alles eingegeben wurde + if (textFieldLaborname.getText().isEmpty() == true + || description.getText().isEmpty() == true) { + // mind 1 Textfeld ist leer + isAllInformationReady = false; + JOptionPane + .showMessageDialog( + null, + "Bitte geben Sie einen Veranstaltungsnamen und eine Beschreibung ein.", + "Datum fehlerhaft", + JOptionPane.INFORMATION_MESSAGE); + } else { + // Textfelder bereit + isAllInformationReady = true; + } + + // welcher Radiobutton ist geklickt? + if (radioButtonyes.isSelected() == true) { + Lecture.lecture.setActive(true); + } else { + Lecture.lecture.setActive(false); + } + // Pruefe ob alle Eingaben korrekt sind, dann mache + // weiter + if (isAllInformationReady == true + && isDateMaxLifeTimeCorrect == true + && isDateOrderCorrect == true + && descriptionLenghtOK() == true) { + // everything is ok, proceed + Lecture.lecture.setName(textFieldLaborname + .getText()); + Lecture.lecture.setDesc(description.getText()); + Lecture.lecture.setEnddate(dateChooserend.getDate()); + Lecture.lecture.setStartdate(dateChooserstart + .getDate()); + + Image.image.setImagename(textFieldLaborname + .getText()); + + PermissionCreateLecture_GUI ev = new PermissionCreateLecture_GUI(); + ev.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); + + JLabel lblPflichtfelder = new JLabel("* Pflichtfelder"); + lblPflichtfelder.setBounds(32, 602, 136, 14); + getContentPane().add(lblPflichtfelder); + + 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) { + OpenLinks open = new OpenLinks(); + URI windows; + try { + windows = new URI(Links.getFAQ()); + open.openWebpage(windows); + } catch (URISyntaxException 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) { + OpenLinks open = new OpenLinks(); + URI windows; + try { + windows = new URI(Links.getOTRS()); + open.openWebpage(windows); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + + public Date addDays(Date date, int days) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DATE, days); // minus number would decrement the days + return cal.getTime(); + }// end addDays() + + public boolean descriptionLenghtOK() { + descriptionLengthOK = false; + + // max length is 254 chars + if (description.getText().length() >= MAX_DESCRIPTION_LENGTH) { + descriptionLengthOK = false; + JOptionPane.showMessageDialog(null, + "Die Beschreibung darf max 254 Zeichen enthalten. Aktuell enthält sie " + + description.getText().length() + ".", + "Beschreibung zu umfangreich", + JOptionPane.INFORMATION_MESSAGE); + } else { + descriptionLengthOK = true; + + } + + return descriptionLengthOK; + }// enddescriptionLenghtOK() + +}// end class
\ No newline at end of file diff --git a/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java b/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java new file mode 100644 index 00000000..773a01b7 --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java @@ -0,0 +1,1020 @@ +package gui.lecture; + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.SystemColor; +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.net.URI; +import java.net.URISyntaxException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.swing.JButton; +import javax.swing.JComboBox; +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.JTextArea; +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.table.DefaultTableModel; +import javax.swing.table.TableModel; +import javax.swing.table.TableRowSorter; + +import models.Lecture; +import models.Links; +import models.person; + +import org.apache.thrift.TException; + +import server.Server.Client; +import thrift.ThriftConnection; +import util.GuiOrganizer; +import util.OpenLinks; +import javax.swing.event.ChangeListener; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +@SuppressWarnings("serial") +public class EditLectureLink_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + JRadioButton rdbtnInternetJa; + JRadioButton rdbtnInternetNein; + JComboBox<String> comboBox; + JLabel labelName; + JLabel labelUpdate; + JLabel labelVerantwortlicher; + JLabel labelWeitereVerantwortliche; + JLabel labelVorlage; + JLabel labelLizenzSoftware; + JLabel labelInternet; + JLabel labelRam; + JLabel labelID; + JLabel labelVersion; + JTextArea textAreadesc; + JLabel labelCPU; + private JLabel labelOS; + JTable tableAllImages = new JTable(); + JTable tablemyImages = new JTable(); + JTable tableCoopImages = new JTable(); + JTable tablePublicVorlagen = new JTable(); + private JTextField textFieldName; + JTabbedPane tabbedPane; + boolean activeSearch=false; + String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung", + "Verantwortlicher", "Letztes Update", "ID", "Version","Template" }; + 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); + private JTextField textField; + /** + * Create the dialog. + */ + public EditLectureLink_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + con.closeThriftConnection(); + System.exit(0); + } + @Override + public void windowOpened(WindowEvent arg0) { + try { + initTableModel(modelAll); + initTableModel(modelMyImages); + initTableModel(modelPublicVorlagen); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // auszublendende Angaben + // 1=Lizenzpflichtig + // 3=Veranstaltung + // 6=ID + // 7=Version + // 8=Template + tablemyImages.getColumnModel().getColumn(1).setWidth(0); + tablemyImages.getColumnModel().getColumn(1).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(3).setWidth(0); + tablemyImages.getColumnModel().getColumn(3).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(3).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(8).setWidth(0); + tablemyImages.getColumnModel().getColumn(8).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(8).setMaxWidth(0); + tablemyImages.getColumnModel().getColumn(6).setWidth(0); + tablemyImages.getColumnModel().getColumn(6).setMinWidth(0); + tablemyImages.getColumnModel().getColumn(6).setMaxWidth(0); + 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); + textFieldName.requestFocusInWindow(); + } + }); + setResizable(false); + + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException + | IllegalAccessException | UnsupportedLookAndFeelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + setTitle("bwLehrpool Suite - Veranstaltung bearbeiten"); + + setBounds(0, 0, 918, 722); + GuiOrganizer.centerGUI(this); + + + 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, 91); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JLabel lblNewLabel_2 = new JLabel("Name:"); + lblNewLabel_2.setBounds(10, 30, 80, 20); + panel_1.add(lblNewLabel_2); + + JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:"); + lblInternetIstInnerhalb.setBounds(10, 58, 80, 20); + panel_1.add(lblInternetIstInnerhalb); + + textFieldName = new JTextField(); + textFieldName.addKeyListener(new KeyAdapter() { + @Override + public void keyReleased(KeyEvent e) { + String stext = textFieldName.getText(); + // Wenn Textfield nicht leer + if (stext != "") { + activeSearch=true; + // Filtere nach der Eingabe + rowSorterAll.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + rowSorterMyImages.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + + }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); + } + + } + + }); + + textFieldName.setBounds(96, 30, 166, 20); + panel_1.add(textFieldName); + textFieldName.setColumns(10); + + comboBox = new JComboBox<String>(); + try { + List<String> 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) { + // 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)); + }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); + } + } + }); + comboBox.setBounds(96, 58, 166, 20); + panel_1.add(comboBox); + + JLabel label_3 = new JLabel("Beschreibung:"); + label_3.setBounds(291, 30, 80, 20); + panel_1.add(label_3); + + textField = new JTextField(); + textField.setColumns(10); + textField.setBounds(381, 30, 166, 20); + panel_1.add(textField); + + 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); + + tabbedPane = new JTabbedPane(JTabbedPane.TOP); + tabbedPane.addChangeListener(new ChangeListener() { + public void stateChanged(ChangeEvent arg0) { + if (tabbedPane.getSelectedIndex() == 0 && activeSearch==false) { + + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + rowSorterMyImages.setRowFilter(RowFilter.regexFilter( + username, 4)); + }else if(tabbedPane.getSelectedIndex()==1 && activeSearch==false){ + rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8)); + } else if(tabbedPane.getSelectedIndex()==2 && activeSearch==false){ + rowSorterAll.setRowFilter(null); + } + + } + }); + + tabbedPane.setBounds(10, 158, 557, 339); + contentPanel.add(tabbedPane); + + JScrollPane scrollPaneAllImages = new JScrollPane(); + tableAllImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + + String imageid = modelAll + .getValueAt( + tableAllImages + .convertRowIndexToModel(tableAllImages + .getSelectedRow()), 6) + .toString(); + //System.out.println(imageid); + String version = modelAll + .getValueAt( + tableAllImages + .convertRowIndexToModel(tableAllImages + .getSelectedRow()), 7) + .toString(); + //System.out.println(version); + writeImageData(imageid, version); + + } + }); + 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(); + tableAllImages.setRowSorter(rowSorterAll); + JScrollPane scrollPaneMyImage = new JScrollPane(); + tablemyImages.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + String imageid = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), 6) + .toString(); + //System.out.println(imageid); + String version = modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), 7) + .toString(); + //System.out.println(version); + 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); + tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null); + + JScrollPane scrollPanePublicVorlagen = new JScrollPane(); + scrollPanePublicVorlagen.setEnabled(false); + tablePublicVorlagen.getSelectionModel().addListSelectionListener( new ListSelectionListener() + { + public void valueChanged(ListSelectionEvent e) + { + String imageid = modelPublicVorlagen + .getValueAt( + tablePublicVorlagen + .convertRowIndexToModel(tablePublicVorlagen + .getSelectedRow()), 6) + .toString(); + //System.out.println(imageid); + String version = modelPublicVorlagen + .getValueAt( + tablePublicVorlagen + .convertRowIndexToModel(tablePublicVorlagen + .getSelectedRow()), 7) + .toString(); + //System.out.println(version); + writeImageData(imageid, version); + } + }); + tablePublicVorlagen.setModel(modelPublicVorlagen); + 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(); + tablePublicVorlagen.setRowSorter(rowSorterPublicVorlagen); + scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen); + tabbedPane.addTab("Vorlagen", null, + scrollPanePublicVorlagen, null); + + + scrollPaneAllImages.setViewportView(tableAllImages); + tabbedPane.addTab("Alle", null, scrollPaneAllImages, 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("bwLehrpool", null, scrollPaneCoopImages, + null); + tabbedPane.setEnabledAt(3, false); + + JButton btnLinkLschen = new JButton("Link l\u00F6schen"); + btnLinkLschen.setEnabled(false); + btnLinkLschen.setBounds(478, 508, 89, 23); + contentPanel.add(btnLinkLschen); + + + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 902, 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) { + + PermissionEditLecture_GUI el = new PermissionEditLecture_GUI(); + el.setVisible(true); + dispose(); + } + }); + okButton.setActionCommand("OK"); + buttonPane.add(okButton); + getRootPane().setDefaultButton(okButton); + } + { + JButton cancelButton = new JButton( + "Veranstaltung \u00e4ndern und abschlie\u00DFen"); + cancelButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + // check if a row is selected + if (tablemyImages.getSelectedRow() != -1){ + + // a row is selected, do operations + String imagename = tablemyImages.getValueAt( + tablemyImages.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(), + modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), 6).toString(), + modelMyImages + .getValueAt( + tablemyImages + .convertRowIndexToModel(tablemyImages + .getSelectedRow()), 7) + .toString(), + person.verantwortlicher.getUsername(), + person.verantwortlicher.getVorname(), + person.verantwortlicher.getName(), + person.verantwortlicher.getHochschule(), + person.verantwortlicher.getEMail(), + person.verantwortlicher.getTel(), + person.verantwortlicher.getFakultaet(), + Lecture.lecture.getid()); + JOptionPane + .showMessageDialog( + null, + "Ihre Veranstaltung wurde erfolgreich ge�ndert. Sie kehren nun zum Hauptmen\u00fc zur\u00fcck.", + "Veranstaltung angelegt", + JOptionPane.INFORMATION_MESSAGE); + // zurueck zum Menue + MainMenue_GUI m = new MainMenue_GUI(); + m.setVisible(true); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane + .showMessageDialog( + null, + "Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.", + "Error", + JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + e1.getCause()+"\n"+e1.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + + dispose(); + + }else if (tablePublicVorlagen.getSelectedRow() != -1 &&tablePublicVorlagen.getValueAt(tablePublicVorlagen.getSelectedRow(), 4).toString().equals(username)){ + + // a row is selected, do operations + String imagename = tablePublicVorlagen.getValueAt( + tablePublicVorlagen.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(), + modelPublicVorlagen + .getValueAt( + tablePublicVorlagen + .convertRowIndexToModel(tablePublicVorlagen + .getSelectedRow()), 6).toString(), + modelPublicVorlagen + .getValueAt( + tablePublicVorlagen + .convertRowIndexToModel(tablePublicVorlagen + .getSelectedRow()), 7).toString(), + person.verantwortlicher.getUsername(), + person.verantwortlicher.getVorname(), + person.verantwortlicher.getName(), + person.verantwortlicher.getHochschule(), + person.verantwortlicher.getEMail(), + person.verantwortlicher.getTel(), + person.verantwortlicher.getFakultaet(), + Lecture.lecture.getid()); + JOptionPane + .showMessageDialog( + null, + "Ihre Veranstaltung wurde erfolgreich ge�ndert. Sie kehren nun zum Hauptmen\u00fc zur\u00fcck.", + "Veranstaltung angelegt", + JOptionPane.INFORMATION_MESSAGE); + // zurueck zum Menue + MainMenue_GUI m = new MainMenue_GUI(); + m.setVisible(true); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane + .showMessageDialog( + null, + "Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.", + "Error", + JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + e1.getCause()+"\n"+e1.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + + dispose(); + + }else if (tableAllImages.getSelectedRow() != -1 &&tableAllImages.getValueAt(tableAllImages.getSelectedRow(), 4).toString().equals(username)){ + + // 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(), + modelAll + .getValueAt( + tableAllImages + .convertRowIndexToModel(tableAllImages + .getSelectedRow()), 6) + .toString(), + modelAll + .getValueAt( + tableAllImages + .convertRowIndexToModel(tableAllImages + .getSelectedRow()), 7) + .toString(), + person.verantwortlicher.getUsername(), + person.verantwortlicher.getVorname(), + person.verantwortlicher.getName(), + person.verantwortlicher.getHochschule(), + person.verantwortlicher.getEMail(), + person.verantwortlicher.getTel(), + person.verantwortlicher.getFakultaet(), + Lecture.lecture.getid()); + JOptionPane + .showMessageDialog( + null, + "Ihre Veranstaltung wurde erfolgreich ge�ndert. Sie kehren nun zum Hauptmen\u00fc zur\u00fcck.", + "Veranstaltung angelegt", + JOptionPane.INFORMATION_MESSAGE); + // zurueck zum Menue + MainMenue_GUI m = new MainMenue_GUI(); + m.setVisible(true); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane + .showMessageDialog( + null, + "Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.", + "Error", + JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + e1.getCause()+"\n"+e1.getStackTrace(), + "Debug-Message", JOptionPane.ERROR_MESSAGE); + } + + dispose(); + + } + else { + // nothing selected + JOptionPane.showMessageDialog(null, + "Bitte w\u00e4hlen Sie ein Image aus.", + "Image Auswahl", + JOptionPane.INFORMATION_MESSAGE); + } + + } + }); + cancelButton.setActionCommand("Cancel"); + buttonPane.add(cancelButton); + } + } + + JSeparator separator = new JSeparator(); + separator.setBounds(0, 79, 912, 1); + getContentPane().add(separator); + + JSeparator separator_1 = new JSeparator(); + separator_1.setBounds(0, 627, 912, 2); + getContentPane().add(separator_1); + + JPanel panel = new JPanel(); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Detailinformationen", + + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + panel.setBounds(586, 85, 316, 531); + getContentPane().add(panel); + + JLabel lblName = new JLabel("Name:"); + lblName.setBounds(10, 87, 130, 14); + panel.add(lblName); + + labelName = new JLabel(""); + labelName.setBounds(10, 102, 296, 14); + panel.add(labelName); + + JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:"); + lblVerantwortlicher.setBounds(10, 259, 130, 14); + panel.add(lblVerantwortlicher); + + labelOS = new JLabel(""); + labelOS.setBounds(10, 216, 296, 14); + panel.add(labelOS); + + JLabel lblWeitereVerantwortliche = new JLabel("Betriebssystem:"); + lblWeitereVerantwortliche.setBounds(10, 202, 130, 14); + panel.add(lblWeitereVerantwortliche); + + labelVerantwortlicher = new JLabel(""); + labelVerantwortlicher.setBounds(10, 272, 296, 14); + panel.add(labelVerantwortlicher); + + JLabel label = new JLabel("Weitere Verantwortliche:"); + label.setBounds(10, 284, 130, 14); + panel.add(label); + + labelWeitereVerantwortliche = new JLabel(""); + labelWeitereVerantwortliche.setBounds(10, 297, 296, 14); + panel.add(labelWeitereVerantwortliche); + + labelUpdate = new JLabel(""); + labelUpdate.setBounds(10, 245, 296, 14); + panel.add(labelUpdate); + + JLabel lblLetztesUpdate = new JLabel("Letztes Update:"); + lblLetztesUpdate.setBounds(10, 231, 130, 14); + panel.add(lblLetztesUpdate); + + JLabel lblImageIstVorlage = new JLabel("Image ist Vorlage:"); + lblImageIstVorlage.setBounds(10, 336, 130, 14); + panel.add(lblImageIstVorlage); + + labelVorlage = new JLabel(""); + labelVorlage.setBounds(10, 350, 296, 14); + panel.add(labelVorlage); + + labelLizenzSoftware = new JLabel(""); + labelLizenzSoftware.setBounds(10, 383, 296, 14); + panel.add(labelLizenzSoftware); + + JLabel lblLizenzpflichtigeSoftware = new JLabel("Lizenzpflichtige Software:"); + lblLizenzpflichtigeSoftware.setBounds(10, 367, 130, 14); + panel.add(lblLizenzpflichtigeSoftware); + + JLabel lblInternet = new JLabel("Internetsperre vorhanden:"); + lblInternet.setBounds(10, 400, 130, 14); + panel.add(lblInternet); + + labelInternet = new JLabel(""); + labelInternet.setBounds(10, 417, 296, 14); + panel.add(labelInternet); + + JLabel lblEmpfehlungRam = new JLabel("Empfehlung RAM:"); + lblEmpfehlungRam.setBounds(10, 432, 130, 14); + panel.add(lblEmpfehlungRam); + + labelRam = new JLabel(""); + labelRam.setBounds(10, 455, 296, 14); + panel.add(labelRam); + + JLabel lblEmpfehlungCpu = new JLabel("Empfehlung CPU:"); + lblEmpfehlungCpu.setBounds(10, 469, 130, 14); + panel.add(lblEmpfehlungCpu); + + labelCPU = new JLabel(""); + labelCPU.setBounds(10, 487, 296, 14); + panel.add(labelCPU); + + JLabel lblTechnischeDaten = new JLabel("Technische Daten:"); + lblTechnischeDaten.setBounds(10, 322, 296, 14); + panel.add(lblTechnischeDaten); + + JLabel lblId = new JLabel("ID:"); + lblId.setBounds(10, 23, 296, 14); + panel.add(lblId); + + labelID = new JLabel(""); + labelID.setBounds(10, 37, 296, 14); + panel.add(labelID); + + labelVersion = new JLabel(""); + labelVersion.setBounds(10, 73, 296, 14); + panel.add(labelVersion); + + JLabel lblVersion = new JLabel("Version:"); + lblVersion.setBounds(10, 57, 296, 14); + panel.add(lblVersion); + + JLabel lblBeschreibung = new JLabel("Beschreibung:"); + lblBeschreibung.setBounds(10, 119, 130, 14); + panel.add(lblBeschreibung); + + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setBounds(10, 135, 296, 65); + panel.add(scrollPane); + + textAreadesc = new JTextArea(); + textAreadesc.setLineWrap(true); + textAreadesc.setBackground(SystemColor.menu); + scrollPane.setViewportView(textAreadesc); + + JMenuBar menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getFAQ()); + + open.openWebpage(windows); + + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + + open.openWebpage(windows); + + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + + // Initiale Beffuelung eines Table models + public DefaultTableModel initTableModel(DefaultTableModel model) throws TException, ParseException { + List<server.Image> images; + + // Hole eine Liste der Images + images = client.getImageList(); + + Iterator<server.Image> i = images.iterator(); + SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); + int x = 0; + + while (i.hasNext()) { + // erzeuge Objekte fuer die Tabelle + Object[] obj = { images.get(x).getImageName(), + images.get(x).getLicenseRestriction(), + images.get(x).getOsName(), + images.get(x).getLectureName(), + images.get(x).getUserData(), + out.format(in.parse(images.get(x).updateTime)), images.get(x).id, + images.get(x).getVersion(), + images.get(x).getIsTemplate() }; + // Fuege diese Objekte der Tabelle hinzu + model.addRow(obj); + x++; + i.next(); + + } + + return model; + + + } + public void writeImageData(String id, String version){ + try { + SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); + Map<String,String> res=client.getImageData(id,version); + labelName.setText(res.get("name")); + labelOS.setText(res.get("os")); + labelUpdate.setText(out.format(in.parse(res.get("lastupdate")))); + labelVerantwortlicher.setText(res.get("owner")); + labelWeitereVerantwortliche.setText("Noch nicht Verf�gbar"); + if(res.get("template").equals("true")){ + labelVorlage.setText("Ja"); + }else{ + labelVorlage.setText("Nein"); + } + if(res.get("license").equals("1")){ + labelLizenzSoftware.setText("Ja"); + } + else + { + labelLizenzSoftware.setText("Nein"); + } + if(res.get("internet").equals("1")){ + labelInternet.setText("Ja"); + } + else + { + labelInternet.setText("Nein"); + } + labelRam.setText(res.get("ram")); + labelCPU.setText(res.get("cpu")); + labelID.setText(res.get("id")); + labelVersion.setText(res.get("version")); + textAreadesc.setText(res.get("desc")); + } catch (TException | ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } +} diff --git a/dozentenmodul/src/main/java/gui/lecture/EditLectureSearch_GUI.java b/dozentenmodul/src/main/java/gui/lecture/EditLectureSearch_GUI.java new file mode 100644 index 00000000..6f0786ef --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/EditLectureSearch_GUI.java @@ -0,0 +1,824 @@ +package gui.lecture; + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Color; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.SystemColor; +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.net.URI; +import java.net.URISyntaxException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.swing.JButton; +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.JTextArea; +import javax.swing.JTextField; +import javax.swing.JTextPane; +import javax.swing.RowFilter; +import javax.swing.ScrollPaneConstants; +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; +import javax.swing.table.TableModel; +import javax.swing.table.TableRowSorter; + +import models.Lecture; +import models.Links; +import models.person; + +import org.apache.thrift.TException; + +import server.Server.Client; +import thrift.ThriftConnection; +import util.GuiOrganizer; +import util.OpenLinks; + +@SuppressWarnings("serial") +public class EditLectureSearch_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + JRadioButton rdbtnInternetJa; + JRadioButton rdbtnInternetNein; + JLabel labelAktiv; + JLabel labelstartdate; + JLabel labelenddate; + JLabel labelimageversion; + JTextArea labelName; + JTextArea labelimage; + JTextArea labeldesc; + JLabel labelVerantwortlicher; + JTable tableAllLectures; + JTable tablemyLectures; + private JTextField textFieldName; + JTabbedPane tabbedPane; + boolean activeSearch = false; + String[] titles = { "Veranstaltungsname", "Beschreibung", + "G\u00fcltigkeitsdatum", "Aktiv", "Letzte Benutzung", + "Verantwortlicher", "Image", "Schlagwort", "ID" }; + 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 modelMyLectures = new DefaultTableModel(titles, 0) { + public boolean isCellEditable(int rowIndex, int mColIndex) { + return false; + } + }; + final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>( + modelAll); + final TableRowSorter<TableModel> rowSorterMyLectures = new TableRowSorter<TableModel>( + modelMyLectures); + private JTextField textField; + + /** + * Create the dialog. + */ + public EditLectureSearch_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + // Beendet die Anwendung nach klick auf X + con.closeThriftConnection(); + System.exit(0); + } + + @Override + public void windowOpened(WindowEvent arg0) { + textFieldName.requestFocusInWindow(); + try { + initTableModel(modelMyLectures); + initTableModel(modelAll); + + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // auszublendende Angaben + // 1=Beschreibung + // 2=G\u00fcltigkeitsdatum + // 3=Aktiv + // 6=Image + // 7=Schlagwort + // 8=ID + tablemyLectures.getColumnModel().getColumn(1).setWidth(0); + tablemyLectures.getColumnModel().getColumn(1).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(1).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(2).setWidth(0); + tablemyLectures.getColumnModel().getColumn(2).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(2).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(3).setWidth(0); + tablemyLectures.getColumnModel().getColumn(3).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(3).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(6).setWidth(0); + tablemyLectures.getColumnModel().getColumn(6).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(6).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(7).setWidth(0); + tablemyLectures.getColumnModel().getColumn(7).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(7).setMaxWidth(0); + tablemyLectures.getColumnModel().getColumn(8).setWidth(0); + tablemyLectures.getColumnModel().getColumn(8).setMinWidth(0); + tablemyLectures.getColumnModel().getColumn(8).setMaxWidth(0); + + tableAllLectures.getColumnModel().getColumn(1).setWidth(0); + tableAllLectures.getColumnModel().getColumn(1).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(1).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(2).setWidth(0); + tableAllLectures.getColumnModel().getColumn(2).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(2).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(3).setWidth(0); + tableAllLectures.getColumnModel().getColumn(3).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(3).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(6).setWidth(0); + tableAllLectures.getColumnModel().getColumn(6).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(6).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(7).setWidth(0); + tableAllLectures.getColumnModel().getColumn(7).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(7).setMaxWidth(0); + tableAllLectures.getColumnModel().getColumn(8).setWidth(0); + tableAllLectures.getColumnModel().getColumn(8).setMinWidth(0); + tableAllLectures.getColumnModel().getColumn(8).setMaxWidth(0); + } + }); + // Verhindert das Vergroessern 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 - Veranstaltung bearbeiten"); + // Zentriert das Fenster in die Bildmitte + setBounds(0, 0, 842, 722); + GuiOrganizer.centerGUI(this); + + getContentPane().setLayout(null); + { + JPanel panel = new JPanel(); + panel.setBackground(SystemColor.menu); + panel.setBounds(10, 11, 816, 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, 66); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JLabel lblNewLabel_2 = new JLabel("Name:"); + lblNewLabel_2.setBounds(10, 30, 80, 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 != "") { + activeSearch = true; + // Filtere nach der Eingabe + rowSorterAll.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + rowSorterMyLectures.setRowFilter(RowFilter.regexFilter( + textFieldName.getText(), 0)); + + } else { + activeSearch = false; + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + rowSorterMyLectures.setRowFilter(RowFilter.regexFilter( + username, 5)); + rowSorterAll.setRowFilter(null); + } + } + }); + + textFieldName.setBounds(96, 30, 166, 20); + panel_1.add(textFieldName); + textFieldName.setColumns(10); + + JLabel label = new JLabel("Beschreibung:"); + label.setBounds(291, 30, 80, 20); + panel_1.add(label); + + textField = new JTextField(); + textField.setColumns(10); + textField.setBounds(381, 30, 166, 20); + panel_1.add(textField); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + // oeffnet das Hauptmenue + + EditLectureSearch_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) { + if (tabbedPane.getSelectedIndex() == 0) { + + String username = person.verantwortlicher.getName() + " " + + person.verantwortlicher.getVorname(); + rowSorterMyLectures.setRowFilter(RowFilter.regexFilter( + username, 5)); + } else if (tabbedPane.getSelectedIndex() == 1) { + rowSorterAll.setRowFilter(null); + } + + } + }); + + tabbedPane.setBounds(10, 123, 557, 397); + contentPanel.add(tabbedPane); + + JScrollPane scrollPaneAllImages = new JScrollPane(); + tableAllLectures = new JTable(); + tableAllLectures.getSelectionModel().addListSelectionListener( + new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + String imageid = modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), 8) + .toString(); + //System.out.println(imageid); + + try { + writeLectureData(imageid); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + 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(); + + JScrollPane scrollPaneMyImage = new JScrollPane(); + tablemyLectures = new JTable(); + tablemyLectures.getSelectionModel().addListSelectionListener( + new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + String imageid = modelMyLectures.getValueAt( + tablemyLectures + .convertRowIndexToModel(tablemyLectures + .getSelectedRow()), 8) + .toString(); + //System.out.println(imageid); + + try { + writeLectureData(imageid); + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + 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); + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 826, 33); + buttonPane.setBackground(SystemColor.menu); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane); + { + JButton btnBack = new JButton("Zur\u00FCck"); + btnBack.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + // oeffnet das Hauptmenue + + MainMenue_GUI main = new MainMenue_GUI(); + main.setVisible(true); + dispose(); + } + }); + btnBack.setActionCommand("OK"); + buttonPane.add(btnBack); + getRootPane().setDefaultButton(btnBack); + } + { + JButton btnContinue = new JButton("Weiter"); + btnContinue.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String username = person.verantwortlicher.getName() + + " " + person.verantwortlicher.getVorname(); + // check if a row is selected + if (tablemyLectures.getSelectedRow() != -1) { + + // a row is selected, do operations + + 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()); + + int zweitesLeerzeichen = date.indexOf(" ", + date.indexOf(" ") + 1); + + String startdate = date.substring(0, + zweitesLeerzeichen); + String enddate = date.substring(zweitesLeerzeichen); + SimpleDateFormat out = new SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat in = new SimpleDateFormat( + "dd.MM.yyyy HH:mm:ss"); + try { + enddate = out.format(in.parse(enddate)); + startdate = out.format(in.parse(startdate)); + } catch (ParseException e2) { + // TODO Auto-generated catch block + e2.printStackTrace(); + } + + DateFormat df = new SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss"); + + try { + // Format has to be "yyyy-MM-dd HH:mm:ss" + 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); + } + + // EditImageAllgemein_GUI ea=new + // EditImageAllgemein_GUI(); + EditLectureAllgemein_GUI el = new EditLectureAllgemein_GUI(); + el.setVisible(true); + dispose(); + } else if (tableAllLectures.getSelectedRow() != -1 + && tableAllLectures + .getValueAt( + tableAllLectures + .getSelectedRow(), 5) + .toString().equals(username)) { + + // a row is selected, do operations + + Lecture.lecture.setid(modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), + 8).toString()); + Lecture.lecture.setName(modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), + 0).toString()); + Lecture.lecture.setDesc(modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), + 1).toString()); + String date = modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), + 2).toString(); + + Lecture.lecture.setLinkedImagename(modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), + 6).toString()); + + int zweitesLeerzeichen = date.indexOf(" ", + date.indexOf(" ") + 1); + + String startdate = date.substring(0, + zweitesLeerzeichen); + String enddate = date.substring(zweitesLeerzeichen); + SimpleDateFormat out = new SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat in = new SimpleDateFormat( + "dd.MM.yyyy HH:mm:ss"); + try { + enddate = out.format(in.parse(enddate)); + startdate = out.format(in.parse(startdate)); + } catch (ParseException e2) { + // TODO Auto-generated catch block + e2.printStackTrace(); + } + DateFormat df = new SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss"); + + try { + // Format has to be "yyyy-MM-dd HH:mm:ss" + Lecture.lecture.setEnddate(df.parse(enddate)); + Lecture.lecture.setStartdate(df + .parse(startdate)); + } catch (ParseException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + if (modelAll + .getValueAt( + tableAllLectures + .convertRowIndexToModel(tableAllLectures + .getSelectedRow()), + 3).toString().equals("1")) { + Lecture.lecture.setActive(true); + } else { + Lecture.lecture.setActive(false); + } + + EditLectureAllgemein_GUI el = new EditLectureAllgemein_GUI(); + el.setVisible(true); + dispose(); + } else { + JOptionPane + .showMessageDialog( + null, + "Bitte w\u00e4hlen Sie ein eigenes Image aus.", + "Message", + JOptionPane.INFORMATION_MESSAGE); + } // End Else + } // Action + + }); + btnContinue.setActionCommand("Cancel"); + buttonPane.add(btnContinue); + } + } + + JSeparator separator = new JSeparator(); + separator.setBounds(0, 79, 836, 1); + getContentPane().add(separator); + + JSeparator separator_1 = new JSeparator(); + separator_1.setBounds(0, 628, 836, 1); + getContentPane().add(separator_1); + + JPanel panel = new JPanel(); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Detailinformationen", + + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + panel.setBounds(591, 85, 235, 518); + getContentPane().add(panel); + + JLabel lblNewLabel_3 = new JLabel("Name:"); + lblNewLabel_3.setBounds(10, 27, 104, 14); + panel.add(lblNewLabel_3); + + JLabel lblAktiv = new JLabel("Aktiv:"); + lblAktiv.setBounds(10, 98, 104, 14); + panel.add(lblAktiv); + + labelAktiv = new JLabel(""); + labelAktiv.setBounds(10, 114, 218, 14); + panel.add(labelAktiv); + + labelstartdate = new JLabel(""); + labelstartdate.setBounds(10, 147, 218, 14); + panel.add(labelstartdate); + + JLabel lblStartdatum = new JLabel("Startdatum:"); + lblStartdatum.setBounds(10, 129, 104, 14); + panel.add(lblStartdatum); + + labelenddate = new JLabel(""); + labelenddate.setBounds(10, 175, 218, 14); + panel.add(labelenddate); + + JLabel lblEnddatum = new JLabel("Enddatum:"); + lblEnddatum.setBounds(10, 161, 104, 14); + panel.add(lblEnddatum); + + JLabel lblBeschreibung = new JLabel("Beschreibung:"); + lblBeschreibung.setBounds(10, 189, 104, 14); + panel.add(lblBeschreibung); + + JLabel lblImage = new JLabel("Image:"); + lblImage.setBounds(10, 293, 104, 14); + panel.add(lblImage); + + labelVerantwortlicher = new JLabel(""); + labelVerantwortlicher.setBounds(10, 426, 218, 14); + panel.add(labelVerantwortlicher); + + JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:"); + lblVerantwortlicher.setBounds(10, 411, 104, 14); + panel.add(lblVerantwortlicher); + + JLabel lblImageversion = new JLabel("Imageversion:"); + lblImageversion.setBounds(10, 381, 104, 14); + panel.add(lblImageversion); + + labelimageversion = new JLabel(""); + labelimageversion.setBounds(10, 399, 218, 14); + panel.add(labelimageversion); + + labeldesc = new JTextArea(); + labeldesc.setFont(new Font("Tahoma", Font.PLAIN, 11)); + labeldesc.setEditable(false); + labeldesc.setLineWrap(true); + labeldesc.setBackground(SystemColor.menu); + labeldesc.setBounds(124, 127, 104, 110); + JScrollPane scrollPane = new JScrollPane(labeldesc); + scrollPane.setBounds(10, 209, 218, 81); + panel.add(scrollPane); + // panel.add(labeldesc); + + labelimage = new JTextArea(); + labelimage.setLineWrap(true); + labelimage.setFont(new Font("Tahoma", Font.PLAIN, 11)); + labelimage.setEditable(false); + labelimage.setBackground(SystemColor.menu); + labelimage.setBounds(124, 248, 101, 81); + JScrollPane scrollPaneImage = new JScrollPane(labelimage); + scrollPaneImage.setBounds(10, 309, 215, 69); + panel.add(scrollPaneImage); + + labelName = new JTextArea(); + labelName.setEditable(false); + labelName.setFont(new Font("Tahoma", Font.PLAIN, 11)); + labelName.setBackground(SystemColor.menu); + labelName.setBounds(124, 22, 101, 55); + JScrollPane scrollPaneName = new JScrollPane(labelName); + scrollPaneName.setBounds(10, 40, 218, 55); + panel.add(scrollPaneName); + // panel.add(labelName); + // panel.add(labelimage); + JMenuBar menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getFAQ()); + + open.openWebpage(windows); + + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + + open.openWebpage(windows); + + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + + // Initiale Beffuelung eines Table models + public DefaultTableModel initTableModel(DefaultTableModel model) + throws ParseException { + List<server.Lecture> lectures; + try { + // Hole eine Liste der Images + lectures = client.getLectureList(); + Iterator<server.Lecture> i = lectures.iterator(); + SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + int x = 0; + + while (i.hasNext()) { + // erzeuge Objekte fuer die Tabelle + + Object[] obj = { + lectures.get(x).lecturename, + lectures.get(x).desc, + out.format(in.parse(lectures.get(x).starttime)) + " " + + out.format(in.parse(lectures.get(x).endtime)), + lectures.get(x).isActive, + out.format(in.parse(lectures.get(x).lastused)), + lectures.get(x).username, lectures.get(x).imagename, + " ", lectures.get(x).id }; + // Fuege 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; + } + + public void writeLectureData(String id) throws TException, ParseException { + + SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + Map<String, String> res = client.getLectureData(id); + labelName.setText(res.get("name")); + labelAktiv.setText(res.get("isActive")); + labeldesc.setText(res.get("desc")); + labelVerantwortlicher.setText(res.get("owner")); + labelstartdate.setText(out.format(in.parse(res.get("startTime")))); + labelenddate.setText(out.format(in.parse(res.get("endTime")))); + labelimage.setText(res.get("imagepath").substring( + res.get("imagepath").indexOf("/") + 1)); + labelimageversion.setText(res.get("imageversion")); + + } + +} diff --git a/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java b/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java new file mode 100644 index 00000000..cfd2337c --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java @@ -0,0 +1,546 @@ +package gui.lecture; + + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Checkbox; +import java.awt.Color; +import java.awt.Component; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + +import javax.swing.AbstractButton; +import javax.swing.ButtonGroup; +import javax.swing.DefaultComboBoxModel; +import javax.swing.Icon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JSeparator; +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.DefaultTableCellRenderer; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; + +import models.Image; +import models.Links; +import util.GuiOrganizer; +import util.OpenLinks; +import javax.swing.JTable; +import javax.swing.JScrollPane; +import javax.swing.ScrollPaneConstants; +import javax.swing.JTextField; + +import org.eclipse.jface.viewers.CheckboxCellEditor; + +import java.awt.Choice; +import javax.swing.JRadioButton; + +@SuppressWarnings("serial") +public class PermissionCreateLecture_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + private JTable table; + private Class[] classes; + Object[] titles = { "Name","Read", "Write","Admin"}; + + final DefaultTableModel model = new DefaultTableModel(titles, 0){ + + + + public boolean isCellEditable(int rowIndex, int mColIndex) { + if(mColIndex>=1){ + return true; + } + return false; + } + public Class getColumnClass(int c) { + switch(c){ + case 0: + return String.class; + default: + return Boolean.class; + } + } + + + + }; + private JTextField textField; + private JTable table_1; + private final ButtonGroup buttonGroup = new ButtonGroup(); + + public PermissionCreateLecture_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + 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 - Berechtigungen"); + + setBounds(0, 0, 603, 722); + GuiOrganizer.centerGUI(this); + + 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("Veranstaltungen - Berechtigungen (Nur zur Veranschaulichung)"); + 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("Definieren Sie hier bitte die gew\u00FCnschten Berechtigungen f\u00FCr ihr Lecture"); + 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, "Suite-Berechtigungen", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_1.setBounds(10, 207, 311, 313); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setBounds(10, 21, 291, 249); + panel_1.add(scrollPane); + + table = new JTable(); + table.setModel(model); + table.setSelectionForeground(Color.WHITE); + Object[] rowdata={"Max Mustermann", new Boolean(false),new Boolean(false),new Boolean(false),new Boolean(false)}; + model.addRow(rowdata); + + TableCellRenderer rend=table.getTableHeader().getDefaultRenderer(); + + + TableColumn tc1 = table.getColumnModel().getColumn(1); + tc1.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc1.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(),(String) titles[1])); + + TableColumn tc2 = table.getColumnModel().getColumn(2); + tc2.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc2.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(),(String) titles[2])); + + TableColumn tc3 = table.getColumnModel().getColumn(3); + tc3.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc3.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(),(String) titles[3])); + /* + TableColumn tc4 = table.getColumnModel().getColumn(4); + tc4.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc4.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(),(String) titles[4])); + */ + scrollPane.setViewportView(table); + + JButton btnHinzufgen_1 = new JButton("Hinzuf\u00FCgen"); + btnHinzufgen_1.setEnabled(false); + btnHinzufgen_1.setBounds(10, 279, 89, 23); + panel_1.add(btnHinzufgen_1); + + JButton btnLschen_1 = new JButton("L\u00F6schen"); + btnLschen_1.setEnabled(false); + btnLschen_1.setBounds(109, 279, 89, 23); + panel_1.add(btnLschen_1); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + + PermissionCreateLecture_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, 90, 14); + contentPanel.add(lblVlimage); + + JLabel label_2 = new JLabel(">"); + label_2.setBounds(181, 11, 13, 14); + contentPanel.add(label_2); + + JLabel lblNewLabel_1 = new JLabel("Berechtigungen"); + lblNewLabel_1.setBounds(194, 11, 95, 14); + contentPanel.add(lblNewLabel_1); + + JLabel lblName = new JLabel("Name:"); + lblName.setBounds(10, 36, 46, 20); + contentPanel.add(lblName); + + textField = new JTextField(); + textField.setBounds(69, 36, 171, 20); + contentPanel.add(textField); + textField.setColumns(10); + + JLabel lblHochschule = new JLabel("Hochschule:"); + lblHochschule.setBounds(275, 36, 80, 20); + contentPanel.add(lblHochschule); + + JComboBox comboBox = new JComboBox(); + comboBox.setModel(new DefaultComboBoxModel(new String[] {"Hochschule Offenburg", "Hochschule Reutlingen", "Universit\u00E4t Freiburg"})); + comboBox.setBounds(365, 36, 202, 20); + contentPanel.add(comboBox); + + JPanel panel = new JPanel(); + panel.setBounds(10, 67, 557, 129); + contentPanel.add(panel); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Beschreibung", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + + JLabel label = new JLabel("Read"); + label.setBounds(20, 18, 90, 20); + panel.add(label); + + JLabel label_3 = new JLabel("Write"); + label_3.setBounds(20, 38, 90, 20); + panel.add(label_3); + + JLabel label_5 = new JLabel("Admin"); + label_5.setBounds(20, 78, 90, 20); + panel.add(label_5); + + JLabel label_7 = new JLabel("Image darf gelesen und gestartet werden und ist in Suchfenster sichtbar."); + label_7.setBounds(120, 18, 380, 20); + panel.add(label_7); + + JLabel lblimageDarfAngepasst = new JLabel("<HTML>Image darf angepasst und überschrieben, jedoch nicht gelöscht werden. Berechtigungen für andere Benutzer festlegen</HTML>"); + lblimageDarfAngepasst.setBounds(120, 38, 380, 45); + panel.add(lblimageDarfAngepasst); + + JLabel lblvolleRechteRead = new JLabel("<HTML>Volle Rechte: read, write, löschen und Berechtigungen für andere Benutzer festlegen.</HTML>"); + lblvolleRechteRead.setBounds(120, 78, 380, 40); + panel.add(lblvolleRechteRead); + + JPanel panel_2 = new JPanel(); + panel_2.setBounds(331, 207, 236, 313); + contentPanel.add(panel_2); + panel_2.setLayout(null); + panel_2.setBorder(new TitledBorder(null, "Sichtbarkeit im VMChooser", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_2.setBackground(SystemColor.menu); + + JScrollPane scrollPane_1 = new JScrollPane(); + scrollPane_1.setEnabled(false); + scrollPane_1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane_1.setBounds(23, 83, 203, 185); + panel_2.add(scrollPane_1); + + table_1 = new JTable(); + scrollPane_1.setViewportView(table_1); + + JRadioButton rdbtnAlle = new JRadioButton("Sichtbar f\u00FCr alle"); + rdbtnAlle.setEnabled(false); + rdbtnAlle.setSelected(true); + buttonGroup.add(rdbtnAlle); + rdbtnAlle.setBounds(6, 27, 109, 23); + panel_2.add(rdbtnAlle); + + JRadioButton rdbtnIndividuell = new JRadioButton("Individuell"); + rdbtnIndividuell.setEnabled(false); + buttonGroup.add(rdbtnIndividuell); + rdbtnIndividuell.setBounds(6, 53, 109, 23); + panel_2.add(rdbtnIndividuell); + + JButton btnHinzufgen = new JButton("Hinzuf\u00FCgen"); + btnHinzufgen.setEnabled(false); + btnHinzufgen.setBounds(23, 279, 89, 23); + panel_2.add(btnHinzufgen); + + JButton btnLschen = new JButton("L\u00F6schen"); + btnLschen.setEnabled(false); + btnLschen.setBounds(122, 279, 89, 23); + panel_2.add(btnLschen); + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 597, 33); + buttonPane.setBackground(SystemColor.menu); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane); + { + JButton cancelButton = new JButton("Zur\u00FCck"); + cancelButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + + CreateLectureAllgemein_GUI sr=new CreateLectureAllgemein_GUI(); + sr.setVisible(true); + dispose(); + } + }); + cancelButton.setActionCommand("OK"); + buttonPane.add(cancelButton); + //getRootPane().setDefaultButton(cancelButton); + } + { + JButton continueButton = new JButton("Weiter"); + continueButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + CreateLectureLink_GUI ea=new CreateLectureLink_GUI(); + ea.setVisible(true); + dispose(); + + } + }); + continueButton.setActionCommand("Cancel"); + buttonPane.add(continueButton); + getRootPane().setDefaultButton(continueButton); + } + } + + 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getFAQ()); + + open.openWebpage(windows); + + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + + open.openWebpage(windows); + + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + class MyItemListener1 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,1); + } + } + } + class MyItemListener2 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,2); + } + } + } + class MyItemListener3 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,3); + } + } + } + class MyItemListener4 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,4); + } + } + } +} +class CheckBoxHeader extends JCheckBox +implements TableCellRenderer, MouseListener { +protected CheckBoxHeader rendererComponent; +protected int column; +protected boolean mousePressed = false; + +public CheckBoxHeader(ItemListener itemListener ,String text) { +rendererComponent = this; +rendererComponent.addItemListener(itemListener); +rendererComponent.setText(text); +} + +public Component getTableCellRendererComponent( + JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { +if (table != null) { + JTableHeader header = table.getTableHeader(); + if (header != null) { + rendererComponent.setForeground(header.getForeground()); + rendererComponent.setBackground(header.getBackground()); + rendererComponent.setFont(header.getFont()); + rendererComponent.setBorder(header.getBorder()); + header.addMouseListener(rendererComponent); + } +} +setColumn(column); +//rendererComponent.setText("Check All"); +//setBorder(UIManager.getBorder("TableHeader.cellBorder")); + +return rendererComponent; +} +protected void setColumn(int column) { +this.column = column; +} +public int getColumn() { +return column; +} +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) { + doClick(); + } +} +} +public void mouseClicked(MouseEvent e) { +handleClickEvent(e); +((JTableHeader)e.getSource()).repaint(); +} +public void mousePressed(MouseEvent e) { +mousePressed = true; +} +public void mouseReleased(MouseEvent e) { +} +public void mouseEntered(MouseEvent e) { +} +public void mouseExited(MouseEvent e) { +} +} diff --git a/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java b/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java new file mode 100644 index 00000000..da8864c7 --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java @@ -0,0 +1,494 @@ +package gui.lecture; + + +import gui.intro.About_GUI; +import gui.intro.MainMenue_GUI; + +import java.awt.Checkbox; +import java.awt.Color; +import java.awt.Component; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + +import javax.swing.AbstractButton; +import javax.swing.ButtonGroup; +import javax.swing.DefaultComboBoxModel; +import javax.swing.Icon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JSeparator; +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.DefaultTableCellRenderer; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; + +import models.Image; +import models.Links; +import util.GuiOrganizer; +import util.OpenLinks; +import javax.swing.JTable; +import javax.swing.JScrollPane; +import javax.swing.ScrollPaneConstants; +import javax.swing.JTextField; + +import org.eclipse.jface.viewers.CheckboxCellEditor; + +import java.awt.Choice; + +@SuppressWarnings("serial") +public class PermissionEditLecture_GUI extends JFrame { + + private final JPanel contentPanel = new JPanel(); + String[] result; + private JTable table; + private Class[] classes; + Object[] titles = { "Name","Read", "Write","Admin"}; + + final DefaultTableModel model = new DefaultTableModel(titles, 0){ + + + + public boolean isCellEditable(int rowIndex, int mColIndex) { + if(mColIndex>=1){ + return true; + } + return false; + } + public Class getColumnClass(int c) { + switch(c){ + case 0: + return String.class; + default: + return Boolean.class; + } + } + + + + }; + private JTextField textField; + + public PermissionEditLecture_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent arg0) { + 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 - Berechtigungen"); + + setBounds(0, 0, 603, 722); + GuiOrganizer.centerGUI(this); + + 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("Lecture Berechtigungen (Nur zur Veranschaulichung)"); + 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("Definieren Sie hier bitte die gew\u00FCnschten Berechtigungen f\u00FCr ihr Lecture"); + 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 = new JPanel(); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Beschreibung", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + panel.setBounds(10, 67, 557, 129); + contentPanel.add(panel); + + JLabel label = new JLabel("Read"); + label.setBounds(20, 18, 90, 20); + panel.add(label); + + JLabel label_3 = new JLabel("Image darf gelesen und gestartet werden und ist in Suchfenster sichtbar."); + label_3.setBounds(120, 18, 380, 20); + panel.add(label_3); + + JLabel label_4 = new JLabel("Write"); + label_4.setBounds(20, 38, 90, 20); + panel.add(label_4); + + JLabel label_5 = new JLabel("<HTML>Image darf angepasst und überschrieben, jedoch nicht gelöscht werden. Berechtigungen für andere Benutzer festlegen</HTML>"); + label_5.setBounds(120, 38, 380, 45); + panel.add(label_5); + + JLabel label_6 = new JLabel("Admin"); + label_6.setBounds(20, 78, 90, 20); + panel.add(label_6); + + JLabel label_7 = new JLabel("<HTML>Volle Rechte: read, write, löschen und Berechtigungen für andere Benutzer festlegen.</HTML>"); + label_7.setBounds(120, 78, 380, 40); + panel.add(label_7); + + JPanel panel_1 = new JPanel(); + panel_1.setBackground(SystemColor.menu); + panel_1.setBorder(new TitledBorder(null, "Berechtigungen", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_1.setBounds(10, 207, 557, 313); + contentPanel.add(panel_1); + panel_1.setLayout(null); + + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setBounds(10, 21, 537, 281); + panel_1.add(scrollPane); + + table = new JTable(); + table.setModel(model); + table.setSelectionForeground(Color.WHITE); + Object[] rowdata={"Max Mustermann", new Boolean(false),new Boolean(false),new Boolean(false),new Boolean(false)}; + model.addRow(rowdata); + + TableCellRenderer rend=table.getTableHeader().getDefaultRenderer(); + + + TableColumn tc1 = table.getColumnModel().getColumn(1); + tc1.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc1.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(),(String) titles[1])); + + TableColumn tc2 = table.getColumnModel().getColumn(2); + tc2.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc2.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(),(String) titles[2])); + + TableColumn tc3 = table.getColumnModel().getColumn(3); + tc3.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc3.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(),(String) titles[3])); + /* + TableColumn tc4 = table.getColumnModel().getColumn(4); + tc4.setCellEditor(table.getDefaultEditor(Boolean.class)); + tc4.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(),(String) titles[4])); + */ + scrollPane.setViewportView(table); + + JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); + lblHauptmen.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent arg0) { + + PermissionEditLecture_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, 90, 14); + contentPanel.add(lblVlimage); + + JLabel label_2 = new JLabel(">"); + label_2.setBounds(181, 11, 13, 14); + contentPanel.add(label_2); + + JLabel lblNewLabel_1 = new JLabel("Berechtigungen"); + lblNewLabel_1.setBounds(194, 11, 99, 14); + contentPanel.add(lblNewLabel_1); + + JLabel lblName = new JLabel("Name:"); + lblName.setBounds(10, 36, 46, 20); + contentPanel.add(lblName); + + textField = new JTextField(); + textField.setBounds(69, 36, 171, 20); + contentPanel.add(textField); + textField.setColumns(10); + + JLabel lblHochschule = new JLabel("Hochschule:"); + lblHochschule.setBounds(275, 36, 80, 20); + contentPanel.add(lblHochschule); + + JComboBox comboBox = new JComboBox(); + comboBox.setModel(new DefaultComboBoxModel(new String[] {"Hochschule Offenburg", "Hochschule Reutlingen", "Universit\u00E4t Freiburg"})); + comboBox.setBounds(365, 36, 202, 20); + contentPanel.add(comboBox); + { + JPanel buttonPane = new JPanel(); + buttonPane.setBounds(0, 640, 597, 33); + buttonPane.setBackground(SystemColor.menu); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane); + { + JButton cancelButton = new JButton("Zur\u00FCck"); + cancelButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + + EditLectureAllgemein_GUI sr=new EditLectureAllgemein_GUI(); + sr.setVisible(true); + dispose(); + } + }); + cancelButton.setActionCommand("OK"); + buttonPane.add(cancelButton); + //getRootPane().setDefaultButton(cancelButton); + } + { + JButton continueButton = new JButton("Weiter"); + continueButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + EditLectureLink_GUI ea=new EditLectureLink_GUI(); + ea.setVisible(true); + dispose(); + + } + }); + continueButton.setActionCommand("Cancel"); + buttonPane.add(continueButton); + getRootPane().setDefaultButton(continueButton); + } + } + + 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getFAQ()); + + open.openWebpage(windows); + + } catch (URISyntaxException 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) { + + OpenLinks open = new OpenLinks(); + + URI windows; + try { + windows = new URI(Links.getOTRS()); + + open.openWebpage(windows); + + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + }); + mnNewMenu_1.add(mntmOtrs); + + JMenuItem mntmAbout = new JMenuItem("About"); + mntmAbout.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + About_GUI ab = new About_GUI(); + ab.setVisible(true); + } + }); + mnNewMenu_1.add(mntmAbout); + + } + class MyItemListener1 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,1); + } + } + } + class MyItemListener2 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,2); + } + } + } + class MyItemListener3 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,3); + } + } + } + class MyItemListener4 implements ItemListener + { + public void itemStateChanged(ItemEvent e) { + Object source = e.getSource(); + if (source instanceof AbstractButton == false) return; + boolean checked = e.getStateChange() == ItemEvent.SELECTED; + for(int x = 0, y = table.getRowCount(); x < y; x++) + { + table.setValueAt(new Boolean(checked),x,4); + } + } + } +} +/*class CheckBoxHeader extends JCheckBox +implements TableCellRenderer, MouseListener { +protected CheckBoxHeader rendererComponent; +protected int column; +protected boolean mousePressed = false; + +public CheckBoxHeader(ItemListener itemListener ,String text) { +rendererComponent = this; +rendererComponent.addItemListener(itemListener); +rendererComponent.setText(text); +} + +public Component getTableCellRendererComponent( + JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { +if (table != null) { + JTableHeader header = table.getTableHeader(); + if (header != null) { + rendererComponent.setForeground(header.getForeground()); + rendererComponent.setBackground(header.getBackground()); + rendererComponent.setFont(header.getFont()); + rendererComponent.setBorder(header.getBorder()); + header.addMouseListener(rendererComponent); + } +} +setColumn(column); +//rendererComponent.setText("Check All"); +//setBorder(UIManager.getBorder("TableHeader.cellBorder")); + +return rendererComponent; +} +protected void setColumn(int column) { +this.column = column; +} +public int getColumn() { +return column; +} +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) { + doClick(); + } +} +} +public void mouseClicked(MouseEvent e) { +handleClickEvent(e); +((JTableHeader)e.getSource()).repaint(); +} +public void mousePressed(MouseEvent e) { +mousePressed = true; +} +public void mouseReleased(MouseEvent e) { +} +public void mouseEntered(MouseEvent e) { +} +public void mouseExited(MouseEvent e) { +} +} */ diff --git a/dozentenmodul/src/main/java/gui/lecture/SearchLecture_GUI.java b/dozentenmodul/src/main/java/gui/lecture/SearchLecture_GUI.java new file mode 100644 index 00000000..7a6c2118 --- /dev/null +++ b/dozentenmodul/src/main/java/gui/lecture/SearchLecture_GUI.java @@ -0,0 +1,627 @@ +package gui.lecture;
+
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.Point;
+import java.awt.SystemColor;
+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.net.URI;
+import java.net.URISyntaxException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+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.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+import models.Links;
+import models.person;
+
+import org.apache.thrift.TException;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import javax.swing.JTextArea;
+import javax.swing.ScrollPaneConstants;
+
+@SuppressWarnings("serial")
+public class SearchLecture_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JLabel labelAktiv;
+ JLabel labelstartdate;
+ JLabel labelenddate;
+ JLabel labelimageversion;
+ JTextArea labelName;
+ JTextArea labelimage;
+ JTextArea labeldesc;
+ JLabel labelVerantwortlicher;
+ JTable tableAllLectures;
+ JTable tablemyLectures;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ boolean activeSearch=false;
+ String[] titles = { "Veranstaltungsname", "Beschreibung",
+ "G\u00fcltigkeitsdatum", "Aktiv", "Letzte Benutzung",
+ "Verantwortlicher", "Image", "Schlagwort", "ID" };
+ 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 modelMyLectures = new DefaultTableModel(titles, 0){
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
+ modelAll);
+ final TableRowSorter<TableModel> rowSorterMyLectures = new TableRowSorter<TableModel>(
+ modelMyLectures);
+ private JTextField textField;
+
+
+ /**
+ * Create the dialog.
+ */
+ public SearchLecture_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung nach klick auf X
+ con.closeThriftConnection();
+ System.exit(0);
+ }
+ @Override
+ public void windowOpened(WindowEvent arg0) {
+ try {
+ initTableModel(modelMyLectures);
+ initTableModel(modelAll);
+
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ tablemyLectures.getColumnModel().getColumn(1).setWidth(0);
+ tablemyLectures.getColumnModel().getColumn(1).setMinWidth(0);
+ tablemyLectures.getColumnModel().getColumn(1).setMaxWidth(0);
+ tablemyLectures.getColumnModel().getColumn(2).setWidth(0);
+ tablemyLectures.getColumnModel().getColumn(2).setMinWidth(0);
+ tablemyLectures.getColumnModel().getColumn(2).setMaxWidth(0);
+ tablemyLectures.getColumnModel().getColumn(3).setWidth(0);
+ tablemyLectures.getColumnModel().getColumn(3).setMinWidth(0);
+ tablemyLectures.getColumnModel().getColumn(3).setMaxWidth(0);
+ tablemyLectures.getColumnModel().getColumn(6).setWidth(0);
+ tablemyLectures.getColumnModel().getColumn(6).setMinWidth(0);
+ tablemyLectures.getColumnModel().getColumn(6).setMaxWidth(0);
+ tablemyLectures.getColumnModel().getColumn(7).setWidth(0);
+ tablemyLectures.getColumnModel().getColumn(7).setMinWidth(0);
+ tablemyLectures.getColumnModel().getColumn(7).setMaxWidth(0);
+ tablemyLectures.getColumnModel().getColumn(8).setWidth(0);
+ tablemyLectures.getColumnModel().getColumn(8).setMinWidth(0);
+ tablemyLectures.getColumnModel().getColumn(8).setMaxWidth(0);
+ tableAllLectures.getColumnModel().getColumn(1).setWidth(0);
+ tableAllLectures.getColumnModel().getColumn(1).setMinWidth(0);
+ tableAllLectures.getColumnModel().getColumn(1).setMaxWidth(0);
+ tableAllLectures.getColumnModel().getColumn(2).setWidth(0);
+ tableAllLectures.getColumnModel().getColumn(2).setMinWidth(0);
+ tableAllLectures.getColumnModel().getColumn(2).setMaxWidth(0);
+ tableAllLectures.getColumnModel().getColumn(3).setWidth(0);
+ tableAllLectures.getColumnModel().getColumn(3).setMinWidth(0);
+ tableAllLectures.getColumnModel().getColumn(3).setMaxWidth(0);
+ tableAllLectures.getColumnModel().getColumn(6).setWidth(0);
+ tableAllLectures.getColumnModel().getColumn(6).setMinWidth(0);
+ tableAllLectures.getColumnModel().getColumn(6).setMaxWidth(0);
+ tableAllLectures.getColumnModel().getColumn(7).setWidth(0);
+ tableAllLectures.getColumnModel().getColumn(7).setMinWidth(0);
+ tableAllLectures.getColumnModel().getColumn(7).setMaxWidth(0);
+ tableAllLectures.getColumnModel().getColumn(8).setWidth(0);
+ tableAllLectures.getColumnModel().getColumn(8).setMinWidth(0);
+ tableAllLectures.getColumnModel().getColumn(8).setMaxWidth(0);
+ }
+ });
+ // Verhindert das Vergroessern 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 - Veranstaltung suchen");
+ // Zentriert das Fenster in die Bildmitte 2;
+ setBounds(0, 0, 842, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 816, 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 Ihrer gew\u00fcnschten Veranstaltung suchen und diese 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, 63);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Name:");
+ lblNewLabel_2.setBounds(10, 30, 80, 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 != "") {
+ activeSearch=true;
+ // Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterMyLectures.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+
+ }else{
+ activeSearch=false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyLectures.setRowFilter(RowFilter.regexFilter(
+ username, 5));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+ });
+
+ textFieldName.setBounds(96, 30, 166, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ JLabel label = new JLabel("Beschreibung:");
+ label.setBounds(291, 30, 80, 20);
+ panel_1.add(label);
+
+ textField = new JTextField();
+ textField.setColumns(10);
+ textField.setBounds(381, 30, 166, 20);
+ panel_1.add(textField);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00fc");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // oeffnet das Hauptmenue
+
+ SearchLecture_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("Veranstaltungssuche");
+ 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) {
+ 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, 123, 557, 397);
+ contentPanel.add(tabbedPane);
+
+
+ JScrollPane scrollPaneAllImages = new JScrollPane();
+ tableAllLectures = new JTable();
+ tableAllLectures.getSelectionModel().addListSelectionListener( new ListSelectionListener()
+ {
+ public void valueChanged(ListSelectionEvent e)
+ {
+ String imageid = modelAll
+ .getValueAt(
+ tableAllLectures
+ .convertRowIndexToModel(tableAllLectures
+ .getSelectedRow()), 8)
+ .toString();
+ //System.out.println(imageid);
+
+ try {
+ writeLectureData(imageid);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ } catch (ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ });
+ 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();
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyLectures = new JTable();
+ tablemyLectures.getSelectionModel().addListSelectionListener( new ListSelectionListener()
+ {
+ public void valueChanged(ListSelectionEvent e)
+ {
+ String imageid = modelMyLectures
+ .getValueAt(
+ tablemyLectures
+ .convertRowIndexToModel(tablemyLectures
+ .getSelectedRow()), 8)
+ .toString();
+ //System.out.println(imageid);
+
+ try {
+ writeLectureData(imageid);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ } catch (ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ });
+ 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);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 826, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton btnBack = new JButton("Zur\u00FCck");
+ btnBack.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // oeffnet das Hauptmenue
+
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.setVisible(true);
+ dispose();
+ }
+ });
+ btnBack.setActionCommand("OK");
+ buttonPane.add(btnBack);
+ getRootPane().setDefaultButton(btnBack);
+ }
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 836, 1);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 628, 836, 1);
+ getContentPane().add(separator_1);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBorder(new TitledBorder(null, "Detailinformationen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(591, 85, 235, 518);
+ getContentPane().add(panel);
+
+ JLabel lblNewLabel_3 = new JLabel("Name:");
+ lblNewLabel_3.setBounds(10, 27, 104, 14);
+ panel.add(lblNewLabel_3);
+
+ JLabel lblAktiv = new JLabel("Aktiv:");
+ lblAktiv.setBounds(10, 98, 104, 14);
+ panel.add(lblAktiv);
+
+ labelAktiv = new JLabel("");
+ labelAktiv.setBounds(10, 114, 218, 14);
+ panel.add(labelAktiv);
+
+ labelstartdate = new JLabel("");
+ labelstartdate.setBounds(10, 147, 218, 14);
+ panel.add(labelstartdate);
+
+ JLabel lblStartdatum = new JLabel("Startdatum:");
+ lblStartdatum.setBounds(10, 129, 104, 14);
+ panel.add(lblStartdatum);
+
+ labelenddate = new JLabel("");
+ labelenddate.setBounds(10, 175, 218, 14);
+ panel.add(labelenddate);
+
+ JLabel lblEnddatum = new JLabel("Enddatum:");
+ lblEnddatum.setBounds(10, 161, 104, 14);
+ panel.add(lblEnddatum);
+
+ JLabel lblBeschreibung = new JLabel("Beschreibung:");
+ lblBeschreibung.setBounds(10, 189, 104, 14);
+ panel.add(lblBeschreibung);
+
+ JLabel lblImage = new JLabel("Image:");
+ lblImage.setBounds(10, 293, 104, 14);
+ panel.add(lblImage);
+
+ labelVerantwortlicher = new JLabel("");
+ labelVerantwortlicher.setBounds(10, 426, 218, 14);
+ panel.add(labelVerantwortlicher);
+
+ JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:");
+ lblVerantwortlicher.setBounds(10, 411, 104, 14);
+ panel.add(lblVerantwortlicher);
+
+ JLabel lblImageversion = new JLabel("Imageversion:");
+ lblImageversion.setBounds(10, 381, 104, 14);
+ panel.add(lblImageversion);
+
+ labelimageversion = new JLabel("");
+ labelimageversion.setBounds(10, 399, 218, 14);
+ panel.add(labelimageversion);
+
+
+ labeldesc = new JTextArea();
+ labeldesc.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ labeldesc.setEditable(false);
+ labeldesc.setLineWrap(true);
+ labeldesc.setBackground(SystemColor.menu);
+ labeldesc.setBounds(124, 127, 104, 110);
+ JScrollPane scrollPane = new JScrollPane(labeldesc);
+ scrollPane.setBounds(10, 209, 218, 81);
+ panel.add(scrollPane);
+ //panel.add(labeldesc);
+
+ labelimage = new JTextArea();
+ labelimage.setLineWrap(true);
+ labelimage.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ labelimage.setEditable(false);
+ labelimage.setBackground(SystemColor.menu);
+ labelimage.setBounds(124, 248, 101, 81);
+ JScrollPane scrollPaneImage = new JScrollPane(labelimage);
+ scrollPaneImage.setBounds(10, 309, 215, 69);
+ panel.add(scrollPaneImage);
+
+ labelName = new JTextArea();
+ labelName.setEditable(false);
+ labelName.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ labelName.setBackground(SystemColor.menu);
+ labelName.setBounds(124, 22, 101, 55);
+ JScrollPane scrollPaneName = new JScrollPane(labelName);
+ scrollPaneName.setBounds(10, 40, 218, 55);
+ panel.add(scrollPaneName);
+ //panel.add(labelName);
+ //panel.add(labelimage);
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnNewMenu_1 = new JMenu("Hilfe");
+ menuBar.add(mnNewMenu_1);
+
+ JMenuItem mntmFaq = new JMenuItem("FAQ");
+ mntmFaq.addMouseListener(new MouseAdapter() {
+ @SuppressWarnings("static-access")
+ @Override
+ public void mousePressed(MouseEvent arg0) {
+
+ OpenLinks open = new OpenLinks();
+
+ URI windows;
+ try {
+ windows = new URI(Links.getFAQ());
+
+ open.openWebpage(windows);
+
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ mnNewMenu_1.add(mntmFaq);
+
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mntmOtrs.addMouseListener(new MouseAdapter() {
+ @SuppressWarnings("static-access")
+ @Override
+ public void mousePressed(MouseEvent arg0) {
+
+ OpenLinks open = new OpenLinks();
+
+ URI windows;
+ try {
+ windows = new URI(Links.getOTRS());
+
+ open.openWebpage(windows);
+
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+ });
+ mnNewMenu_1.add(mntmOtrs);
+
+ JMenuItem mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+
+ // Initiale Beffuelung eines Table models
+ public DefaultTableModel initTableModel(DefaultTableModel model) throws ParseException {
+ List<server.Lecture> lectures;
+ try {
+ // Hole eine Liste der Images
+ lectures = client.getLectureList();
+ Iterator<server.Lecture> i = lectures.iterator();
+ SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ int x = 0;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = {
+ lectures.get(x).lecturename,
+ lectures.get(x).desc,
+ out.format(in.parse(lectures.get(x).starttime)) + " "
+ + out.format(in.parse(lectures.get(x).endtime)),
+ lectures.get(x).isActive, out.format(in.parse(lectures.get(x).lastused)),
+ lectures.get(x).username,
+ lectures.get(x).imagename," " ,lectures.get(x).id };
+ // Fuege 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;
+ }
+ public void writeLectureData(String id) throws TException, ParseException{
+
+ SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ Map<String,String> res=client.getLectureData(id);
+ labelName.setText(res.get("name"));
+ labelAktiv.setText(res.get("isActive"));
+ labeldesc.setText(res.get("desc"));
+ labelVerantwortlicher.setText(res.get("owner"));
+ labelstartdate.setText(out.format(in.parse(res.get("startTime"))));
+ labelenddate.setText(out.format(in.parse(res.get("endTime"))));
+ labelimage.setText(res.get("imagepath").substring(res.get("imagepath").indexOf("/")+1));
+ labelimageversion.setText(res.get("imageversion"));
+
+
+ }
+}
|
