/* | |
* Copyright 2011 gitblit.com. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package com.gitblit.client; | |
import java.awt.BasicStroke; | |
import java.awt.Color; | |
import java.awt.GradientPaint; | |
import java.awt.Graphics; | |
import java.awt.Graphics2D; | |
import java.awt.GridLayout; | |
import java.awt.Insets; | |
import java.awt.Paint; | |
import java.awt.geom.Point2D; | |
import java.awt.geom.Rectangle2D; | |
import java.text.SimpleDateFormat; | |
import java.util.Date; | |
import javax.swing.ImageIcon; | |
import javax.swing.JLabel; | |
import javax.swing.JPanel; | |
import com.gitblit.utils.StringUtils; | |
public class HeaderPanel extends JPanel { | |
private static final long serialVersionUID = 1L; | |
private final Insets insets = new Insets(5, 5, 5, 5); | |
private Color lightColor = new Color(0, 0, 0x60); | |
private JLabel headerLabel; | |
private JLabel refreshLabel; | |
public HeaderPanel(String text, String icon) { | |
// super(new FlowLayout(FlowLayout.LEFT), true); | |
super(new GridLayout(1, 2, 5, 5), true); | |
setOpaque(true); | |
setBackground(new Color(0, 0, 0x20)); | |
headerLabel = new JLabel(text); | |
if (!StringUtils.isEmpty(icon)) { | |
headerLabel.setIcon(new ImageIcon(getClass().getResource("/" + icon))); | |
} | |
headerLabel.setForeground(Color.white); | |
headerLabel.setFont(headerLabel.getFont().deriveFont(14f)); | |
add(headerLabel); | |
refreshLabel = new JLabel("", JLabel.RIGHT); | |
refreshLabel.setForeground(Color.white); | |
add(refreshLabel); | |
} | |
public void setText(String text) { | |
headerLabel.setText(text); | |
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
refreshLabel.setText("refreshed " + df.format(new Date())); | |
} | |
@Override | |
public Insets getInsets() { | |
return insets; | |
} | |
@Override | |
public void paintComponent(Graphics oldG) { | |
Graphics2D g = (Graphics2D) oldG; | |
Point2D startPoint = new Point2D.Float(0, 0); | |
Point2D endPoint = new Point2D.Float(0, getHeight()); | |
Paint gradientPaint = new GradientPaint(startPoint, lightColor, endPoint, getBackground(), | |
false); | |
g.setPaint(gradientPaint); | |
g.fill(new Rectangle2D.Double(0, 0, getWidth(), getHeight())); | |
g.setColor(new Color(0xff, 0x99, 0x00)); | |
int stroke = 2; | |
g.setStroke(new BasicStroke(stroke)); | |
g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1); | |
} | |
} |