summaryrefslogtreecommitdiffstats
path: root/src/cppcheckplus/control/MyHeader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cppcheckplus/control/MyHeader.java')
-rw-r--r--src/cppcheckplus/control/MyHeader.java341
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
2package cppcheckplus.control; 1package cppcheckplus.control;
3 2
4import java.awt.BorderLayout; 3import java.awt.BorderLayout;
@@ -13,7 +12,6 @@ import java.awt.TexturePaint;
13import java.awt.event.MouseAdapter; 12import java.awt.event.MouseAdapter;
14import java.awt.event.MouseEvent; 13import java.awt.event.MouseEvent;
15import java.awt.event.MouseListener; 14import java.awt.event.MouseListener;
16
17import javax.swing.BorderFactory; 15import javax.swing.BorderFactory;
18import javax.swing.ImageIcon; 16import javax.swing.ImageIcon;
19import javax.swing.JComponent; 17import javax.swing.JComponent;
@@ -22,180 +20,167 @@ import javax.swing.JPanel;
22import javax.swing.border.Border; 20import javax.swing.border.Border;
23 21
24 22
25 23public class MyHeader extends JPanel {
26public 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}