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