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);
+ }
+ }
+ }
/**
|