package gui.image; import gui.helper.TableFiller; import gui.intro.MainMenue_GUI; 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.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; 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.ListSelectionModel; import javax.swing.RowFilter; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameEvent; 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.Image; import models.SessionData; import models.person; import org.apache.thrift.TException; import org.openslx.thrifthelper.ThriftManager; import util.GuiManager; @SuppressWarnings("serial") public class SearchImage_GUI extends JInternalFrame { private final JPanel contentPanel = new JPanel(); private JLabel labelName; private JLabel labelUpdate; private JLabel labelVerantwortlicher; private JLabel labelWeitereVerantwortliche; private JLabel labelVorlage; private JLabel labelLizenzSoftware; private JLabel labelInternet; private JLabel labelRam; private JLabel labelCPU; private JLabel labelID; private JLabel labelVersion; private JTextArea textAreadesc; private JLabel labelOS; private JComboBox comboBox; private JTable tableAllImages; private JTable tablemyImages; private JTable tablePublicVorlagen; private JTextField textFieldName; private JTabbedPane tabbedPane; private JButton btnDownload; private Component c = null; // Angezeigt werden aber nur Name (0), OS (2), Verantwortlicher (4), Letztes Update (5) private String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung", "Verantwortlicher", "Letztes Update", "ID", "Version", "Template", "Beschreibung", "Größe" }; public static final String HELP_MESSAGE = "
" + "Suchen Sie Images und laden Sie sie direkt herunter.
" + "Sie können die Volltextsuche nutzen und nach Betriebssystemen filtern.
" + "Die Volltextsuche sucht in den Feldern Name und Beschreibung." + "
"; private final DefaultTableModel modelAll = new DefaultTableModel(titles, 0) { public boolean isCellEditable(int rowIndex, int mColIndex) { return false; } }; private final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0) { public boolean isCellEditable(int rowIndex, int mColIndex) { return false; } }; private final DefaultTableModel modelPublicVorlagen = new DefaultTableModel(titles, 0) { public boolean isCellEditable(int rowIndex, int mColIndex) { return false; } }; private final TableRowSorter rowSorterAll = new TableRowSorter(modelAll); private final TableRowSorter rowSorterMyImages = new TableRowSorter(modelMyImages); private final TableRowSorter rowSorterPublicVorlagen = new TableRowSorter( modelPublicVorlagen); RowFilter orFilter = null; List> orFilters = new ArrayList<>(); //needed for templates, filter for name OR desc AND temp_flag --> (name || desc) && (temp_flag) RowFilter andFilter = null; List> andFilters = new ArrayList<>(); //the final filter which handles the search in the templates RowFilter templateFilter = null; ArrayList> finalFilters = new ArrayList<>(); /** * Create the dialog. */ public SearchImage_GUI() { addInternalFrameListener(new InternalFrameAdapter() { @Override public void internalFrameActivated(InternalFrameEvent arg0) { initTableModelAll(modelAll); initTableModel(modelMyImages); initTableModelTemplates(modelPublicVorlagen); // 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); tablemyImages.getColumnModel().getColumn(9).setWidth(0); tablemyImages.getColumnModel().getColumn(9).setMinWidth(0); tablemyImages.getColumnModel().getColumn(9).setMaxWidth(0); tablemyImages.getTableHeader().setReorderingAllowed(false); tablemyImages.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); tablemyImages.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { tablemyImages.clearSelection(); //just one row is selectable tablemyImages.setRowSelectionInterval(tablemyImages.rowAtPoint(e.getPoint()), tablemyImages.rowAtPoint(e.getPoint())); } }); 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); tablePublicVorlagen.getColumnModel().getColumn(9).setWidth(0); tablePublicVorlagen.getColumnModel().getColumn(9).setMinWidth(0); tablePublicVorlagen.getColumnModel().getColumn(9).setMaxWidth(0); tablePublicVorlagen.getTableHeader().setReorderingAllowed(false); tablePublicVorlagen.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); tablePublicVorlagen.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { tablePublicVorlagen.clearSelection(); //just one row is selectable tablePublicVorlagen.setRowSelectionInterval( tablePublicVorlagen.rowAtPoint(e.getPoint()), tablePublicVorlagen.rowAtPoint(e.getPoint())); } }); 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); tableAllImages.getColumnModel().getColumn(9).setWidth(0); tableAllImages.getColumnModel().getColumn(9).setMinWidth(0); tableAllImages.getColumnModel().getColumn(9).setMaxWidth(0); tableAllImages.getTableHeader().setReorderingAllowed(false); tableAllImages.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); tableAllImages.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { tableAllImages.clearSelection(); //just one row is selectable tableAllImages.setRowSelectionInterval(tableAllImages.rowAtPoint(e.getPoint()), tableAllImages.rowAtPoint(e.getPoint())); } }); textFieldName.requestFocusInWindow(); } }); // Verhindert das Vergroessern Des Fensters setResizable(false); // Setzt den Fenstertitel setTitle("bwLehrpool Suite - Image suchen - " + person.verantwortlicher.getUserID()); // Zentriert das Fenster in die Bildmitte setBounds(0, 0, 918, 722); 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("Imagesuche"); 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önnen Sie nach Ihrem gewünschten Image suchen und dieses für weitere Schritte auswählen"); 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, 98); contentPanel.add(panel_1); panel_1.setLayout(null); JLabel lblNewLabel_2 = new JLabel("Volltextsuche:"); lblNewLabel_2.setBounds(30, 30, 80, 20); panel_1.add(lblNewLabel_2); JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:"); lblInternetIstInnerhalb.setBounds(30, 58, 80, 20); panel_1.add(lblInternetIstInnerhalb); textFieldName = new JTextField(); // Key Listener der Tastatureingabe registriert textFieldName.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { // Textfield eingabe auslesen String stext = textFieldName.getText().trim(); // Wenn Textfield nicht leer if (!stext.isEmpty()) { // Filtere nach der Eingabe orFilters.clear(); andFilters.clear(); finalFilters.clear(); orFilters.add(RowFilter.regexFilter("(?i)" + stext, 0)); //case insensitive orFilters.add(RowFilter.regexFilter("(?i)" + stext, 9)); //case insensitive orFilter = RowFilter.orFilter(orFilters); rowSorterAll.setRowFilter(orFilter); rowSorterMyImages.setRowFilter(orFilter); andFilters.add(RowFilter.regexFilter("1", 8)); andFilter = RowFilter.andFilter(andFilters); finalFilters.add(andFilter); finalFilters.add(orFilter); templateFilter = RowFilter.andFilter(finalFilters); rowSorterPublicVorlagen.setRowFilter(templateFilter); //füttere finalFilter mit andFilter und orFilter } else { //refresh list String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); orFilters.clear(); andFilters.clear(); orFilters.add(RowFilter.regexFilter(username, 4)); //case insensitive, filter for anything orFilter = RowFilter.andFilter(orFilters); rowSorterMyImages.setRowFilter(orFilter); rowSorterAll.setRowFilter(orFilter); //in addition, templates can only be shown when they really are templates! orFilters.clear(); orFilters.add(RowFilter.regexFilter("(?i)" + stext, 0)); //case insensitive orFilters.add(RowFilter.regexFilter("(?i)" + stext, 9)); //case insensitive orFilters.add(RowFilter.regexFilter("1", 8)); orFilter = RowFilter.orFilter(orFilters); rowSorterPublicVorlagen.setRowFilter(orFilter); } tablemyImages.clearSelection(); tableAllImages.clearSelection(); tablePublicVorlagen.clearSelection(); resetImageInfo(); } }); textFieldName.setBounds(133, 30, 400, 20); panel_1.add(textFieldName); textFieldName.setColumns(10); comboBox = new JComboBox(); try { // Holt sich eine Liste aller verfuegbaren Betriebssysteme vom // Server List list = ThriftManager.getSatClient().getAllOS(SessionData.authToken); // Leeres Item hinzufuegen comboBox.addItem(""); for (int i = 0; i < list.size(); i++) { // Hinzufuegen der verfuegbaren Betriebssysteme comboBox.addItem(list.get(i)); } } catch (TException e2) { e2.printStackTrace(); JOptionPane.showMessageDialog(c, e2.getCause() + "\n" + e2.getStackTrace(), "Debug-Message", JOptionPane.ERROR_MESSAGE); } // Registriert Auswahlaenderungen der Box comboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // Prueft das die Auswahl nicht leer ist if (comboBox.getSelectedItem().toString() != "") { 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 { rowSorterMyImages.setRowFilter(null); rowSorterPublicVorlagen.setRowFilter(null); rowSorterAll.setRowFilter(null); } } }); comboBox.setBounds(133, 58, 191, 20); panel_1.add(comboBox); JLabel lblHauptmen = new JLabel("Hauptmenü"); lblHauptmen.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { // oeffnet das Hauptmenue GuiManager.show(new MainMenue_GUI()); } }); 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("Image"); lblVlimage.setForeground(Color.BLUE); lblVlimage.setBounds(81, 11, 45, 14); contentPanel.add(lblVlimage); JLabel label_2 = new JLabel(">"); label_2.setBounds(116, 11, 13, 14); contentPanel.add(label_2); JLabel lblNewLabel_1 = new JLabel("Suche und Download"); lblNewLabel_1.setBounds(129, 11, 155, 14); contentPanel.add(lblNewLabel_1); tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.setBounds(10, 158, 557, 339); contentPanel.add(tabbedPane); JScrollPane scrollPaneAllImages = new JScrollPane(); tableAllImages = new JTable(); tableAllImages.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (tableAllImages.getSelectedRow() != -1) { String imageid = modelAll.getValueAt( tableAllImages.convertRowIndexToModel(tableAllImages.getSelectedRow()), 6) .toString(); String version = modelAll.getValueAt( tableAllImages.convertRowIndexToModel(tableAllImages.getSelectedRow()), 7) .toString(); 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(); JScrollPane scrollPaneMyImage = new JScrollPane(); tablemyImages = new JTable(); tablemyImages.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (tablemyImages.getSelectedRow() != -1) { String imageid = modelMyImages.getValueAt( tablemyImages.convertRowIndexToModel(tablemyImages.getSelectedRow()), 6) .toString(); String version = modelMyImages.getValueAt( tablemyImages.convertRowIndexToModel(tablemyImages.getSelectedRow()), 7) .toString(); writeImageData(imageid, version); } } }); tablemyImages.setModel(modelMyImages); tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit(); tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit(); tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit(); tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit(); tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit(); tablemyImages.setRowSorter(rowSorterMyImages); scrollPaneMyImage.setViewportView(tablemyImages); tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null); JScrollPane scrollPanePublicVorlagen = new JScrollPane(); tablePublicVorlagen = new JTable(); tablePublicVorlagen.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (tablePublicVorlagen.getSelectedRow() != -1) { String imageid = modelPublicVorlagen.getValueAt( tablePublicVorlagen.convertRowIndexToModel(tablePublicVorlagen.getSelectedRow()), 6).toString(); String version = modelPublicVorlagen.getValueAt( tablePublicVorlagen.convertRowIndexToModel(tablePublicVorlagen.getSelectedRow()), 7).toString(); 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); tableAllImages.setRowSorter(rowSorterAll); scrollPaneAllImages.setViewportView(tableAllImages); tabbedPane.addTab("Alle", null, scrollPaneAllImages, null); JScrollPane scrollPaneCoopImages = new JScrollPane(); JTable tableCoopImages = new JTable(); tableCoopImages.setModel(model); tableCoopImages.getColumnModel().getColumn(1).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(2).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(3).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(4).sizeWidthToFit(); tableCoopImages.getColumnModel().getColumn(5).sizeWidthToFit(); scrollPaneCoopImages.setViewportView(tableCoopImages); tabbedPane.addTab("bwLehrpool", null, scrollPaneCoopImages, null); tabbedPane.setEnabledAt(3, false); btnDownload = new JButton("Download"); btnDownload.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // oeffnet den Downloader String username = person.verantwortlicher.getName() + " " + person.verantwortlicher.getVorname(); // // meine Images // if (tabbedPane.getSelectedIndex() == 0) { if (tablemyImages.getSelectedRow() != -1) { String imageid = modelMyImages.getValueAt( tablemyImages.convertRowIndexToModel(tablemyImages.getSelectedRow()), 6) .toString(); Image.ImageId = imageid; String imageversion = modelMyImages.getValueAt( tablemyImages.convertRowIndexToModel(tablemyImages.getSelectedRow()), 7) .toString(); Image.Version = imageversion; GuiManager.show(new FTPSearchDownloader_GUI()); } } else if (tabbedPane.getSelectedIndex() == 1) { // // Vorlagen Images // if (tablePublicVorlagen.getSelectedRow() != -1) { String imageid = modelPublicVorlagen.getValueAt( tablePublicVorlagen.convertRowIndexToModel(tablePublicVorlagen .getSelectedRow()), 6).toString(); Image.ImageId = imageid; String imageversion = modelPublicVorlagen.getValueAt( tablePublicVorlagen.convertRowIndexToModel(tablePublicVorlagen .getSelectedRow()), 7).toString(); Image.Version = imageversion; GuiManager.show(new FTPSearchDownloader_GUI()); } } else if (tabbedPane.getSelectedIndex() == 2) { // // Alle Images // if (tableAllImages.getSelectedRow() != -1) { // nur eigene Images downloadbar if (modelAll.getValueAt( tableAllImages.convertRowIndexToModel(tableAllImages.getSelectedRow()), 4) .equals(username) == true || modelAll .getValueAt( tableAllImages.convertRowIndexToModel(tableAllImages .getSelectedRow()), 8).equals("true") == true || person.verantwortlicher.getRole().equals("Admin")) { String imageid = modelAll .getValueAt( tableAllImages.convertRowIndexToModel(tableAllImages .getSelectedRow()), 6).toString(); Image.ImageId = imageid; String imageversion = modelAll .getValueAt( tableAllImages.convertRowIndexToModel(tableAllImages .getSelectedRow()), 7).toString(); Image.Version = imageversion; GuiManager.show(new FTPSearchDownloader_GUI()); } else { JOptionPane.showMessageDialog(c, "Sie haben keine Berechtigung fremde Images herunterzuladen.", "Message", JOptionPane.INFORMATION_MESSAGE); } } } else { // // nichts markiert // JOptionPane.showMessageDialog(c, "Bitte wählen Sie ein Image für den Download aus", "Message", JOptionPane.INFORMATION_MESSAGE); } } }); btnDownload.setBounds(449, 508, 118, 23); contentPanel.add(btnDownload); { 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ück"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // oeffnet das Hauptmenue GuiManager.show(new MainMenue_GUI()); } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); } } 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 Ansprechpartner:"); 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, 334, 130, 14); panel.add(lblImageIstVorlage); labelVorlage = new JLabel(""); labelVorlage.setBounds(10, 348, 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, 312, 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.setEditable(false); textAreadesc.setFont(new Font("Tahoma", Font.PLAIN, 11)); textAreadesc.setLineWrap(true); textAreadesc.setBackground(SystemColor.menu); scrollPane.setViewportView(textAreadesc); } // Initiale Beffuelung eines Table models public DefaultTableModel initTableModel(DefaultTableModel model) { List images; try { // Hole eine Liste der Images if (person.verantwortlicher.getRole().equals("Admin")) { //get complete list images = ThriftManager.getSatClient().getImageList(person.verantwortlicher.getUserID(), SessionData.authToken); } else { images = ThriftManager.getSatClient().getImageListPermissionRead( person.verantwortlicher.getUserID(), SessionData.authToken); } TableFiller.fillModelWithImageList(model, images); //show number of rows in GUI tabbedPane.setTitleAt(0, tabbedPane.getTitleAt(0) + " (" + model.getRowCount() + ") "); return model; } catch (TException e1) { e1.printStackTrace(); JOptionPane.showMessageDialog(c, e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message", JOptionPane.ERROR_MESSAGE); } return model; } public DefaultTableModel initTableModelAll(DefaultTableModel model) { try { // Hole eine Liste der Images List images = ThriftManager.getSatClient().getImageList( person.verantwortlicher.getUserID(), SessionData.authToken); TableFiller.fillModelWithImageList(model, images); //show number of rows in GUI tabbedPane.setTitleAt(2, tabbedPane.getTitleAt(2) + " (" + model.getRowCount() + ") "); return model; } catch (TException e1) { e1.printStackTrace(); JOptionPane.showMessageDialog(c, e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message", JOptionPane.ERROR_MESSAGE); } return model; } // Initiale Beffuelung eines Table models public DefaultTableModel initTableModelTemplates(DefaultTableModel model) { try { // Hole eine Liste der Images List images = ThriftManager.getSatClient() .getImageListAllTemplates(SessionData.authToken); TableFiller.fillModelWithImageList(model, images); //show number of rows in GUI tabbedPane.setTitleAt(1, tabbedPane.getTitleAt(1) + " (" + model.getRowCount() + ") "); return model; } catch (TException e1) { e1.printStackTrace(); JOptionPane.showMessageDialog(c, e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message", JOptionPane.ERROR_MESSAGE); } return model; }// end initTableModelTemplates private void resetImageInfo() { //reset the detailed information on the right hand side when changing search string labelID.setText(""); labelVersion.setText(""); labelName.setText(""); textAreadesc.setText(""); labelOS.setText(""); labelUpdate.setText(""); labelVerantwortlicher.setText(""); labelWeitereVerantwortliche.setText(""); labelVorlage.setText(""); labelLizenzSoftware.setText(""); labelInternet.setText(""); labelRam.setText(""); labelCPU.setText(""); } public void writeImageData(String id, String version) { try { SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String additionalContacts = ""; Map res = ThriftManager.getSatClient().getImageData(id, version, SessionData.authToken); labelName.setText(res.get("name")); labelOS.setText(res.get("os")); labelUpdate.setText(out.format(in.parse(res.get("lastupdate")))); labelVerantwortlicher.setText(res.get("owner") + " (" + res.get("mail") + ")"); labelWeitereVerantwortliche.setText("Keine"); 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")); List contacts = ThriftManager.getSatClient().getAdditionalImageContacts(id, SessionData.authToken); labelWeitereVerantwortliche.setText(""); for(int i = 0; i < contacts.size(); i++) { additionalContacts += contacts.get(i); if(i != contacts.size() -1) { additionalContacts += " / "; } } labelWeitereVerantwortliche.setText(additionalContacts); labelWeitereVerantwortliche.setToolTipText(additionalContacts); if (person.verantwortlicher.getRole().equals("Student") && res.get("license").equals("1")) { btnDownload.setEnabled(false); } else { btnDownload.setEnabled(true); } } catch (TException | ParseException e1) { e1.printStackTrace(); } } }