Nodes.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:WellBehavedFX 作者:
/**
 *
 * @param node
 */
private static void init(Node node) {
    if(node.getProperties().get(P_INPUTMAP) == null) {

        node.getProperties().put(P_INPUTMAP, InputMap.empty());
        node.getProperties().put(P_HANDLERS, new ArrayList<Map.Entry<?, ?>>());

        MapChangeListener<Object, Object> listener = ch -> {
            if(!P_INPUTMAP.equals(ch.getKey())) {
                return;
            }

            getHandlers(node).forEach(entry -> {
                node.removeEventHandler((EventType<Event>) entry.getKey(), (EventHandler<Event>) entry.getValue());
            });

            getHandlers(node).clear();

            InputMap<?> inputMap = (InputMap<?>) ch.getValueAdded();
            inputMap.forEachEventType(new HandlerConsumer<Event>() {

                @Override
                public <E extends Event> void accept(
                        EventType<? extends E> t, InputHandler<? super E> h) {
                    node.addEventHandler(t, h);
                    getHandlers(node).add(new SimpleEntry<>(t, h));
                }});
        };
        node.getProperties().addListener(listener);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号