Revision: 532
Author: allain.lalonde
Date: Mon Jul 20 19:57:42 2009
Log: Fixed Issue 71; made resulting PStyledText take the camera's scale  
into account. Also, made right click call stopEditing, so that the input  
field was always the same size as the resulting text would be, was weird  
otherwise
http://code.google.com/p/piccolo2d/source/detail?r=532

Modified:
   
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/event/PStyledTextEventHandler.java

=======================================
---  
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/event/PStyledTextEventHandler.java
        
Fri Jan 23 12:29:37 2009
+++  
/piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/event/PStyledTextEventHandler.java
        
Mon Jul 20 19:57:42 2009
@@ -57,6 +57,7 @@
  import edu.umd.cs.piccolo.PNode;
  import edu.umd.cs.piccolo.event.PBasicInputEventHandler;
  import edu.umd.cs.piccolo.event.PInputEvent;
+import edu.umd.cs.piccolo.event.PInputEventFilter;
  import edu.umd.cs.piccolox.nodes.PStyledText;

  /**
@@ -78,6 +79,9 @@
      public PStyledTextEventHandler(PCanvas canvas) {
          super();

+        PInputEventFilter filter = new PInputEventFilter();
+        filter.setOrMask(InputEvent.BUTTON1_MASK |  
InputEvent.BUTTON3_MASK);
+        this.setEventFilter(filter);
          this.canvas = canvas;
          initEditor(createDefaultEditor());
      }
@@ -166,7 +170,11 @@
      public void mousePressed(PInputEvent inputEvent) {
          PNode pickedNode = inputEvent.getPickedNode();

-        stopEditing();
+        stopEditing(inputEvent);
+
+        if (inputEvent.getButton() != MouseEvent.BUTTON1) {
+            return;
+        }

          if (pickedNode instanceof PStyledText) {
              startEditing(inputEvent, (PStyledText) pickedNode);
@@ -204,23 +212,26 @@
          editedText = text;
      }

-    public void stopEditing() {
-        if (editedText != null) {
-            editedText.getDocument().removeDocumentListener(docListener);
-            editedText.setEditing(false);
-
-            if (editedText.getDocument().getLength() == 0) {
-                editedText.removeFromParent();
-            }
-            else {
-                editedText.syncWithDocument();
-            }
-
-            editor.setVisible(false);
-            canvas.repaint();
-
-            editedText = null;
-        }
+    public void stopEditing(PInputEvent event) {
+        if (editedText == null) {
+            return;
+        }
+
+        editedText.getDocument().removeDocumentListener(docListener);
+        editedText.setEditing(false);
+
+        if (editedText.getDocument().getLength() == 0) {
+            editedText.removeFromParent();
+        }
+        else {
+            editedText.syncWithDocument();
+        }
+
+        editedText.setScale(1.0 / event.getCamera().getViewScale());
+        editor.setVisible(false);
+        canvas.repaint();
+
+        editedText = null;
      }

      public void dispatchEventToEditor(final PInputEvent e) {

--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to