diff options
Diffstat (limited to 'src/cppcheckplus/control/MyHeader.java')
-rw-r--r-- | src/cppcheckplus/control/MyHeader.java | 341 |
1 files changed, 163 insertions, 178 deletions
diff --git a/src/cppcheckplus/control/MyHeader.java b/src/cppcheckplus/control/MyHeader.java index 1b71704..2cd11b8 100644 --- a/src/cppcheckplus/control/MyHeader.java +++ b/src/cppcheckplus/control/MyHeader.java | |||
@@ -1,4 +1,3 @@ | |||
1 | |||
2 | package cppcheckplus.control; | 1 | package cppcheckplus.control; |
3 | 2 | ||
4 | import java.awt.BorderLayout; | 3 | import java.awt.BorderLayout; |
@@ -13,7 +12,6 @@ import java.awt.TexturePaint; | |||
13 | import java.awt.event.MouseAdapter; | 12 | import java.awt.event.MouseAdapter; |
14 | import java.awt.event.MouseEvent; | 13 | import java.awt.event.MouseEvent; |
15 | import java.awt.event.MouseListener; | 14 | import java.awt.event.MouseListener; |
16 | |||
17 | import javax.swing.BorderFactory; | 15 | import javax.swing.BorderFactory; |
18 | import javax.swing.ImageIcon; | 16 | import javax.swing.ImageIcon; |
19 | import javax.swing.JComponent; | 17 | import javax.swing.JComponent; |
@@ -22,180 +20,167 @@ import javax.swing.JPanel; | |||
22 | import javax.swing.border.Border; | 20 | import javax.swing.border.Border; |
23 | 21 | ||
24 | 22 | ||
25 | 23 | public class MyHeader extends JPanel { | |
26 | public class MyHeader extends JPanel | 24 | public static final ImageIcon RIGHT_ARROW_ICON = |
27 | { | 25 | MyContorlUtil.getImageIcon("control/images/shrink_handler_right.png"); |
28 | public static final ImageIcon RIGHT_ARROW_ICON = MyContorlUtil.getImageIcon("control/images/shrink_handler_right.png"); | 26 | public static final ImageIcon LEFT_ARROW_ICON = |
29 | public static final ImageIcon LEFT_ARROW_ICON = MyContorlUtil.getImageIcon("control/images/shrink_handler_left.png"); | 27 | MyContorlUtil.getImageIcon("control/images/shrink_handler_left.png"); |
30 | private Color titleColor; | 28 | private Color titleColor; |
31 | private boolean shrinked; | 29 | private boolean shrinked; |
32 | private ImageIcon backgroundImageIcon; | 30 | private ImageIcon backgroundImageIcon; |
33 | private Image backgroundLeftImage; | 31 | private Image backgroundLeftImage; |
34 | private Image backgroundRightImage; | 32 | private Image backgroundRightImage; |
35 | private TexturePaint paint; | 33 | private TexturePaint paint; |
36 | private int preferredHeight; | 34 | private int preferredHeight; |
37 | private JLabel lbResizeHandler; | 35 | private JLabel lbResizeHandler; |
38 | private JLabel lbShrinkHandler; | 36 | private JLabel lbShrinkHandler; |
39 | private JLabel lbTitle; | 37 | private JLabel lbTitle; |
40 | private int normalPreferredWidth; | 38 | private int normalPreferredWidth; |
41 | private MyListSplitListener splitListener; | 39 | private MyListSplitListener splitListener; |
42 | private MouseListener shrinkListener; | 40 | private MouseListener shrinkListener; |
43 | 41 | ||
44 | public MyHeader() | 42 | public MyHeader() { |
45 | { | 43 | super(); |
46 | super(); | 44 | titleColor = new Color(215, 215, 216); |
47 | titleColor = new Color(215, 215, 216); | 45 | shrinked = false; |
48 | shrinked = false; | 46 | backgroundImageIcon = |
49 | backgroundImageIcon = MyContorlUtil.getImageIcon("control/images/header_background.png"); | 47 | MyContorlUtil.getImageIcon("control/images/header_background.png"); |
50 | backgroundLeftImage = MyContorlUtil.getImage("control/images/header_background_left.png"); | 48 | backgroundLeftImage = |
51 | backgroundRightImage = MyContorlUtil.getImage("control/images/header_background_right.png"); | 49 | MyContorlUtil.getImage("control/images/header_background_left.png"); |
52 | paint = MyContorlUtil.createTexturePaint("control/images/header_background.png"); | 50 | backgroundRightImage = MyContorlUtil.getImage( |
53 | preferredHeight = backgroundImageIcon.getIconHeight(); | 51 | "control/images/header_background_right.png"); |
54 | lbResizeHandler = new JLabel(MyContorlUtil.getImageIcon("control/images/resize_handler.png")); | 52 | paint = MyContorlUtil.createTexturePaint( |
55 | lbShrinkHandler = new JLabel(getShrinkIcon(shrinked)); | 53 | "control/images/header_background.png"); |
56 | lbTitle = new JLabel(); | 54 | preferredHeight = backgroundImageIcon.getIconHeight(); |
57 | normalPreferredWidth = 0; | 55 | lbResizeHandler = new JLabel( |
58 | splitListener = createSplitListener(); | 56 | MyContorlUtil.getImageIcon("control/images/resize_handler.png")); |
59 | shrinkListener = new MouseAdapter() { | 57 | lbShrinkHandler = new JLabel(getShrinkIcon(shrinked)); |
60 | public void mouseClicked(MouseEvent e) | 58 | lbTitle = new JLabel(); |
61 | { | 59 | normalPreferredWidth = 0; |
62 | changeShrink(); | 60 | splitListener = createSplitListener(); |
63 | } | 61 | shrinkListener = new MouseAdapter() { |
64 | }; | 62 | public void mouseClicked(MouseEvent e) { |
65 | init(); | 63 | changeShrink(); |
66 | } | 64 | } |
67 | 65 | }; | |
68 | protected MyListSplitListener createSplitListener() | 66 | init(); |
69 | { | 67 | } |
70 | return new MyListSplitListener(this); | 68 | |
71 | } | 69 | protected MyListSplitListener createSplitListener() { |
72 | 70 | return new MyListSplitListener(this); | |
73 | protected Border createBorder() | 71 | } |
74 | { | 72 | |
75 | return BorderFactory.createEmptyBorder(4, 7, 0, 0); | 73 | protected Border createBorder() { |
76 | } | 74 | return BorderFactory.createEmptyBorder(4, 7, 0, 0); |
77 | 75 | } | |
78 | private void init() | 76 | |
79 | { | 77 | private void init() { |
80 | setBorder(createBorder()); | 78 | setBorder(createBorder()); |
81 | setOpaque(false); | 79 | setOpaque(false); |
82 | setLayout(new BorderLayout()); | 80 | setLayout(new BorderLayout()); |
83 | add(lbResizeHandler, getResizeHandlerLayoutConstraint()); | 81 | add(lbResizeHandler, getResizeHandlerLayoutConstraint()); |
84 | add(lbShrinkHandler, getShrinkHandlerLayoutConstraint()); | 82 | add(lbShrinkHandler, getShrinkHandlerLayoutConstraint()); |
85 | JComponent centerComponent = getCenterComponent(); | 83 | JComponent centerComponent = getCenterComponent(); |
86 | if (centerComponent != null) | 84 | if (centerComponent != null) { |
87 | add(centerComponent, "Center"); | 85 | add(centerComponent, "Center"); |
88 | lbResizeHandler.addMouseMotionListener(splitListener); | 86 | } |
89 | lbResizeHandler.addMouseListener(splitListener); | 87 | lbResizeHandler.addMouseMotionListener(splitListener); |
90 | lbShrinkHandler.addMouseListener(shrinkListener); | 88 | lbResizeHandler.addMouseListener(splitListener); |
91 | lbTitle.setFont(MyContorlUtil.FONT_14_BOLD); | 89 | lbShrinkHandler.addMouseListener(shrinkListener); |
92 | lbTitle.setForeground(titleColor); | 90 | lbTitle.setFont(MyContorlUtil.FONT_14_BOLD); |
93 | lbTitle.setBorder(BorderFactory.createEmptyBorder(2, 8, 0, 0)); | 91 | lbTitle.setForeground(titleColor); |
94 | updateCursor(); | 92 | lbTitle.setBorder(BorderFactory.createEmptyBorder(2, 8, 0, 0)); |
95 | lbShrinkHandler.setBorder(BorderFactory.createEmptyBorder(0, 8, 2, 5)); | 93 | updateCursor(); |
96 | } | 94 | lbShrinkHandler.setBorder(BorderFactory.createEmptyBorder(0, 8, 2, 5)); |
97 | 95 | } | |
98 | protected JComponent getCenterComponent() | 96 | |
99 | { | 97 | protected JComponent getCenterComponent() { |
100 | return lbTitle; | 98 | return lbTitle; |
101 | } | 99 | } |
102 | 100 | ||
103 | protected Object getResizeHandlerLayoutConstraint() | 101 | protected Object getResizeHandlerLayoutConstraint() { |
104 | { | 102 | return "West"; |
105 | return "West"; | 103 | } |
106 | } | 104 | |
107 | 105 | protected Object getShrinkHandlerLayoutConstraint() { | |
108 | protected Object getShrinkHandlerLayoutConstraint() | 106 | return "East"; |
109 | { | 107 | } |
110 | return "East"; | 108 | |
111 | } | 109 | protected void paintComponent(Graphics g) { |
112 | 110 | Graphics2D g2d = (Graphics2D) g; | |
113 | protected void paintComponent(Graphics g) | 111 | g2d.setPaint(paint); |
114 | { | 112 | g2d.fillRect(0, 0, getWidth(), getHeight()); |
115 | Graphics2D g2d = (Graphics2D)g; | 113 | g2d.drawImage(backgroundLeftImage, 0, 0, null); |
116 | g2d.setPaint(paint); | 114 | int x = getWidth() - backgroundRightImage.getWidth(null); |
117 | g2d.fillRect(0, 0, getWidth(), getHeight()); | 115 | int y = 0; |
118 | g2d.drawImage(backgroundLeftImage, 0, 0, null); | 116 | g2d.drawImage(backgroundRightImage, x, y, null); |
119 | int x = getWidth() - backgroundRightImage.getWidth(null); | 117 | } |
120 | int y = 0; | 118 | |
121 | g2d.drawImage(backgroundRightImage, x, y, null); | 119 | public Dimension getPreferredSize() { |
122 | } | 120 | return new Dimension(super.getPreferredSize().width, preferredHeight); |
123 | 121 | } | |
124 | public Dimension getPreferredSize() | 122 | |
125 | { | 123 | public void revalidateParent() { |
126 | return new Dimension(super.getPreferredSize().width, preferredHeight); | 124 | if (getParent() instanceof JComponent) { |
127 | } | 125 | ((JComponent) getParent()).revalidate(); |
128 | 126 | } | |
129 | public void revalidateParent() | 127 | } |
130 | { | 128 | |
131 | if (getParent() instanceof JComponent) | 129 | public void changeShrink() { |
132 | ((JComponent)getParent()).revalidate(); | 130 | setShrink(!isShrinked()); |
133 | } | 131 | } |
134 | 132 | ||
135 | public void changeShrink() | 133 | public void setShrink(boolean shrinked) { |
136 | { | 134 | if (shrinked != this.shrinked) { |
137 | setShrink(!isShrinked()); | 135 | Container parent = getParent(); |
138 | } | 136 | Dimension size = parent.getPreferredSize(); |
139 | 137 | if (shrinked) { | |
140 | public void setShrink(boolean shrinked) | 138 | normalPreferredWidth = size.width; |
141 | { | 139 | size = new Dimension(getShrinkedWidth(), size.height); |
142 | if (shrinked != this.shrinked) | 140 | } else { |
143 | { | 141 | int width = normalPreferredWidth; |
144 | Container parent = getParent(); | 142 | int height = parent.getPreferredSize().height; |
145 | Dimension size = parent.getPreferredSize(); | 143 | size = new Dimension(width, height); |
146 | if (shrinked) | 144 | } |
147 | { | 145 | parent.setPreferredSize(size); |
148 | normalPreferredWidth = size.width; | 146 | lbShrinkHandler.setIcon(getShrinkIcon(shrinked)); |
149 | size = new Dimension(getShrinkedWidth(), size.height); | 147 | revalidateParent(); |
150 | } else | 148 | this.shrinked = shrinked; |
151 | { | 149 | updateCursor(); |
152 | int width = normalPreferredWidth; | 150 | lbTitle.setVisible(!shrinked); |
153 | int height = parent.getPreferredSize().height; | 151 | lbResizeHandler.setVisible(!shrinked); |
154 | size = new Dimension(width, height); | 152 | } |
155 | } | 153 | } |
156 | parent.setPreferredSize(size); | 154 | |
157 | lbShrinkHandler.setIcon(getShrinkIcon(shrinked)); | 155 | protected ImageIcon getShrinkIcon(boolean shrinked) { |
158 | revalidateParent(); | 156 | if (shrinked) { |
159 | this.shrinked = shrinked; | 157 | return LEFT_ARROW_ICON; |
160 | updateCursor(); | 158 | } else { |
161 | lbTitle.setVisible(!shrinked); | 159 | return RIGHT_ARROW_ICON; |
162 | lbResizeHandler.setVisible(!shrinked); | 160 | } |
163 | } | 161 | } |
164 | } | 162 | |
165 | 163 | private void updateCursor() { | |
166 | protected ImageIcon getShrinkIcon(boolean shrinked) | 164 | if (shrinked) { |
167 | { | 165 | lbResizeHandler.setCursor(Cursor.getDefaultCursor()); |
168 | if (shrinked) | 166 | } else { |
169 | return LEFT_ARROW_ICON; | 167 | lbResizeHandler.setCursor(Cursor.getPredefinedCursor(10)); |
170 | else | 168 | } |
171 | return RIGHT_ARROW_ICON; | 169 | } |
172 | } | 170 | |
173 | 171 | public boolean isShrinked() { | |
174 | private void updateCursor() | 172 | return shrinked; |
175 | { | 173 | } |
176 | if (shrinked) | 174 | |
177 | lbResizeHandler.setCursor(Cursor.getDefaultCursor()); | 175 | public String getTitle() { |
178 | else | 176 | return lbTitle.getText(); |
179 | lbResizeHandler.setCursor(Cursor.getPredefinedCursor(10)); | 177 | } |
180 | } | 178 | |
181 | 179 | public void setTitle(String title) { | |
182 | public boolean isShrinked() | 180 | lbTitle.setText(title); |
183 | { | 181 | } |
184 | return shrinked; | 182 | |
185 | } | 183 | protected int getShrinkedWidth() { |
186 | 184 | return 37; | |
187 | public void setTitle(String title) | 185 | } |
188 | { | ||
189 | lbTitle.setText(title); | ||
190 | } | ||
191 | |||
192 | public String getTitle() | ||
193 | { | ||
194 | return lbTitle.getText(); | ||
195 | } | ||
196 | |||
197 | protected int getShrinkedWidth() | ||
198 | { | ||
199 | return 37; | ||
200 | } | ||
201 | } | 186 | } |