View Javadoc
1   /*
2    * Tethys: GUI Utilities
3    * Copyright 2012-2026. Tony Washer
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6    * use this file except in compliance with the License.  You may obtain a copy
7    * of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
14   * License for the specific language governing permissions and limitations under
15   * the License.
16   */
17  package io.github.tonywasher.joceanus.tethys.javafx.base;
18  
19  import javafx.scene.Node;
20  import javafx.scene.image.Image;
21  import javafx.scene.image.ImageView;
22  
23  import io.github.tonywasher.joceanus.tethys.api.base.TethysUIIcon;
24  
25  /**
26   * javaFX Icon.
27   */
28  public class TethysUIFXIcon
29          implements TethysUIIcon {
30      /**
31       * The icon.
32       */
33      private final Node theIcon;
34  
35      /**
36       * Constructor.
37       *
38       * @param pIcon the icon
39       */
40      TethysUIFXIcon(final Node pIcon) {
41          theIcon = pIcon;
42      }
43  
44      /**
45       * Obtain the icon that this represents.
46       *
47       * @return the icon
48       */
49      public Node getIcon() {
50          return theIcon;
51      }
52  
53      /**
54       * Obtain the icon that this represents.
55       *
56       * @return the icon
57       */
58      public Image getImage() {
59          return theIcon instanceof ImageView myView
60                  ? myView.getImage()
61                  : null;
62      }
63  
64      /**
65       * Obtain the icon that this represents.
66       *
67       * @return the icon
68       */
69      ImageView getImageView() {
70          return theIcon instanceof ImageView myView
71                  ? myView
72                  : null;
73      }
74  
75      /**
76       * Obtain the icon.
77       *
78       * @param pIcon the Tethys icon
79       * @return the javaFX icon.
80       */
81      public static Node getIcon(final TethysUIIcon pIcon) {
82          return pIcon == null
83                  ? null
84                  : ((TethysUIFXIcon) pIcon).getIcon();
85      }
86  }