modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/ColorPickerBehavior.java
Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
*** 1,7 ****
/*
! * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 23,40 ****
* questions.
*/
package com.sun.javafx.scene.control.behavior;
- import static javafx.scene.input.KeyCode.*;
- import static javafx.scene.input.KeyEvent.*;
-
-
- import java.util.ArrayList;
- import java.util.List;
import javafx.scene.control.ColorPicker;
! import com.sun.javafx.scene.control.skin.ColorPickerSkin;
import javafx.scene.paint.Color;
public class ColorPickerBehavior extends ComboBoxBaseBehavior<Color> {
--- 23,34 ----
* questions.
*/
package com.sun.javafx.scene.control.behavior;
import javafx.scene.control.ColorPicker;
! import javafx.scene.control.PopupControl;
import javafx.scene.paint.Color;
public class ColorPickerBehavior extends ComboBoxBaseBehavior<Color> {
*** 46,106 ****
/**
*
*/
public ColorPickerBehavior(final ColorPicker colorPicker) {
! super(colorPicker, COLOR_PICKER_BINDINGS);
! }
!
! /***************************************************************************
! * *
! * Key event handling *
! * *
! **************************************************************************/
!
! /**
! * Opens the Color Picker Palette.
! */
! protected static final String OPEN_ACTION = "Open";
!
! /**
! * Closes the Color Picker Palette.
! */
! protected static final String CLOSE_ACTION = "Close";
!
!
! protected static final List<KeyBinding> COLOR_PICKER_BINDINGS = new ArrayList<KeyBinding>();
! static {
! // COLOR_PICKER_BINDINGS.addAll(COMBO_BOX_BASE_BINDINGS);
! COLOR_PICKER_BINDINGS.add(new KeyBinding(ESCAPE, KEY_PRESSED, CLOSE_ACTION));
! COLOR_PICKER_BINDINGS.add(new KeyBinding(SPACE, KEY_PRESSED, OPEN_ACTION));
! COLOR_PICKER_BINDINGS.add(new KeyBinding(ENTER, KEY_PRESSED, OPEN_ACTION));
!
! }
!
! @Override protected void callAction(String name) {
! if (OPEN_ACTION.equals(name)) {
! show();
! } else if(CLOSE_ACTION.equals(name)) {
! hide();
! }
! else super.callAction(name);
}
/**************************************************************************
* *
* Mouse Events *
* *
*************************************************************************/
! @Override public void onAutoHide() {
// when we click on some non interactive part of the
// Color Palette - we do not want to hide.
! ColorPicker colorPicker = (ColorPicker)getControl();
! ColorPickerSkin cpSkin = (ColorPickerSkin)colorPicker.getSkin();
! cpSkin.syncWithAutoUpdate();
// if the ColorPicker is no longer showing, then invoke the super method
// to keep its show/hide state in sync.
! if (!colorPicker.isShowing()) super.onAutoHide();
}
}
--- 40,69 ----
/**
*
*/
public ColorPickerBehavior(final ColorPicker colorPicker) {
! super(colorPicker);
}
/**************************************************************************
* *
* Mouse Events *
* *
*************************************************************************/
! @Override public void onAutoHide(PopupControl popup) {
// when we click on some non interactive part of the
// Color Palette - we do not want to hide.
! if (!popup.isShowing() && getNode().isShowing()) {
! // Popup was dismissed. Maybe user clicked outside or typed ESCAPE.
! // Make sure DatePicker button is in sync.
! getNode().hide();
! }
// if the ColorPicker is no longer showing, then invoke the super method
// to keep its show/hide state in sync.
! if (!getNode().isShowing()) {
! super.onAutoHide(popup);
! }
}
}