summaryrefslogtreecommitdiffstats
path: root/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java')
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java144
1 files changed, 144 insertions, 0 deletions
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java b/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java
new file mode 100644
index 0000000..482a2c4
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java
@@ -0,0 +1,144 @@
+import java.io.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.event.*;
+import javax.swing.table.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Dialog zum Ändern und Löschen von Benutzern
+ */
+public class ChgUserDlg extends AbstractMyJDlg implements ListSelectionListener
+{
+ Container c;
+ JPanel contentPane;
+ BorderLayout borderLayout1 = new BorderLayout();
+ int counter = 0;
+
+ UserCon users = new UserCon(); // Objekt-Container und TableModel
+ JScrollPane scrollPane = new JScrollPane(); // Scroll-Pane
+ JTable table = new JTable(); // Tabelle
+
+ JPanel jPanelSouth = new JPanel();
+ JLabel jLabelSelection = new JLabel();
+ JTextField jTextFieldAuswahl = new JTextField();
+ String fName = new String ("user.dat");
+ JButton delB = new JButton("Löschen");
+ JButton saveB = new JButton("Speichern");
+ JButton abbrB = new JButton("Abbrechen");
+ JComboBox comboBox = new JComboBox(User.sRole);
+ JTextField tf = new JTextField();
+ DefaultCellEditor cellEd = new DefaultCellEditor(tf);
+ DefaultCellEditor comboEd = new DefaultCellEditor(comboBox);
+
+ ChgUserDlg() {
+ ButtonListener2 bl = new ButtonListener2(this);
+ c = getContentPane();
+ setModal(true);
+ c.setLayout(borderLayout1);
+ setSize(new Dimension(600, 300));
+ setTitle("Benutzer ändern / löschen");
+ jPanelSouth.setBorder(BorderFactory.createEtchedBorder());
+ jLabelSelection.setText("Auswahl");
+ jTextFieldAuswahl.setText("kein Benutzer ausgewählt");
+
+
+ c.add( scrollPane, java.awt.BorderLayout.CENTER );
+ scrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED );
+ scrollPane.getViewport().add( table ); // Table in Scroll-Pane
+ c.add(jPanelSouth, java.awt.BorderLayout.SOUTH);
+ jPanelSouth.add(delB);
+ jPanelSouth.add(saveB);
+ jPanelSouth.add(abbrB);
+ delB.addActionListener(bl);
+ abbrB.addActionListener(bl);
+ saveB.addActionListener(bl);
+ saveB.setActionCommand("Speichern");
+ delB.setActionCommand("Löschen");
+ abbrB.setActionCommand("Abbrechen");
+
+ try {
+ FileInputStream fis = new FileInputStream(fName);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ users = (UserCon) ois.readObject();
+ ois.close();
+ fis.close();
+ } catch (Exception exception) { exception.printStackTrace(); }
+ table.setModel( users ); // Model für Tabelle setzen
+ // Einzelauswahl
+ table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
+ ListSelectionModel lsm = table.getSelectionModel();
+ lsm.addListSelectionListener( this ); // TableModelListener regitrieren
+ table.setCellSelectionEnabled(true);
+ TableColumn loginColumn = table.getColumnModel().getColumn(0);
+ TableColumn pwColumn = table.getColumnModel().getColumn(1);
+ TableColumn fullNamColumn = table.getColumnModel().getColumn(2);
+ TableColumn uidColumn = table.getColumnModel().getColumn(3);
+ TableColumn roleColumn = table.getColumnModel().getColumn(4);
+ loginColumn.setCellEditor(cellEd);
+ pwColumn.setCellEditor(cellEd);
+ fullNamColumn.setCellEditor(cellEd);
+ uidColumn.setCellEditor(cellEd);
+ roleColumn.setCellEditor(comboEd);
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension frameSize = getSize();
+ setLocation((screenSize.width/2)-(frameSize.width/2),(screenSize.height/2)-(frameSize.height/2));
+ setVisible(true);
+ }
+
+ /* (non-Javadoc)
+ * @see AbstractMyJDlg#buttonActionPerformed(java.awt.event.ActionEvent)
+ */
+ public void buttonActionPerformed(ActionEvent e) {
+ if (e.getActionCommand().equals("Abbrechen"))
+ {
+ setVisible(false);
+ }
+ else if(e.getActionCommand().equals("Löschen"))
+ {
+ table.removeEditor();
+ users.removeUser((User) users.elementAt(table.getSelectedRow()));
+ try {
+ FileOutputStream fos = new FileOutputStream(fName);
+ ObjectOutputStream oos = new ObjectOutputStream(fos);
+ oos.writeObject(users);
+ oos.close();
+ fos.close();
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ else if(e.getActionCommand().equals("Speichern"))
+ {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ try {
+ FileOutputStream fos = new FileOutputStream(fName);
+ ObjectOutputStream oos = new ObjectOutputStream(fos);
+ oos.writeObject(users);
+ oos.close();
+ fos.close();
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ }
+ /* (non-Javadoc)
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
+ */
+ public void valueChanged( ListSelectionEvent e )
+ {
+ /* in der Hörsaalübung kam es hier zum Crash, wenn eine Zeile
+ * ausgewählt war und eine neue hinzugefügt wurde. In diesem
+ * Fall ist die erste und zuletzt ausgewählte Zeile identisch.
+ * Das wir hier abgefangen.
+ */
+ /*if ( e.getFirstIndex() == e.getLastIndex() ) {
+ jTextFieldAuswahl.setText( "kein Benutzer ausgewählt");
+ return;
+ }
+ String login = (String) table.getValueAt(table.getSelectedRow(), 0);
+ String nam = (String) table.getValueAt(table.getSelectedRow(), 2);
+ this.jTextFieldAuswahl.setText( login + " (" + nam + ")" );*/
+ }
+} \ No newline at end of file