package example; import gdwNet.server.GDWServerLogger; import gdwNet.server.GDWServerLoggerListener; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextArea; /** * Einfach nur eine Klasse die einen LogListener implementiert und anzeigt. * * Der so genannte GDWServerLoggerListener ist eine Schnittstelle der die der Server * ansprechen kann, wenn ihr etwas protokollieren wollt. * Ich empfehle dies Schnittstelle irgendwo zu implementieren, da sonst das Protokoll in die * Konsole geschrieben wird, da hilft es nicht viel. * @author firen * */ public class LogViewerChatServer extends JFrame implements GDWServerLoggerListener { private static final long serialVersionUID = 1L; private JTextArea area; private Date date; private JButton closeButton; private ChatServer ref; public LogViewerChatServer() { super("ChatServerExample LogViewer"); this.setDefaultCloseOperation(HIDE_ON_CLOSE); //logview this.area = new JTextArea(); this.area.setEditable(false); this.closeButton = new JButton("Close"); this.closeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // shutdown server ref.shutMeDown(); System.exit(0); } }); GDWServerLogger.registerListener(this); this.date = new Date(); this.add(this.area,BorderLayout.CENTER); this.add(this.closeButton, BorderLayout.SOUTH); //end stuff this.setSize(600, 400); this.setVisible(true); } /** * Es wird die eingehende Nachrichte mit einem Zeitstemple versehen und in die * JTextArea geschrieben. */ @SuppressWarnings("deprecation") @Override public void logMessage(String msg) { this.area.append(this.date.getMinutes() + ":" + this.date.getSeconds() + ":>" + msg + "\n"); } public void setRef(ChatServer ref) { this.ref = ref; } }