import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.*;
//import java.awt.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ListActCl extends JButton implements ActionListener {
private JTable table = null;
private JFrame sorryframe = null;
private String clients = null;
boolean tableCreated;
boolean actClients;
public ListActCl(){
//Übergabe vom Commando imgr active clients
try
{
Process p = Runtime.getRuntime().exec("/opt/NXOSI/bin/imgr list clients");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
//Hier wird abgefragt ob der Wert der Variabel clients ungleich null ist.wenn ja, dann wird Table aufgeruffen
actClients = false;
tableCreated = false;
while ((clients = in.readLine()) != null)
{
actClients = true;
if (tableCreated == false){
Table();
tableCreated = true;
}
else{
}
System.out.println(clients);
}
//Falls die abfrage der Variabel clients, null ergibt, wird die Funktion SorryFrame ausgeführt.
if(actClients == false){
SorryFrame();
//Table();
System.out.println("no active clients");
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
//hier wird die Tabelle aufgerufen, in der die Clients dann augelistet werden.
public void Table(){
String[][] data = new String [][]{
{clients}
};
String[] title = new String[]{
"Clients"
};
table = new JTable(data, title);
}
//Diese Funktion speicher den Wert von table und gibt in dann an Frame weiter
public JTable getTable(){
return table;
}
//Dieses Fenster wird ausgegeben, wenn keine Clients vorhanden sind
public void SorryFrame(){
sorryframe = new JFrame();
sorryframe.getContentPane().setLayout(new BorderLayout());
JPanel sorrypanel = new JPanel();
sorrypanel.setLayout(new GridLayout(3,3));
JLabel sorrylabel = new JLabel("ERROR: NO ACTIVE CLIENTS");
JButton sorrybutton = new JButton("OK");
sorrybutton.addActionListener(this);
sorrybutton.setActionCommand("OK");
sorryframe.getContentPane().add(sorrypanel, BorderLayout.CENTER);
sorrypanel.add(sorrylabel);
sorrypanel.add(sorrybutton);
sorryframe.setTitle("ERROR");
sorryframe.setVisible(true);
sorryframe.pack();
sorryframe.setLocation(600, 500);
sorryframe.setSize(300,100);
}
//Dies ist die Funktion vom JButton sorrybutton, mit dem die Funktion SorryFrame geschlossen wird.
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "OK") {
sorryframe.dispose();
}
}
}