/** Used to find the global attributes that another inspector has set so I can share it. */ ChartGenerator chartToUse(final String sName, Frame parent, final GUIState simulation) { Bag charts = new Bag(); if (simulation.guiObjects != null) for (int i = 0; i < simulation.guiObjects.numObjs; i++) if (simulation.guiObjects.objs[i] instanceof ChartGenerator && validChartGenerator((ChartGenerator) (simulation.guiObjects.objs[i]))) charts.add(simulation.guiObjects.objs[i]); if (charts.numObjs == 0) return createNewChart(simulation); // init the dialog panel JPanel p = new JPanel(); p.setLayout(new BorderLayout()); String[] chartNames = new String[charts.numObjs + 1]; chartNames[0] = "[Create a New Chart]"; for (int i = 0; i < charts.numObjs; i++) chartNames[i + 1] = ((ChartGenerator) (charts.objs[i])).getTitle(); // add widgets JPanel panel2 = new JPanel(); panel2.setLayout(new BorderLayout()); panel2.setBorder(new javax.swing.border.TitledBorder("Plot on Chart...")); JComboBox encoding = new JComboBox(chartNames); panel2.add(encoding, BorderLayout.CENTER); p.add(panel2, BorderLayout.SOUTH); // ask if (JOptionPane.showConfirmDialog( parent, p, "Create a New Chart...", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION) return null; if (encoding.getSelectedIndex() == 0) return createNewChart(simulation); else return (ChartGenerator) (charts.objs[encoding.getSelectedIndex() - 1]); }
private IntervalXYDataset getHistrogrammedDataAttributes( String[] attributes, long barsize, long timesize) { IntervalXYDataset dataset = null; if (no_intervals) { dataset = new XYSeriesCollection(); } else { dataset = new YIntervalSeriesCollection(); } for (int index = 0; index < attributes.length; index++) { Histogram histogram = new Histogram(barsize); String attribute = attributes[index]; for (ProcessInstance pi : mylog.getInstances()) { Date begin; try { begin = pi.getAuditTrailEntryList().get(0).getTimestamp(); } catch (Exception e) { Message.add(e.getMessage(), Message.ERROR); return null; } // starting time of process instance int j = 0; for (AuditTrailEntry ate : pi.getListOfATEs()) { if (ate.getAttributes().containsKey(attribute)) { Double val; val = Double.valueOf(ate.getAttributes().get(attribute)); if (xbox.getSelectedIndex() == 2) { histogram.addValue(j, val); } if (xbox.getSelectedIndex() == 3) { histogram.addValue(timediff(begin, ate.getTimestamp()), val); } j++; } } } if (no_intervals) { ((XYSeriesCollection) dataset).addSeries(histogram.getXYSeries(attribute, timesize)); } else { ((YIntervalSeriesCollection) dataset) .addSeries(histogram.getYIntervalSeries(attribute, timesize)); } } return dataset; }