List of usage examples for org.jfree.chart ChartPanel addChartMouseListener
public void addChartMouseListener(ChartMouseListener listener)
From source file:UI.SecurityDashboard.java
private void performMetric2(MainViewPanel mvp) { Metric2 metric2 = new Metric2(); JPanel graphPanel2 = new JPanel(); graphPanel2.setLayout(new BorderLayout()); graphPanel2.add(metric2.run(), BorderLayout.NORTH); PatchPanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThe Unpatched Software tab focuses on identifying all software on each device that is missing " + "updates, or devices that are running software which is no longer supported.\n"); //header.setLineWrap(true); //header.setWrapStyleWord(true); header.setEditable(false);/* w w w . j a v a2s. c o m*/ PatchPanel.add(header, BorderLayout.NORTH); PatchPanel.add(graphPanel2, BorderLayout.CENTER); ChartPanel secondPanel = mvp.getPanel2(metric2); secondPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(2); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric2Panel.setLayout(new BorderLayout()); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel patchTitleLabel = new JLabel(" Unpatched Software"); patchTitleLabel.setFont(titleFont); Metric2Panel.add(patchTitleLabel, BorderLayout.NORTH); Metric2Panel.add(secondPanel, BorderLayout.CENTER); Metric2Panel.setBackground(Color.white); }
From source file:UI.SecurityDashboard.java
private void performMetric5(MainViewPanel mvp) { Metric5 metric5 = new Metric5(); JPanel graphPanel5 = new JPanel(); graphPanel5.setLayout(new BorderLayout()); graphPanel5.add(metric5.run(), BorderLayout.NORTH); NetworkPanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThe web application page will scan all remote servers running a web program in search of any " + "vulnerabilities present.\n"); //header.setLineWrap(true); //header.setWrapStyleWord(true); header.setEditable(false);//from ww w . ja v a 2 s . co m NetworkPanel.add(header, BorderLayout.NORTH); NetworkPanel.add(graphPanel5, BorderLayout.CENTER); ChartPanel fifthPanel = mvp.getPanel5(metric5); fifthPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(5); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric5Panel.setLayout(new BorderLayout()); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel netAppTitleLabel = new JLabel(" Web Applications"); netAppTitleLabel.setFont(titleFont); Metric5Panel.add(netAppTitleLabel, BorderLayout.NORTH); Metric5Panel.add(fifthPanel, BorderLayout.CENTER); Metric5Panel.setBackground(Color.white); }
From source file:UI.SecurityDashboard.java
private void performMetric6(MainViewPanel mvp) { Metric6 metric6 = new Metric6(); JPanel graphPanel6 = new JPanel(); graphPanel6.setLayout(new BorderLayout()); graphPanel6.add(metric6.run(), BorderLayout.NORTH); DefencePanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThe network defence panel is designated to analysing network devices such as Firewalls, Routers, " + "and Switches, and helps to ensure that the boundary defence is the work is well maintained. These devices must be updated " + "correctly configured in order to prevent unauthorised external access.\n"); header.setLineWrap(true);/*from w w w . j a v a 2 s. co m*/ header.setWrapStyleWord(true); header.setEditable(false); DefencePanel.add(header, BorderLayout.NORTH); DefencePanel.add(graphPanel6, BorderLayout.CENTER); ChartPanel sixthPanel = mvp.getPanel6(metric6); sixthPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(6); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric6Panel.setLayout(new BorderLayout()); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel netDefTitleLabel = new JLabel(" Network Defence"); netDefTitleLabel.setFont(titleFont); Metric6Panel.add(netDefTitleLabel, BorderLayout.NORTH); Metric6Panel.add(sixthPanel, BorderLayout.CENTER); Metric6Panel.setBackground(Color.white); }
From source file:UI.SecurityDashboard.java
private void performMetric8(MainViewPanel mvp) { Metric8 metric8 = new Metric8(); JPanel graphPanel8 = new JPanel(); graphPanel8.setLayout(new BorderLayout()); graphPanel8.add(metric8.run(), BorderLayout.NORTH); AccountPanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nVulnerable user accounts can be exploited due to weak policies. This scan will visit all user " + "accounts on each device to list user privilidges and administrator rights, as well as look for default or weak passwords " + "that \ncan leave the account susceptible to brute-force attacks.\n"); //header.setLineWrap(true); //header.setWrapStyleWord(true); header.setEditable(false);//from ww w. j a va 2 s. c o m AccountPanel.add(header, BorderLayout.NORTH); AccountPanel.add(graphPanel8, BorderLayout.CENTER); ChartPanel eighthPanel = mvp.getPanel8(metric8); eighthPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(8); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric8Panel.setLayout(new BorderLayout()); Metric8Panel.setBackground(Color.white); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel portTitleLabel = new JLabel(" User Account"); portTitleLabel.setFont(titleFont); Metric8Panel.add(portTitleLabel, BorderLayout.NORTH); Metric8Panel.add(eighthPanel, BorderLayout.CENTER); }
From source file:UI.SecurityDashboard.java
private void performMetric3(MainViewPanel mvp) { Metric3 metric3 = new Metric3(); JPanel graphPanel3 = new JPanel(); graphPanel3.setLayout(new BorderLayout()); graphPanel3.add(metric3.run(), BorderLayout.NORTH); AntiVirusPanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThis page lists all devices on the network, divided into two tables. The top table shows the " + "critical issues where the devices listed are either not running an anti-virus solution or the solution is not updated. It " + "will also list those anti-virus solutions which have services which are not running (Scanning is disabled). The bottom " + "table shows the updated table where the devices listed have updated and running anti-virus solutions.\n"); header.setLineWrap(true);/*from ww w .j a v a 2s.c o m*/ header.setWrapStyleWord(true); header.setEditable(false); AntiVirusPanel.add(header, BorderLayout.NORTH); AntiVirusPanel.add(graphPanel3, BorderLayout.CENTER); ChartPanel thirdPanel = mvp.getPanel3(metric3); thirdPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(3); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric3Panel.setLayout(new BorderLayout()); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel avTitleLabel = new JLabel(" AV Scan Check"); avTitleLabel.setFont(titleFont); Metric3Panel.add(avTitleLabel, BorderLayout.NORTH); Metric3Panel.add(thirdPanel, BorderLayout.CENTER); Metric3Panel.setBackground(Color.white); }
From source file:UI.SecurityDashboard.java
private void performMetric1(MainViewPanel mvp) { Metric1 metric1 = new Metric1(); JPanel graphPanel1 = new JPanel(); graphPanel1.setLayout(new BorderLayout()); graphPanel1.add(metric1.run(), BorderLayout.NORTH); DevicePanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThe Network Vulnerability test scans the entire network for all existing vulnerabilities that may " + "exist within and display the vulnerabilities (if any) for each device (computer, tablet or mobile device).\n"); //header.setLineWrap(true); //header.setWrapStyleWord(true); header.setEditable(false);/*from w w w .j a v a 2 s. c om*/ header.setMaximumSize(new Dimension(DevicePanel.getWidth(), 3)); DevicePanel.add(header, BorderLayout.NORTH); DevicePanel.add(graphPanel1, BorderLayout.CENTER); ChartPanel firstPanel = mvp.getPanel1(metric1); firstPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(1); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric1Panel.setLayout(new BorderLayout()); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel vulnerabilitiesTitleLabel = new JLabel(" Vulnerabilities"); vulnerabilitiesTitleLabel.setFont(titleFont); Metric1Panel.add(vulnerabilitiesTitleLabel, BorderLayout.PAGE_START); Font devCountFont = new Font("Calibri", Font.BOLD, 16); String devCount = " Device Count: " + metric1.deviceCount; JLabel devCountLabel = new JLabel(devCount); devCountLabel.setFont(devCountFont); Metric1Panel.add(devCountLabel, BorderLayout.SOUTH); Metric1Panel.add(firstPanel, BorderLayout.CENTER); Metric1Panel.setBackground(Color.white); Metric1Panel.setEnabled(false); }
From source file:UI.SecurityDashboard.java
private void performMetric4(MainViewPanel mvp) { Metric4 metric4 = new Metric4(); JPanel graphPanel4 = new JPanel(); graphPanel4.setLayout(new BorderLayout()); metric4.run();/*from w w w.j av a 2s .co m*/ graphPanel4.add(mvp.getPanel4(metric4), BorderLayout.CENTER); MalwarePanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThe Malware detection will scan for viruses, trojans, and worms that may have affected a device.\n"); header.setLineWrap(true); header.setWrapStyleWord(true); header.setEditable(false); MalwarePanel.add(header, BorderLayout.NORTH); if (metric4.getTotalCount() == 0) { Font noMalwareFont = new Font("Calibri", Font.BOLD, 40); JLabel noMalwareLabel = new JLabel( " No Malware Detected"); noMalwareLabel.setFont(noMalwareFont); noMalwareLabel.setPreferredSize(new Dimension(WIDTH, 100)); graphPanel4.add(noMalwareLabel, BorderLayout.NORTH); JPanel emptyPanel = new JPanel(); emptyPanel.setPreferredSize(new Dimension(50, 200)); emptyPanel.setOpaque(true); graphPanel4.add(emptyPanel, BorderLayout.SOUTH); } MalwarePanel.add(graphPanel4, BorderLayout.CENTER); ChartPanel fourthPanel = mvp.getPanel4(metric4); fourthPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(4); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric4Panel.setLayout(new BorderLayout()); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel malwareTitleLabel = new JLabel(" Malware Detection"); malwareTitleLabel.setFont(titleFont); Metric4Panel.add(malwareTitleLabel, BorderLayout.PAGE_START); Metric4Panel.add(fourthPanel, BorderLayout.CENTER); if (metric4.getTotalCount() == 0) { Font noMalwareFont = new Font("Calibri", Font.BOLD, 20); JLabel noMalwareLabel = new JLabel(" No Malware Detected"); noMalwareLabel.setFont(noMalwareFont); Metric4Panel.add(noMalwareLabel, BorderLayout.SOUTH); } Metric4Panel.setBackground(Color.white); }
From source file:UI.SecurityDashboard.java
private void performMetric9() { GZDecompression m9 = new GZDecompression(); String[][] counts = m9.getMetric9(); Font titleFont = new Font("Calibri", Font.BOLD, 27); JLabel logAuditTitleLabel = new JLabel(" Log Audit"); logAuditTitleLabel.setFont(titleFont); AreaChart areaChart = new AreaChart(m9.getLogCount(), m9.getSuccessCount(), m9.getFailCount()); ChartPanel thisChart = areaChart.drawAreaChart(); thisChart.setBackground(Color.white); thisChart.addChartMouseListener(new ChartMouseListener() { @Override//from w w w .jav a2s . c o m public void chartMouseClicked(ChartMouseEvent cme) { dashboardTabs.setSelectedIndex(9); } @Override public void chartMouseMoved(ChartMouseEvent cme) { } }); Metric9Panel.setBackground(Color.WHITE); Metric9Panel.setLayout(new BorderLayout()); Metric9Panel.add(logAuditTitleLabel, BorderLayout.NORTH); Metric9Panel.add(thisChart, BorderLayout.CENTER); Metric9Panel.setEnabled(false); String[] columns = { "Log Failure" }; JTable table = new JTable(counts, columns); table.setShowHorizontalLines(true); table.setRowHeight(40); table.setEnabled(false); JScrollPane tableScrollPane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); AuditPanel.setLayout(new BorderLayout()); JTextArea header = new JTextArea( "\nThrough the analysis of security logs, this page will show an audit of the attack attempts and " + "security breaches. The logs provide critical information related to system events that can be used to track suspicicous " + "activities.\n"); header.setLineWrap(true); header.setWrapStyleWord(true); header.setEditable(false); AuditPanel.add(header, BorderLayout.NORTH); AuditPanel.add(tableScrollPane, BorderLayout.CENTER); }
From source file:de.bfs.radon.omsimulation.gui.OMPanelResults.java
/** * Creates a panel displaying the distribution chart of certain selected * statistical values./*from www . j a va 2 s .c om*/ * * @param title * The headline of the chart. Will be hidden if set to null. * @param statistics * The selected statistics of a campaign containing all needed * values. * @param roomType * The room type to determine the colour of the chart. * @param preview * Will hide annotations, labels and headlines if set true. * @param fullscreen * Will correctly adjust the preferred size to screen resolution if * true. * @param mouseEvent * Will enable mouseClickedEvent if set true. Use with care, and only * inside the results panel. Set to false if you are unsure what you * are doing. * @return A chart displaying the distribution of certain selected statistical * values. */ public JPanel createDistributionPanel(String title, DescriptiveStatistics statistics, OMRoomType roomType, boolean preview, boolean fullscreen, boolean mouseEvent) { JFreeChart chart = OMCharts.createDistributionChart(title, statistics, roomType, preview); ChartPanel chartPanel = new ChartPanel(chart); Dimension dim; if (fullscreen) { dim = Toolkit.getDefaultToolkit().getScreenSize(); } else { dim = new Dimension(730, 347); } chartPanel.setPreferredSize(dim); if (mouseEvent) { chartPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent e) { OMSimulation simulation = (OMSimulation) comboBoxSimulations.getSelectedItem(); OMCampaign[] campaigns = simulation.getCampaigns(); try { XYItemEntity entity = (XYItemEntity) e.getEntity(); XYDataset dataset = entity.getDataset(); int item = entity.getItem(); double x = dataset.getXValue(0, item); double comparable = 0.0; OMCampaign result = null; OMStatistics selectedType = (OMStatistics) comboBoxStatistics.getSelectedItem(); for (int i = 0; i < campaigns.length; i++) { switch (selectedType) { case RoomArithmeticMeans: comparable = campaigns[i].getRoomAverage(); break; case RoomGeometricMeans: comparable = campaigns[i].getRoomLogAverage(); break; case RoomMedianQ50: comparable = campaigns[i].getRoomMedian(); break; case RoomMaxima: comparable = campaigns[i].getRoomMaximum(); break; case CellarArithmeticMeans: comparable = campaigns[i].getCellarAverage(); break; case CellarGeometricMeans: comparable = campaigns[i].getCellarLogAverage(); break; case CellarMedianQ50: comparable = campaigns[i].getCellarMedian(); break; case CellarMaxima: comparable = campaigns[i].getCellarMaximum(); break; default: comparable = campaigns[i].getRoomAverage(); break; } if (comparable == x) { result = campaigns[i]; } } if (result != null) { try { Thread.sleep(100); } catch (InterruptedException ie) { ie.printStackTrace(); } JTabbedPane tab = (JTabbedPane) getParent(); tab.remove(tab.getComponentAt(4)); JPanel jpanelTesting = new OMPanelTesting(simulation, result); tab.add(jpanelTesting, "Analyse", 4); tab.updateUI(); tab.setSelectedIndex(4); } } catch (Exception x) { x.printStackTrace(); } } @Override public void chartMouseMoved(ChartMouseEvent ignore) { } }); } JPanel distPanel = (JPanel) chartPanel; return distPanel; }
From source file:logdruid.ui.chart.GraphPanel.java
public void load(JPanel panel_2) { startDateJSpinner = (JSpinner) panel_2.getComponent(2); endDateJSPinner = (JSpinner) panel_2.getComponent(3); // scrollPane.setV panel.removeAll();/*from w ww . j ava 2 s . c o m*/ Dimension panelSize = this.getSize(); add(scrollPane, BorderLayout.CENTER); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // scrollPane.set trying to replace scroll where it was JCheckBox relativeCheckBox = (JCheckBox) panel_2.getComponent(5); estimatedTime = System.currentTimeMillis() - startTime; logger.info("gathering time: " + estimatedTime); startTime = System.currentTimeMillis(); // Map<Source, Map<String, MineResult>> Map<Source, Map<String, MineResult>> treeMap = new TreeMap<Source, Map<String, MineResult>>( mineResultSet.mineResults); Iterator mineResultSetIterator = treeMap.entrySet().iterator(); int ite = 0; logger.debug("mineResultSet size: " + mineResultSet.mineResults.size()); while (mineResultSetIterator.hasNext()) { final Map.Entry pairs = (Map.Entry) mineResultSetIterator.next(); logger.debug("mineResultSet key/source: " + ((Source) pairs.getKey()).getSourceName()); JCheckBox checkBox = (JCheckBox) panel_1.getComponent(ite++); logger.debug("checkbox: " + checkBox.getText() + ", " + checkBox.isSelected()); if (checkBox.isSelected()) { Map mrArrayList = (Map<String, MineResult>) pairs.getValue(); ArrayList<String> mineResultGroup = new ArrayList<String>(); Set<String> mrss = mrArrayList.keySet(); mineResultGroup.addAll(mrss); Collections.sort(mineResultGroup, new AlphanumComparator()); Iterator mrArrayListIterator = mineResultGroup.iterator(); while (mrArrayListIterator.hasNext()) { String key = (String) mrArrayListIterator.next(); logger.debug(key); final MineResult mr = (MineResult) mrArrayList.get(key); Map<String, ExtendedTimeSeries> statMap = mr.getStatTimeseriesMap(); Map<String, ExtendedTimeSeries> eventMap = mr.getEventTimeseriesMap(); // logger.info("mineResultSet hash size: " // +mr.getTimeseriesMap().size()); // logger.info("mineResultSet hash content: " + // mr.getStatTimeseriesMap()); logger.debug("mineResultSet mr.getStartDate(): " + mr.getStartDate() + " mineResultSet mr.getEndDate(): " + mr.getEndDate()); logger.debug("mineResultSet (Date)jsp.getValue(): " + (Date) startDateJSpinner.getValue()); logger.debug("mineResultSet (Date)jsp2.getValue(): " + (Date) endDateJSPinner.getValue()); if (mr.getStartDate() != null && mr.getEndDate() != null) { if ((mr.getStartDate().before((Date) endDateJSPinner.getValue())) && (mr.getEndDate().after((Date) startDateJSpinner.getValue()))) { ArrayList<String> mineResultGroup2 = new ArrayList<String>(); Set<String> mrss2 = statMap.keySet(); mineResultGroup2.addAll(mrss2); Collections.sort(mineResultGroup2, new AlphanumComparator()); Iterator statMapIterator = mineResultGroup2.iterator(); // Iterator statMapIterator = statMap.entrySet().iterator(); if (!statMap.entrySet().isEmpty() || !eventMap.entrySet().isEmpty()) { JPanel checkboxPanel = new JPanel(new WrapLayout()); checkboxPanel.setBackground(Color.white); int count = 1; chart = ChartFactory.createXYAreaChart(// Title mr.getSourceID() + " " + mr.getGroup(), // + null, // X-Axis // label null, // Y-Axis label null, // Dataset PlotOrientation.VERTICAL, false, // Show // legend true, // tooltips false // url ); TextTitle my_Chart_title = new TextTitle(mr.getSourceID() + " " + mr.getGroup(), new Font("Verdana", Font.BOLD, 17)); chart.setTitle(my_Chart_title); XYPlot plot = (XYPlot) chart.getPlot(); ValueAxis range = plot.getRangeAxis(); range.setVisible(false); final DateAxis domainAxis1 = new DateAxis(); domainAxis1.setTickLabelsVisible(true); // domainAxis1.setTickMarksVisible(true); logger.debug("getRange: " + domainAxis1.getRange()); if (relativeCheckBox.isSelected()) { domainAxis1.setRange((Date) startDateJSpinner.getValue(), (Date) endDateJSPinner.getValue()); } else { Date startDate = mr.getStartDate(); Date endDate = mr.getEndDate(); if (mr.getStartDate().before((Date) startDateJSpinner.getValue())) { startDate = (Date) startDateJSpinner.getValue(); logger.debug("setMinimumDate: " + (Date) startDateJSpinner.getValue()); } if (mr.getEndDate().after((Date) endDateJSPinner.getValue())) { endDate = (Date) endDateJSPinner.getValue(); logger.debug("setMaximumDate: " + (Date) endDateJSPinner.getValue()); } if (startDate.before(endDate)) { domainAxis1.setRange(startDate, endDate); } } XYToolTipGenerator tt1 = new XYToolTipGenerator() { public String generateToolTip(XYDataset dataset, int series, int item) { StringBuffer sb = new StringBuffer(); String htmlStr = "<html>"; Number x; FastDateFormat sdf = FastDateFormat.getInstance("dd-MMM-yyyy HH:mm:ss"); x = dataset.getX(series, item); sb.append(htmlStr); if (x != null) { sb.append("<p style='color:#000000;'>" + (sdf.format(x)) + "</p>"); sb.append("<p style='color:#000000;'>" + dataset.getSeriesKey(series).toString() + ": " + form.format(dataset.getYValue(0, item)) + "</p>"); if (mr.getFileLineForDate(new Date(x.longValue()), dataset.getSeriesKey(series).toString()) != null) { sb.append( "<p style='color:#0000FF;'>" + cd.sourceFileArrayListMap .get(pairs.getKey()).get(mr .getFileLineForDate( new Date(x.longValue()), dataset.getSeriesKey(series) .toString()) .getFileId()) .getFile().getName() + ":" + mr.getFileLineForDate(new Date(x.longValue()), dataset.getSeriesKey(series).toString()) .getLineNumber() + "</p>"); } } return sb.toString(); } }; while (statMapIterator.hasNext()) { TimeSeriesCollection dataset = new TimeSeriesCollection(); String me = (String) statMapIterator.next(); ExtendedTimeSeries ts = (ExtendedTimeSeries) statMap.get(me); // logger.info(((TimeSeries) // me.getValue()).getMaxY()); if (((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY() > 0) dataset.addSeries(ts.getTimeSeries()); logger.debug("mineResultSet group: " + mr.getGroup() + ", key: " + me + " nb records: " + ((ExtendedTimeSeries) statMap.get(me)) .getTimeSeries().getItemCount()); logger.debug("(((TimeSeries) me.getValue()).getMaxY(): " + (((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY())); logger.debug("(((TimeSeries) me.getValue()).getMinY(): " + (((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMinY())); XYPlot plot1 = chart.getXYPlot(); // LogarithmicAxis axis4 = new LogarithmicAxis(me.toString()); NumberAxis axis4 = new NumberAxis(me.toString()); axis4.setAutoRange(true); axis4.setAxisLineVisible(true); axis4.setAutoRangeIncludesZero(false); plot1.setDomainCrosshairVisible(true); plot1.setRangeCrosshairVisible(true); axis4.setRange(new Range( ((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMinY(), ((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY())); axis4.setLabelPaint(colors[count]); axis4.setTickLabelPaint(colors[count]); plot1.setRangeAxis(count, axis4); final ValueAxis domainAxis = domainAxis1; domainAxis.setLowerMargin(0.0); domainAxis.setUpperMargin(0.0); plot1.setDomainAxis(domainAxis); plot1.setForegroundAlpha(0.5f); plot1.setDataset(count, dataset); plot1.mapDatasetToRangeAxis(count, count); final XYAreaRenderer renderer = new XYAreaRenderer(); // XYAreaRenderer2 // also // nice if ((((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY() - ((ExtendedTimeSeries) statMap.get(me)).getTimeSeries() .getMinY()) > 0) { // renderer.setToolTipGenerator(new // StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,new // FastDateFormat("d-MMM-yyyy HH:mm:ss"), // new DecimalFormat("#,##0.00"))); } renderer.setSeriesPaint(0, colors[count]); renderer.setSeriesVisible(0, true); renderer.setSeriesToolTipGenerator(0, tt1); plot1.setRenderer(count, renderer); int hits = 0; // ts.getStat()[1] int matchs = 0; if (((ExtendedTimeSeries) statMap.get(me)).getStat() != null) { hits = ((ExtendedTimeSeries) statMap.get(me)).getStat()[1]; // matchs= ((ExtendedTimeSeries) statMap.get(me)).getStat()[0]; } JCheckBox jcb = new JCheckBox(new VisibleAction(panel, checkboxPanel, axis4, me.toString() + "(" + hits + ")", 0)); Boolean selected = true; jcb.setSelected(true); jcb.setBackground(Color.white); jcb.setBorderPainted(true); jcb.setBorder(BorderFactory.createLineBorder(colors[count], 1, true)); jcb.setFont(new Font("Sans-serif", oldSmallFont.getStyle(), oldSmallFont.getSize())); checkboxPanel.add(jcb); count++; } Iterator eventMapIterator = eventMap.entrySet().iterator(); while (eventMapIterator.hasNext()) { // HistogramDataset histoDataSet=new HistogramDataset(); TimeSeriesCollection dataset = new TimeSeriesCollection(); Map.Entry me = (Map.Entry) eventMapIterator.next(); // if (dataset.getEndXValue(series, item)) if (((ExtendedTimeSeries) me.getValue()).getTimeSeries().getMaxY() > 0) dataset.addSeries(((ExtendedTimeSeries) me.getValue()).getTimeSeries()); logger.debug("mineResultSet group: " + mr.getGroup() + ", key: " + me.getKey() + " nb records: " + ((ExtendedTimeSeries) me.getValue()).getTimeSeries().getItemCount()); logger.debug("mineResultSet hash content: " + mr.getEventTimeseriesMap()); logger.debug("(((TimeSeries) me.getValue()).getMaxY(): " + (((ExtendedTimeSeries) me.getValue()).getTimeSeries().getMaxY())); logger.debug("(((TimeSeries) me.getValue()).getMinY(): " + (((ExtendedTimeSeries) me.getValue()).getTimeSeries().getMinY())); XYPlot plot2 = chart.getXYPlot(); // LogarithmicAxis axis4 = new LogarithmicAxis(me.toString()); NumberAxis axis4 = new NumberAxis(me.getKey().toString()); axis4.setAutoRange(true); // axis4.setInverted(true); axis4.setAxisLineVisible(true); axis4.setAutoRangeIncludesZero(true); // axis4.setRange(new Range(((TimeSeries) // axis4.setRange(new Range(((TimeSeries) // me.getValue()).getMinY(), ((TimeSeries) // me.getValue()).getMaxY())); axis4.setLabelPaint(colors[count]); axis4.setTickLabelPaint(colors[count]); plot2.setRangeAxis(count, axis4); final ValueAxis domainAxis = domainAxis1; // domainAxis.setLowerMargin(0.001); // domainAxis.setUpperMargin(0.0); plot2.setDomainCrosshairVisible(true); plot2.setRangeCrosshairVisible(true); //plot2.setRangeCrosshairLockedOnData(true); plot2.setDomainAxis(domainAxis); plot2.setForegroundAlpha(0.5f); plot2.setDataset(count, dataset); plot2.mapDatasetToRangeAxis(count, count); XYBarRenderer rend = new XYBarRenderer(); // XYErrorRenderer rend.setShadowVisible(false); rend.setDrawBarOutline(true); Stroke stroke = new BasicStroke(5); rend.setBaseStroke(stroke); final XYItemRenderer renderer = rend; renderer.setSeriesToolTipGenerator(0, tt1); // renderer.setItemLabelsVisible(true); renderer.setSeriesPaint(0, colors[count]); renderer.setSeriesVisible(0, true); plot2.setRenderer(count, renderer); int hits = 0; int matchs = 0; if (((ExtendedTimeSeries) me.getValue()).getStat() != null) { hits = ((ExtendedTimeSeries) me.getValue()).getStat()[1]; // matchs= ((ExtendedTimeSeries) me.getValue()).getStat()[0]; } JCheckBox jcb = new JCheckBox(new VisibleAction(panel, checkboxPanel, axis4, me.getKey().toString() + "(" + hits + ")", 0)); jcb.setSelected(true); jcb.setBackground(Color.white); jcb.setBorderPainted(true); jcb.setBorder(BorderFactory.createLineBorder(colors[count], 1, true)); jcb.setFont(new Font("Sans-serif", oldSmallFont.getStyle(), oldSmallFont.getSize())); checkboxPanel.add(jcb); count++; } JPanel pan = new JPanel(); pan.setLayout(new BorderLayout()); pan.setPreferredSize(new Dimension(600, Integer.parseInt((String) Preferences.getPreference("chartSize")))); // pan.setPreferredSize(panelSize); panel.add(pan); final ChartPanel cpanel = new ChartPanel(chart); cpanel.setMinimumDrawWidth(0); cpanel.setMinimumDrawHeight(0); cpanel.setMaximumDrawWidth(1920); cpanel.setMaximumDrawHeight(1200); // cpanel.setInitialDelay(0); cpanel.setDismissDelay(9999999); cpanel.setInitialDelay(50); cpanel.setReshowDelay(200); cpanel.setPreferredSize(new Dimension(600, 350)); // cpanel.restoreAutoBounds(); fix the tooltip // missing problem but then relative display is // broken panel.add(new JSeparator(SwingConstants.HORIZONTAL)); pan.add(cpanel, BorderLayout.CENTER); // checkboxPanel.setPreferredSize(new Dimension(600, // 0)); cpanel.addChartMouseListener(new ChartMouseListener() { public void chartMouseClicked(ChartMouseEvent chartmouseevent) { // chartmouseevent.getEntity(). ChartEntity entity = chartmouseevent.getEntity(); if (entity instanceof XYItemEntity) { XYItemEntity item = ((XYItemEntity) entity); if (item.getDataset() instanceof TimeSeriesCollection) { TimeSeriesCollection data = (TimeSeriesCollection) item .getDataset(); TimeSeries series = data.getSeries(item.getSeriesIndex()); TimeSeriesDataItem dataitem = series.getDataItem(item.getItem()); // logger.info(" Serie: "+series.getKey().toString() // + // " Period : "+dataitem.getPeriod().toString()); // mr.getFileForDate(new Date // (x.longValue()) ; int x = chartmouseevent.getTrigger().getX(); // logger.info(mr.getFileForDate(dataitem.getPeriod().getEnd())); int y = chartmouseevent.getTrigger().getY(); String myString = ""; if (dataitem.getPeriod() != null) { logger.info(dataitem.getPeriod().getEnd()); // myString = mr.getFileForDate(dataitem.getPeriod().getEnd()).toString(); String lineString = "" + mr.getFileLineForDate(dataitem.getPeriod().getEnd(), item.getDataset() .getSeriesKey(item.getSeriesIndex()) .toString()) .getLineNumber(); String fileString = cd.sourceFileArrayListMap .get(pairs.getKey()) .get(mr.getFileLineForDate( dataitem.getPeriod().getEnd(), item.getDataset() .getSeriesKey(item.getSeriesIndex()) .toString()) .getFileId()) .getFile().getAbsolutePath(); String command = Preferences.getPreference("editorCommand"); command = command.replace("$line", lineString); command = command.replace("$file", fileString); logger.info(command); Runtime rt = Runtime.getRuntime(); try { rt.exec(command); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } StringSelection stringSelection = new StringSelection( fileString); Clipboard clpbrd = Toolkit.getDefaultToolkit() .getSystemClipboard(); clpbrd.setContents(stringSelection, null); // cpanel.getGraphics().drawString("file name copied", x - 5, y - 5); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch // block e.printStackTrace(); } } // logger.info(mr.getFileForDate(dataitem.getPeriod().getStart())); } } } public void chartMouseMoved(ChartMouseEvent e) { } }); pan.add(checkboxPanel, BorderLayout.SOUTH); } } } else { logger.debug("mr dates null: " + mr.getGroup() + mr.getSourceID() + mr.getLogFiles()); } } } } // Map=miner.mine(sourceFiles,repo); estimatedTime = System.currentTimeMillis() - startTime; revalidate(); logger.info("display time: " + estimatedTime); }