[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool PencilTool.java,1.18,1.19
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2005-09-14 14:02:21
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24941/tool Modified Files: PencilTool.java Log Message: added length field Index: PencilTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/PencilTool.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** PencilTool.java 14 Sep 2005 07:03:44 -0000 1.18 --- PencilTool.java 14 Sep 2005 14:02:13 -0000 1.19 *************** *** 8,11 **** --- 8,12 ---- import java.awt.event.MouseEvent; + import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; *************** *** 41,45 **** /** The active */ protected Edge active = null; ! /** The from */ protected Vertex from = null; --- 42,46 ---- /** The active */ protected Edge active = null; ! /** The from */ protected Vertex from = null; *************** *** 65,68 **** --- 66,72 ---- protected List edges = null; + /** The wanted length of the previous edge */ + private String number = ""; + /** * Constructor *************** *** 128,131 **** --- 132,137 ---- System.out.println(vertex); setAlignVertex(vertex); + number = ""; + if (active == null) { edges = new ArrayList(); *************** *** 149,153 **** active.setTo(vertex); intern(active); ! from = vertex; active = new Edge("E" + edgeNum++, from, to); --- 155,159 ---- active.setTo(vertex); intern(active); ! from = vertex; active = new Edge("E" + edgeNum++, from, to); *************** *** 316,319 **** --- 322,330 ---- findVertex(e); + /** Show the length of the active edge */ + if (active != null) { + glv.setLength(active.getLength()); + } + if (to != null) { to.setX(current.getX()); *************** *** 342,345 **** --- 353,453 ---- View v = glv.getView(); } + + /** + * Invoked when a key has been pressed. Lets user delete what is selected. + * @param e The KeyEvent + */ + public void keyPressed(KeyEvent e) { + boolean changed = false; + if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { + Iterator it = edges.iterator(); + while (it.hasNext()) { + Edge edge = (Edge)it.next(); + deleteEdge(edge); + } + edges = null; + active = null; + glv.getView().setActiveEdge(null); + from = null; + to = null; + setAlignVertex(null); + glv.getView().setSnapVertex(null); + exterior = null; + } else if (e.getKeyCode() == KeyEvent.VK_1) { + number += "1"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_2) { + number += "2"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_3) { + number += "3"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_4) { + number += "4"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_5) { + number += "5"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_6) { + number += "6"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_7) { + number += "7"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_8) { + number += "8"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_9) { + number += "9"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_0) { + number += "0"; + changed = true; + log.info(number); + } else if (e.getKeyCode() == KeyEvent.VK_ENTER) { + try { + if (active != null) { + double d = Double.parseDouble(number); + active.setLength(d); + current.setX(to.getX()); + current.setY(to.getY()); + current.setZ(to.getZ()); + onVertex(current); + glv.repaint(); + } + } catch (NumberFormatException exp) { + log.warn(exp); + } + } else if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) { + int length = number.length(); + if (length > 0) { + number = number.substring(0, length - 1); + } else { + number = String.valueOf(0); + } + changed = true; + } else { + super.keyPressed(e); + } + if (changed) { + try { + if (active != null) { + double d = Double.parseDouble(number); + glv.setLength(d); + } + } catch (NumberFormatException exp) { + log.warn(exp); + } + } + } /** |