~ubuntu-branches/debian/stretch/insubstantial/stretch

« back to all changes in this revision

Viewing changes to laf-widget/src/main/java/org/pushingpixels/lafwidget/LafWidgetUtilities2.java

  • Committer: Package Import Robot
  • Author(s): Felix Natter
  • Date: 2016-01-18 20:58:45 UTC
  • Revision ID: package-import@ubuntu.com-20160118205845-crbmrkda61qsi5qa
Tags: upstream-7.3+dfsg2
ImportĀ upstreamĀ versionĀ 7.3+dfsg2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2005-2010 Laf-Widget Kirill Grouchnikov. All Rights Reserved.
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions are met:
 
6
 *
 
7
 *  o Redistributions of source code must retain the above copyright notice,
 
8
 *    this list of conditions and the following disclaimer.
 
9
 *
 
10
 *  o Redistributions in binary form must reproduce the above copyright notice,
 
11
 *    this list of conditions and the following disclaimer in the documentation
 
12
 *    and/or other materials provided with the distribution.
 
13
 *
 
14
 *  o Neither the name of Laf-Widget Kirill Grouchnikov nor the names of
 
15
 *    its contributors may be used to endorse or promote products derived
 
16
 *    from this software without specific prior written permission.
 
17
 *
 
18
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 
19
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 
20
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
21
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 
22
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
23
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
24
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 
25
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 
26
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 
27
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 
28
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
 */
 
30
package org.pushingpixels.lafwidget;
 
31
 
 
32
import java.awt.Component;
 
33
import java.awt.Container;
 
34
 
 
35
import javax.swing.JComponent;
 
36
import javax.swing.JPasswordField;
 
37
import javax.swing.JTabbedPane;
 
38
import javax.swing.UIManager;
 
39
 
 
40
import org.pushingpixels.lafwidget.preview.PreviewPainter;
 
41
import org.pushingpixels.lafwidget.tabbed.TabPreviewPainter;
 
42
import org.pushingpixels.lafwidget.text.PasswordStrengthChecker;
 
43
 
 
44
/**
 
45
 * Various utility functions.
 
46
 * 
 
47
 * @author Kirill Grouchnikov
 
48
 * @author Romain Guy
 
49
 */
 
50
public class LafWidgetUtilities2 {
 
51
        /**
 
52
         * Private constructor. Is here to enforce using static methods only.
 
53
         */
 
54
        private LafWidgetUtilities2() {
 
55
        }
 
56
 
 
57
        /**
 
58
         * Returns the preview painter for the specified tabbed pane.
 
59
         * 
 
60
         * @param tabbedPane
 
61
         *            Tabbed pane.
 
62
         * @return Preview painter for the specified tabbed pane.
 
63
         */
 
64
        public static TabPreviewPainter getTabPreviewPainter(JTabbedPane tabbedPane) {
 
65
                if (tabbedPane == null)
 
66
                        return null;
 
67
 
 
68
                // check property on tabbed pane
 
69
                Object tabProp = tabbedPane
 
70
                                .getClientProperty(LafWidget.TABBED_PANE_PREVIEW_PAINTER);
 
71
                if (tabProp instanceof TabPreviewPainter)
 
72
                        return (TabPreviewPainter) tabProp;
 
73
 
 
74
                return null;
 
75
        }
 
76
 
 
77
        /**
 
78
         * Returns the preview painter for the specified component.
 
79
         * 
 
80
         * @param comp
 
81
         *            Component.
 
82
         * @return Preview painter for the specified component.
 
83
         * @since 2.1
 
84
         */
 
85
        public static PreviewPainter getComponentPreviewPainter(Component comp) {
 
86
                if (comp == null)
 
87
                        return null;
 
88
 
 
89
                // check property on component
 
90
                if (comp instanceof JComponent) {
 
91
                        Object compProp = ((JComponent) comp)
 
92
                                        .getClientProperty(LafWidget.COMPONENT_PREVIEW_PAINTER);
 
93
                        if (compProp instanceof PreviewPainter)
 
94
                                return (PreviewPainter) compProp;
 
95
                }
 
96
 
 
97
                // check property on parent
 
98
                Container parent = comp.getParent();
 
99
                if (parent instanceof JComponent) {
 
100
                        Object parentProp = ((JComponent) parent)
 
101
                                        .getClientProperty(LafWidget.COMPONENT_PREVIEW_PAINTER);
 
102
                        if (parentProp instanceof PreviewPainter)
 
103
                                return (PreviewPainter) parentProp;
 
104
                }
 
105
 
 
106
                Object globProp = UIManager.get(LafWidget.COMPONENT_PREVIEW_PAINTER);
 
107
                if (globProp instanceof PreviewPainter)
 
108
                        return (PreviewPainter) globProp;
 
109
 
 
110
                return null;
 
111
        }
 
112
 
 
113
        /**
 
114
         * Returns the password strength checker for the specified password field.
 
115
         * 
 
116
         * @param jpf
 
117
         *            Password field.
 
118
         * @return Password strength checker for the specified password field. The
 
119
         *         result can be <code>null</code>.
 
120
         */
 
121
        public static PasswordStrengthChecker getPasswordStrengthChecker(
 
122
                        JPasswordField jpf) {
 
123
                Object obj = jpf.getClientProperty(LafWidget.PASSWORD_STRENGTH_CHECKER);
 
124
                if ((obj != null) && (obj instanceof PasswordStrengthChecker))
 
125
                        return (PasswordStrengthChecker) obj;
 
126
                return null;
 
127
        }
 
128
}