// Processed by NMI's Java Code Viewer 4.8.2 © 1997-2000 B. Lemaire // Website: http://njcv.htmlplanet.com E-mail: info@njcv.htmlplanet.com // Copy registered to Evaluation Copy // Source File Name: StatusBarPanel.java import java.awt.*; import java.util.Date; class StatusBarPanel extends Panel { private static StatusField field[] = new StatusField[6]; private String fieldString[] = { "", "Host: Port:", "Players: 0", "00:00:00", "Not connected", "None" }; Date date; int time[]; int secondsCounter; String timeString[]; Timer timer; public StatusBarPanel() { date = new Date(); time = new int[3]; timeString = new String[3]; setLayout(new GridBagLayout()); setBackground(Color.lightGray); createFields(); timer = new Timer(this, 1000, true, 1001); timer.start(); } private void createFields() { GridBagLayout gridbaglayout = (GridBagLayout)getLayout(); GridBagConstraints agridbagconstraints[] = new GridBagConstraints[6]; for(int i = 0; i < 6; i++) { field[i] = new StatusField(fieldString[i]); agridbagconstraints[i] = new GridBagConstraints(); agridbagconstraints[i].fill = 1; agridbagconstraints[i].gridx = i; agridbagconstraints[i].gridy = 0; if(i == 0) agridbagconstraints[0].weightx = 1.0D; else agridbagconstraints[i].weightx = 0.0D; if(i == 5) agridbagconstraints[5].insets = new Insets(0, 0, 0, 2); gridbaglayout.setConstraints(field[i], agridbagconstraints[i]); add(field[i]); } } public static void updateConnected() { field[1].updateText("Host: " + ClientData.host + " Port: " + ClientData.port); field[2].updateText("Players: " + ClientData.clientsCurrentlyConnected); field[4].updateText("Connected"); if(ServerData.amI_Server) field[5].updateText("Server"); else field[5].updateText("Client"); field[0].repaint(); } public static void updateDisconnected() { field[1].updateText("Host: Port:"); field[2].updateText("Players: 0"); field[4].updateText("Not connected"); field[5].updateText("None"); field[0].repaint(); } public static void updateHost(String s, int i) { field[1].updateText("Host: " + s + " Port: " + i); field[0].repaint(); } public static void updatePlayers() { field[2].updateText("Players: " + ClientData.clientsCurrentlyConnected); field[0].repaint(); } public static void updateConnected(boolean flag) { if(flag) field[4].updateText("Connected"); else field[4].updateText("Not connected"); field[0].repaint(); } public static void updateServerOrClient(int i) { switch(i) { case 1: // '\001' field[5].updateText("Server"); return; case 2: // '\002' field[5].updateText("Client"); return; case 3: // '\003' field[5].updateText("None"); return; } } public boolean handleEvent(Event event) { if(event.target == timer && event.id == 1001) { if(ClientData.gameInProgress) { time[0] = (secondsCounter / 3600) % 60; time[1] = (secondsCounter / 60) % 60; time[2] = secondsCounter % 60; secondsCounter++; } else { secondsCounter = 0; date = new Date(); time[0] = date.getHours(); time[1] = date.getMinutes(); time[2] = date.getSeconds(); } for(int i = 0; i < 3; i++) if(time[i] < 10) timeString[i] = "0" + String.valueOf(time[i]); else timeString[i] = String.valueOf(time[i]); field[3].updateText(timeString[0] + ":" + timeString[1] + ":" + timeString[2], false); return true; } else { return false; } } public synchronized void resize(int i, int j) { super.resize(i, 20); } public synchronized void reshape(int i, int j, int k, int l) { super.reshape(i, j, k, 20); } }