OpenSeSim/src/gui/Clock.java

135 lines
4.5 KiB
Java
Raw Normal View History

2017-01-26 01:52:03 +01:00
/*
* Copyright (c) 2017, 7u83 <7u83@mail.ru>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
2017-01-28 15:34:24 +01:00
package gui;
2017-01-26 01:52:03 +01:00
2017-02-02 18:39:55 +01:00
import java.util.Timer;
import java.util.TimerTask;
2017-02-03 01:56:41 +01:00
import sesim.Exchange.Statistics;
2017-02-02 18:39:55 +01:00
import sesim.Scheduler;
2017-01-26 01:52:03 +01:00
/**
*
* @author 7u83 <7u83@mail.ru>
*/
2017-01-28 15:34:24 +01:00
public class Clock extends javax.swing.JPanel {
2017-01-26 01:52:03 +01:00
2017-02-03 01:56:41 +01:00
protected final Timer timer;
2017-02-02 18:39:55 +01:00
TimerTask clockUpdater;
2017-03-06 16:08:20 +01:00
class ClockUpdater implements sesim.Scheduler.TimerTaskRunner{
@Override
public long timerTask() {
long t = Globals.se.timer.currentTimeMillis();
jLabel1.setText(Scheduler.formatTimeMillis(t));
return 1000;
}
@Override
public long getID() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
2017-01-26 01:52:03 +01:00
/**
2017-01-28 15:34:24 +01:00
* Creates new form Clock
2017-01-26 01:52:03 +01:00
*/
2017-01-28 15:34:24 +01:00
public Clock() {
2017-01-26 01:52:03 +01:00
initComponents();
2017-02-20 08:21:40 +01:00
2017-01-26 01:52:03 +01:00
2017-02-02 18:39:55 +01:00
this.timer = new Timer();
2017-02-20 08:21:40 +01:00
if(Globals.se==null)
return;
2017-03-06 16:08:20 +01:00
clockUpdater = new TimerTask () {
2017-02-02 18:39:55 +01:00
@Override
public void run() {
long t = Globals.se.timer.currentTimeMillis();
2017-02-03 01:56:41 +01:00
Statistics s = Globals.se.getStatistics();
2017-02-02 18:39:55 +01:00
jLabel1.setText(Scheduler.formatTimeMillis(t));
}
};
timer.schedule(clockUpdater, 0, 1000);
2017-02-03 01:56:41 +01:00
2017-02-02 18:39:55 +01:00
}
2017-02-03 01:56:41 +01:00
@Override
public void setVisible(boolean b){
System.out.printf("Visible: %s\n",Boolean.toString(b));
}
2017-02-02 18:39:55 +01:00
2017-01-26 01:52:03 +01:00
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
2017-02-02 18:39:55 +01:00
jLabel1 = new javax.swing.JLabel();
jLabel1.setFont(jLabel1.getFont().deriveFont(jLabel1.getFont().getStyle() | java.awt.Font.BOLD, jLabel1.getFont().getSize()+6));
2017-02-06 08:14:05 +01:00
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
2017-02-02 18:39:55 +01:00
jLabel1.setText("00:00:00");
2017-01-26 01:52:03 +01:00
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
2017-02-02 18:39:55 +01:00
.addGroup(layout.createSequentialGroup()
.addContainerGap()
2017-02-06 08:14:05 +01:00
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
2017-02-02 18:39:55 +01:00
.addContainerGap())
2017-01-26 01:52:03 +01:00
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
2017-02-02 18:39:55 +01:00
.addGroup(layout.createSequentialGroup()
.addContainerGap()
2017-02-06 08:14:05 +01:00
.addComponent(jLabel1)
2017-02-02 18:39:55 +01:00
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
2017-01-26 01:52:03 +01:00
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
2017-02-02 18:39:55 +01:00
private javax.swing.JLabel jLabel1;
2017-01-26 01:52:03 +01:00
// End of variables declaration//GEN-END:variables
}