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; /** *
Überschrift: Tierverwaltungdialog
* *Beschreibung: Dialog um neue Tiere anzulegen oder bestehende zu ändern
* *Copyright: Copyright (c) 2005
* *Organisation:
* * @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