Update of /cvsroot/squirrel-sql/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv24448/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax
Modified Files:
SquirrelRSyntaxTextArea.java RSyntaxSQLEntryPanel.java
RSyntaxSQLEntryAreaFactory.java
Log Message:
RSyntax editor integration --> Better GCing
Index: RSyntaxSQLEntryPanel.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RSyntaxSQLEntryPanel.java 29 Nov 2009 21:17:53 -0000 1.1
--- RSyntaxSQLEntryPanel.java 30 Nov 2009 21:29:27 -0000 1.2
***************
*** 452,455 ****
--- 452,456 ----
public void sessionEnding()
{
+ _textArea.sessionEnding();
_session = null;
}
Index: RSyntaxSQLEntryAreaFactory.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryAreaFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RSyntaxSQLEntryAreaFactory.java 29 Nov 2009 21:17:53 -0000 1.1
--- RSyntaxSQLEntryAreaFactory.java 30 Nov 2009 21:29:27 -0000 1.2
***************
*** 7,18 ****
import net.sourceforge.squirrel_sql.plugins.syntax.SyntaxPreferences;
import net.sourceforge.squirrel_sql.plugins.syntax.SyntaxPugin;
import java.util.HashMap;
public class RSyntaxSQLEntryAreaFactory
{
private SyntaxPugin _plugin;
! public RSyntaxSQLEntryAreaFactory(SyntaxPugin plugin)
{
_plugin = plugin;
--- 7,22 ----
import net.sourceforge.squirrel_sql.plugins.syntax.SyntaxPreferences;
import net.sourceforge.squirrel_sql.plugins.syntax.SyntaxPugin;
+ import net.sourceforge.squirrel_sql.plugins.syntax.netbeans.NetbeansSQLEntryPanel;
+ import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
import java.util.HashMap;
+ import java.util.ArrayList;
public class RSyntaxSQLEntryAreaFactory
{
private SyntaxPugin _plugin;
+ private HashMap<IIdentifier, ArrayList<RSyntaxSQLEntryPanel>> _rSyntaxSQLEntryPanelsBySessionID = new HashMap<IIdentifier, ArrayList<RSyntaxSQLEntryPanel>>();
! public RSyntaxSQLEntryAreaFactory(SyntaxPugin plugin)
{
_plugin = plugin;
***************
*** 22,26 ****
{
SyntaxPreferences prefs = (SyntaxPreferences) session.getPluginObject(_plugin, IConstants.ISessionKeys.PREFS);
! return new RSyntaxSQLEntryPanel(session, prefs, props);
}
}
--- 26,58 ----
{
SyntaxPreferences prefs = (SyntaxPreferences) session.getPluginObject(_plugin, IConstants.ISessionKeys.PREFS);
!
! ArrayList<RSyntaxSQLEntryPanel> sqlEntryPanels = _rSyntaxSQLEntryPanelsBySessionID.get(session.getIdentifier());
!
! if(null == sqlEntryPanels)
! {
! sqlEntryPanels = new ArrayList<RSyntaxSQLEntryPanel>();
! _rSyntaxSQLEntryPanelsBySessionID.put(session.getIdentifier(), sqlEntryPanels);
! }
!
! RSyntaxSQLEntryPanel ret = new RSyntaxSQLEntryPanel(session, prefs, props);
! sqlEntryPanels.add(ret);
!
! return ret;
}
+
+ public void sessionEnding(ISession session)
+ {
+ ArrayList<RSyntaxSQLEntryPanel> rSyntaxSQLEntryPanels = _rSyntaxSQLEntryPanelsBySessionID.remove(session.getIdentifier());
+
+ if(null == rSyntaxSQLEntryPanels)
+ {
+ return;
+ }
+
+ for (RSyntaxSQLEntryPanel rSyntaxSQLEntryPanel : rSyntaxSQLEntryPanels)
+ {
+ rSyntaxSQLEntryPanel.sessionEnding();
+ }
+
+ }
}
Index: SquirrelRSyntaxTextArea.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelRSyntaxTextArea.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** SquirrelRSyntaxTextArea.java 29 Nov 2009 21:17:53 -0000 1.1
--- SquirrelRSyntaxTextArea.java 30 Nov 2009 21:29:27 -0000 1.2
***************
*** 20,24 ****
--- 20,26 ----
import javax.swing.*;
import javax.swing.event.UndoableEditListener;
+ import javax.swing.event.ChangeListener;
import javax.swing.text.Document;
+ import javax.swing.text.DefaultCaret;
import java.awt.event.MouseEvent;
import java.awt.event.ActionEvent;
***************
*** 208,210 ****
--- 210,230 ----
_squirrelRSyntaxSearchEngine.goToLine();
}
+
+ public void sessionEnding()
+ {
+ ////////////////////////////////////////////
+ // Better GCing
+ getCaret().deinstall(this);
+ if(getCaret() instanceof DefaultCaret)
+ {
+ ChangeListener[] changeListeners = ((DefaultCaret) getCaret()).getChangeListeners();
+
+ for (ChangeListener changeListener : changeListeners)
+ {
+ getCaret().removeChangeListener(changeListener);
+ }
+ }
+ //
+ ////////////////////////////////////////////
+ }
}
|