/* * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.javafx.scene.control.skin; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ObjectPropertyBase; import javafx.beans.property.SimpleObjectProperty; import javafx.geometry.NodeOrientation; import javafx.scene.Node; import javafx.scene.control.*; import javafx.event.EventHandler; import javafx.scene.control.Control; import javafx.scene.input.KeyEvent; public class FXVK extends Control { public enum Type { TEXT, NUMERIC, EMAIL, } private final ObjectProperty> onAction = new SimpleObjectProperty>(this, "onAction"); public final void setOnAction(EventHandler value) { onAction.set(value); } public final EventHandler getOnAction() { return onAction.get(); } public final ObjectProperty> onActionProperty() { return onAction; } final static String[] VK_TYPE_NAMES = new String[] { "text", "numeric", "url", "email" }; public final static String VK_TYPE_PROP_KEY = "vkType"; String[] chars; public FXVK() { setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT); getStyleClass().add(DEFAULT_STYLE_CLASS); } final ObjectProperty attachedNodeProperty() { if (attachedNode == null) { attachedNode = new ObjectPropertyBase() { @Override public Object getBean() { return FXVK.this; } @Override public String getName() { return "attachedNode"; } }; } return attachedNode; } private ObjectProperty attachedNode; final void setAttachedNode(Node value) { attachedNodeProperty().setValue(value); } final Node getAttachedNode() { return attachedNode == null ? null : attachedNode.getValue(); } static FXVK vk; public static void init(Node textInput) { if (vk != null) return; vk = new FXVK(); FXVKSkin vkskin = new FXVKSkin(vk); vk.setSkin(vkskin); vkskin.prerender(textInput); } public static void attach(final Node textInput) { if (vk == null) { vk = new FXVK(); vk.setSkin(new FXVKSkin(vk)); } vk.setAttachedNode(textInput); } public static void detach() { if (vk != null) { vk.setAttachedNode(null); } } /*************************************************************************** * * * Methods * * * **************************************************************************/ /** {@inheritDoc} */ @Override protected Skin createDefaultSkin() { return new FXVKSkin(this); } /*************************************************************************** * * * Stylesheet Handling * * * **************************************************************************/ private static final String DEFAULT_STYLE_CLASS = "fxvk"; }