summaryrefslogtreecommitdiffstats
path: root/Bachelor/ERGO/TierheimVerw/thv
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/ERGO/TierheimVerw/thv')
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/.classpath7
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/.project17
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.classbin0 -> 336 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.java12
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.classbin0 -> 341 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.java11
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AdminDlg.classbin0 -> 4602 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AdminDlg.java109
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.classbin0 -> 838 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.java20
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.classbin0 -> 815 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.java20
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.classbin0 -> 9849 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.java314
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/Benutzungshandbuch.txt113
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ButtonListener.classbin0 -> 620 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ButtonListener.java33
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.classbin0 -> 619 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.java33
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.classbin0 -> 6398 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.java144
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ImageFilter.classbin0 -> 1026 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ImageFilter.java45
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/IntVerifier.classbin0 -> 918 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/IntVerifier.java33
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/PwDialog.classbin0 -> 5026 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/PwDialog.java115
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ThvFilter.classbin0 -> 987 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ThvFilter.java42
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/Tier.classbin0 -> 7342 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/Tier.java1
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/TierCon.classbin0 -> 4632 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/TierCon.java1
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/TierDialog.classbin0 -> 7971 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/TierDialog.java1
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.classbin0 -> 13862 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java1
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/User.classbin0 -> 2557 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/User.java117
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/UserCon.classbin0 -> 2508 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/UserCon.java151
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ViewComponent.classbin0 -> 1656 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/ViewComponent.java16
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/hund.jpegbin0 -> 9287 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/katze.JPGbin0 -> 28041 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/test.xlsbin0 -> 11264 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/thv.classbin0 -> 12566 bytes
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/thv.java470
-rw-r--r--Bachelor/ERGO/TierheimVerw/thv/user.datbin0 -> 712 bytes
50 files changed, 1833 insertions, 0 deletions
diff --git a/Bachelor/ERGO/TierheimVerw/thv/.classpath b/Bachelor/ERGO/TierheimVerw/thv/.classpath
new file mode 100644
index 0000000..da8bbe3
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path=""/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.5.0_06"/>
+ <classpathentry sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.1.1/src/org.junit_3.8.1/junitsrc.zip" kind="var" path="JUNIT_HOME/junit.jar"/>
+ <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/Bachelor/ERGO/TierheimVerw/thv/.project b/Bachelor/ERGO/TierheimVerw/thv/.project
new file mode 100644
index 0000000..1ba8a09
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>thv</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/Bachelor/ERGO/TierheimVerw/thv/.settings/org.eclipse.jdt.core.prefs b/Bachelor/ERGO/TierheimVerw/thv/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3b888d3
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Jan 03 10:31:53 CET 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.class b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.class
new file mode 100644
index 0000000..fcba9e6
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.java b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.java
new file mode 100644
index 0000000..6fbb8fd
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJDlg.java
@@ -0,0 +1,12 @@
+import java.awt.event.*;
+import javax.swing.*;
+
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Abstrakte JDialog Klasse
+ *
+ */
+public abstract class AbstractMyJDlg extends JDialog {
+ public abstract void buttonActionPerformed( ActionEvent e );
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.class b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.class
new file mode 100644
index 0000000..54f9932
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.java b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.java
new file mode 100644
index 0000000..9980b15
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AbstractMyJFrame.java
@@ -0,0 +1,11 @@
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Abstrakte JFrame Klasse
+ *
+ */
+public abstract class AbstractMyJFrame extends JFrame {
+ public abstract void buttonActionPerformed( ActionEvent e );
+} \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AdminDlg.class b/Bachelor/ERGO/TierheimVerw/thv/AdminDlg.class
new file mode 100644
index 0000000..25bc5ae
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AdminDlg.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AdminDlg.java b/Bachelor/ERGO/TierheimVerw/thv/AdminDlg.java
new file mode 100644
index 0000000..846748c
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AdminDlg.java
@@ -0,0 +1,109 @@
+import java.io.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Klasse zum Anlegen der Benutzer
+ *
+ */
+public class AdminDlg extends AbstractMyJDlg {
+ Container c;
+ JPanel pTop = new JPanel();
+ JPanel pCenter = new JPanel();
+ JPanel pBottom = new JPanel();
+ JLabel l = new JLabel("login");
+ JLabel pw1 = new JLabel ("password");
+ JLabel pw2 = new JLabel ("password Bestätigung");
+ JTextField tf = new JTextField(12);
+ JTextField pf1 = new JTextField(12);
+ JTextField pf2 = new JTextField(12);
+ JLabel labName = new JLabel ("Name");
+ JTextField fullName = new JTextField(24);
+ JLabel labRolle = new JLabel ("Rolle");
+ JComboBox rolle = new JComboBox(User.sRole);
+ JButton okB = new JButton("OK");
+ JButton abbrB = new JButton("Abbrechen");
+ UserCon userCon = new UserCon();
+ String fName = new String ("user.dat");
+
+ /**
+ * Konstruktor
+ */
+ public AdminDlg() {
+ setSize(250,165);
+ setModal(true);
+ c = getContentPane();
+ getRootPane().setDefaultButton(okB);
+ c.setLayout( new GridLayout(6, 0,1,1 ) );
+ ButtonListener2 bl = new ButtonListener2(this);
+
+ okB.addActionListener(bl);
+ okB.setActionCommand("submitUser");
+ abbrB.addActionListener(bl);
+ abbrB.setActionCommand("abbrechen");
+
+ c.add(l);
+ c.add(tf);
+ c.add(pw1);
+ c.add(pf1);
+ c.add(pw2);
+ c.add(pf2);
+ c.add(labName);
+ c.add(fullName);
+ c.add(labRolle);
+ c.add(rolle);
+ c.add(okB);
+ c.add(abbrB);
+
+ setTitle("Neuen Benutzer anlegen");
+
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension frameSize = getSize();
+ setLocation((screenSize.width/2)-(frameSize.width/2),(screenSize.height/2)-(frameSize.height/2));
+
+ setVisible(true);
+ }
+ public void buttonActionPerformed( ActionEvent e )
+ {
+ if (e.getActionCommand().equals("abbrechen"))
+ {
+ this.dispose();
+ }
+ if (e.getActionCommand().equals("submitUser"))
+ {
+ if (pf1.getText().equals(pf2.getText()))
+ {
+ File myFile = new File(fName);
+ if(myFile.exists())
+ {
+ try {
+ FileInputStream fis = new FileInputStream(fName);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ userCon = (UserCon) ois.readObject();
+ ois.close();
+ fis.close();
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ else
+ userCon = new UserCon();
+ User newUser = new User(tf.getText(),
+ pf1.getText(),
+ fullName.getText(),
+ userCon.size(),
+ rolle.getSelectedIndex());
+ userCon.addUser(newUser);
+ try {
+ FileOutputStream fos = new FileOutputStream(fName);
+ ObjectOutputStream oos = new ObjectOutputStream(fos);
+ oos.writeObject(userCon);
+ oos.close();
+ fos.close();
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ this.dispose();
+ }//end if0 get.source
+ }//buttonActionPerformed
+
+}//end class AdminDlg
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.class b/Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.class
new file mode 100644
index 0000000..e92d826
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.java b/Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.java
new file mode 100644
index 0000000..d1ac036
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AlleFTiereDlg.java
@@ -0,0 +1,20 @@
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ *
+ * Klasse zum Anzeigen aller freigegebenen Tiere
+ *
+ */
+public class AlleFTiereDlg extends AlleTiereDlg {
+ TierCon tempCon2 = new TierCon();
+ public AlleFTiereDlg() {
+ super();
+ for (int i=0;i<tiere.size();i++)
+ if( ( (Tier) tiere.elementAt(i) ).getFreigabe() )
+ tempCon2.addTier( (Tier) tiere.elementAt(i) );
+ table.setModel(tempCon2);
+ removeCols();
+ setTitle("Alle freigegebenen Tiere");
+ // TODO Auto-generated constructor stub
+ }
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.class b/Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.class
new file mode 100644
index 0000000..e97b92f
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.java b/Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.java
new file mode 100644
index 0000000..2855be1
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AlleNFTiereDlg.java
@@ -0,0 +1,20 @@
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Klasse zum Anzeigen aller nicht freigegebenen Tiere
+ */
+public class AlleNFTiereDlg extends AlleTiereDlg {
+ TierCon tempCon = new TierCon();
+
+ /**
+ * Konstruktor
+ */
+ public AlleNFTiereDlg() {
+ super();
+ for (int i=0;i<tiere.size();i++)
+ if( !((Tier) tiere.elementAt(i)).getFreigabe() )
+ tempCon.addTier((Tier) tiere.elementAt(i));
+ table.setModel(tempCon);
+ setTitle("Alle nicht freigegebenen Tiere");
+ }
+
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.class b/Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.class
new file mode 100644
index 0000000..df3d368
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.java b/Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.java
new file mode 100644
index 0000000..ab80c3c
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/AlleTiereDlg.java
@@ -0,0 +1,314 @@
+import java.awt.*;
+import java.awt.event.*;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import javax.swing.*;
+import javax.swing.event.*;
+import javax.swing.table.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ *
+ * Klasse zum Anzeigen aller Tiere
+ *
+ */
+
+public class AlleTiereDlg extends AbstractMyJDlg implements ListSelectionListener,WindowListener
+{
+ Container c;
+ JPanel contentPane;
+ BorderLayout borderLayout1 = new BorderLayout();
+ int counter = 0;
+ User actUser=thv.getActUser();
+ UserCon users;
+
+ TierCon tiere=thv.getTierCon();
+ JScrollPane scrollPane = new JScrollPane(); // Scroll-Pane
+ JTable table = new JTable(); // Tabelle
+
+ JPanel jPanelSouth = new JPanel();
+ JLabel jLabelSelection = new JLabel();
+ JTextField jTextFieldAuswahl = new JTextField(20);
+ String fName = new String ("user.dat");
+ JButton delB = new JButton("Löschen");
+ JButton detailB = new JButton("Details");
+ JButton saveB = new JButton("Speichern");
+ JButton abbrB = new JButton("Abbrechen");
+ JComboBox comboBox = new JComboBox(Tier.TIERARTEN);
+ JComboBox comboBoxG = new JComboBox(Tier.GESCHLECHT);
+ JComboBox comboBoxMA = new JComboBox();
+ JCheckBox checkB = new JCheckBox();
+ JTextField tf = new JTextField();
+ JTextField editJTFint = new JTextField();
+ JTextField editJTF = new JTextField();
+ DefaultCellEditor cellEd = new DefaultCellEditor(editJTF);
+ DefaultCellEditor cellEdint = new DefaultCellEditor(editJTFint);
+ DefaultCellEditor comboEd = new DefaultCellEditor(comboBox);
+ DefaultCellEditor comboEdG = new DefaultCellEditor(comboBoxG);
+ DefaultCellEditor comboEDMA = new DefaultCellEditor(comboBoxMA);
+ DefaultCellEditor checkBEd = new DefaultCellEditor(checkB);
+ String[] UserNames;
+
+ /**
+ * Konstruktor
+ */
+ public AlleTiereDlg() {
+ editJTFint.setInputVerifier(new IntVerifier());
+ setDefaultCloseOperation( JDialog.DO_NOTHING_ON_CLOSE );
+ ButtonListener2 bl = new ButtonListener2(this);
+ c = getContentPane();
+ c.setLayout(borderLayout1);
+ setSize(new Dimension(900, 400));
+ setTitle("Alle Tiere");
+ jPanelSouth.setBorder(BorderFactory.createEtchedBorder());
+ jLabelSelection.setText("Auswahl");
+ jTextFieldAuswahl.setText("kein Tier 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(detailB);
+ jPanelSouth.add(abbrB);
+ delB.addActionListener(bl);
+ abbrB.addActionListener(bl);
+ detailB.addActionListener(bl);
+ detailB.setActionCommand("detail");
+ delB.setActionCommand("Löschen");
+ abbrB.setActionCommand("Abbrechen");
+
+ table.setModel( tiere ); // Model für Tabelle setzen
+ // Einzelauswahl
+ table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
+ ListSelectionModel lsm = table.getSelectionModel();
+ lsm.addListSelectionListener( this ); // TableModelListener regitrieren
+ table.setCellSelectionEnabled(true);
+ //table.setDoubleBuffered(true);
+ try {
+ FileInputStream fis = new FileInputStream(fName);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ users = (UserCon) ois.readObject();
+ ois.close();
+ fis.close();
+ UserNames=new String[users.size()];
+ for (int i=0;i<users.size();i++)
+ {
+ User u2 = (User) users.elementAt(i);
+ UserNames[i] = u2.getUserName();
+ if (u2.getRole() != User.ROLE_GUEST)
+ comboBoxMA.addItem((Object) u2.getUserName());
+ }
+ } catch (Exception exception) { exception.printStackTrace(); }
+ TableColumn NameColumn = table.getColumnModel().getColumn(1);
+ TableColumn TierArtColumn = table.getColumnModel().getColumn(2);
+ TableColumn RasseColumn = table.getColumnModel().getColumn(3);
+ TableColumn farbeColumn = table.getColumnModel().getColumn(4);
+ TableColumn AlterColumn = table.getColumnModel().getColumn(5);
+ TableColumn GeschlColumn = table.getColumnModel().getColumn(6);
+ TableColumn SonstColumn = table.getColumnModel().getColumn(8);
+ TableColumn HeimEintrColumn = table.getColumnModel().getColumn(9);
+ TableColumn ImpfColumn = table.getColumnModel().getColumn(10);
+ TableColumn MAColumn = table.getColumnModel().getColumn(11);
+ TableColumn BefColumn = table.getColumnModel().getColumn(13);
+ TableColumn freigColumn = table.getColumnModel().getColumn(15);
+ if (actUser.getRole() != User.ROLE_GUEST)
+ {
+ NameColumn.setCellEditor(cellEd);
+ TierArtColumn.setCellEditor(comboEd);
+ RasseColumn.setCellEditor(cellEd);
+ farbeColumn.setCellEditor(cellEd);
+ AlterColumn.setCellEditor(cellEdint);
+ GeschlColumn.setCellEditor(comboEdG);
+ SonstColumn.setCellEditor(cellEd);
+ HeimEintrColumn.setCellEditor(cellEd);
+ ImpfColumn.setCellEditor(cellEd);
+ MAColumn.setCellEditor(comboEDMA);
+ if (actUser.getRole() == User.ROLE_VET)
+ {
+ BefColumn.setCellEditor(cellEd);
+ freigColumn.setCellEditor(checkBEd);
+ }
+ }
+ else
+ {
+ table.setCellSelectionEnabled(false);
+ }
+ removeCols();
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension frameSize = getSize();
+ setLocation((screenSize.width/2)-(frameSize.width/2),(screenSize.height/2)-(frameSize.height/2));
+ setVisible(true);
+ }
+ /**
+ * Entfernt Spalten, die Gast nicht sehen soll
+ */
+ public void removeCols()
+ {
+ if (actUser.getRole() == User.ROLE_GUEST)
+ {
+ TableColumn NameColumn = table.getColumnModel().getColumn(1);
+ TableColumn TierArtColumn = table.getColumnModel().getColumn(2);
+ TableColumn RasseColumn = table.getColumnModel().getColumn(3);
+ TableColumn farbeColumn = table.getColumnModel().getColumn(4);
+ TableColumn AlterColumn = table.getColumnModel().getColumn(5);
+ TableColumn GeschlColumn = table.getColumnModel().getColumn(6);
+ TableColumn FotoColumn = table.getColumnModel().getColumn(7);
+ TableColumn SonstColumn = table.getColumnModel().getColumn(8);
+ TableColumn HeimEintrColumn = table.getColumnModel().getColumn(9);
+ TableColumn ImpfColumn = table.getColumnModel().getColumn(10);
+ TableColumn MAColumn = table.getColumnModel().getColumn(11);
+ TableColumn AendColumn = table.getColumnModel().getColumn(12);
+ TableColumn BefColumn = table.getColumnModel().getColumn(13);
+ TableColumn LastCColumn = table.getColumnModel().getColumn(14);
+ TableColumn freigColumn = table.getColumnModel().getColumn(15);
+ delB.setVisible(false);
+ table.removeEditor();
+ table.setCellSelectionEnabled(false);
+ table.removeColumn(freigColumn);
+ table.removeColumn(FotoColumn);
+ table.removeColumn(BefColumn);
+ table.removeColumn(LastCColumn);
+ table.removeColumn(AendColumn);
+ table.removeColumn(MAColumn);
+ table.removeColumn(ImpfColumn);
+ table.removeColumn(HeimEintrColumn);
+ }
+ }
+ /* (non-Javadoc)
+ * @see AbstractMyJDlg#buttonActionPerformed(java.awt.event.ActionEvent)
+ */
+ public void buttonActionPerformed(ActionEvent e) {
+ if (e.getActionCommand().equals("Abbrechen"))
+ {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ dispose();
+ }
+ else if(e.getActionCommand().equals("Löschen"))
+ {
+ int selRow = table.getSelectedRow();
+ table.clearSelection();
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ if (selRow >= 0)
+ tiere.removeTier( (Tier) tiere.elementAt( selRow ) );
+ }
+ else if(e.getActionCommand().equals("detail"))
+ {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ int selRow = table.getSelectedRow();
+ if (selRow >= 0) {
+ new TierDialog( selRow );
+ }
+ }
+ }
+
+ /* (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 Tier ausgewählt");
+ return;
+ }
+ String name = (String) table.getValueAt(table.getSelectedRow(), 1);
+ String tierart = (String) table.getValueAt(table.getSelectedRow(), 2);
+ this.jTextFieldAuswahl.setText( name + " (" + tierart + ")" );
+ */
+ }
+
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
+ */
+ public void windowClosing(WindowEvent e) {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ dispose();
+ }
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowClosed(java.awt.event.WindowEvent)
+ */
+ public void windowClosed(WindowEvent e) {
+ }
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowOpened(java.awt.event.WindowEvent)
+ */
+ public void windowOpened(WindowEvent e) {
+ }
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowIconified(java.awt.event.WindowEvent)
+ */
+ public void windowIconified(WindowEvent e) {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ }
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowDeiconified(java.awt.event.WindowEvent)
+ */
+ public void windowDeiconified(WindowEvent e) {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ }
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowActivated(java.awt.event.WindowEvent)
+ */
+ public void windowActivated(WindowEvent e) {
+ }
+ /* (non-Javadoc)
+ * @see java.awt.event.WindowListener#windowDeactivated(java.awt.event.WindowEvent)
+ */
+ public void windowDeactivated(WindowEvent e) {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ }
+ /**
+ * @param e
+ */
+ public void windowGainedFocus(WindowEvent e) {
+ }
+ /**
+ * @param e
+ */
+ public void windowLostFocus(WindowEvent e) {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ }
+ /**
+ * @param e
+ */
+ public void windowStateChanged(WindowEvent e) {
+ if (table.isEditing()) {
+ table.getCellEditor().stopCellEditing();
+ }
+ table.removeEditor();
+ table.clearSelection();
+ }
+}// end class AlleTiereDlg
diff --git a/Bachelor/ERGO/TierheimVerw/thv/Benutzungshandbuch.txt b/Bachelor/ERGO/TierheimVerw/thv/Benutzungshandbuch.txt
new file mode 100644
index 0000000..d435031
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/Benutzungshandbuch.txt
@@ -0,0 +1,113 @@
+Benutzungshandbuch
+
+Tierheimverwaltung
+
+
+0. Installation
+
+Benutzerverwaltungsdatei „User.dat“ und Tierverwaltungsdatei „Tierheim1.thv“ werden beim ersten Start der Anwendung angelegt.
+Zu Anfang existiert ein Standard Benutzer "Gast" mit den Rechten der Gast-Rolle. Weiterhin ist ein Benutzer adm mit dem Paßwort adm und Administratorrechten vorhanden. Es wird dringend empfohlen dieses Paßwort nach dem ersten Start aus Sicherheitsgründen zu ändern.
+
+1. Start
+
+Nach dem Start der Anwendung ist die Benutzerrolle standardmäßig auf Gast eingestellt.
+Im Vordergrund öffnet sich ein Dialogfenster "Tierverwaltung - Tier anzeigen", welches freigegebene Tiere anzeigt (Ein Tierarzt muss Tiere, bevor sie angezeigt werden, freigeben).
+Im Hintergrund befindet sich das Hauptfenster, über das man alle Funktionalitäten erreichen kann.
+
+2. Das Hauptfenster
+(Menüpunkte)
+
+2.1 Datei
+
+2.1.1 Neu (Für Gast nicht sichtbar): Legt eine neue Tierheimverwaltungsdatei im Speicher an
+
+2.1.2 Öffnen: Öffnet eine vorhandene Tierheimverwaltungsdatei
+
+2.1.3 Speichern (Für Gast nicht sichtbar): Speichert die aktuelle Tierheimverwaltungsdatei auf einem Datenträger wie z. B. einer Festplatte.
+
+2.1.4 Beenden: Beendet die Anwendung. Falls Daten noch nicht gespeichert wurden, wird der Benutzer gefragt, ob er dies vor dem Beenden des Programms noch durchführen möchte.
+
+
+2.2 Bearbeiten
+
+2.2.1 "Tier anlegen/verarbeiten" (Für Gast nicht sichtbar): Öffnet ein Tierverwaltungsfenster zum neu anlegen oder bearbeiten von Tieren.
+
+2.2.2 "Tier anzeigen": Öffnet ein Fenster, in dem alle freigegebenen Tiere dargestellt werden. Dort werden nur die Informationen zu den Tieren angezeigt, die für Interessenten sichtbar sein sollen. Es besteht die Möglichkeit nur bestimmte Tierarten anzeigen zu lassen.
+
+2.2.3 "Alle Tiere anzeigen" (Für Gast nicht sichtbar): Öffnet ein Fenster mit einer tabellarischen Übersicht über alle Tiere.
+
+2.2.4 "Nicht freigegebene Tiere anzeigen" (Für Gast nicht sichtbar): Öffnet ein Fenster mit allen nicht freigegebenen Tieren in Tabellenform
+
+2.2.5 "Freigegeben Tiere anzeigen": Öffnet ein Fenster mit allen freigegebenen Tieren in
+Tabellenform. Dort werden nur die Informationen zu den Tieren angezeigt, die für Interessenten sichtbar sein sollen.
+
+
+2.3 Anmeldung
+
+2.3.1 Anmelden: Öffnet ein Loginfenster zur Eingabe von Benutzernamen und Passwort.
+Je nach Rolle des neu angemeldeten Benutzers öffnet sich ein Fenster, dass der Benutzer vermutlich am ehesten verwenden wird:
+Gast: "Tierverwaltung - Tier anzeigen"
+Mitarbeiter: "Tierverwaltung - Neues Tier anlegen"
+Tierarzt: "Alle nicht freigegebenen Tiere anzeigen"
+Administrator: "Benutzer ändern/löschen"
+
+2.3.2 Abmelden: Meldet den aktuellen Benutzer ab, wechselt in den Gastmodus und öffnet ein Dialogfenster "Tier anzeigen". Falls Daten noch nicht gespeichert wurden, wird der Benutzer gefragt, ob er dies vor dem Abmelden noch durchführen möchte.
+
+2.4 Administration
+(Nur für Administrationen sichtbar)
+
+2.4.1 Benutzer anlegen: Öffnet ein Fenster in dem neue Benutzer angelegt werden können.
+
+2.4.2 Benutzer ändern/löschen: Öffnet ein Benutzerverwaltungsfenster in Tabellenform
+
+3. Tieranzeigedialog "Tierverwaltung - Tier anzeigen"
+
+In diesem Fenster werden freigegebene Tiere aufgeführt.
+Mit den Buttons vor und zurück kann durch die Tierdatenbank navigiert werden.
+
+Über die Schaltfläche Tierbestand kann man sich in Tabellenform alle freigegebenen Tiere anschauen.
+
+Durch die Checkboxen Hund, Katze, Sonstige kann man die Suche auf die jeweilige Tierart beschränken.
+
+4. Tierverwaltungsfenster "Tierverwaltung - Neues Tier anlegen"
+(Für Gast nicht sichtbar)
+
+Es können die Eigenschaften des einzelnen Tieres editiert werden.
+
+Über die Schaltfläche Bild kann ein Bild des Tieres eingefügt werden(.jpg .gif).
+
+"Tier hinzufügen" bewirkt das Speichern des aktuell editierten Tieres und die Eingabefelder werden für das Anlegen eines weiteren Tieres zurückgesetzt.
+
+Mit den Buttons vor und zurück wird durch die Tierdatenbank navigiert.
+Der Titel des Fensters ändert sich zu "Tierverwaltung - Tier bearbeiten" und die Beschriftung des Buttons "Tier hinzufügen" ändert sich in "Änderungen speichern". Mit diesem Button werden die vorgenommenen Änderungen am aktuell bearbeiteten Tier übernommen.
+
+Mittels der Schaltfläche "neu" werden die Daten in den einzelnen Eingabefeldern zurückgesetzt und für die Erfassung eines neuen Tieres vorbereitet.
+
+"Ärztlicher Befund" und "Tier freigeben" sind nur durch einen Tierarzt editierbar.
+
+"Tierbestand" öffnet ein Fenster mit allen Tieren der Datenbank.
+
+5. Übersichtsfenster "Alle Tiere"
+(Für Gast nicht sichtbar)
+
+Es werden alle Tiere, alle freigegebenen oder alle nicht freigegeben Tiere der Datenbank in Tabellenform dargestellt.
+
+Mit dem Button Details erreicht man eine detaillierte Darstellung des fokussierten Tieres.
+
+Mit einer entsprechenden Rolle des aktuell angemeldeten Benutzers können Zellen editiert und Zeilen gelöscht werden.
+
+6. "Benutzer anlegen"
+(Nur für Administratoren erreichbar)
+
+In diesem Fenster kann ein neuer Benutzer angelegt werden. (Name, Passwort, Rechte)
+
+7. "Benutzer ändern/löschen"
+(Nur für Administratoren erreichbar)
+
+Es werden alle angelegten Benutzer in Tabellenform angezeigt.
+
+Die Zellen sind editierbar, das Löschen eines Benutzers erfolgt durch selektieren der entsprechenden Zeile und betätigen des "Löschen" Buttons.
+
+Durch Klicken des Buttons "Speichern" werden die Änderungen gespeichert.
+
+Der Button "Abbrechen" schließt den Dialog und nicht gespeicherte Änderungen gehen verloren.
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ButtonListener.class b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener.class
new file mode 100644
index 0000000..937117c
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ButtonListener.java b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener.java
new file mode 100644
index 0000000..7baebb1
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener.java
@@ -0,0 +1,33 @@
+import java.awt.event.*; // für ActionListener
+
+/**
+ * Action Listener als separate Klasse.
+ * Das Dialogobjekt muss der Klasse bei der Erzeugung bekannt gemacht werden
+ * und die auszuführende action-Methode vereinbart werden.
+ * @author Andreas Spirka, Sven Eisenhauer
+ *
+ */
+public class ButtonListener implements ActionListener
+{
+ protected AbstractMyJFrame t; // Dialogklasse
+
+
+ /** Konstruktor
+ * @param d AbstractMyJFrame
+ */
+public ButtonListener( AbstractMyJFrame d ) {
+ t = d;
+ }
+
+ /**
+ * actionPerformed ist die einzige Methode von ActionListener.
+ * Methode ruft die buttonActionMethode der Dialog-Klasse auf
+ * @param e ActionEvent. Event wird von Komponente an
+ * den Listener gesendet.
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ // Aufruf der eigentlichen Aktion in AbstractMyJFrame
+ t.buttonActionPerformed( e );
+ }
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.class b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.class
new file mode 100644
index 0000000..4b2a5b6
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.java b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.java
new file mode 100644
index 0000000..ca1d3b7
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ButtonListener2.java
@@ -0,0 +1,33 @@
+import java.awt.event.*; // für ActionListener
+
+/**
+ * Action Listener als separate Klasse für Beispiel AbstractMyJDlg.
+ * Das Dialogobjekt muss der Klasse bei der Erzeugung bekannt gemacht werden
+ * und die auszuführende action-Methode vereinbart werden.
+ * @author Andreas Spirka, Sven Eisenhauer
+ *
+ */
+public class ButtonListener2 implements ActionListener
+{
+ protected AbstractMyJDlg Dia; // Dialogklasse
+
+ /**
+ * Konstruktor.
+ * @param d AbstractMyJDlg
+ */
+ public ButtonListener2( AbstractMyJDlg d ) {
+ Dia = d;
+ }
+
+ /**
+ * actionPerformed ist die einzige Methode von ActionListener.
+ * Methode ruft die buttonActionMethode der Dialog-Klasse auf
+ * @param e ActionEvent. Event wird von Komponente an
+ * den Listener gesendet.
+ */
+ public void actionPerformed( ActionEvent e )
+ {
+ // Aufruf der eigentlichen Aktion in AbstractMyJDlg
+ Dia.buttonActionPerformed( e );
+ }
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.class b/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.class
new file mode 100644
index 0000000..566faa7
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ChgUserDlg.class
Binary files differ
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
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ImageFilter.class b/Bachelor/ERGO/TierheimVerw/thv/ImageFilter.class
new file mode 100644
index 0000000..6c98346
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ImageFilter.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ImageFilter.java b/Bachelor/ERGO/TierheimVerw/thv/ImageFilter.java
new file mode 100644
index 0000000..bf8a597
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ImageFilter.java
@@ -0,0 +1,45 @@
+import java.io.File;
+import javax.swing.filechooser.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Filter Klasse zur Verwenung mit JFileChooser
+ * filtert nach .jpg .jpeg .gif
+ *
+ */
+public class ImageFilter extends FileFilter {
+
+ /* (non-Javadoc)
+ * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
+ */
+ public boolean accept(File f) {
+ if (f.isDirectory()) {
+ return true;
+ }
+ String fileName = f.getName();
+ String extension = null;
+ int pos = fileName.lastIndexOf('.');
+ if (pos > 0 && pos < fileName.length() - 1) {
+ extension = fileName.substring(pos+1).toLowerCase();
+ }
+ if (extension != null) {
+ if (extension.equals("gif") ||
+ extension.equals("jpeg") ||
+ extension.equals("jpg") ){
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ return false;
+ }
+
+ //The description of this filter
+ /* (non-Javadoc)
+ * @see javax.swing.filechooser.FileFilter#getDescription()
+ */
+ public String getDescription() {
+ return "JPG & GIF Dateien";
+ }
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/IntVerifier.class b/Bachelor/ERGO/TierheimVerw/thv/IntVerifier.class
new file mode 100644
index 0000000..7491455
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/IntVerifier.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/IntVerifier.java b/Bachelor/ERGO/TierheimVerw/thv/IntVerifier.java
new file mode 100644
index 0000000..84cd2cd
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/IntVerifier.java
@@ -0,0 +1,33 @@
+import javax.swing.InputVerifier;
+import javax.swing.JComponent;
+import javax.swing.JTextField;
+import java.awt.Toolkit;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * InputVerifier zur Überprüfung auf Integer-Werte
+ */
+public class IntVerifier extends InputVerifier {
+
+ /* (non-Javadoc)
+ * @see javax.swing.InputVerifier#verify(javax.swing.JComponent)
+ */
+ public boolean verify(JComponent arg0) {
+ boolean retVal=false;
+ JTextField tf = (JTextField) arg0;
+ String regexp = "[0-9]+";
+ retVal=tf.getText().matches(regexp);
+ if(!retVal)
+ {
+ Toolkit.getDefaultToolkit().beep();
+ }
+ return retVal;
+ }
+ /* (non-Javadoc)
+ * @see javax.swing.InputVerifier#shouldYieldFocus(javax.swing.JComponent)
+ */
+ public boolean shouldYieldFocus(JComponent input)
+ {
+ return verify(input);
+ }
+}
diff --git a/Bachelor/ERGO/TierheimVerw/thv/PwDialog.class b/Bachelor/ERGO/TierheimVerw/thv/PwDialog.class
new file mode 100644
index 0000000..eafa47a
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/PwDialog.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/PwDialog.java b/Bachelor/ERGO/TierheimVerw/thv/PwDialog.java
new file mode 100644
index 0000000..b5156dc
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/PwDialog.java
@@ -0,0 +1,115 @@
+import java.io.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Benutzerauthentifizierungsdialog
+ */
+public class PwDialog extends AbstractMyJDlg {
+ Container c;
+ JPanel pTop = new JPanel();
+ JPanel pCenter = new JPanel();
+ JPanel pBottom = new JPanel();
+ JLabel l = new JLabel("login");
+ JLabel pw = new JLabel ("password");
+ JTextField tf = new JTextField(12);
+ JPasswordField pf = new JPasswordField(12);
+ JButton okB = new JButton("OK");
+ JButton abbrB = new JButton("Abbrechen");
+ User authUser = new User("gast","gast","Gast",1024,User.ROLE_GUEST);;
+ String fName = new String ("user.dat");
+
+ /**
+ * Konstruktor
+ * @param owner
+ * @param title
+ * @param modal
+ */
+ public PwDialog(Frame owner, String title, boolean modal) {
+ setSize(240,110);
+ this.setResizable(false);
+ setModal(modal);
+ c = getContentPane();
+ getRootPane().setDefaultButton(okB); //mit Eingabetaste bestätigen
+ c.setLayout( new GridLayout(3, 2,6,3 ) );
+ ButtonListener2 bl = new ButtonListener2(this);
+ okB.addActionListener(bl);
+ okB.setActionCommand("submitPW");
+ abbrB.addActionListener(bl);
+ abbrB.setActionCommand("abbrechen");
+ c.add(l);
+ c.add(tf);
+ c.add(pw);
+ c.add(pf);
+ c.add(okB);
+ c.add(abbrB);
+ setTitle(title);
+ 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"))
+ {
+ this.dispose();
+ }
+ if (e.getActionCommand().equals("submitPW"))
+ {
+ String name= new String(tf.getText());
+ String pw= new String(pf.getPassword());
+ UserCon userCon;
+ File myFile = new File(fName);
+ if(!myFile.exists())
+ {
+ userCon = new UserCon();
+ userCon.addUser(new User("adm","adm","Administrator",0,3));
+ try {
+ FileOutputStream fos = new FileOutputStream(fName);
+ ObjectOutputStream oos = new ObjectOutputStream(fos);
+ oos.writeObject(userCon);
+ oos.close();
+ fos.close();
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ try {
+ FileInputStream fis = new FileInputStream(fName);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ userCon = (UserCon) ois.readObject();
+ ois.close();
+ fis.close();
+ for (int i=0;i<userCon.size();i++)
+ {
+ String actname=new String(((User)userCon.elementAt(i)).getUserName());
+ String actpw=new String (((User)userCon.elementAt(i)).getPassWd());
+ if(name.equals(actname))
+ {
+ if(pw.equals(actpw))
+ {
+ //JOptionPane.showMessageDialog(this,"Benutzer "+name+" authentifiziert","Erfolg",JOptionPane.INFORMATION_MESSAGE);
+ setVisible(false);
+ authUser=(User)userCon.elementAt(i);
+ }//end if2
+ else
+ {
+ JOptionPane.showMessageDialog(this,"Benutzer "+name+" nicht authentifiziert","Misserfolg",JOptionPane.INFORMATION_MESSAGE);
+ }//end else
+ }//end if1
+ }//end for
+ } //end try
+ catch (Exception exception) { exception.printStackTrace(); }
+ }//end if0 get.source
+ }//buttonActionPerformed
+
+ /**
+ * @return User
+ */
+ public User getUser(){return authUser;};
+}//end class PwDialog
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ThvFilter.class b/Bachelor/ERGO/TierheimVerw/thv/ThvFilter.class
new file mode 100644
index 0000000..3beaf49
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ThvFilter.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ThvFilter.java b/Bachelor/ERGO/TierheimVerw/thv/ThvFilter.java
new file mode 100644
index 0000000..9810478
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ThvFilter.java
@@ -0,0 +1,42 @@
+import java.io.File;
+import javax.swing.filechooser.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Filter Klasse für JFileChooser
+ * filter .thv
+ */
+public class ThvFilter extends FileFilter {
+
+ /* (non-Javadoc)
+ * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
+ */
+ public boolean accept(File f) {
+ if (f.isDirectory()) {
+ return true;
+ }
+ String fileName = f.getName();
+ String extension = null;
+ int pos = fileName.lastIndexOf('.');
+ if (pos > 0 && pos < fileName.length() - 1) {
+ extension = fileName.substring(pos+1).toLowerCase();
+ }
+ if (extension != null) {
+ if (extension.equals("thv") || extension.equals("THV"))
+ {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ return false;
+ }
+
+ //The description of this filter
+ /* (non-Javadoc)
+ * @see javax.swing.filechooser.FileFilter#getDescription()
+ */
+ public String getDescription() {
+ return "THV Dateien";
+ }
+} \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/Tier.class b/Bachelor/ERGO/TierheimVerw/thv/Tier.class
new file mode 100644
index 0000000..7d17758
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/Tier.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/Tier.java b/Bachelor/ERGO/TierheimVerw/thv/Tier.java
new file mode 100644
index 0000000..8bac132
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/Tier.java
@@ -0,0 +1 @@
+/** * <p>Überschrift: Tier</p> * * <p>Beschreibung: Klasse zum speichern eines Tieres</p> * * <p>Copyright: Copyright (c) 2005</p> * * <p>Organisation: </p> * * @author Andreas Spirka, Sven Eisenhauer * @version 1.0 */ import java.io.*; import java.util.*; import java.text.DateFormat; import java.text.ParseException; public class Tier extends Observable implements Serializable { private int tierId; private String tierName; private int tierArt; private String rasse; private String farbe; private int alter; private String foto; private String sonstiges; private Date heimeintritt; private String impfung; private User mitarbeiter; private Date aenderung; private String befund; private User lastChanger; private boolean freigabe; private int geschlecht; public static final int TIERART_HUND=0; public static final int TIERART_KATZE=1; public static final int TIERART_SONSTIGES=2; public static final String[] GESCHLECHT = {"m","w"}; public static final String[] TIERARTEN = {"Hund","Katze","Sonstiges"}; /** * */ public Tier() { tierId=0; tierName=""; tierArt=2; rasse= ""; farbe=""; alter=0; geschlecht=0; foto=""; sonstiges = ""; heimeintritt = new Date(); impfung = ""; mitarbeiter = null; aenderung = new Date(); befund=""; lastChanger=null; freigabe=false; notifyObservers(); } /** * @param tId * @param tN * @param iTArt * @param tR * @param tF * @param tA * @param tG * @param fo * @param tS * @param tH * @param tI * @param ma * @param bef * @param lC * @param f */ public Tier(int tId, String tN, int iTArt, String tR, String tF, int tA, int tG, String fo, String tS, //String tH, Date tH, String tI, User ma, //String tAE, String bef, User lC, boolean f) { tierId=tId; tierName=tN; tierArt=iTArt; rasse= tR; farbe=tF; alter=tA; geschlecht=tG; foto=fo; sonstiges = tS; heimeintritt = tH; impfung = tI; mitarbeiter = ma; //aenderung = tAE; aenderung = new Date(); befund=bef; lastChanger=lC; freigabe=f; notifyObservers(); } /** * @return String */ public String getTierName() { return tierName; } /** * @return int */ public int getTierID() { return tierId; } /** * @return String */ public String getRasse() { return rasse; } /** * @return String */ public String getFarbe() { return farbe; } /** * @return String */ public String getSonstiges() { return sonstiges; } /** * @return int */ public int getAlter() { return alter; } /** * @return String */ public String getHeimeintritt() { return DateFormat.getDateInstance(DateFormat.SHORT).format(heimeintritt); } /** * @return String */ public String getImpfung() { return impfung; } /** * @return User */ public User getMitarbeiter() { return mitarbeiter; } /** * @return String */ public String getAenderung() { return DateFormat.getDateInstance(DateFormat.SHORT).format(aenderung); } /** * @return String */ public String getBefund() { return befund; } /** * @return User */ public User getChanger() { return lastChanger; } /** * @return int */ public int getTierart() { return tierArt; } /** * @return String */ public String getFoto() { return foto; } /** * @return boolean */ public boolean getFreigabe() { return freigabe; } /** * @return int */ public int getGeschlecht() { return geschlecht; } /** * @param s String */ public void setTierName(String s) { tierName=s; notifyObservers(); } /** * @param i int */ public void setTierID(int i) { tierId=i; notifyObservers(); } /** * @param i int */ public void setTierArt(int i) { tierArt=i; notifyObservers(); } /** * @param s String */ public void setTierArt(String s) { for (int i=0;i<TIERARTEN.length;i++) { if (s.equals(TIERARTEN[i])) tierArt=i; } notifyObservers(); } /** * @param s String */ public void setRasse(String s) { rasse=s; notifyObservers(); } /** * @param s String */ public void setFarbe(String s) { farbe=s; notifyObservers(); } /** * @param s String */ public void setSonstiges(String s) { sonstiges=s; notifyObservers(); } /** * @param i int */ public void setAlter(int i) { alter=i; notifyObservers(); } /** * @param s String */ public void setAlter(String s) { String regexp = "[0-9]+"; if(s.matches(regexp)) alter=Integer.parseInt(s); else alter=getAlter(); notifyObservers(); } /** * @param i int */ public void setGeschlecht(int i) { geschlecht=i; notifyObservers(); } /** * @param s String */ public void setGeschlecht(String s) { for (int i=0;i<GESCHLECHT.length;i++) { if (s.equals(GESCHLECHT[i])) geschlecht=i; } notifyObservers(); } /** * @param s String */ public void setHeimeintritt(String s) { try { heimeintritt=DateFormat.getDateInstance(DateFormat.SHORT).parse(s); } catch (ParseException pe) {} notifyObservers(); } /** * @param s String */ public void setImpfung(String s) { impfung=s; notifyObservers(); } /** * @param u User */ public void setMitarbeiter(User u) { mitarbeiter=u; notifyObservers(); } /** * @param s String */ public void setMitarbeiter(String s) { try { String fName="user.dat"; FileInputStream fis = new FileInputStream(fName); ObjectInputStream ois = new ObjectInputStream(fis); UserCon users = (UserCon) ois.readObject(); ois.close(); fis.close(); for (int i=0;i<users.size();i++) { User u = (User) users.elementAt(i); if (u.getUserName().equals(s)) { mitarbeiter = u; break; } } } catch (Exception exception) { exception.printStackTrace(); } notifyObservers(); } /** * @param s String */ public void setAenderung(String s) { aenderung=new Date(); notifyObservers(); } /** * @param s String */ public void setBefund(String s) { befund=s; notifyObservers(); } /** * @param u User */ public void setChanger(User u) { lastChanger=u; notifyObservers(); } /** * @param s String */ public void setChanger(String s) { try { String fName="user.dat"; FileInputStream fis = new FileInputStream(fName); ObjectInputStream ois = new ObjectInputStream(fis); UserCon users = (UserCon) ois.readObject(); ois.close(); fis.close(); for (int i=0;i<users.size();i++) { User u = (User) users.elementAt(i); if (u.getUserName().equals(s)) { mitarbeiter = u; break; } } } catch (Exception exception) { exception.printStackTrace(); } notifyObservers(); } /** * @param s String */ public void setFoto(String s) {foto=s; notifyObservers();} /** * @param b boolean */ public void setFreigabe(boolean b) {freigabe=b; notifyObservers();} /** * @param s String */ public void setFreigabe(String s) { if ( s.equals("true") ) freigabe=true; else freigabe=false; notifyObservers(); } /** * @param t Tier */ public void setTier(Tier t) { tierId=t.getTierID(); tierName=t.getTierName(); tierArt=t.getTierart(); rasse= t.getRasse(); farbe=t.getFarbe(); alter=t.getAlter(); geschlecht=t.getGeschlecht(); foto=t.getFoto(); sonstiges = t.getSonstiges(); try { heimeintritt = DateFormat.getDateInstance(DateFormat.SHORT).parse(t.getHeimeintritt()); } catch (ParseException pe) {} impfung = t.getImpfung(); mitarbeiter = t.getMitarbeiter(); try { aenderung = DateFormat.getDateInstance(DateFormat.SHORT).parse(t.getAenderung()); } catch (ParseException pe) {} befund=t.getBefund(); lastChanger=t.getChanger(); freigabe=t.getFreigabe(); notifyObservers(); } } \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/TierCon.class b/Bachelor/ERGO/TierheimVerw/thv/TierCon.class
new file mode 100644
index 0000000..6972b1a
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/TierCon.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/TierCon.java b/Bachelor/ERGO/TierheimVerw/thv/TierCon.java
new file mode 100644
index 0000000..1a6ab1f
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/TierCon.java
@@ -0,0 +1 @@
+import java.io.*; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.table.AbstractTableModel; import java.text.DateFormat; import java.text.ParseException; import java.util.Vector; import java.util.Date; /** * <p>Überschrift: TierCon</p> * * <p>Beschreibung: Container Klasse der Tiere</p> * * <p>Copyright: Copyright (c) 2005</p> * * <p>Organisation: </p> * * @author Andreas Spirka, Sven Eisenhauer * @version 1.0 */ public class TierCon extends AbstractTableModel implements Serializable { private Vector<Tier> vec = new Vector<Tier>(); String[] colnam = { "ID","Name","Tierart","Rasse","Farbe","Alter","Geschlecht","Foto","Sonstiges","Heimeintritt","Impfung","zuständiger Mitarbeiter","Änderung","Befund","Last Changer","Freigabe"}; /** * Konstruktor */ public TierCon() { } /** * @return int naechste freie ID im Container * entspricht TierID */ public int getNextFreeID() { int retVal=1000; if (vec.size()!=0) { retVal=vec.lastElement().getTierID()+1; } return retVal; } /** * @param t Tier * zum Container hinzufuegen */ public void addTier(Tier t) { vec.addElement(t); fireTableDataChanged(); } /** * @param t Tier * aus Container loeschen */ public void removeTier(Tier t) { vec.removeElement(t); fireTableDataChanged(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnCount() */ public int getColumnCount() { return colnam.length; } /* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnName(int) */ public String getColumnName(int column) { return colnam[ column ]; } /* (non-Javadoc) * @see javax.swing.table.TableModel#getRowCount() */ public int getRowCount() { return vec.size(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#getValueAt(int, int) */ public Object getValueAt(int rowIndex, int columnIndex) { Tier t = (Tier) vec.elementAt( rowIndex ); switch (columnIndex) { case 0: return Integer.toString(t.getTierID()); //ID case 1: return t.getTierName(); //Name case 2: return Tier.TIERARTEN[t.getTierart()]; //Tierart case 3: return t.getRasse(); case 4: return t.getFarbe(); //Farbe case 5: return Integer.toString(t.getAlter()); //Alter case 6: return Tier.GESCHLECHT[t.getGeschlecht()]; // Geschlecht case 7: return t.getFoto(); //Foto case 8: return t.getSonstiges(); //sonstiges case 9: return t.getHeimeintritt(); //heimeintritt case 10: return t.getImpfung(); //impfung case 11: return t.getMitarbeiter().getUserName(); // zuständiger Mitarbeiter case 12: return t.getAenderung(); //änderung case 13: return t.getBefund(); //befund case 14: return t.getChanger().getUserName(); //last Canger case 15: return t.getFreigabe(); //Freiagbe default: } return null; } /** * @return int size of container */ public int size () { return vec.size(); } /** * @param i int * @return Object */ public Object elementAt(int i) { return (Object) vec.elementAt(i); } /** * @param t Tier * @param i int Position */ public void setElementAt(Tier t, int i) { t.setChanger(thv.getActUser()); vec.setElementAt(t,i); fireTableDataChanged(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnClass(int) */ public Class<?> getColumnClass(int c) { return getValueAt(0, c).getClass(); } /* (non-Javadoc) * @see javax.swing.table.TableModel#isCellEditable(int, int) */ public boolean isCellEditable(int rowIndex, int columnIndex) { if(thv.getActUser().getRole() == User.ROLE_GUEST) return false; else if (columnIndex == 14 || columnIndex==7 || columnIndex==12) return false; else if ( (columnIndex == 13 || columnIndex == 15) && thv.getActUser().getRole() != User.ROLE_VET) return false; else return true; } /* (non-Javadoc) * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) */ public void setValueAt(Object o,int rowIndex, int columnIndex) { Tier t = (Tier) vec.elementAt(rowIndex); switch (columnIndex) { case 1: // Name t.setTierName((String) o); break; case 2: // Tierart t.setTierArt ( (String) o ); break; case 3: // Rasse t.setRasse((String) o); break; case 4: // Farbe t.setFarbe((String) o); break; case 5: // Alter t.setAlter((String) o); break; case 6: // Geschlecht t.setGeschlecht((String) o); break; //case 7: // Fotopfad // u.setFoto((String) o); // break; case 8: // Sonstige Merkmale t.setSonstiges((String) o); break; case 9: // Datum Heimeintritt t.setHeimeintritt((String) o); break; case 10: // Impfung t.setImpfung((String) o); break; case 11: // zuständiger Mitarbeiter t.setMitarbeiter( (String) o); break; case 12: // Datum Letzte Ändererung t.setAenderung((String) o); break; case 13: // Ärztlicher Befund t.setBefund((String) o); break; //case 14: // Mitarbeiter Letzte Änderung // t.setChanger(t.getChanger()); // break; case 15: // Freigabe t.setFreigabe( (Boolean) o ); break; default: } vec.setElementAt(t,rowIndex); fireTableCellUpdated(rowIndex,columnIndex); thv.setDataChanged(true); } /** * clear container */ public void clear() { vec.clear(); } } \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/TierDialog.class b/Bachelor/ERGO/TierheimVerw/thv/TierDialog.class
new file mode 100644
index 0000000..978e901
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/TierDialog.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/TierDialog.java b/Bachelor/ERGO/TierheimVerw/thv/TierDialog.java
new file mode 100644
index 0000000..60f3ca3
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/TierDialog.java
@@ -0,0 +1 @@
+import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * <p>Überschrift: TierDialog</p> * * <p>Beschreibung: Anzeige Dialog für Interessenten</p> * * <p>Copyright: Copyright (c) 2005</p> * * <p>Organisation: </p> * * @author Andreas Spirka, Sven Eisenhauer * @version 1.0 */ public class TierDialog extends AbstractMyJDlg implements Observer { Container c; int pos = 0; TierCon tc; TierCon tempCon = new TierCon(); Tier actTier = new Tier(); transient ViewComponent pic = new ViewComponent(); JPanel panelEigenschaften = new JPanel(); // Pane für Eigenschaften: RegNr, Name ... JPanel panelButton = new JPanel(); // Panel für Buttons vor und zurück //GRID JPanel grid = new JPanel(); JPanel leer = new JPanel(); //***Components*** JLabel regNr = new JLabel("RegNr."); JLabel name = new JLabel("Name"); JLabel tierart = new JLabel("Tierart"); JLabel rasse = new JLabel("Rasse"); JLabel alter = new JLabel("Alter"); JLabel geschlecht = new JLabel("Geschlecht"); JLabel farbe = new JLabel("Farbe"); JLabel sonstiges = new JLabel("Sonstiges"); Vector<JLabel> tierArtLabels = new Vector<JLabel>(); Vector<JCheckBox> tierArtCheckBoxes = new Vector<JCheckBox>(); JTextField regNrText = new JTextField(12); JTextField nameText = new JTextField(12); JTextField tierartText = new JTextField(12); JTextField tierGeschlecht = new JTextField(12); JTextField rasseText = new JTextField(12); JTextField alterText = new JTextField(12); JTextField farbeText = new JTextField(12); JTextArea sonstigesText = new JTextArea(2,15); JButton zurueck = new JButton("zurück"); JButton vor = new JButton("vor"); JButton bestand = new JButton("Tierbestand"); /** * @param cont * @param gbl * @param c * @param x * @param y * @param width * @param height * @param weightx * @param weighty */ static void addComponent( Container cont, GridBagLayout gbl, Component c, int x, int y, int width, int height, double weightx, double weighty ){ GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.BOTH; gbc.gridx = x; gbc.gridy = y; gbc.gridwidth = width; gbc.gridheight = height; gbc.weightx = weightx; gbc.weighty = weighty; gbl.setConstraints( c, gbc ); cont.add( c ); } /** * Aktualisiert den verwendeten TierContainer */ public void updateTc() { tc=thv.getTierCon(); TierCon tempCon2 = new TierCon(); if(thv.getActUser().getRole() == User.ROLE_GUEST) { for (int i=0;i<tc.size();i++) if( ( (Tier) tc.elementAt(i) ).getFreigabe() ) tempCon.addTier( (Tier) tc.elementAt(i) ); tc=tempCon; } for (int i=0;i<Tier.TIERARTEN.length;i++) { if(tierArtCheckBoxes.elementAt(i).isSelected()) { for(int n=0;n<tc.size();n++) { if( ( ((Tier)tc.elementAt(n)).getTierart() ) == i ) { tempCon2.addTier( (Tier) tc.elementAt(n) ); } } } } tc=tempCon2; if( (tc.size() > 0) && (pos < tc.size()) ) { actTier = (Tier) tc.elementAt(pos); } zeigeTier(); } /** * Konstruktor. * @param p Index */ public TierDialog(int p) { pos = p; ButtonListener2 bl = new ButtonListener2(this); setSize(450,350); vor.setActionCommand("vor"); vor.addActionListener(bl); vor.addActionListener(bl); vor.setMnemonic(KeyEvent.VK_V); zurueck.setActionCommand("zurueck"); zurueck.addActionListener(bl); zurueck.setMnemonic(KeyEvent.VK_Z); bestand.addActionListener(bl); bestand.setActionCommand("bestand"); c = getContentPane(); GridBagLayout gbl = new GridBagLayout(); c.setLayout(gbl); //GRID grid.setLayout(gbl); //***PANELS*** panelEigenschaften.setBorder(BorderFactory.createEtchedBorder()); panelEigenschaften.setLayout( new GridLayout(0, 2,1,1 ) ); panelButton.setBorder(BorderFactory.createEtchedBorder()); panelButton.setLayout( new FlowLayout()); //***GridBag***// grid.add(panelEigenschaften); // w=Spalten h=Zeilen x=POsitionSpalte y=PositionZeile // x y w h wx wy addComponent( c, gbl, panelEigenschaften , 0, 0, 1, 2, 0, 0 ); addComponent( c, gbl, pic , 1, 0, 1, 2, 1.0, 1.0 ); addComponent( c, gbl, panelButton , 1, 2, 1, 1, 0 , 0 ); addComponent( c, gbl, bestand , 0, 2, 1, 1, 0 , 0 ); //***PanelButton***// panelButton.add(zurueck); panelButton.add(vor); bestand.setAlignmentX( Component.CENTER_ALIGNMENT); //***PANEL LINKS*** panelEigenschaften.add(regNr); panelEigenschaften.add(regNrText); panelEigenschaften.add(name); panelEigenschaften.add(nameText); panelEigenschaften.add(tierart); panelEigenschaften.add(tierartText); panelEigenschaften.add(rasse); panelEigenschaften.add(rasseText); panelEigenschaften.add(alter); panelEigenschaften.add(alterText); panelEigenschaften.add(geschlecht); panelEigenschaften.add(tierGeschlecht); panelEigenschaften.add(farbe); panelEigenschaften.add(farbeText); panelEigenschaften.add(sonstiges); panelEigenschaften.add(sonstigesText); // JLabels und JCheckBoxes für Tierarten generieren for (int i=0;i<Tier.TIERARTEN.length;i++) { tierArtLabels.add(new JLabel(Tier.TIERARTEN[i])); tierArtCheckBoxes.add(new JCheckBox()); tierArtCheckBoxes.elementAt(i).addActionListener(bl); tierArtCheckBoxes.elementAt(i).setActionCommand(Tier.TIERARTEN[i]); tierArtCheckBoxes.elementAt(i).setSelected(true); panelEigenschaften.add(tierArtLabels.elementAt(i)); panelEigenschaften.add(tierArtCheckBoxes.elementAt(i)); } panelEigenschaften.setAlignmentX( Component.TOP_ALIGNMENT); // sonst Exception falls kein Bild vorhanden pic.setVisible(false); panelButton.add(zurueck); panelButton.add(vor); bestand.setAlignmentX( Component.CENTER_ALIGNMENT); //*** SET_ENABLE=FALSE*** regNrText.setEnabled(false); nameText.setEnabled(false); tierartText.setEnabled(false); rasseText.setEnabled(false); tierGeschlecht.setEnabled(false); alterText.setEnabled(false); farbeText.setEnabled(false); sonstigesText.setEnabled(false); setTitle("Tierverwaltung - Tier anzeigen"); updateTc(); setVisible(true); actTier.addObserver(this); zeigeTier(); } /** * Daten des aktuellen Tieres anzeigen */ private void zeigeTier() { if(tc.size() > 0) { vor.setEnabled(true); zurueck.setEnabled(true); } else { vor.setEnabled(false); zurueck.setEnabled(false); } regNrText.setText(Integer.toString(actTier.getTierID())); nameText.setText(actTier.getTierName()); tierartText.setText(Tier.TIERARTEN[actTier.getTierart()]); rasseText.setText(actTier.getRasse()); alterText.setText(Integer.toString(actTier.getAlter())); tierGeschlecht.setText(Tier.GESCHLECHT[actTier.getGeschlecht()]); farbeText.setText(actTier.getFarbe()); sonstigesText.setText(actTier.getSonstiges()); File file = new File(actTier.getFoto()); if(file.exists() ) { pic.setImage(file); pic.setVisible(true); } else { pic.setVisible(false); } Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = getSize(); setLocation((screenSize.width/2)-(frameSize.width/2),(screenSize.height/2)-(frameSize.height/2)); } /* (non-Javadoc) * @see AbstractMyJDlg#buttonActionPerformed(java.awt.event.ActionEvent) */ public void buttonActionPerformed( ActionEvent e ) { String c = e.getActionCommand(); if (c.equals("bestand")) { new AlleFTiereDlg(); } else if (c.equals("vor")) { if (pos < tc.size()-1) pos++; else pos = 0; actTier=(Tier) tc.elementAt(pos); zeigeTier(); } else if (c.equals("zurueck")) { if (pos > 0) pos--; else pos = tc.size()-1; actTier=(Tier) tc.elementAt(pos); zeigeTier(); } for (int i=0;i<Tier.TIERARTEN.length;i++) { if(c.equals(Tier.TIERARTEN[i])) { updateTc(); } } } /* (non-Javadoc) * @see java.util.Observer#update(java.util.Observable, java.lang.Object) */ public void update(Observable o, Object arg) { zeigeTier(); } }//end class TierDialog \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.class b/Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.class
new file mode 100644
index 0000000..85cb270
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java b/Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java
new file mode 100644
index 0000000..81da47a
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java
@@ -0,0 +1 @@
+import java.awt.*; import java.awt.event.*; import java.io.File; import java.io.FileInputStream; import java.io.ObjectInputStream; import java.util.*; import javax.swing.*; import java.text.DateFormat; /** * <p>Überschrift: Tierverwaltungdialog</p> * * <p>Beschreibung: Dialog um neue Tiere anzulegen oder bestehende zu ändern</p> * * <p>Copyright: Copyright (c) 2005</p> * * <p>Organisation: </p> * * @author Andreas Spirka, Sven Eisenhauer * @version 1.0 */ public class TierVerDialog extends AbstractMyJDlg implements Observer { Container c; User actUser; TierCon tc; int pos=0; String bildpfad=""; Tier actTier; String[] UserNames; UserCon users; transient ViewComponent pic = new ViewComponent(); transient ImageFilter filter = new ImageFilter(); transient JFileChooser chooser = new JFileChooser(); // *** Container *** JPanel panelEigenschaften = new JPanel(); // Panel für Eigenschaften: RegNr, Name ... JPanel panelButton = new JPanel(); // Panel für Buttons vor und zurück JPanel panelArzt = new JPanel(); // Panel für die rechte Seite JPanel panelMenue = new JPanel(); JPanel panelFrei = new JPanel(); JPanel panelButtonBild = new JPanel(); JPanel panelUnten= new JPanel(); //GRIDBAG JPanel grid = new JPanel(); //***Components*** JLabel regNr = new JLabel("RegNr."); JLabel name = new JLabel("Name"); JLabel tierart = new JLabel("Tierart"); JLabel rasse = new JLabel("Rasse"); JLabel alter = new JLabel("Alter"); JLabel geschlecht = new JLabel("Geschlecht"); JLabel farbe = new JLabel("Farbe"); JLabel sonstiges = new JLabel("Sonstiges"); JLabel heimeintritt = new JLabel("Heimeintritt"); JLabel impfung = new JLabel("Impfung"); JLabel idMitarbeiter = new JLabel("ID Mitarbeiter"); JLabel aenderung = new JLabel("letzte Änderung"); JLabel arzt = new JLabel("Ärztlicher Befund"); JLabel freiLabel = new JLabel("Tier freigeben"); JTextField regNrText = new JTextField(12); JTextField nameText = new JTextField(12); JLabel statusLabel = new JLabel(); JComboBox tierartText = new JComboBox(Tier.TIERARTEN); JComboBox tierGeschlecht = new JComboBox(Tier.GESCHLECHT); JTextField rasseText = new JTextField(12); JTextField alterText = new JTextField(12); JTextField farbeText = new JTextField(12); JTextArea sonstigesText = new JTextArea(5,12); JTextField heimeintrittText = new JTextField(12); JTextField impfungText = new JTextField(12); JComboBox idMitarbeiterText =new JComboBox(); JTextField aenderungText = new JTextField(12); JTextArea befund = new JTextArea(5,15); JCheckBox box = new JCheckBox(); JButton zurueck = new JButton("zurück"); JButton vor = new JButton("vor"); JButton bestand = new JButton("Tierbestand"); JButton abbrechenJB = new JButton("Abbrechen"); JButton speichernJB = new JButton("Tier hinzufügen"); JButton bildJB = new JButton("Bild"); JButton bildDelJB = new JButton("Bild löschen"); JButton neuJB = new JButton("neu"); //für GridBag /** * @param cont * @param gbl * @param c * @param x * @param y * @param width * @param height * @param weightx * @param weighty */ static void addComponent( Container cont, GridBagLayout gbl, Component c, int x, int y, int width, int height, double weightx, double weighty ){ GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.BOTH; gbc.gridx = x; gbc.gridy = y; gbc.gridwidth = width; gbc.gridheight = height; gbc.weightx = weightx; gbc.weighty = weighty; gbl.setConstraints( c, gbc ); cont.add( c ); } /** * Konstruktor */ public TierVerDialog() { ButtonListener2 bl = new ButtonListener2(this); actUser=thv.getActUser(); tc=thv.getTierCon(); String fName = "user.dat"; c = getContentPane(); GridBagLayout gbl = new GridBagLayout(); c.setLayout(gbl); setSize(new Dimension(700,500)); panelEigenschaften.setBorder(BorderFactory.createEtchedBorder()); panelEigenschaften.setLayout( new GridLayout(12, 0,1,1 ) ); panelButton.setBorder(BorderFactory.createEtchedBorder()); panelButton.setLayout( new FlowLayout()); panelArzt.setLayout(new GridLayout(0,1,1,1)); panelArzt.setBorder(BorderFactory.createEtchedBorder()); panelMenue.setLayout( new FlowLayout()); panelButtonBild.setLayout( new FlowLayout()); //***GridBag***// // w=Spalten h=Zeilen x=POsitionSpalte y=PositionZeile // x y w h wx wy addComponent( c, gbl, panelEigenschaften , 0, 0, 1, 2, 1.0, 1.0 ); addComponent( c, gbl, panelButtonBild , 0, 2, 1, 1, 0, 0 ); addComponent( c, gbl, panelArzt , 0, 3, 1, 3, 0, 0 ); addComponent( c, gbl, pic , 3, 0, 1, 2, 1.0, 0 ); addComponent( c, gbl, panelButton , 3, 2, 1, 1, 0 , 0 ); addComponent( c, gbl, panelMenue , 3, 3, 1, 1, 0, 1.0); addComponent( c, gbl, bestand , 3, 4, 1, 1, 0 , 0 ); pic.setMinimumSize(new Dimension(200,200)); pic.setMaximumSize(new Dimension(200,200)); //***PanelButton***// panelButton.add(zurueck); panelButton.add(vor); vor.setActionCommand("vor"); vor.addActionListener(bl); vor.setMnemonic(KeyEvent.VK_V); zurueck.setActionCommand("zurueck"); zurueck.addActionListener(bl); zurueck.setMnemonic(KeyEvent.VK_Z); //***PanelButtonBild***// panelButtonBild.add(bildJB); bildJB.setActionCommand("bild"); bildJB.addActionListener(bl); bildJB.setMnemonic(KeyEvent.VK_B); panelButtonBild.add(bildDelJB); bildDelJB.setActionCommand("bilddel"); bildDelJB.addActionListener(bl); //***PanelMenue***// panelMenue.add(speichernJB); speichernJB.setActionCommand("speichern"); speichernJB.addActionListener(bl); speichernJB.setMnemonic(KeyEvent.VK_H); panelMenue.add(neuJB); neuJB.setActionCommand("neu"); neuJB.setMnemonic(KeyEvent.VK_N); neuJB.addActionListener(bl); panelMenue.add(abbrechenJB); abbrechenJB.setActionCommand("abbrechen"); abbrechenJB.addActionListener(bl); //**PANEL Arzt***// panelArzt.add(arzt); arzt.setAlignmentX( Component.CENTER_ALIGNMENT); panelArzt.add(befund); panelArzt.add(panelFrei); panelFrei.add(freiLabel); panelFrei.add(box); //***PANEL EIgenschaften*** panelEigenschaften.add(regNr); panelEigenschaften.add(regNrText); regNrText.setEnabled(false); name.setLabelFor(nameText); name.setDisplayedMnemonic(KeyEvent.VK_M); panelEigenschaften.add(name); panelEigenschaften.add(nameText); panelEigenschaften.add(tierart); tierart.setLabelFor(tierartText); tierart.setDisplayedMnemonic(KeyEvent.VK_T); panelEigenschaften.add(tierartText); rasse.setDisplayedMnemonic(KeyEvent.VK_R); rasse.setLabelFor(rasseText); panelEigenschaften.add(rasse); panelEigenschaften.add(rasseText); panelEigenschaften.add(alter); alter.setDisplayedMnemonic(KeyEvent.VK_L); alter.setLabelFor(alterText); alterText.setInputVerifier(new IntVerifier()); panelEigenschaften.add(alterText); panelEigenschaften.add(geschlecht); geschlecht.setDisplayedMnemonic(KeyEvent.VK_G); geschlecht.setLabelFor(tierGeschlecht); panelEigenschaften.add(tierGeschlecht); farbe.setDisplayedMnemonic(KeyEvent.VK_F); farbe.setLabelFor(farbeText); panelEigenschaften.add(farbe); panelEigenschaften.add(farbeText); panelEigenschaften.add(sonstiges); sonstiges.setDisplayedMnemonic(KeyEvent.VK_S); sonstiges.setLabelFor(sonstigesText); panelEigenschaften.add(sonstigesText); panelEigenschaften.add(heimeintritt); heimeintritt.setDisplayedMnemonic(KeyEvent.VK_E); heimeintritt.setLabelFor(heimeintrittText); //heimeintrittText.setText(DateFormat.getDateInstance().format(new Date())); panelEigenschaften.add(heimeintrittText); impfung.setDisplayedMnemonic(KeyEvent.VK_I); impfung.setLabelFor(impfungText); panelEigenschaften.add(impfung); panelEigenschaften.add(impfungText); idMitarbeiter.setDisplayedMnemonic(KeyEvent.VK_M); idMitarbeiter.setLabelFor(idMitarbeiterText); panelEigenschaften.add(idMitarbeiter); try { FileInputStream fis = new FileInputStream(fName); ObjectInputStream ois = new ObjectInputStream(fis); users = (UserCon) ois.readObject(); ois.close(); fis.close(); UserNames=new String[users.size()]; for (int i=0;i<users.size();i++) { User u2 = (User) users.elementAt(i); UserNames[i] = u2.getUserName(); if (u2.getRole() != User.ROLE_GUEST) idMitarbeiterText.addItem((Object) u2.getUserName()); } //idMitarbeiterText = new JComboBox(UserNames); panelEigenschaften.add(idMitarbeiterText); } catch (Exception exception) { exception.printStackTrace(); } panelEigenschaften.add(aenderung); panelEigenschaften.add(aenderungText); aenderungText.setEnabled(false); bestand.setAlignmentX( Component.CENTER_ALIGNMENT); pic.setVisible(false); bestand.setActionCommand("bestand"); bestand.addActionListener(bl); bestand.setAlignmentX( Component.CENTER_ALIGNMENT); befund.setSize(new Dimension(150,150)); arzt.setAlignmentX( Component.CENTER_ALIGNMENT); if(actUser.getRole() != User.ROLE_VET){ befund.setEnabled(false); box.setEnabled(false); } setTitle("Tierverwaltung - Neues Tier anlegen"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = getSize(); setLocation((screenSize.width/2)-(frameSize.width/2),(screenSize.height/2)-(frameSize.height/2)); setVisible(true); actTier=new Tier( tc.getNextFreeID(), "", //Name 0, //Tierart "", //Rasse "", //Farbe 0, //Alter 0, //Geschlecht "", //Foto "", //sonstiges new Date(), //heimeintritt "", //impfung actUser, // zuständiger Mitarbeiter //"", //änderung "", //befund actUser, //last Canger false //Freigabe ); actTier.addObserver(this); zeigeTier(); try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } /** * zeigt akutelles Tier an */ private void zeigeTier() { if(tc.size() > 0) { vor.setEnabled(true); zurueck.setEnabled(true); } else { vor.setEnabled(false); zurueck.setEnabled(false); } String foto = actTier.getFoto(); File file = new File(foto); if(file.exists() ) { pic.setImage(file); pic.setVisible(true); bildDelJB.setEnabled(true); } else { pic.setVisible(false); bildDelJB.setEnabled(false); } regNrText.setText(Integer.toString(actTier.getTierID())); nameText.setText(actTier.getTierName()); tierartText.setSelectedIndex(actTier.getTierart()); rasseText.setText(actTier.getRasse()); alterText.setText(Integer.toString(actTier.getAlter())); farbeText.setText(actTier.getFarbe()); sonstigesText.setText(actTier.getSonstiges()); heimeintrittText.setText(actTier.getHeimeintritt()); impfungText.setText(actTier.getImpfung()); befund.setText(actTier.getBefund()); tierGeschlecht.setSelectedIndex(actTier.getGeschlecht()); box.setSelected(actTier.getFreigabe()); aenderungText.setText(actTier.getAenderung()); int i = 0; for (i = 0; i < UserNames.length; i++) { if (UserNames[i].equals(actTier.getMitarbeiter().getUserName())) break; } idMitarbeiterText.setSelectedIndex(i); } /** * Speichert das aktuelle Tier im Container * @param func Funktion: 0 fügt Tier hinzu, 1 ändert Tier an Position pos im Container */ public void speichern(int func) { actTier.setTierName(nameText.getText()); actTier.setTierArt(tierartText.getSelectedIndex()); actTier.setRasse(rasseText.getText()); actTier.setFarbe(farbeText.getText()); actTier.setAlter(Integer.parseInt(alterText.getText())); actTier.setGeschlecht(tierGeschlecht.getSelectedIndex()); actTier.setSonstiges(sonstigesText.getText()); actTier.setHeimeintritt(heimeintrittText.getText()); actTier.setAenderung(aenderungText.getText()); int j=0; boolean found=false; String maName = (String) idMitarbeiterText.getSelectedItem(); User u2=(User) users.elementAt(j); while ( !found && j < users.size() ) { if (maName.equals(u2.getUserName())) { found=true; } else { j++; u2=(User) users.elementAt(j); } } if(!found) u2 = actUser; actTier.setMitarbeiter(u2); actTier.setImpfung(impfungText.getText()); actTier.setBefund(befund.getText()); actTier.setChanger(actUser); actTier.setFreigabe(box.isSelected()); switch (func) { case 0: tc.addTier(actTier); break; case 1: tc.setElementAt(actTier,pos); } thv.setDataChanged(true); } /** * generiert ein neues Tierobjekt */ public void newTier() { actTier=new Tier( tc.getNextFreeID(), "", //Name 0, //Tierart "", //Rasse "", //Farbe 0, //Alter 0, //Geschlecht "", //Foto "", //sonstiges new Date(), //heimeintritt "", //impfung actUser, // zuständiger Mitarbeiter //"", //änderung "", //befund actUser, //last Canger false //Freigabe ); actTier.addObserver(this); } /* (non-Javadoc) * @see AbstractMyJDlg#buttonActionPerformed(java.awt.event.ActionEvent) */ public void buttonActionPerformed( ActionEvent e ) { String c = e.getActionCommand(); if(c.equals("speichern")) { speichern(0); statusLabel.setText("Tier hinzugefügt"); newTier(); zeigeTier(); } else if (c.equals("speichern2")) { statusLabel.setText("Änderungen übernommen"); speichern(1); zeigeTier(); } else if (c.equals("abbrechen")) { dispose(); } else if (c.equals("bestand")) { new AlleTiereDlg(); } else if (c.equals("vor")) { if (pos < tc.size()-1) pos++; else pos = 0; actTier = (Tier) tc.elementAt(pos); statusLabel.setText(""); speichernJB.setText("Änderungen speichern"); speichernJB.setActionCommand("speichern2"); setTitle("Tierverwaltung - Tier bearbeiten"); zeigeTier(); } else if (c.equals("zurueck")) { if (pos > 0) pos--; else pos = tc.size()-1; actTier = (Tier) tc.elementAt(pos); statusLabel.setText(""); speichernJB.setText("Änderungen speichern"); speichernJB.setActionCommand("speichern2"); setTitle("Tierverwaltung - Tier bearbeiten"); zeigeTier(); } else if (c.equals("bild")) { JOptionPane pane = new JOptionPane(); JDialog dod = pane.createDialog(this,"Datei öffnen..."); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(dod); if(returnVal == JFileChooser.APPROVE_OPTION) { bildpfad = chooser.getSelectedFile().getPath(); actTier.setFoto(bildpfad); } dod.dispose(); zeigeTier(); } else if (c.equals("bilddel")) { actTier.setFoto(""); zeigeTier(); } else if (c.equals("neu")) { newTier(); speichernJB.setText("Tier hinzufügen"); speichernJB.setActionCommand("speichern"); zeigeTier(); setTitle("Tierverwaltung - Neues Tier anlegen"); } } /* (non-Javadoc) * @see java.util.Observer#update(java.util.Observable, java.lang.Object) */ public void update(Observable o, Object arg) { zeigeTier(); } /** * @throws Exception */ private void jbInit() throws Exception { } }//end class TierVerDialog \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/User.class b/Bachelor/ERGO/TierheimVerw/thv/User.class
new file mode 100644
index 0000000..615a8af
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/User.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/User.java b/Bachelor/ERGO/TierheimVerw/thv/User.java
new file mode 100644
index 0000000..211817a
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/User.java
@@ -0,0 +1,117 @@
+import java.io.*;
+import java.util.*;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ * Klasse zum speichern eines Benutzers
+ *
+ */
+public class User extends Observable implements Serializable {
+ private String userName;
+ private String passWd;
+ private String fullName;
+ private int userId;
+ private int role;
+
+ public static final int ROLE_GUEST=0;
+ public static final int ROLE_WORKER=1;
+ public static final int ROLE_VET=2;
+ public static final int ROLE_ADMIN=3;
+
+ public static final String[] sRole = { "Gast", "Mitarbeiter", "Tierarzt","Administrator" };
+
+ /**Konstruktor.
+ * @param u String
+ * @param p String
+ * @param f String
+ * @param i int
+ * @param r int
+ */
+ public User(String u, String p, String f,int i, int r)
+ {
+ userName=u;
+ passWd=p;
+ fullName=f;
+ userId=i;
+ role=r;
+ }
+ /**
+ * Konstruktor.
+ */
+ public User() {
+ }
+
+ /**
+ * @return String
+ */
+ public String getUserName() { return userName; }
+ /**
+ * @return String
+ */
+ public String getPassWd() { return passWd; }
+ /**
+ * @return String
+ */
+ public String getFullName() { return fullName; }
+ /**
+ * @return int
+ */
+ public int getUserId() { return userId; }
+ /**
+ * @return String
+ */
+ public String getUserIdAsString() { return Integer.toString(userId); }
+ /**
+ * @return int
+ */
+ public int getRole() { return role; }
+ /**
+ * @return String
+ */
+ public String getRoleAsString() { return sRole[role]; }
+ /**
+ * @param u User
+ */
+ public void setUser(User u) {
+ userName=u.getUserName();
+ passWd=u.getPassWd();
+ fullName=u.getFullName();
+ userId=u.getUserId();
+ role=u.getRole();
+ setChanged();
+ notifyObservers();
+ }
+ /**
+ * @param s String
+ */
+ public void setUserName(String s) {
+ userName=s;
+ }
+ /**
+ * @param s String
+ */
+ public void setPassWd(String s) {
+ passWd=s;
+ }
+ /**
+ * @param s String
+ */
+ public void setFullName(String s) {
+ fullName=s;
+ }
+ /**
+ * @param s String
+ */
+ public void setUserId(String s) {
+ userId=Integer.parseInt(s);
+ }
+ /**
+ * @param s String
+ */
+ public void setRole(String s) {
+ for (int i=0;i<sRole.length;i++) {
+ if (s.equals(sRole[i]))
+ role=i;
+ }
+ }
+} // end Class User
diff --git a/Bachelor/ERGO/TierheimVerw/thv/UserCon.class b/Bachelor/ERGO/TierheimVerw/thv/UserCon.class
new file mode 100644
index 0000000..b963a41
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/UserCon.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/UserCon.java b/Bachelor/ERGO/TierheimVerw/thv/UserCon.java
new file mode 100644
index 0000000..702ad02
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/UserCon.java
@@ -0,0 +1,151 @@
+import java.util.*;
+import java.io.*;
+import javax.swing.table.AbstractTableModel;
+
+/**
+ * <p>Überschrift: UserCon</p>
+ *
+ * <p>Beschreibung: Container Klasse zum speichern von Benutzern</p>
+ *
+ * <p>Copyright: Copyright (c) 2005</p>
+ *
+ * <p>Organisation: </p>
+ *
+ * @author Andreas Spirka, Sven Eisenhauer
+ * @version 1.0
+ */
+public class UserCon extends AbstractTableModel implements Serializable {
+
+ Vector<User> vec = new Vector<User>();
+
+ String[] colnam = { "Login","Passwort","Vollständiger Name","UID","Rolle"};
+ /**
+ * Konstruktor.
+ */
+ public UserCon() {}
+ /**
+ * @param u User
+ * Fügt u dem Container hinzu
+ */
+ public void addUser( User u )
+ {
+ vec.add( u );
+ // Model wurde verändert
+ fireTableDataChanged();
+ }
+ /**
+ * @param u User
+ * Löscht u aus dem Container
+ */
+ public void removeUser( User u )
+ {
+ vec.remove( u );
+ // Model wurde verändert
+ fireTableDataChanged();
+ }
+ /**
+ * Returns the number of columns in the model.
+ *
+ * @return the number of columns in the model
+ * @todo Diese javax.swing.table.TableModel-Methode implementieren
+ */
+ public int getColumnCount() {
+ return colnam.length;
+ }
+ /**
+ * Column name.
+ * Methode overrides that from AbstactTableModel
+ * @param column int
+ * @return String
+ */
+ public String getColumnName(int column) {
+ return colnam[ column ];
+ }
+ /**
+ * Returns the number of rows in the model.
+ *
+ * @return the number of rows in the model
+ * @todo Diese javax.swing.table.TableModel-Methode implementieren
+ */
+ public int getRowCount() {
+ return vec.size();
+ }
+ /**
+ * Returns the value for the cell at <code>columnIndex</code> and
+ * <code>rowIndex</code>.
+ *
+ * @param rowIndex the row whose value is to be queried
+ * @param columnIndex the column whose value is to be queried
+ * @return the value Object at the specified cell
+ * @todo Diese javax.swing.table.TableModel-Methode implementieren
+ */
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ User u = (User) vec.elementAt( rowIndex );
+ switch (columnIndex) {
+ case 0: // Login
+ return u.getUserName();
+ case 1: // Passwort
+ return u.getPassWd();
+ case 2: // Vollst. Name
+ return u.getFullName();
+ case 3: // UID
+ return u.getUserIdAsString();
+ case 4: // Rolle als String
+ return u.getRoleAsString();
+ default:
+ }
+ return null;
+ }
+ /* (non-Javadoc)
+ * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
+ */
+ public void setValueAt(Object o,int rowIndex, int columnIndex)
+ {
+ User u = (User) vec.elementAt(rowIndex);
+ switch (columnIndex) {
+ case 0: // Login
+ u.setUserName((String) o);
+ break;
+ case 1: // Passwort
+ u.setPassWd((String) o);
+ break;
+ case 2: // Vollst. Name
+ u.setFullName((String) o);
+ break;
+ case 3: // UID
+ u.setUserId((String) o);
+ break;
+ case 4: // Rolle
+ u.setRole((String) o);
+ break;
+ default:
+ }
+ vec.setElementAt(u,rowIndex);
+ fireTableCellUpdated(rowIndex,columnIndex);
+ }
+
+ /**
+ * @return int
+ * Elemente des Containers
+ */
+ public int size() {
+ return vec.size();
+ }
+ /**
+ * @param i int
+ * @return Object
+ * Return element at i
+ */
+ public Object elementAt(int i) {
+ return (Object) vec.elementAt(i);
+ }
+ /* (non-Javadoc)
+ * @see javax.swing.table.TableModel#isCellEditable(int, int)
+ */
+ public boolean isCellEditable(int x, int y) {
+ return true;
+ }
+ /*public Class getColumnClass(int c) {
+ return getValueAt(0, c).getClass();
+ }*/
+} // end Class UserCon
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ViewComponent.class b/Bachelor/ERGO/TierheimVerw/thv/ViewComponent.class
new file mode 100644
index 0000000..eec3ed5
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ViewComponent.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/ViewComponent.java b/Bachelor/ERGO/TierheimVerw/thv/ViewComponent.java
new file mode 100644
index 0000000..e2542c3
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/ViewComponent.java
@@ -0,0 +1,16 @@
+/**
+ * <p>Überschrift: </p>
+ *
+ * <p>Beschreibung: </p>
+ *
+ * <p>Copyright: Copyright (c) 2005</p>
+ *
+ * <p>Organisation: </p>
+ *
+ * @author Andrea Spirka, sven Eisenhauer
+ * @version 1.0
+ */
+import java.awt.*; import java.io.File; import javax.swing.*;
+class ViewComponent extends JComponent { transient private Image image; /* (non-Javadoc) * @see javax.swing.JComponent#paintComponent(java.awt.Graphics) */ protected void paintComponent( Graphics g ) { if ( image != null ) g.drawImage( image, 10, 10, this );
+ centerImage(g,this,image); } public ViewComponent(){ } /** * @param file */ public void setImage( File file) { image = Toolkit.getDefaultToolkit().getImage( file.getAbsolutePath() ); if ( image != null ) { repaint(); } } /** * @param g * @param component * @param image */ public static void centerImage( Graphics g, Component component, Image image ) { g.setColor( component.getBackground() ); Dimension d = component.getSize(); g.fillRect( 0, 0, d.width, d.height ); g.drawImage( image, ( d.width - image.getWidth( null ) ) / 2, ( d.height - image.getHeight( null ) ) / 2, null ); }
+} \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/hund.jpeg b/Bachelor/ERGO/TierheimVerw/thv/hund.jpeg
new file mode 100644
index 0000000..1f42fa6
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/hund.jpeg
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/katze.JPG b/Bachelor/ERGO/TierheimVerw/thv/katze.JPG
new file mode 100644
index 0000000..63582ea
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/katze.JPG
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/test.xls b/Bachelor/ERGO/TierheimVerw/thv/test.xls
new file mode 100644
index 0000000..e783461
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/test.xls
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/thv.class b/Bachelor/ERGO/TierheimVerw/thv/thv.class
new file mode 100644
index 0000000..950373e
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/thv.class
Binary files differ
diff --git a/Bachelor/ERGO/TierheimVerw/thv/thv.java b/Bachelor/ERGO/TierheimVerw/thv/thv.java
new file mode 100644
index 0000000..b249c25
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/thv.java
@@ -0,0 +1,470 @@
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.*;
+import javax.swing.border.Border;
+import javax.swing.BorderFactory;
+import javax.swing.border.EtchedBorder;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.io.File;
+
+/**
+ * @author Andreas Spirka, Sven Eisenhauer
+ *
+ */
+
+public class thv extends AbstractMyJFrame implements Observer,WindowListener
+{
+ static boolean unsaved = false;
+ boolean tiercon_exists = false;
+ Container c;
+ JPanel pTop = new JPanel();
+ JMenuBar menuBar = new JMenuBar();
+ JMenu menuDatei = new JMenu("Datei");
+ JMenu menuBearbeiten = new JMenu("Bearbeiten");
+ JMenu menuAnmeldung = new JMenu ("Anmeldung");
+ JMenu menuAdmin = new JMenu ("Administration");
+ JMenuItem dateiNeu = new JMenuItem("Neu");
+ JMenuItem dateiOeffnen = new JMenuItem("Oeffnen");
+ JMenuItem dateiSpeichern = new JMenuItem("Speichern");
+ JMenuItem beenden = new JMenuItem("Beenden");
+ JMenuItem bearbeitenNeu = new JMenuItem("Tier anlegen/bearbeiten");
+ JMenuItem bearbeitenAnzeigen = new JMenuItem("Tier anzeigen");
+ JMenuItem bearbeitenAlleAnzeigen = new JMenuItem("Alle Tiere anzeigen");
+ JMenuItem bearbeitenAlleNFAnzeigen = new JMenuItem("Nicht freigegebenen Tiere anzeigen");
+ JMenuItem bearbeitenAlleFAnzeigen = new JMenuItem("Freigegebenen Tiere anzeigen");
+ JMenuItem anmeldAuth = new JMenuItem("Anmelden");
+ JMenuItem abmelden = new JMenuItem("Abmelden");
+ JMenuItem adminNeu = new JMenuItem("Benutzer anlegen");
+ JMenuItem adminLoeschen = new JMenuItem("Benutzer ändern/löschen");
+ JPanel statusBar = new JPanel(new BorderLayout());
+ JLabel statusLabel = new JLabel();
+ User gastUser = new User("Gast","Gast","Gast",-1,User.ROLE_GUEST);
+ static User actUser = new User();
+
+ Border loweredetched = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
+ JTree tree = new JTree();
+ JScrollPane spane = new JScrollPane();
+ static TierCon tiercon = new TierCon();
+ protected transient JFileChooser chooser;
+ TierDialog tierDialog = new TierDialog(0);
+
+ /**
+ * Konstruktor
+ */
+
+ public thv()
+ {
+ newCon();
+ actUser.addObserver(this);
+ actUser.setUser(gastUser);
+ addWindowListener(this);
+ c = getContentPane();
+ c.setLayout( new BorderLayout() );
+ c.add(pTop);
+ ButtonListener bl = new ButtonListener( this );
+ //***MNEMONICS***
+ menuDatei.setMnemonic(KeyEvent.VK_D);
+ menuBearbeiten.setMnemonic(KeyEvent.VK_B);
+ bearbeitenNeu.setMnemonic(KeyEvent.VK_N);
+ beenden.setMnemonic(KeyEvent.VK_B);
+ bearbeitenNeu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
+ dateiNeu.setMnemonic(KeyEvent.VK_N);
+ dateiOeffnen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
+ dateiOeffnen.setMnemonic(KeyEvent.VK_O);
+ dateiSpeichern.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
+ dateiSpeichern.setMnemonic(KeyEvent.VK_S);
+ anmeldAuth.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
+ anmeldAuth.setMnemonic(KeyEvent.VK_A);
+ abmelden.setMnemonic(KeyEvent.VK_B);
+ //Datei Items
+ dateiOeffnen.addActionListener( bl );
+ dateiOeffnen.setActionCommand("dateiOeffnen");
+ dateiNeu.addActionListener( bl );
+ dateiNeu.setActionCommand("dateiNeu");
+ dateiSpeichern.addActionListener( bl );
+ dateiSpeichern.setActionCommand("dateiSpeichern");
+ beenden.addActionListener( bl );
+ beenden.setActionCommand("beenden");
+ // Anmeldung Items
+ anmeldAuth.addActionListener( bl );
+ anmeldAuth.setActionCommand("auth");
+ abmelden.addActionListener( bl );
+ abmelden.setActionCommand("logout");
+ // Bearbeiten Items
+ bearbeitenNeu.addActionListener( bl );
+ bearbeitenNeu.setActionCommand("bearbeitenNeu");
+ bearbeitenAnzeigen.addActionListener( bl );
+ bearbeitenAnzeigen.setActionCommand("bearbeitenAnzeigen");
+ bearbeitenAlleAnzeigen.addActionListener( bl );
+ bearbeitenAlleAnzeigen.setActionCommand("bearbeitenAlleAnzeigen");
+ bearbeitenAlleNFAnzeigen.addActionListener( bl );
+ bearbeitenAlleNFAnzeigen.setActionCommand("bearbeitenAlleNFAnzeigen");
+ bearbeitenAlleFAnzeigen.addActionListener( bl );
+ bearbeitenAlleFAnzeigen.setActionCommand("bearbeitenAlleFAnzeigen");
+ // Admin Items
+ adminNeu.addActionListener( bl );
+ adminNeu.setActionCommand("adminNeu");
+ adminLoeschen.setActionCommand("adminLoeschen");
+ adminLoeschen.addActionListener( bl );
+ // MenuBar
+ menuBar.add(menuDatei);
+ menuBar.add(menuBearbeiten);
+ menuBar.add(menuAnmeldung);
+ menuBar.add(menuAdmin);
+ // Menus
+ menuAdmin.add(adminNeu);
+ menuAdmin.add(adminLoeschen);
+ menuAdmin.setVisible(false);
+ menuAnmeldung.add(anmeldAuth);
+ menuAnmeldung.add(abmelden);
+ menuDatei.add( dateiNeu);
+ menuDatei.add( dateiOeffnen);
+ menuDatei.add( dateiSpeichern);
+ menuDatei.addSeparator();
+ menuDatei.add( beenden );
+ menuBearbeiten.add(bearbeitenNeu);
+ menuBearbeiten.add(bearbeitenAnzeigen);
+ menuBearbeiten.add(bearbeitenAlleAnzeigen);
+ menuBearbeiten.add(bearbeitenAlleNFAnzeigen);
+ menuBearbeiten.add(bearbeitenAlleFAnzeigen);
+ setJMenuBar(menuBar);
+ // statusbar
+ statusLabel.setText("Benutzer: "+actUser.getUserName()+" Rolle: "+actUser.getRoleAsString());
+ statusLabel.setHorizontalAlignment(JLabel.LEFT);
+ statusBar.add(statusLabel,BorderLayout.WEST);
+ statusBar.setBorder(loweredetched);
+ c.add(statusBar, BorderLayout.SOUTH);
+ }
+
+ /**
+ * Öffnet Benutzerauthentifizierungsdialog
+ * und setzt aktuellen Benutzer
+ */
+ public void validateUser() {
+ PwDialog pwDialog = new PwDialog(this,"Benutzerauthentifizierung",true);
+ actUser.setUser(pwDialog.getUser());
+ }
+
+ /**
+ * Öffnet Dialog zum öffnen einer Datei
+ * @return Dateiname
+ */
+ public String openFileDialog()
+ {
+ String path = new File("").getAbsolutePath();
+ chooser = new JFileChooser(path);
+ JOptionPane pane = new JOptionPane();
+ JDialog dod = pane.createDialog(this,"Datei öffnen...");
+ String retVal = "";
+
+ ThvFilter filter = new ThvFilter();
+ chooser.setFileFilter(filter);
+ int returnVal = chooser.showOpenDialog(dod);
+ if(returnVal == JFileChooser.APPROVE_OPTION) {
+ retVal= chooser.getSelectedFile().getPath();
+ }
+ dod.dispose();
+ return retVal;
+ }
+
+ /**
+ * Öffnet Dialog zum speichern einer Datei
+ * @return Dateiname
+ */
+ public String saveFileDialog() {
+ String path = new File("").getAbsolutePath();
+ chooser = new JFileChooser(path);
+ JOptionPane pane = new JOptionPane();
+ JDialog dod = pane.createDialog(this,"Datei speichern...");
+ String retVal = "";
+
+ ThvFilter filter = new ThvFilter();
+ chooser.setFileFilter(filter);
+ int returnVal = chooser.showSaveDialog(dod);
+ if(returnVal == JFileChooser.APPROVE_OPTION) {
+ //retVal= chooser.getSelectedFile().getName();
+ retVal= chooser.getSelectedFile().getPath();
+ dod.dispose();
+ }
+ return retVal;
+ }
+
+ /**
+ * Lädt Container aus Default-Datei oder legt neuen Container an
+ */
+ public void newCon()
+ {
+ File file = new File("Tierheim1.thv");
+ if (file.exists())
+ {
+ try {
+ FileInputStream fis = new FileInputStream(file);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ tiercon = (TierCon) ois.readObject();
+ ois.close();
+ tiercon_exists = true;
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ else
+ {
+ tiercon=new TierCon();
+ tiercon_exists = true;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see AbstractMyJFrame#buttonActionPerformed(java.awt.event.ActionEvent)
+ */
+public void buttonActionPerformed( ActionEvent e )
+ {
+ String ac = e.getActionCommand();
+ if (ac.equals("dateiOeffnen") ) {
+ String selectedFile = openFileDialog();
+ //JOptionPane.showMessageDialog(this,selectedFile,"Gewählte Datei",JOptionPane.INFORMATION_MESSAGE);
+ if (!selectedFile.equals(""))
+ {
+ try {
+ FileInputStream fis = new FileInputStream(selectedFile);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ tiercon = (TierCon) ois.readObject();
+ ois.close();
+ tiercon_exists = true;
+ } catch (Exception exception) { exception.printStackTrace(); }
+ /*tiercon.loadFromFile( selectedFile );
+ * tiercon_exists = true;*/
+ }
+ }
+ else if (ac.equals("dateiNeu") ) {
+ newCon();
+ }
+ else if (ac.equals("dateiSpeichern") ) {
+ String saveFile = saveFileDialog();
+ if (!saveFile.equals(""))
+ {
+ try {
+ FileOutputStream fos = new FileOutputStream(saveFile);
+ ObjectOutputStream oos = new ObjectOutputStream(fos);
+ oos.writeObject(tiercon);
+ oos.close();
+ setDataChanged(false);
+ } catch (Exception exception) { exception.printStackTrace(); }
+ }
+ }
+ else if (ac.equals("beenden") ) {
+ exitThv();
+ }
+ else if (ac.equals("auth") ) {
+ validateUser();
+ }
+ else if (ac.equals("logout"))
+ {
+ if (unsaved == false) {
+ actUser.setUser(gastUser);
+ }
+ else {
+ int retVal = JOptionPane.showConfirmDialog(this,
+ "Nicht gespeicherte Änderungen\nÄnderungen gehen verloren!",
+ "Abmelden ohne speichern?",
+ JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
+ if (retVal == JOptionPane.YES_OPTION) {
+ actUser.setUser(gastUser);
+ }
+ }
+ }
+ else if (ac.equals("adminNeu") ) {
+ new AdminDlg();
+ }
+ else if (ac.equals("adminLoeschen") ) {
+ new ChgUserDlg();
+ }
+ else if (ac.equals("bearbeitenNeu")) {
+ if (tiercon_exists == true) {
+ new TierVerDialog();
+ }
+ }
+ else if (ac.equals("bearbeitenAnzeigen")) {
+ if (tiercon_exists == true) {
+ tierDialog.updateTc();
+ tierDialog.setVisible(true);
+ }
+ }
+ else if (ac.equals("bearbeitenAlleAnzeigen")) {
+ if (tiercon_exists == true) {
+ new AlleTiereDlg();
+ }
+ }
+ else if (ac.equals("bearbeitenAlleNFAnzeigen")) {
+ if (tiercon_exists == true) {
+ new AlleNFTiereDlg();
+ }
+ }
+ else if (ac.equals("bearbeitenAlleFAnzeigen")) {
+ if (tiercon_exists == true) {
+ new AlleFTiereDlg();
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
+ */
+ public void update(Observable o, Object arg) {
+ statusLabel.setText("Benutzer: "+actUser.getUserName()+" Rolle: "+actUser.getRoleAsString());
+ tierDialog.updateTc();
+ if(actUser.getRole() == User.ROLE_GUEST) {
+ adminNeu.setVisible(false);
+ adminLoeschen.setVisible(false);
+ dateiNeu.setVisible(false);
+ dateiSpeichern.setVisible(false);
+ bearbeitenNeu.setVisible(false);
+ bearbeitenAlleNFAnzeigen.setVisible(false);
+ bearbeitenAlleAnzeigen.setVisible(false);
+ tierDialog.setVisible(true);
+ menuAdmin.setVisible(false);
+ }
+ else if (actUser.getRole() == User.ROLE_ADMIN) {
+ adminNeu.setEnabled(true);
+ adminLoeschen.setEnabled(true);
+ dateiNeu.setEnabled(true);
+ dateiOeffnen.setEnabled(true);
+ dateiSpeichern.setEnabled(true);
+ bearbeitenNeu.setEnabled(true);
+ adminNeu.setVisible(true);
+ adminLoeschen.setVisible(true);
+ dateiNeu.setVisible(true);
+ dateiSpeichern.setVisible(true);
+ bearbeitenNeu.setVisible(true);
+ bearbeitenAlleNFAnzeigen.setVisible(true);
+ bearbeitenAlleAnzeigen.setVisible(true);
+ tierDialog.setVisible(false);
+ menuAdmin.setVisible(true);
+ new ChgUserDlg();
+ }
+ else if (actUser.getRole() == User.ROLE_WORKER) {
+ adminNeu.setEnabled(false);
+ adminLoeschen.setEnabled(false);
+ dateiNeu.setEnabled(true);
+ dateiOeffnen.setEnabled(true);
+ dateiSpeichern.setEnabled(true);
+ bearbeitenNeu.setEnabled(true);
+ adminNeu.setVisible(true);
+ adminLoeschen.setVisible(true);
+ dateiNeu.setVisible(true);
+ dateiSpeichern.setVisible(true);
+ bearbeitenNeu.setVisible(true);
+ bearbeitenAlleNFAnzeigen.setVisible(true);
+ bearbeitenAlleAnzeigen.setVisible(true);
+ tierDialog.setVisible(false);
+ menuAdmin.setVisible(false);
+ new TierVerDialog();
+ }
+ else if ( actUser.getRole() == User.ROLE_VET ) {
+ adminNeu.setEnabled(false);
+ adminLoeschen.setEnabled(false);
+ dateiNeu.setEnabled(false);
+ //bearbeitenNeu.setEnabled(true);
+ //bearbeitenAlleNFAnzeigen.setEnabled(true);
+ adminNeu.setVisible(true);
+ adminLoeschen.setVisible(true);
+ dateiNeu.setVisible(true);
+ dateiSpeichern.setVisible(true);
+ bearbeitenNeu.setVisible(true);
+ bearbeitenAlleNFAnzeigen.setVisible(true);
+ bearbeitenAlleAnzeigen.setVisible(true);
+ tierDialog.setVisible(false);
+ menuAdmin.setVisible(false);
+ new AlleNFTiereDlg();
+ }
+ }
+ /**
+ * prüft, ob Daten nicht gespeichert sind und beendet dann die Anwendung
+ */
+ private void exitThv() {
+ if (unsaved == false) {
+ System.exit(0);
+ }
+ else {
+ int retVal = JOptionPane.showConfirmDialog(this,
+ "Beenden ohne speichern?",
+ "Nicht gespeicherte Änderungen",
+ JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
+ if (retVal == JOptionPane.YES_OPTION) {
+ System.exit(0);
+ }
+ }
+ }
+ /**
+ * Wird von anderen Dialogen verwendet, um zu signalisieren,
+ * ob Daten geändert wurden
+ * @param status
+ */
+ public static void setDataChanged(boolean status) {
+ unsaved=status;
+ }
+ /**
+ * Gibt an aktuell angemeldeten User zurück
+ * @return User
+ */
+ public static User getActUser() {return actUser; }
+ /**
+ * Gibt den aktuellen Tiercontainer zurück
+ * @return TierCon
+ */
+ public static TierCon getTierCon() {return tiercon;}
+ //WindowsListener methods
+ public void windowClosing(WindowEvent e) {
+ exitThv();
+ }
+ public void windowClosed(WindowEvent e) {
+ }
+ public void windowOpened(WindowEvent e) {
+ }
+ public void windowIconified(WindowEvent e) {
+ }
+ public void windowDeiconified(WindowEvent e) {
+ }
+ public void windowActivated(WindowEvent e) {
+ }
+ public void windowDeactivated(WindowEvent e) {
+ }
+ public void windowGainedFocus(WindowEvent e) {
+ }
+ public void windowLostFocus(WindowEvent e) {
+ }
+ public void windowStateChanged(WindowEvent e) {
+ }
+ /**
+ * Öffnet den ersten Dialog, wenn die Anwendung startet
+ */
+public void initDlg() {
+ tierDialog.toFront();
+ }
+
+ /**
+ * main-Methode.
+ */
+
+ public static void main( String[] argv )
+ {
+ try {
+ //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ }
+ catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ thv fenster = new thv();
+ fenster.setTitle( "Tierheimverwaltung" );
+ fenster.setSize(new Dimension(800,600));
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension frameSize = fenster.getSize();
+ fenster.setLocation((screenSize.width/2)-(frameSize.width/2),(screenSize.height/2)-(frameSize.height/2));
+ fenster.setVisible( true );
+ //fenster.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
+ fenster.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
+ fenster.initDlg();
+ }
+} \ No newline at end of file
diff --git a/Bachelor/ERGO/TierheimVerw/thv/user.dat b/Bachelor/ERGO/TierheimVerw/thv/user.dat
new file mode 100644
index 0000000..cd90ab1
--- /dev/null
+++ b/Bachelor/ERGO/TierheimVerw/thv/user.dat
Binary files differ