package eis.examples.distributed;
import java.awt.Color;
import java.text.DateFormat;
import java.util.Date;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextPane;
import eis.exceptions.AgentException;
public class InterfaceWindow extends JFrame {
private JTextPane stats = null;
private JTextPane log = null;
public InterfaceWindow() {
this.setSize(425, 450);
this.setResizable(false);
// adding tabs
stats = new JTextPane();
stats.setBorder(BorderFactory.createLineBorder (Color.gray, 1));
stats.setEnabled(false);
stats.setContentType("text/html");
log = new JTextPane();
log.setBorder(BorderFactory.createLineBorder (Color.gray, 1));
log.setEnabled(false);
log.setContentType("text/html");
JTabbedPane tabs = new JTabbedPane();
tabs.add("Log", log);
tabs.add("Statistics", stats);
this.add(tabs);
this.setVisible(true);
}
public void update(Server server, Environment env) {
String text = "";
text += "<b>Entities:</b><i>";
text += server.getEntities();
text += "</i><br>";
text += "<b>Agents:</b><i>";
text += server.getAgents();
text += "</i><br>";
for( String ag : server.getAgents() ) {
try {
String line = "Entity <i>" + ag + "</i> is related with <i>" + server.getAssociatedEntities(ag) + "</i><br>";
text += line;
} catch (AgentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
stats.setText(text);
}
public void logPrintln(Object obj) {
String text = "";
//SimpleDateFormat formater = new SimpleDateFormat();
DateFormat formater;
formater = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.MEDIUM );
text += "<b>";
text += formater.format(new Date());
text += "</b>: ";
text += obj.toString();
text += "<br>";
text += log.getText();
log.setText(text);
}
}