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

« back to all changes in this revision

Viewing changes to substance/src/tools/java/tools/uidebug/ScrollBarUiDebugger.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
package tools.uidebug;
 
2
 
 
3
import java.awt.event.*;
 
4
 
 
5
import javax.swing.*;
 
6
 
 
7
import org.pushingpixels.lafwidget.LafWidgetAdapter;
 
8
import org.pushingpixels.substance.api.SubstanceLookAndFeel;
 
9
import org.pushingpixels.substance.api.SubstanceConstants.ScrollPaneButtonPolicyKind;
 
10
 
 
11
public class ScrollBarUiDebugger extends LafWidgetAdapter<JScrollBar> {
 
12
        protected MouseListener substanceDebugUiListener;
 
13
 
 
14
        @Override
 
15
        public boolean requiresCustomLafSupport() {
 
16
                return false;
 
17
        }
 
18
 
 
19
        @Override
 
20
        public void installListeners() {
 
21
 
 
22
                this.substanceDebugUiListener = new MouseAdapter() {
 
23
                        @Override
 
24
                        public void mousePressed(MouseEvent e) {
 
25
                                this.process(e);
 
26
                        }
 
27
 
 
28
                        @Override
 
29
                        public void mouseReleased(MouseEvent e) {
 
30
                                this.process(e);
 
31
                        }
 
32
 
 
33
                        protected void process(MouseEvent e) {
 
34
                                if (e.isPopupTrigger()) {
 
35
                                        JPopupMenu popup = new JPopupMenu();
 
36
                                        JMenuItem policyNone = new JMenuItem("Empty policy");
 
37
                                        policyNone.addActionListener(new PolicyChanger(
 
38
                                                        ScrollPaneButtonPolicyKind.NONE));
 
39
                                        popup.add(policyNone);
 
40
                                        JMenuItem policyOpposite = new JMenuItem("Opposite policy");
 
41
                                        policyOpposite.addActionListener(new PolicyChanger(
 
42
                                                        ScrollPaneButtonPolicyKind.OPPOSITE));
 
43
                                        popup.add(policyOpposite);
 
44
                                        JMenuItem policyAdjacent = new JMenuItem("Adjacent policy");
 
45
                                        policyAdjacent.addActionListener(new PolicyChanger(
 
46
                                                        ScrollPaneButtonPolicyKind.ADJACENT));
 
47
                                        popup.add(policyAdjacent);
 
48
                                        JMenuItem policyMultiple = new JMenuItem("Multiple policy");
 
49
                                        policyMultiple.addActionListener(new PolicyChanger(
 
50
                                                        ScrollPaneButtonPolicyKind.MULTIPLE));
 
51
                                        popup.add(policyMultiple);
 
52
                                        JMenuItem policyMultipleBoth = new JMenuItem(
 
53
                                                        "Multiple both policy");
 
54
                                        policyMultipleBoth.addActionListener(new PolicyChanger(
 
55
                                                        ScrollPaneButtonPolicyKind.MULTIPLE_BOTH));
 
56
                                        popup.add(policyMultipleBoth);
 
57
                                        popup.show(jcomp, e.getX(), e.getY());
 
58
                                }
 
59
                        }
 
60
                };
 
61
                this.jcomp.addMouseListener(this.substanceDebugUiListener);
 
62
        }
 
63
 
 
64
        @Override
 
65
        public void uninstallListeners() {
 
66
                if (this.substanceDebugUiListener != null) {
 
67
                        this.jcomp.removeMouseListener(this.substanceDebugUiListener);
 
68
                        this.substanceDebugUiListener = null;
 
69
                }
 
70
 
 
71
        }
 
72
 
 
73
        /**
 
74
         * Listener on policy change menu items in debug UI mode.
 
75
         * 
 
76
         * @author Kirill Grouchnikov
 
77
         */
 
78
        protected class PolicyChanger implements ActionListener {
 
79
                /**
 
80
                 * Policy to set.
 
81
                 */
 
82
                protected ScrollPaneButtonPolicyKind newPolicy;
 
83
 
 
84
                /**
 
85
                 * Creates a new policy change listener.
 
86
                 * 
 
87
                 * @param newPolicy
 
88
                 *            Policy to set.
 
89
                 */
 
90
                public PolicyChanger(ScrollPaneButtonPolicyKind newPolicy) {
 
91
                        super();
 
92
                        this.newPolicy = newPolicy;
 
93
                }
 
94
 
 
95
                /*
 
96
                 * (non-Javadoc)
 
97
                 * 
 
98
                 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
 
99
                 */
 
100
                @Override
 
101
        public void actionPerformed(ActionEvent e) {
 
102
                        SwingUtilities.invokeLater(new Runnable() {
 
103
                                @Override
 
104
                public void run() {
 
105
                                        ((JScrollPane) jcomp.getParent()).putClientProperty(
 
106
                                                        SubstanceLookAndFeel.SCROLL_PANE_BUTTONS_POLICY,
 
107
                                                        PolicyChanger.this.newPolicy);
 
108
                                        jcomp.getParent().doLayout();
 
109
                                        jcomp.getParent().repaint();
 
110
                                }
 
111
                        });
 
112
                }
 
113
        }
 
114
}