summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/util/ListAllOtherUsers_GUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/util/ListAllOtherUsers_GUI.java')
-rw-r--r--dozentenmodul/src/main/java/util/ListAllOtherUsers_GUI.java403
1 files changed, 403 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/util/ListAllOtherUsers_GUI.java b/dozentenmodul/src/main/java/util/ListAllOtherUsers_GUI.java
new file mode 100644
index 00000000..ae097426
--- /dev/null
+++ b/dozentenmodul/src/main/java/util/ListAllOtherUsers_GUI.java
@@ -0,0 +1,403 @@
+package util;
+
+import gui.intro.About_GUI;
+
+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.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.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.DefaultListSelectionModel;
+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.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.JTextPane;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+import models.Links;
+import models.SessionData;
+import models.person;
+
+import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
+
+import server.generated.Person;
+import server.generated.Server.Client;
+import thrift.ThriftConnection;
+
+@SuppressWarnings("serial")
+public class ListAllOtherUsers_GUI extends JFrame {
+
+ private final static Logger LOGGER = Logger
+ .getLogger(ListAllOtherUsers_GUI.class);
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JTable tableUsers;
+ boolean activeSearch = false;
+
+ String[] titles = { "userID", "Nachname", "Vorname", "Mail" };
+
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ //final DefaultTableModel modelUsers = new DefaultTableModel(titles, 0);
+
+ private JButton btnAdd;
+ private List<Person> map = null; // List of people
+ private JTextField textField;
+ Component c = null;
+ private JTable table;
+ private int userIDPos;
+
+ List<String> user = new ArrayList<String>();
+
+ private static final String HELP_MESSAGE = "<html><div align=\"center\">"
+ + "In der Übersicht sehen Sie primär alle Veranstaltungen, die Sie erzeugt haben.<br />"
+ + "Sie können die Veranstaltungen hier löschen. Alternativ werden veraltete Einträge irgendwann automatisch gelöscht.<br />"
+ + "Veraltet bedeutet, dass Veranstaltungen, die drei Monate lang nicht augerufen wurden, vorerst deaktiviert werden."
+ + "</div></html>";
+
+
+ //prevent table cells being clickable
+ final DefaultTableModel modelUsers = new DefaultTableModel(titles, 0){
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(modelUsers);
+
+ /**
+ *
+ * Constructor
+ */
+
+ public ListAllOtherUsers_GUI(Component formerGUI, final JTable table,
+ final int userIDPos) {
+
+ // get table model to work with
+ final DefaultTableModel model = (DefaultTableModel) table.getModel();
+
+ //set incoming table
+ this.table=table;
+ this.userIDPos=userIDPos;
+
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung nach klick auf X
+ con.closeThriftConnection();
+ dispose();
+ }
+
+ @Override
+ public void windowOpened(WindowEvent arg0) {
+
+ // auszublendende Angaben
+ // 0=userID
+
+ tableUsers.getColumnModel().getColumn(0).setWidth(0);
+ tableUsers.getColumnModel().getColumn(0).setMinWidth(0);
+ tableUsers.getColumnModel().getColumn(0).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) {
+
+ e.printStackTrace();
+ }
+ // Setzt den Fenstertitel
+ setTitle("bwLehrpool Suite - Benutzer hinzufügen");
+ // Zentriert das Fenster in die Bildmitte
+ setBounds(0, 0, 531, 673);
+ setLocationRelativeTo(formerGUI);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 570, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Benutzer hinzufügen");
+ 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ählen Sie bitte aus der unten stehenden Liste Benutzer aus, denen Sie Rechte vergeben möchten.");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 176, 498, 359);
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel);
+ contentPanel.setLayout(null);
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ scrollPaneMyImage.setBounds(0, 0, 498, 359);
+ contentPanel.add(scrollPaneMyImage);
+ tableUsers = new JTable();
+ tableUsers.setSelectionModel(new MyDefaultListSelectionModel());
+
+ tableUsers.setModel(modelUsers);
+
+ tableUsers.getColumnModel().getColumn(1).sizeWidthToFit();// Nachname
+ tableUsers.getColumnModel().getColumn(2).sizeWidthToFit();// Vorname
+ tableUsers.getColumnModel().getColumn(3).sizeWidthToFit();// email
+
+ // initialize content
+ initTableContent();
+
+ tableUsers.setRowSorter(rowSorterAll);
+
+ scrollPaneMyImage.setViewportView(tableUsers);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 568, 508, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+
+ btnAdd = new JButton("Übernehmen und schließen");
+ buttonPane.add(btnAdd);
+ {
+ JButton btnCancel = new JButton("Abbrechen");
+ buttonPane.add(btnCancel);
+ btnCancel.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // only close window
+ dispose();
+ }
+ });
+ btnCancel.setActionCommand("OK");
+ getRootPane().setDefaultButton(btnCancel);
+ }
+ btnAdd.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // save the user list and go back to last GUI
+ int pos = 0; // pointer for array
+ int[] selectedRows = tableUsers.getSelectedRows(); // list
+
+ // check if a row is selected
+ if (selectedRows.length > 0) {
+ // step through entries
+ for (int i = 0; i < selectedRows.length; i++) {
+ // get userID and write it to the table in former
+ // GUI
+
+ if (table.getColumnCount() == 6) { // is it an image
+ // GUI?
+
+ Object[] obj = {
+ tableUsers.getValueAt(
+ selectedRows[pos], 1)
+ + ", "
+ + tableUsers.getValueAt(
+ selectedRows[pos], 2), // Nachname
+ // und
+ // Vorname
+ false, // Read image
+ false, // Write image
+ false, // Link image
+ false, // Admin image
+ tableUsers.getValueAt(
+ selectedRows[pos], 0) // userID
+ };
+ model.addRow(obj);
+
+ } else if (table.getColumnCount() == 5) { // is it a
+ // lecture
+ // GUI?
+ Object[] obj = {
+ tableUsers.getValueAt(
+ selectedRows[pos], 1)
+ + ", "
+ + tableUsers.getValueAt(
+ selectedRows[pos], 2), // Nachname
+ // und
+ // Vorname
+ false, // Read image
+ false, // Write image
+ false, // Admin image
+ tableUsers.getValueAt(
+ selectedRows[pos], 0) // userID
+ };
+ model.addRow(obj);
+ }
+
+ pos++;// next selected row
+ }
+ }// end if
+
+ dispose();
+ }// end actionPerformed
+ });
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 836, 1);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 552, 836, 1);
+ getContentPane().add(separator_1);
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnNewMenu_1 = new JMenu("Hilfe");
+ menuBar.add(mnNewMenu_1);
+
+ JMenuItem mntmFaq = new JMenuItem("FAQ");
+ 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) {
+
+ 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) {
+ 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);
+
+ JMenu mnNewMenu_Info = new JMenu("Info");
+ mnNewMenu_Info.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ JOptionPane.showMessageDialog(c, HELP_MESSAGE,
+ "Hilfe zu dieser Oberfläche",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ });
+ menuBar.add(mnNewMenu_Info);
+
+ c = this;
+
+ }
+
+
+ // get users from db which are not in listed in the permission yet
+ public void initTableContent() {
+
+ //LOGGER.info("Getting list of all other users from server");
+ try {
+
+ //set users which are NOT to be listed in table
+ //logged on user
+ user.add(0, person.verantwortlicher.getUserID());
+
+ //users already in table
+ for(int y=0; y<table.getRowCount(); y++){
+ user.add(""+table.getValueAt(y, userIDPos));
+ }
+
+ //get the info
+ map = client.getAllOtherSatelliteUsers(user,SessionData.session.getAuthToken());
+ Iterator<server.generated.Person> i = map.iterator();
+
+ int x = 0;
+ while (i.hasNext()) {
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = { map.get(x).getUserID(), // userID
+ map.get(x).getNachname(), // Nachname
+ map.get(x).getVorname(),// Vorname
+ map.get(x).getMail() // EMail
+ };
+ // Fuege diese Objekte der Tabelle hinzu
+ modelUsers.addRow(obj);
+ i.next();
+ x++;
+ }// end while
+
+ } catch (TException e2) {
+ LOGGER.info("Failed to get List of users from server");
+ e2.printStackTrace();
+ }
+ }// end initTableContent
+}// end class ListAllOtherUsers
+
+@SuppressWarnings("serial")
+class MyDefaultListSelectionModel extends DefaultListSelectionModel {
+
+ public MyDefaultListSelectionModel() {
+ super();
+ }
+
+ public void setSelectionInterval(int index0, int index1) {
+ if (isSelectedIndex(index0)) {
+ super.removeSelectionInterval(index0, index1);
+ } else {
+ super.addSelectionInterval(index0, index1);
+ }
+ }
+}// end class MyDefaultListSelectionModel \ No newline at end of file