package neatgui;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class Eingaben extends JPanel {
public DefaultTableModel model = new DefaultTableModel();
JTable table = new JTable(model);
JLabel firma = new JLabel("Firmenname");
JTextField firma2 = new JTextField();
JLabel Container = new JLabel("Anzahl kleine Container");
JComboBox container = new JComboBox(containers());
JLabel uhrzeit = new JLabel("Zeit");
String[] uhr = new String[]{"7:10", "7:30", "8:10", "8:30", "9:10", "10:10", "10:30",
"11:10", "12:10", "12:30", "13:10", "14:10", "14:30", "15:10",
"16:10", "16:30", "17:10", "18:10", "18:30", "19:10", "20:10",
"21:10", "21:30", "21:50", "22:10", "22:50"};
JComboBox zeiten = new JComboBox(uhr);
JButton best = new JButton("Bestätigen");
JButton stats = new JButton("Status Abfragen");
JTextField id = new JTextField();
JTextArea stat = new JTextArea(5, 60);
JLabel buffer = new JLabel();
final int MAXCONT = 150;
public Eingaben() {
tabelle();
MyActionListener listener = new MyActionListener();
best.addActionListener(listener);
stats.addActionListener(listener);
setLayout(new GridLayout(7, 2));
container.setSize(50, 50);
add(firma);
add(firma2);
add(Container);
add(container);
add(uhrzeit);
add(zeiten);
add(buffer);
add(best);
}
public String[] containers() {
String[] anzContainer = new String[MAXCONT];
for (int i = 0; i < 150; i++) {
anzContainer[i] = "" + i;
}
return anzContainer;
}
public void tabelle() {
String[] columnTitle = {"Transport ID",
"Ankunftszeit",
"Zug Nr.",
"Preis"};
model.setColumnIdentifiers(columnTitle);
}
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
if (button == best) {
request();
} else if (button == stats){
String data2 = new String();
data2 = "STATE;" + id.getText();
System.out.println(data2);
String returnValue = Eingaben.komm(data2);
stat.insert("\n"+returnValue,0);
}
}
}
public void request(){
String data = new String();
String[] splitValue = new String[4];
data = firma2.getText();
if (pruefeName(data) == false) {
JOptionPane.showMessageDialog(null, "Der Firmenname darf kein ; oder : oder , enthalten!", "Ungültige Eingabe", JOptionPane.WARNING_MESSAGE);
} else {
String request = "REQUEST;" + data + ";" + container.getSelectedItem() + ";" + zeiten.getSelectedItem();
System.out.println(request);
String returnValue = komm(request);
splitValue = returnValue.split(";");
if (splitValue[0].equals("ERROR")) {
System.out.println(splitValue[1]);
String error = splitValue[1];
stat.insert("\n"+error,1);
} else {
insert();
model.fireTableDataChanged();
}
}
}
public void insert() {
Object[] test = new Object[]{"test1","test2","test3","test4"};
model.addRow(test);
model.fireTableDataChanged();
System.out.println("insert wird aufgerufen");
}
public static String komm(String pRequest) {
try {
Socket socket = new Socket("10.3.1.128", 5432);
OutputStream os = socket.getOutputStream();
PrintWriter out = new PrintWriter(os);
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
BufferedReader in = new BufferedReader(isr);
out.println(pRequest);
out.flush();
String receiveString = in.readLine();
System.out.println("empfangen: " + receiveString);
out.println("exit");
out.flush();
isr.close();
os.close();
socket.close();
return receiveString;
} catch (IOException h) {
System.out.println("Exception: " + h.toString());
}
return "Fehler";
}
public boolean pruefeName(String pName) {
if (pName.contains(";") || pName.contains(",") || pName.contains(":")) {
return false;
} else {
return true;
}
}
}