/*
|
* 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);
|
}
|
}
|