Revision: 6705
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6705&view=rev
Author: gerdwagner
Date: 2012-10-29 22:20:06 +0000 (Mon, 29 Oct 2012)
Log Message:
-----------
Tried to improve GCing for CancelPanel
Modified Paths:
--------------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/CancelPanelCtrl.java
Added Paths:
-----------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/TimerHolder.java
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/CancelPanelCtrl.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/CancelPanelCtrl.java 2012-10-29 21:51:34 UTC (rev 6704)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/CancelPanelCtrl.java 2012-10-29 22:20:06 UTC (rev 6705)
@@ -27,27 +27,13 @@
*/
private int _currentQueryIndex = 0;
private CancelPanelListener _listener;
- private final Timer _timer;
- private final long _beginMillis;
+ private final TimerHolder _timer;
CancelPanelCtrl(CancelPanelListener listener, ISession session)
{
_listener = listener;
_panel = new CancelPanel(session);
- _beginMillis = System.currentTimeMillis();
- _timer = new Timer(300, new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- onUpdateExecutionTime();
- }
- });
- _timer.setRepeats(true);
- _timer.start();
-
-
_panel.cancelBtn.addActionListener(new ActionListener()
{
@Override
@@ -65,13 +51,8 @@
onClose();
}
});
+ _timer = new TimerHolder(_panel.txtExecTimeCounter);
}
-
- private void onUpdateExecutionTime()
- {
- _panel.txtExecTimeCounter.setText("" + (System.currentTimeMillis() - _beginMillis));
- }
-
void incCurrentQueryIndex()
{
++_currentQueryIndex;
@@ -149,6 +130,5 @@
public void wasRemoved()
{
_timer.stop();
- System.out.println("CancelPanelCtrl.wasRemoved");
}
}
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/TimerHolder.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/TimerHolder.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/TimerHolder.java 2012-10-29 22:20:06 UTC (rev 6705)
@@ -0,0 +1,51 @@
+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;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|