modules/javafx.controls/src/main/java/javafx/scene/control/skin/MenuButtonSkinBase.java

Print this page




 199      **************************************************************************/
 200 
 201     /** {@inheritDoc} */
 202     @Override public void dispose() {
 203         getSkinnable().getItems().removeListener(itemsChangedListener);
 204         super.dispose();
 205         if (popup != null ) {
 206             if (popup.getSkin() != null && popup.getSkin().getNode() != null) {
 207                 ContextMenuContent cmContent = (ContextMenuContent)popup.getSkin().getNode();
 208                 cmContent.dispose();
 209             }
 210             popup.setSkin(null);
 211             popup = null;
 212         }
 213     }
 214 
 215     /** {@inheritDoc} */
 216     @Override protected double computeMinWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset) {
 217         return leftInset
 218                 + label.minWidth(height)
 219                 + snapSize(arrowButton.minWidth(height))
 220                 + rightInset;
 221     }
 222 
 223     /** {@inheritDoc} */
 224     @Override protected double computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
 225         return topInset
 226                 + Math.max(label.minHeight(width), snapSize(arrowButton.minHeight(-1)))
 227                 + bottomInset;
 228     }
 229 
 230     /** {@inheritDoc} */
 231     @Override protected double computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset) {
 232         return leftInset
 233                 + label.prefWidth(height)
 234                 + snapSize(arrowButton.prefWidth(height))
 235                 + rightInset;
 236     }
 237 
 238     /** {@inheritDoc} */
 239     @Override protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
 240         return topInset
 241                 + Math.max(label.prefHeight(width), snapSize(arrowButton.prefHeight(-1)))
 242                 + bottomInset;
 243     }
 244 
 245     /** {@inheritDoc} */
 246     @Override protected double computeMaxWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset) {
 247         return getSkinnable().prefWidth(height);
 248     }
 249 
 250     /** {@inheritDoc} */
 251     @Override protected double computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
 252         return getSkinnable().prefHeight(width);
 253     }
 254 
 255     /** {@inheritDoc} */
 256     @Override protected void layoutChildren(final double x, final double y,
 257                                             final double w, final double h) {
 258         final double arrowButtonWidth = snapSize(arrowButton.prefWidth(-1));
 259         label.resizeRelocate(x, y, w - arrowButtonWidth, h);
 260         arrowButton.resizeRelocate(x + (w - arrowButtonWidth), y, arrowButtonWidth, h);
 261     }
 262 
 263 
 264 
 265     /***************************************************************************
 266      *                                                                         *
 267      * Private implementation                                                  *
 268      *                                                                         *
 269      **************************************************************************/
 270 
 271     MenuButtonBehaviorBase<C> getBehavior() {
 272         return null;
 273     }
 274 
 275     private void show() {
 276         if (!popup.isShowing()) {
 277             popup.show(getSkinnable(), getSkinnable().getPopupSide(), 0, 0);
 278         }




 199      **************************************************************************/
 200 
 201     /** {@inheritDoc} */
 202     @Override public void dispose() {
 203         getSkinnable().getItems().removeListener(itemsChangedListener);
 204         super.dispose();
 205         if (popup != null ) {
 206             if (popup.getSkin() != null && popup.getSkin().getNode() != null) {
 207                 ContextMenuContent cmContent = (ContextMenuContent)popup.getSkin().getNode();
 208                 cmContent.dispose();
 209             }
 210             popup.setSkin(null);
 211             popup = null;
 212         }
 213     }
 214 
 215     /** {@inheritDoc} */
 216     @Override protected double computeMinWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset) {
 217         return leftInset
 218                 + label.minWidth(height)
 219                 + snapSizeX(arrowButton.minWidth(height))
 220                 + rightInset;
 221     }
 222 
 223     /** {@inheritDoc} */
 224     @Override protected double computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
 225         return topInset
 226                 + Math.max(label.minHeight(width), snapSizeY(arrowButton.minHeight(-1)))
 227                 + bottomInset;
 228     }
 229 
 230     /** {@inheritDoc} */
 231     @Override protected double computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset) {
 232         return leftInset
 233                 + label.prefWidth(height)
 234                 + snapSizeX(arrowButton.prefWidth(height))
 235                 + rightInset;
 236     }
 237 
 238     /** {@inheritDoc} */
 239     @Override protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
 240         return topInset
 241                 + Math.max(label.prefHeight(width), snapSizeY(arrowButton.prefHeight(-1)))
 242                 + bottomInset;
 243     }
 244 
 245     /** {@inheritDoc} */
 246     @Override protected double computeMaxWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset) {
 247         return getSkinnable().prefWidth(height);
 248     }
 249 
 250     /** {@inheritDoc} */
 251     @Override protected double computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
 252         return getSkinnable().prefHeight(width);
 253     }
 254 
 255     /** {@inheritDoc} */
 256     @Override protected void layoutChildren(final double x, final double y,
 257                                             final double w, final double h) {
 258         final double arrowButtonWidth = snapSizeX(arrowButton.prefWidth(-1));
 259         label.resizeRelocate(x, y, w - arrowButtonWidth, h);
 260         arrowButton.resizeRelocate(x + (w - arrowButtonWidth), y, arrowButtonWidth, h);
 261     }
 262 
 263 
 264 
 265     /***************************************************************************
 266      *                                                                         *
 267      * Private implementation                                                  *
 268      *                                                                         *
 269      **************************************************************************/
 270 
 271     MenuButtonBehaviorBase<C> getBehavior() {
 272         return null;
 273     }
 274 
 275     private void show() {
 276         if (!popup.isShowing()) {
 277             popup.show(getSkinnable(), getSkinnable().getPopupSide(), 0, 0);
 278         }