Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv31443/src/net/sourceforge/bprocessor/gl/view
Modified Files:
View.java
Log Message:
Delay to allow double clicking a surface
Index: View.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view/View.java,v
retrieving revision 1.221
retrieving revision 1.222
diff -C2 -d -r1.221 -r1.222
*** View.java 28 Jun 2007 00:04:59 -0000 1.221
--- View.java 9 Jul 2007 13:30:40 -0000 1.222
***************
*** 8,11 ****
--- 8,12 ----
import net.sourceforge.bprocessor.gl.GLView;
+ import net.sourceforge.bprocessor.gl.tool.AbstractTool;
import net.sourceforge.bprocessor.gl.tool.SpaceTool;
import net.sourceforge.bprocessor.gl.model.EdgeAttributes;
***************
*** 52,55 ****
--- 53,58 ----
import java.awt.Toolkit;
+ import java.awt.event.ActionEvent;
+ import java.awt.event.ActionListener;
import java.nio.IntBuffer;
***************
*** 63,66 ****
--- 66,70 ----
import javax.media.opengl.glu.GLUtessellatorCallback;
import javax.media.opengl.glu.GLUtessellatorCallbackAdapter;
+ import javax.swing.Timer;
import org.apache.log4j.Logger;
***************
*** 301,304 ****
--- 305,314 ----
private EdgeAttributes currentEdgeAttributes;
+
+ /**
+ * Currently labeled surface
+ */
+ private Surface labelSurface;
+
/**
* Keeps track of the current stippling
***************
*** 378,381 ****
--- 388,393 ----
private List<Integer> deletedLists = new LinkedList<Integer>();
+
+ private Timer tickler;
private boolean debug = false;
***************
*** 492,496 ****
edgeStyleMap = new HashMap<Edge, EdgeAttributes>();
glObjects3D = new HashSet<GlObject>();
! widgets = new LinkedList<Widget>();
}
--- 504,514 ----
edgeStyleMap = new HashMap<Edge, EdgeAttributes>();
glObjects3D = new HashSet<GlObject>();
! widgets = new LinkedList<Widget>();
! tickler = new Timer(300, new ActionListener() {
! public void actionPerformed(ActionEvent e) {
! View.this.glv.repaint();
! }
! });
! tickler.setRepeats(false);
}
***************
*** 1914,1926 ****
*/
void labelSelection(boolean clickable) {
! Collection selection = Selection.primary();
if (selection.size() == 1) {
! Iterator iter = selection.iterator();
! while (iter.hasNext()) {
! Object current = iter.next();
! if (current instanceof Surface) {
! labelSurface((Surface) current, clickable);
}
}
}
}
--- 1932,1959 ----
*/
void labelSelection(boolean clickable) {
! Collection<Geometric> selection = Selection.primary();
if (selection.size() == 1) {
! Geometric candidate = selection.iterator().next();
! if (candidate instanceof Surface) {
! long time = System.currentTimeMillis();
! long elapsed = time - AbstractTool.getPressedTime();
! long delay = 0;
! if (labelSurface == null) {
! delay = 120;
}
+ if (elapsed >= delay) {
+ labelSurface = (Surface) candidate;
+ labelSurface(labelSurface, clickable);
+ } else {
+ int when = (int) (delay - elapsed);
+ tickler.stop();
+ tickler.setDelay(when);
+ tickler.start();
+ }
+ } else {
+ labelSurface = null;
}
+ } else {
+ labelSurface = null;
}
}
|