< prev index next >

modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java

Print this page




  33 import javafx.geometry.Bounds;
  34 import javafx.geometry.Point2D;
  35 import javafx.geometry.Rectangle2D;
  36 import javafx.scene.Node;
  37 import javafx.scene.Scene;
  38 import javafx.scene.control.ContextMenu;
  39 import javafx.scene.control.TextField;
  40 import javafx.scene.control.skin.TextFieldSkin;
  41 import com.sun.javafx.scene.control.skin.Utils;
  42 import javafx.scene.input.ContextMenuEvent;
  43 import javafx.scene.input.KeyEvent;
  44 import javafx.scene.input.MouseEvent;
  45 import javafx.scene.text.HitInfo;
  46 import javafx.stage.Screen;
  47 import javafx.stage.Window;
  48 import com.sun.javafx.PlatformUtil;
  49 import com.sun.javafx.geom.transform.Affine3D;
  50 
  51 import static com.sun.javafx.PlatformUtil.isMac;
  52 import static com.sun.javafx.PlatformUtil.isWindows;

  53 import com.sun.javafx.stage.WindowHelper;
  54 
  55 /**
  56  * Text field behavior.
  57  */
  58 public class TextFieldBehavior extends TextInputControlBehavior<TextField> {
  59     private TextFieldSkin skin;
  60     private TwoLevelFocusBehavior tlFocus;
  61     private ChangeListener<Scene> sceneListener;
  62     private ChangeListener<Node> focusOwnerListener;
  63 
  64     public TextFieldBehavior(final TextField textField) {
  65         super(textField);
  66 
  67         if (Properties.IS_TOUCH_SUPPORTED) {
  68             contextMenu.getStyleClass().add("text-input-context-menu");
  69         }
  70 
  71         handleFocusChange();
  72 


 145                         trans.getMxx(), trans.getMxy(), trans.getMxz(), trans.getMxt(),// + insets.getLeft(),
 146                         trans.getMyx(), trans.getMyy(), trans.getMyz(), trans.getMyt(),// + insets.getTop(),
 147                         trans.getMzx(), trans.getMzy(), trans.getMzz(), trans.getMzt());
 148             }
 149             if (!focusGainedByMouseClick) {
 150                 setCaretAnimating(true);
 151             }
 152         } else {
 153             if (PlatformUtil.isIOS() && textField.getScene() != null) {
 154                 // releasing the focus => we need to hide the native component and also native keyboard
 155                 WindowHelper.getPeer(textField.getScene().getWindow()).releaseInput();
 156             }
 157             focusGainedByMouseClick = false;
 158             setCaretAnimating(false);
 159         }
 160     }
 161 
 162     static Affine3D calculateNodeToSceneTransform(Node node) {
 163         final Affine3D transform = new Affine3D();
 164         do {
 165             transform.preConcatenate(node.impl_getLeafTransform());
 166             node = node.getParent();
 167         } while (node != null);
 168 
 169         return transform;
 170     }
 171 
 172     // An unholy back-reference!
 173     public void setTextFieldSkin(TextFieldSkin skin) {
 174         this.skin = skin;
 175     }
 176 
 177     @Override protected void fire(KeyEvent event) {
 178         TextField textField = getNode();
 179         EventHandler<ActionEvent> onAction = textField.getOnAction();
 180         ActionEvent actionEvent = new ActionEvent(textField, null);
 181 
 182         textField.fireEvent(actionEvent);
 183         textField.commitValue();
 184 
 185         if (onAction == null && !actionEvent.isConsumed()) {




  33 import javafx.geometry.Bounds;
  34 import javafx.geometry.Point2D;
  35 import javafx.geometry.Rectangle2D;
  36 import javafx.scene.Node;
  37 import javafx.scene.Scene;
  38 import javafx.scene.control.ContextMenu;
  39 import javafx.scene.control.TextField;
  40 import javafx.scene.control.skin.TextFieldSkin;
  41 import com.sun.javafx.scene.control.skin.Utils;
  42 import javafx.scene.input.ContextMenuEvent;
  43 import javafx.scene.input.KeyEvent;
  44 import javafx.scene.input.MouseEvent;
  45 import javafx.scene.text.HitInfo;
  46 import javafx.stage.Screen;
  47 import javafx.stage.Window;
  48 import com.sun.javafx.PlatformUtil;
  49 import com.sun.javafx.geom.transform.Affine3D;
  50 
  51 import static com.sun.javafx.PlatformUtil.isMac;
  52 import static com.sun.javafx.PlatformUtil.isWindows;
  53 import com.sun.javafx.scene.NodeHelper;
  54 import com.sun.javafx.stage.WindowHelper;
  55 
  56 /**
  57  * Text field behavior.
  58  */
  59 public class TextFieldBehavior extends TextInputControlBehavior<TextField> {
  60     private TextFieldSkin skin;
  61     private TwoLevelFocusBehavior tlFocus;
  62     private ChangeListener<Scene> sceneListener;
  63     private ChangeListener<Node> focusOwnerListener;
  64 
  65     public TextFieldBehavior(final TextField textField) {
  66         super(textField);
  67 
  68         if (Properties.IS_TOUCH_SUPPORTED) {
  69             contextMenu.getStyleClass().add("text-input-context-menu");
  70         }
  71 
  72         handleFocusChange();
  73 


 146                         trans.getMxx(), trans.getMxy(), trans.getMxz(), trans.getMxt(),// + insets.getLeft(),
 147                         trans.getMyx(), trans.getMyy(), trans.getMyz(), trans.getMyt(),// + insets.getTop(),
 148                         trans.getMzx(), trans.getMzy(), trans.getMzz(), trans.getMzt());
 149             }
 150             if (!focusGainedByMouseClick) {
 151                 setCaretAnimating(true);
 152             }
 153         } else {
 154             if (PlatformUtil.isIOS() && textField.getScene() != null) {
 155                 // releasing the focus => we need to hide the native component and also native keyboard
 156                 WindowHelper.getPeer(textField.getScene().getWindow()).releaseInput();
 157             }
 158             focusGainedByMouseClick = false;
 159             setCaretAnimating(false);
 160         }
 161     }
 162 
 163     static Affine3D calculateNodeToSceneTransform(Node node) {
 164         final Affine3D transform = new Affine3D();
 165         do {
 166             transform.preConcatenate(NodeHelper.getLeafTransform(node));
 167             node = node.getParent();
 168         } while (node != null);
 169 
 170         return transform;
 171     }
 172 
 173     // An unholy back-reference!
 174     public void setTextFieldSkin(TextFieldSkin skin) {
 175         this.skin = skin;
 176     }
 177 
 178     @Override protected void fire(KeyEvent event) {
 179         TextField textField = getNode();
 180         EventHandler<ActionEvent> onAction = textField.getOnAction();
 181         ActionEvent actionEvent = new ActionEvent(textField, null);
 182 
 183         textField.fireEvent(actionEvent);
 184         textField.commitValue();
 185 
 186         if (onAction == null && !actionEvent.isConsumed()) {


< prev index next >