package net.sourceforge.squirrel_sql.client.session.mainpanel;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* This timer treatment seems to give better Session GCing behaviour.
*/
public class TimerHolder
{
private Timer _timer;
private JTextField _txtExecTimeCounter;
private final long _beginMillis;
public TimerHolder(JTextField txtExecTimeCounter)
{
_beginMillis = System.currentTimeMillis();
_txtExecTimeCounter = txtExecTimeCounter;
_timer = new Timer(300, new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
onUpdateExecutionTime();
}
});
_timer.setRepeats(true);
_timer.start();
}
private void onUpdateExecutionTime()
{
if (null != _txtExecTimeCounter)
{
_txtExecTimeCounter.setText("" + (System.currentTimeMillis() - _beginMillis));
}
}
public void stop()
{
_timer.stop();
_txtExecTimeCounter = null;
}
}