19 package org.sleuthkit.autopsy.datasourcesummary.uiutils;
 
   21 import java.awt.BorderLayout;
 
   23 import java.util.List;
 
   24 import javax.swing.JLabel;
 
   25 import org.apache.commons.collections4.CollectionUtils;
 
   26 import org.jfree.chart.ChartFactory;
 
   27 import org.jfree.chart.ChartPanel;
 
   28 import org.jfree.chart.JFreeChart;
 
   29 import org.jfree.chart.axis.ValueAxis;
 
   30 import org.jfree.chart.plot.CategoryPlot;
 
   31 import org.jfree.chart.plot.PlotOrientation;
 
   32 import org.jfree.chart.renderer.category.BarRenderer;
 
   33 import org.jfree.chart.renderer.category.StandardBarPainter;
 
   34 import org.jfree.data.category.DefaultCategoryDataset;
 
   45     private static final Font 
DEFAULT_HEADER_FONT = 
new Font(DEFAULT_FONT.getName(), DEFAULT_FONT.getStyle(), (int) (DEFAULT_FONT.getSize() * 1.5));
 
   47     private final ChartMessageOverlay 
overlay = 
new ChartMessageOverlay();
 
   48     private final DefaultCategoryDataset 
dataset = 
new DefaultCategoryDataset();
 
   50     private final CategoryPlot 
plot;
 
   56         this(null, null, null);
 
   66     public BarChartPanel(String title, String categoryLabel, String valueLabel) {
 
   67         this.chart = ChartFactory.createStackedBarChart(
 
   72                 PlotOrientation.VERTICAL,
 
   76         chart.setBackgroundPaint(null);
 
   77         chart.getTitle().setFont(DEFAULT_HEADER_FONT);
 
   79         this.plot = ((CategoryPlot) chart.getPlot());
 
   80         this.plot.getRenderer().setDefaultItemLabelFont(DEFAULT_FONT);
 
   81         plot.setBackgroundPaint(null);
 
   82         plot.setOutlinePaint(null);
 
   85         ValueAxis range = plot.getRangeAxis();
 
   86         range.setVisible(
false);
 
   89         plot.getDomainAxis().setMaximumCategoryLabelWidthRatio(10);
 
   91         ((BarRenderer) plot.getRenderer()).setBarPainter(
new StandardBarPainter());
 
   94         ChartPanel panel = 
new ChartPanel(chart);
 
   95         panel.addOverlay(overlay);
 
   96         panel.setPopupMenu(null);
 
   98         this.setLayout(
new BorderLayout());
 
   99         this.add(panel, BorderLayout.CENTER);
 
  106         return (this.chart == null || this.chart.getTitle() == null)
 
  108                 : this.chart.getTitle().getText();
 
  119         this.chart.
getTitle().setText(title);
 
  125         this.overlay.setVisible(visible);
 
  126         this.overlay.setMessage(message);
 
  131         this.dataset.clear();
 
  133         if (CollectionUtils.isNotEmpty(data)) {
 
  134             for (
int s = 0; s < data.size(); s++) {
 
  136                 if (series != null && CollectionUtils.isNotEmpty(series.
getItems())) {
 
  138                         this.plot.getRenderer().setSeriesPaint(s, series.
getColor());
 
  141                     for (
int i = 0; i < series.
getItems().size(); i++) {
 
final DefaultCategoryDataset dataset
static final Font DEFAULT_FONT
void setResults(List< BarChartSeries > data)
final ChartMessageOverlay overlay
void setMessage(boolean visible, String message)
static final long serialVersionUID
List< BarChartItem > getItems()
BarChartPanel setTitle(String title)
static final Font DEFAULT_HEADER_FONT
BarChartPanel(String title, String categoryLabel, String valueLabel)