--- old/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TooltipSkin.java 2015-09-03 15:24:12.381066000 -0700 +++ /dev/null 2015-09-03 15:24:13.000000000 -0700 @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2011, 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 - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.javafx.scene.control.skin; - -import javafx.scene.Node; -import javafx.scene.control.Label; -import javafx.scene.control.Skin; -import javafx.scene.control.Tooltip; - -/** - * CSS based skin for Tooltip. It deals mostly with show hide logic for - * Popup based controls, and specifically in this case for tooltip. It also - * implements some of the Skin interface methods. - * - * TooltipContent class is the actual skin implementation of the tooltip. - */ -public class TooltipSkin implements Skin { - private Label tipLabel; - - private Tooltip tooltip; - - public TooltipSkin(Tooltip t) { - this.tooltip = t; - tipLabel = new Label(); - tipLabel.contentDisplayProperty().bind(t.contentDisplayProperty()); - tipLabel.fontProperty().bind(t.fontProperty()); - tipLabel.graphicProperty().bind(t.graphicProperty()); - tipLabel.graphicTextGapProperty().bind(t.graphicTextGapProperty()); - tipLabel.textAlignmentProperty().bind(t.textAlignmentProperty()); - tipLabel.textOverrunProperty().bind(t.textOverrunProperty()); - tipLabel.textProperty().bind(t.textProperty()); - tipLabel.wrapTextProperty().bind(t.wrapTextProperty()); - tipLabel.minWidthProperty().bind(t.minWidthProperty()); - tipLabel.prefWidthProperty().bind(t.prefWidthProperty()); - tipLabel.maxWidthProperty().bind(t.maxWidthProperty()); - tipLabel.minHeightProperty().bind(t.minHeightProperty()); - tipLabel.prefHeightProperty().bind(t.prefHeightProperty()); - tipLabel.maxHeightProperty().bind(t.maxHeightProperty()); - - // RT-7512 - skin needs to have styleClass of the control - // TODO - This needs to be bound together, not just set! Probably should - // do the same for id and style as well. - tipLabel.getStyleClass().setAll(t.getStyleClass()); - tipLabel.setStyle(t.getStyle()); - tipLabel.setId(t.getId()); - } - - @Override public Tooltip getSkinnable() { - return tooltip; - } - - @Override public Node getNode() { - return tipLabel; - } - - @Override public void dispose() { - tooltip = null; - tipLabel = null; - } -} --- /dev/null 2015-09-03 15:24:13.000000000 -0700 +++ new/modules/controls/src/main/java/javafx/scene/control/skin/TooltipSkin.java 2015-09-03 15:24:11.612022000 -0700 @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2011, 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 + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javafx.scene.control.skin; + +import javafx.scene.Node; +import javafx.scene.control.Label; +import javafx.scene.control.Skin; +import javafx.scene.control.Tooltip; + +/** + * CSS based skin for Tooltip. It deals mostly with show hide logic for + * Popup based controls, and specifically in this case for tooltip. It also + * implements some of the Skin interface methods. + * + * TooltipContent class is the actual skin implementation of the tooltip. + */ +public class TooltipSkin implements Skin { + + /*************************************************************************** + * * + * Private fields * + * * + **************************************************************************/ + + private Label tipLabel; + + private Tooltip tooltip; + + + + /*************************************************************************** + * * + * Constructors * + * * + **************************************************************************/ + + /** + * Creates a new TooltipSkin instance for the given {@link Tooltip}. + */ + public TooltipSkin(Tooltip t) { + this.tooltip = t; + tipLabel = new Label(); + tipLabel.contentDisplayProperty().bind(t.contentDisplayProperty()); + tipLabel.fontProperty().bind(t.fontProperty()); + tipLabel.graphicProperty().bind(t.graphicProperty()); + tipLabel.graphicTextGapProperty().bind(t.graphicTextGapProperty()); + tipLabel.textAlignmentProperty().bind(t.textAlignmentProperty()); + tipLabel.textOverrunProperty().bind(t.textOverrunProperty()); + tipLabel.textProperty().bind(t.textProperty()); + tipLabel.wrapTextProperty().bind(t.wrapTextProperty()); + tipLabel.minWidthProperty().bind(t.minWidthProperty()); + tipLabel.prefWidthProperty().bind(t.prefWidthProperty()); + tipLabel.maxWidthProperty().bind(t.maxWidthProperty()); + tipLabel.minHeightProperty().bind(t.minHeightProperty()); + tipLabel.prefHeightProperty().bind(t.prefHeightProperty()); + tipLabel.maxHeightProperty().bind(t.maxHeightProperty()); + + // RT-7512 - skin needs to have styleClass of the control + // TODO - This needs to be bound together, not just set! Probably should + // do the same for id and style as well. + tipLabel.getStyleClass().setAll(t.getStyleClass()); + tipLabel.setStyle(t.getStyle()); + tipLabel.setId(t.getId()); + } + + + + /*************************************************************************** + * * + * Public API * + * * + **************************************************************************/ + + /** {@inheritDoc} */ + @Override public Tooltip getSkinnable() { + return tooltip; + } + + /** {@inheritDoc} */ + @Override public Node getNode() { + return tipLabel; + } + + /** {@inheritDoc} */ + @Override public void dispose() { + tooltip = null; + tipLabel = null; + } +}