diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java')
| -rw-r--r-- | Bachelor/ERGO/TierheimVerw/thv/TierVerDialog.java | 1 |
1 files changed, 1 insertions, 0 deletions
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 |
