Revision: 6080
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6080&view=rev
Author: gerdwagner
Date: 2010-12-30 00:46:59 +0000 (Thu, 30 Dec 2010)
Log Message:
-----------
Refined: Gave dragging a bit of tolerance before it removes table multi selection
Modified Paths:
--------------
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopManager.java
Added Paths:
-----------
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GroupDissolveChecker.java
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopManager.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopManager.java 2010-12-30 00:36:19 UTC (rev 6079)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopManager.java 2010-12-30 00:46:59 UTC (rev 6080)
@@ -4,15 +4,15 @@
import java.util.*;
import java.util.List;
-import javax.swing.DefaultDesktopManager;
-import javax.swing.JComponent;
-import javax.swing.JInternalFrame;
+import javax.swing.*;
public class GraphDesktopManager extends DefaultDesktopManager
{
private GraphDesktopPane _graphDesktopPane;
private HashSet<FoldingPoint> _uniqueFoldingPointsBuffer = new HashSet<FoldingPoint>();
+ private GroupDissolveChecker _groupDissolveChecker = new GroupDissolveChecker();
+
public GraphDesktopManager(GraphDesktopPane graphDesktopPane)
{
_graphDesktopPane = graphDesktopPane;
@@ -32,7 +32,7 @@
correctX = f.getX() + correctDelta.x;
correctY = f.getY() + correctDelta.y;
- tolerantlyCheckGroupDissolve(tf, correctDelta);
+ _groupDissolveChecker.tolerantlyCheckGroupDissolve(tf, correctDelta, _graphDesktopPane);
for (TableFrame current : _graphDesktopPane.getGroupFrames())
{
@@ -49,20 +49,6 @@
_graphDesktopPane.repaint(); // Needed in case tables are moved that don't have any constraints.
}
- private void tolerantlyCheckGroupDissolve(TableFrame tf, Point correctDelta)
- {
- double tolerance = 0.005;
-
- if ( ((double)correctDelta.x) / ((_graphDesktopPane.getWidth())) > tolerance
- || ((double)correctDelta.y) / ((_graphDesktopPane.getHeight())) > tolerance)
- {
- if (!_graphDesktopPane.isGroupFrame(tf))
- {
- _graphDesktopPane.setGroupFrame(tf);
- }
- }
- }
-
private void moveFoldingPoints(List<TableFrame> movedTableFrames, Point delta)
{
for (TableFrame f1 : movedTableFrames)
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GroupDissolveChecker.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GroupDissolveChecker.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GroupDissolveChecker.java 2010-12-30 00:46:59 UTC (rev 6080)
@@ -0,0 +1,54 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+public class GroupDissolveChecker
+{
+ private Timer _timer;
+
+ public GroupDissolveChecker()
+ {
+ _timer = new Timer(100, new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+
+ }
+ });
+
+ _timer.setRepeats(false);
+ }
+
+ void tolerantlyCheckGroupDissolve(TableFrame tf, Point correctDelta, GraphDesktopPane graphDesktopPane)
+ {
+ if(_timer.isRunning())
+ {
+ checkDissolve(tf, graphDesktopPane);
+ return;
+ }
+ else
+ {
+ _timer.start();
+ }
+
+ double tolerance = 0.005;
+
+ if ( ((double)correctDelta.x) / ((graphDesktopPane.getWidth())) > tolerance
+ || ((double)correctDelta.y) / ((graphDesktopPane.getHeight())) > tolerance)
+ {
+ checkDissolve(tf, graphDesktopPane);
+ }
+ }
+
+ private void checkDissolve(TableFrame tf, GraphDesktopPane graphDesktopPane)
+ {
+ if (!graphDesktopPane.isGroupFrame(tf))
+ {
+ graphDesktopPane.setGroupFrame(tf);
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|