[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/view View.java, 1.221, 1.222
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2007-07-09 13:34:05
|
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; } } |