import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.ToolTipManager;
import javax.swing.border.TitledBorder;
public class Benutzeroberfläche extends JFrame implements ActionListener,
MouseListener {
protected DefaultListModel daten = new DefaultListModel();
private JList auflistung = new JList(daten);
protected JButton hinzufuegen;
private JButton bearbeiten = new JButton("Vorgang bearbeiten");
private JButton entfernen;
protected JTextField bezeichnung = new JTextField();
protected JTextField anfang = new JTextField();
protected JTextField dauer = new JTextField();
protected JTextField erfüllt = new JTextField();
protected JButton uebernehmen = new JButton("Änderungen übernehmen");
private JPanel p1, p2, p3, p4, p5, p6, p7, p8;
protected int index;
protected ArrayList<Vorgang> vorgaenge = new ArrayList<Vorgang>();
public void Benutzeroberfläche() {
this.setTitle("Gannt-Diagramm-Editor");
this.setSize(1050, 650);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bezeichnung.enable(false);
anfang.enable(false);
dauer.enable(false);
erfüllt.enable(false);
uebernehmen.enable(false);
hinzufuegen = new JButton("Vorgang hinzufügen");
hinzufuegen.addActionListener(new ButtonHinzufuegen(this));
entfernen=new JButton ("Vorgang entfernen");
entfernen.addActionListener(new ButtonEntfernen(this,index));
// JPanel-Verschachtelung zur Darstellung "Alle Vorgänge"
p1 = new JPanel(new GridLayout(2, 1, 5, 5));
p1.setBorder(new TitledBorder("Alle Vorgänge"));
p1.add(auflistung);
p2 = new JPanel(new GridLayout(3, 1, 5, 5));
p2.add(hinzufuegen);
p2.add(bearbeiten);
p2.add(entfernen);
p1.add(p2);
// JPanel-Verschachtelung zur Darstellung "Vorgangsdaten"
p3 = new JPanel(new BorderLayout(5, 5));
p6 = new JPanel(new GridLayout(4, 2, 5, 5));
p3.setBorder(new TitledBorder("Vorgangsdaten"));
p6.add(new JLabel("Bezeichnung"));
p6.add(bezeichnung);
p6.add(new JLabel("Starttag"));
p6.add(anfang);
p6.add(new JLabel("Dauer"));
p6.add(dauer);
p6.add(new JLabel("Erfüllt"));
p6.add(erfüllt);
p3.add(p6, BorderLayout.CENTER);
p3.add(uebernehmen, BorderLayout.SOUTH);
p7 = new JPanel(new GridLayout(1, 1, 5, 5));
p7.setBorder(new TitledBorder("Projektdaten"));
p4 = new JPanel(new GridLayout(3, 1));
p4.add(p1);
p4.add(p3);
p4.add(p7);
// JPanel zur Darstellung des Gantt-Diagramms
p5 = new JPanel(new GridLayout(1, 1, 10, 10));
p5.setBorder(new TitledBorder("Diagramm"));
p8 = new GanttDiagrammDarstellung(vorgaenge);
p5.add(p8);
this.add(p4, BorderLayout.WEST);
this.add(p5, BorderLayout.CENTER);
// ActionListener-Methode den JButtons zuweisen
uebernehmen.addActionListener(this);
bearbeiten.addActionListener(this);
// MouseListener-Methode den Textfeldern zuweisen
auflistung.addMouseListener(this);
}
// mouseClicked-Event zur Bestimmung des angewählten Namens
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
index = auflistung.locationToIndex(e.getPoint());
}
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == bearbeiten) {
bezeichnung.enable(true);
anfang.enable(true);
dauer.enable(true);
erfüllt.enable(true);
uebernehmen.enable(true);
bezeichnung.setText(vorgaenge.get(index).getName());
anfang.setText("" + vorgaenge.get(index).getAnfang());
dauer.setText("" + vorgaenge.get(index).getDauer());
erfüllt.setText("" + vorgaenge.get(index).getErfüllt() + "%");
vorgaenge.remove(index);
daten.remove(index);
System.out.println(index);
}
// if (ae.getSource() == entfernen) {
// bezeichnung.enable(true);
// anfang.enable(true);
// dauer.enable(true);
// erfüllt.enable(true);
// uebernehmen.enable(true);
// vorgaenge.remove(index);
// daten.remove(index);
// }
if (ae.getSource() == uebernehmen) {
String name = bezeichnung.getText();
double a = Double.parseDouble(anfang.getText());
double d = Double.parseDouble(dauer.getText());
double e = Double.parseDouble(erfüllt.getText());
vorgaenge.add(new Vorgang(name, a, d, e));
daten.addElement(name);
// Eingabefelder leeren
bezeichnung.setText("");
anfang.setText("");
dauer.setText("");
erfüllt.setText("");
// Eingabefelder "ausschalten"
bezeichnung.enable(false);
anfang.enable(false);
dauer.enable(false);
erfüllt.enable(false);
uebernehmen.enable(false);
// Gannt-Diagramm erneuern
p5.remove(p8);
p8 = new GanttDiagrammDarstellung(vorgaenge);
p5.add(p8);
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}