diff --git a/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/AbstractNopQueryConnector.java b/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/AbstractNopQueryConnector.java index fda417c8ce29610f565afe6bb322812b53f937f9..c6c7f0d2719aa0dcee3c058c6c1f87fa02305165 100644 --- a/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/AbstractNopQueryConnector.java +++ b/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/AbstractNopQueryConnector.java @@ -98,6 +98,16 @@ public class AbstractNopQueryConnector extends AbstractOSGiQueryConnector { return probe; } + + protected Probe createHeatSeriesProbe(final DomainFactory domainFactory) { + final Probe probe = domainFactory.createProbe(); + + probe.setMetricName("heatSeriesMetric"); + log.debug("Appending probe " + probe.getMetricName()); + + return probe; + } + protected Probe createStringProbe(final DomainFactory domainFactory) { final Probe probe = domainFactory.createProbe(); diff --git a/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/ModelStructureQueryConnectorImpl.java b/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/ModelStructureQueryConnectorImpl.java index 72d1c7e89cc8a412359d3e070625634ea05e3798..e4ba99b6ad6dd4a60c38c5a16129db15976fbf8d 100644 --- a/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/ModelStructureQueryConnectorImpl.java +++ b/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/ModelStructureQueryConnectorImpl.java @@ -96,6 +96,7 @@ public class ModelStructureQueryConnectorImpl extends AbstractNopQueryConnector final Probe eProbe = createListOfContinuousSeriesProbe(domainFactory); final Probe fProbe = createOnlineSeriesProbe(domainFactory); final Probe gProbe = createPieSeriesProbe(domainFactory); + final Probe hProbe = createHeatSeriesProbe(domainFactory); entity.getProbes().add(aProbe); entity.getProbes().add(bProbe); entity.getProbes().add(cProbe); @@ -103,6 +104,8 @@ public class ModelStructureQueryConnectorImpl extends AbstractNopQueryConnector entity.getProbes().add(eProbe); entity.getProbes().add(fProbe); entity.getProbes().add(gProbe); + entity.getProbes().add(hProbe); + for (int i = 0; i < 3; i++) { final Probe decimalProbe = createDecimalProbe(domainFactory, i + 1); diff --git a/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/PerformanceMetricsQueryConnectorImpl.java b/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/PerformanceMetricsQueryConnectorImpl.java index c97358b2af120a1b824fab77bba48dc850be8f54..a65fb74f16a715fda72ffdb79f831c65e3aa81ba 100644 --- a/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/PerformanceMetricsQueryConnectorImpl.java +++ b/connectors/tools.descartes.dql.connector.nop/src/tools/descartes/dql/connector/nop/PerformanceMetricsQueryConnectorImpl.java @@ -142,7 +142,9 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractNopQueryConnec } else if (probe.getMetricName().startsWith("differenceSeries")) { rt.setResult(createDifferenceSeriesResult(probe)); } else if(probe.getMetricName().startsWith("pieSeries")){ - rt.setResult(createPieResult(probe)); + rt.setResult(createPieResult(probe)); + } else if(probe.getMetricName().startsWith("heatSeries")){ + rt.setResult(createHeatSeriesResult(probe)); } else if (probe.getMetricName().startsWith("metricWithStat")) { System.out.println("No Metric with statTypes yet"); } else { @@ -191,6 +193,8 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractNopQueryConnec return result; } + + private Result createOnlineResult(Probe probe) { final OnlineResult outerResult = domainFactory.createOnlineResult(); @@ -224,6 +228,7 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractNopQueryConnec } + private Result createStringResult(Probe probe) { final StringResult result = domainFactory.createStringResult(); @@ -291,6 +296,52 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractNopQueryConnec return result; } + + private Result createHeatSeriesResult(Probe probe) + { + final ResultList<ContinuousSeriesResult> result = domainFactory.createResultList(ContinuousSeriesResult.class); + result.setValid(true); + + final ContinuousSeriesResult c1 = domainFactory.createContinuousSeriesResult(); + final ContinuousSeriesResult c2 = domainFactory.createContinuousSeriesResult(); + final ContinuousSeriesResult c3 = domainFactory.createContinuousSeriesResult(); + c1.setValid(true); + c2.setValid(true); + c3.setValid(true); + c1.setYAxisDescription("y"); + c1.setXAxisDescription("x"); + c2.setYAxisDescription("y"); + c2.setXAxisDescription("x"); + c3.setYAxisDescription("y"); + c3.setXAxisDescription("x"); + for(int i = 0; i < 10000; i++) + { + SeriesResultElement elemX = domainFactory.createSeriesResultElement(); + SeriesResultElement elemY = domainFactory.createSeriesResultElement(); + SeriesResultElement elemZ = domainFactory.createSeriesResultElement(); + double x = i/100 - 50; + double y = i - (i / 100) * 100 - 50; + double z = Math.sin(Math.sqrt(x * x + y * y) / 5.0); + + elemX.setX(BigDecimal.valueOf(x)); + elemX.setY(BigDecimal.valueOf(x)); + elemY.setX(BigDecimal.valueOf(y)); + elemY.setY(BigDecimal.valueOf(y)); + elemZ.setX(BigDecimal.valueOf(z)); + elemZ.setY(BigDecimal.valueOf(z)); + c1.getElements().add(elemX); + c2.getElements().add(elemY); + c3.getElements().add(elemZ); + + } + result.getResults().add(c1); + result.getResults().add(c2); + result.getResults().add(c3); + + return result; + } + + private Map<String, String> getDoFMap() { if (dofMap == null) dofMap = ModelStructureQueryConnectorImpl.getDofMap(); diff --git a/lang/tools.descartes.dql.lang/xtend-gen/tools/descartes/dql/lang/generator/.gitignore b/lang/tools.descartes.dql.lang/xtend-gen/tools/descartes/dql/lang/generator/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/GraphicsEngine.java b/tools.descartes.pavo/src/tools/descartes/pavo/GraphicsEngine.java index 6667fddc081e822c27e0ecb50c4d3e28ceadb297..59b92e7ad1c952d89a7e9282e4db1ada8e4c6248 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/GraphicsEngine.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/GraphicsEngine.java @@ -39,7 +39,6 @@ import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; -import javax.swing.JTextArea; import org.jfree.ui.RefineryUtilities; @@ -76,6 +75,7 @@ public class GraphicsEngine { interpreteEntityMapping(currentMapping, tabbedPane); mainFrame.pack(); mainFrame.setVisible(true); + mainFrame.setMinimumSize(new Dimension(mainFrame.getWidth()+100, mainFrame.getHeight())); mainFrame.setResizable(false); mainFrame.toFront(); RefineryUtilities.centerFrameOnScreen(mainFrame); diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/controller/ExportController.java b/tools.descartes.pavo/src/tools/descartes/pavo/controller/ExportController.java index 964956e6e2220f4812bc8fa66695f46de8f40ccf..15250ff42b0e01e4ffa121047bfef3398f11fcdc 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/controller/ExportController.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/controller/ExportController.java @@ -26,48 +26,19 @@ */ package tools.descartes.pavo.controller; -import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; import javax.swing.JFileChooser; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.common.util.EList; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; -import org.jfree.chart.plot.Marker; -import org.jfree.chart.plot.ValueMarker; -import org.jfree.ui.RectangleAnchor; - -import tools.descartes.dql.models.mapping.domain.AbstractSeriesResult; -import tools.descartes.dql.models.mapping.domain.SeriesResultElement; -import tools.descartes.pavo.types.BarChart; -import tools.descartes.pavo.types.BoxPlot; -import tools.descartes.pavo.types.DifferenceChart; -import tools.descartes.pavo.types.HeatMap; -import tools.descartes.pavo.types.IVisualizationType; -import tools.descartes.pavo.types.LineChart; -import tools.descartes.pavo.types.PieChart; -import tools.descartes.pavo.types.ScatterPlot; import tools.descartes.pavo.view.ExportDialogFrame; import tools.descartes.pavo.view.View; -import tools.descartes.pavo.helper.MathHelper; import tools.descartes.pavo.result.*; /** diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/controller/VisualizationController.java b/tools.descartes.pavo/src/tools/descartes/pavo/controller/VisualizationController.java index a87cc472cc71f9713771fc39ab7a9ddebf54d100..a7c9a60c19e03d206404aa07d827db6a00dd0215 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/controller/VisualizationController.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/controller/VisualizationController.java @@ -29,22 +29,15 @@ package tools.descartes.pavo.controller; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.io.File; -import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import javax.swing.JFileChooser; - import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.impl.AdapterImpl; import org.eclipse.emf.common.util.EList; -import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.Marker; import org.jfree.chart.plot.ValueMarker; @@ -60,7 +53,6 @@ import tools.descartes.pavo.types.IVisualizationType; import tools.descartes.pavo.types.LineChart; import tools.descartes.pavo.types.PieChart; import tools.descartes.pavo.types.ScatterPlot; -import tools.descartes.pavo.view.ExportDialogFrame; import tools.descartes.pavo.view.View; import tools.descartes.pavo.helper.MathHelper; import tools.descartes.pavo.result.*; @@ -361,8 +353,10 @@ public class VisualizationController { } else { view.switchToHeat(); //Hier noch die jeweiligen benennungen der Series in die ComboBoxen und dannach noch einmal das update im view für die combos und deren werte - String[] names = {result.getResults().get(0).getQueryableElement(), result.getResults().get(1).getQueryableElement(), result.getResults().get(2).getQueryableElement()}; + String[] names = {result.getResults().get(0).getQueryableElement()+"." + result.getResults().get(0).getMetric(), result.getResults().get(1).getQueryableElement()+"." +result.getResults().get(1).getMetric(), result.getResults().get(2).getQueryableElement()+ "." + result.getResults().get(2).getMetric()}; + view.setBlockerHeat(true); view.fillHeatCombos(names); + view.setBlockerHeat(false); view.updateCurrentXYZ(); } diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/helper/MathHelper.java b/tools.descartes.pavo/src/tools/descartes/pavo/helper/MathHelper.java index d85b0a3d7336315e8c78debaccce10492adb3ee5..249a6db4cde61e4f37bfbd1aea21caf0555c61fe 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/helper/MathHelper.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/helper/MathHelper.java @@ -26,47 +26,8 @@ */ package tools.descartes.pavo.helper; -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; import java.util.List; -import javax.swing.JFileChooser; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.common.util.EList; -import org.jfree.chart.ChartUtilities; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.plot.Marker; -import org.jfree.chart.plot.ValueMarker; -import org.jfree.ui.RectangleAnchor; - -import tools.descartes.dql.models.mapping.domain.ConfidenceInterval; -import tools.descartes.dql.models.mapping.domain.ContinuousSeriesResult; -import tools.descartes.dql.models.mapping.domain.DecimalResult; -import tools.descartes.dql.models.mapping.domain.DiscreteSeriesResult; -import tools.descartes.dql.models.mapping.domain.OnlineResult; -import tools.descartes.dql.models.mapping.domain.Result; -import tools.descartes.dql.models.mapping.domain.ResultList; -import tools.descartes.dql.models.mapping.domain.SeriesResultElement; -import tools.descartes.dql.models.mapping.domain.StatType; -import tools.descartes.dql.models.mapping.domain.StringResult; -import tools.descartes.pavo.result.AbstractQuantitativeResult; -import tools.descartes.pavo.result.ResultContainerPavo; -import tools.descartes.pavo.types.BarChart; -import tools.descartes.pavo.types.BoxPlot; -import tools.descartes.pavo.types.DifferenceChart; -import tools.descartes.pavo.types.HeatMap; -import tools.descartes.pavo.types.LineChart; -import tools.descartes.pavo.types.PieChart; - /** * class to visualize all probes of one resource into one pane. These panes are * merged within the graphicsengine diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/result/ResultContainerPavo.java b/tools.descartes.pavo/src/tools/descartes/pavo/result/ResultContainerPavo.java index 112179de4b27675ba99383ad1b1b75b21afad8aa..e31a7de398cd714ce9e047f21325ab43de48e149 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/result/ResultContainerPavo.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/result/ResultContainerPavo.java @@ -29,9 +29,6 @@ package tools.descartes.pavo.result; import java.util.LinkedList; import java.util.List; -import tools.descartes.dql.models.mapping.domain.ContinuousSeriesResult; -import tools.descartes.dql.models.mapping.domain.Result; - public class ResultContainerPavo { diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/result/SeriesResultPavo.java b/tools.descartes.pavo/src/tools/descartes/pavo/result/SeriesResultPavo.java index ea546b7c4fd209ce66c4433e07f693c51036818b..4fc784e09a3bf9509ba76547069001117c11c941 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/result/SeriesResultPavo.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/result/SeriesResultPavo.java @@ -28,7 +28,6 @@ package tools.descartes.pavo.result; import java.util.List; -import org.jfree.data.time.TimeSeries; import tools.descartes.dql.models.mapping.domain.ConfidenceInterval; import tools.descartes.dql.models.mapping.domain.Result; diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/tests/TestHeatQuery.dql b/tools.descartes.pavo/src/tools/descartes/pavo/tests/TestHeatQuery.dql new file mode 100644 index 0000000000000000000000000000000000000000..54823ebab6b9f344c06c1de239d17493c04f29d4 --- /dev/null +++ b/tools.descartes.pavo/src/tools/descartes/pavo/tests/TestHeatQuery.dql @@ -0,0 +1,3 @@ +SELECT res1.heatSeriesMetric0.default +FOR RESOURCE 'res1' AS res1 +USING nop@"metric"; \ No newline at end of file diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/types/BarChart.java b/tools.descartes.pavo/src/tools/descartes/pavo/types/BarChart.java index 80a9382f222969017f58bd02c220ebe5576e6f0a..a3cc7e169014a8fbe9fe1e8b48da0fcb096bb06d 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/types/BarChart.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/types/BarChart.java @@ -27,13 +27,13 @@ package tools.descartes.pavo.types; import java.awt.Color; +import java.math.BigDecimal; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.CategoryPlot; -import org.jfree.chart.plot.Marker; import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.category.CategoryItemRenderer; @@ -66,6 +66,7 @@ public BarChart() public JFreeChart visualizeConfidence() { + final DefaultStatisticalCategoryDataset dataset = new DefaultStatisticalCategoryDataset(); CategoryAxis xAxis = new CategoryAxis("X"); @@ -78,9 +79,16 @@ public BarChart() { if(r instanceof SeriesResultPavo) { + for(int i = 0; i < ((SeriesResultPavo) r).getXvalues().size(); i++) { - dataset.add(((SeriesResultPavo) r).getYvalues().get(i), ((SeriesResultPavo) r).getConfidences().get(i).getIntervalHalfLength() ,r.getQueryableElement() , ((SeriesResultPavo) r).getXvalues().get(i)); + BigDecimal conf; + if(((SeriesResultPavo) r).getConfidences() == null || ((SeriesResultPavo) r).getConfidences().isEmpty()) + conf=BigDecimal.valueOf(0.0); + else + conf = ((SeriesResultPavo) r).getConfidences().get(i).getIntervalHalfLength(); + + dataset.add(((SeriesResultPavo) r).getYvalues().get(i),conf ,r.getQueryableElement() , ((SeriesResultPavo) r).getXvalues().get(i)); } } @@ -94,7 +102,7 @@ public BarChart() @Override public JFreeChart visualize() { XYSeriesCollection dataset = new XYSeriesCollection(); - XYBarRenderer renderer = new ClusteredXYBarRenderer(); + XYBarRenderer renderer = new ClusteredXYBarRenderer(0.2, false); NumberAxis domainAxis = new NumberAxis("X"); domainAxis.setAutoRangeIncludesZero(false); NumberAxis valueAxis = new NumberAxis("Y"); @@ -128,7 +136,6 @@ public BarChart() } chart.setBackgroundPaint(Color.WHITE); chart.setBorderPaint(Color.WHITE); - renderer.setMargin(0.2); return chart; } diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/types/DifferenceChart.java b/tools.descartes.pavo/src/tools/descartes/pavo/types/DifferenceChart.java index ddb2d6a452d445ffb065bbd1aa8a33d275ccf136..8e81d99aaacd78d08bc93c545a52f581273757bb 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/types/DifferenceChart.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/types/DifferenceChart.java @@ -33,17 +33,14 @@ import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; -import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.IntervalMarker; import org.jfree.chart.plot.Marker; -import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYDifferenceRenderer; -import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.time.Day; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/types/HeatMap.java b/tools.descartes.pavo/src/tools/descartes/pavo/types/HeatMap.java index 13cc2a57cc33a9f32d50913873356318d0938f22..948c7211f115eabb6af0a60c366339b9bed3775c 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/types/HeatMap.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/types/HeatMap.java @@ -29,35 +29,27 @@ package tools.descartes.pavo.types; import java.awt.Color; -import java.awt.Paint; -import java.util.List; -import javax.swing.JPanel; - -import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.GrayPaintScale; -import org.jfree.chart.renderer.LookupPaintScale; import org.jfree.chart.renderer.PaintScale; import org.jfree.chart.renderer.xy.XYBlockRenderer; import org.jfree.data.DomainOrder; import org.jfree.data.general.DatasetChangeListener; import org.jfree.data.general.DatasetGroup; -import org.jfree.data.xy.DefaultXYDataset; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYZDataset; -import org.jfree.ui.ApplicationFrame; - +import tools.descartes.pavo.result.AbstractQuantitativeResult; import tools.descartes.pavo.result.ResultContainerPavo; import tools.descartes.pavo.result.SeriesResultPavo; public class HeatMap extends AbstractVisualizationType implements IVisualizationType { - private List<Double> seriesX; - private List<Double> seriesY; - private List<Double> seriesZ; +// private List<Double> seriesX; +// private List<Double> seriesY; +// private List<Double> seriesZ; public HeatMap(ResultContainerPavo resultN) { super(resultN); @@ -74,12 +66,12 @@ public class HeatMap extends AbstractVisualizationType implements IVisualization public JFreeChart visualize() { NumberAxis xAxis = new NumberAxis("X"); xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); - xAxis.setLowerMargin(0.0); - xAxis.setUpperMargin(0.0); +// xAxis.setLowerMargin(0.0); +// xAxis.setUpperMargin(0.0); NumberAxis yAxis = new NumberAxis("Y"); yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); - yAxis.setLowerMargin(0.0); - yAxis.setUpperMargin(0.0); +// yAxis.setLowerMargin(0.0); +// yAxis.setUpperMargin(0.0); XYBlockRenderer renderer = new XYBlockRenderer(); PaintScale scale = new GrayPaintScale(-2.0, 1.0); renderer.setPaintScale(scale); @@ -90,28 +82,25 @@ public class HeatMap extends AbstractVisualizationType implements IVisualization return 1; } public int getItemCount(int series) { - return 10000; + return ((SeriesResultPavo) result.getResults().get(0)).getXvalues().size(); } public Number getX(int series, int item) { return new Double(getXValue(series, item)); } public double getXValue(int series, int item) { - return item / 100 - 50; + return ((SeriesResultPavo) result.getResults().get(0)).getXvalues().get(item); } public Number getY(int series, int item) { return new Double(getYValue(series, item)); } public double getYValue(int series, int item) { - return item - (item / 100) * 100 - 50; + return ((SeriesResultPavo) result.getResults().get(1)).getXvalues().get(item); } public Number getZ(int series, int item) { return new Double(getZValue(series, item)); } public double getZValue(int series, int item) { - result.getResults().get(series); - double x = getXValue(series, item); - double y = getYValue(series, item); - return Math.sin(Math.sqrt(x * x + y * y) / 5.0); + return ((SeriesResultPavo) result.getResults().get(2)).getXvalues().get(item); } public void addChangeListener(DatasetChangeListener listener) { // ignore - this dataset never changes @@ -148,7 +137,20 @@ public class HeatMap extends AbstractVisualizationType implements IVisualization @Override public boolean canVisualize() { if(this.getResult().getResults().size() == 3) - return true; + { + boolean allAreSeries = true; + for(AbstractQuantitativeResult r : this.getResult().getResults()) + { + if(!(r instanceof SeriesResultPavo)) + { + allAreSeries = false; + } + } + if(allAreSeries) + { + return true; + } + } return false; } diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/types/LineChart.java b/tools.descartes.pavo/src/tools/descartes/pavo/types/LineChart.java index 54d5cf847293f5b58ce8030240734ad1622bee0a..8aafc3fdfc94d930324f7c713fbf5859a9c1a256 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/types/LineChart.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/types/LineChart.java @@ -28,6 +28,7 @@ package tools.descartes.pavo.types; import java.awt.Color; +import java.math.BigDecimal; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; @@ -161,10 +162,15 @@ public class LineChart extends AbstractVisualizationType implements IVisualizat YIntervalSeries s1 = new YIntervalSeries(r.getQueryableElement()); for(int j = 0; j < ((SeriesResultPavo) r).getXvalues().size(); j++) { - ConfidenceInterval c = ((SeriesResultPavo) r).getConfidences().get(j); + BigDecimal conf; + if(((SeriesResultPavo) r).getConfidences() == null || ((SeriesResultPavo) r).getConfidences().isEmpty()) + conf=BigDecimal.valueOf(0.0); + else + conf = ((SeriesResultPavo) r).getConfidences().get(j).getIntervalHalfLength(); + Double x = ((SeriesResultPavo) r).getXvalues().get(j); Double y = ((SeriesResultPavo) r).getyvalues().get(j); - s1.add(x, y, y-c.getIntervalHalfLength().doubleValue(), y+c.getIntervalHalfLength().doubleValue()); + s1.add(x, y, y-conf.doubleValue(), y+conf.doubleValue()); } dataset.addSeries(s1); } diff --git a/tools.descartes.pavo/src/tools/descartes/pavo/view/View.java b/tools.descartes.pavo/src/tools/descartes/pavo/view/View.java index cde9e91a555499561d2b2f36732ceb4205a8eb0d..be1744473186bd84177494e6f427fa4c04692856 100644 --- a/tools.descartes.pavo/src/tools/descartes/pavo/view/View.java +++ b/tools.descartes.pavo/src/tools/descartes/pavo/view/View.java @@ -29,6 +29,7 @@ package tools.descartes.pavo.view; import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -79,16 +80,16 @@ public class View { { BoxLayout layoutForViz = new BoxLayout(visualizationPanel, BoxLayout.Y_AXIS); visualizationPanel.setLayout(layoutForViz); - frame.add(visualizationPanel, BorderLayout.CENTER); + frame.add(visualizationPanel, BorderLayout.NORTH); visualizationPanel.add(chartPanel); frame.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); frame.setVisible(true); buttonPanel = initializeButtons(); - updateCurrentXYZ(); +// updateCurrentXYZ(); setActionListenerForHeatControls(); //Controller muss erst die Comboboxen fillen und dann das update aufrufen - frame.add(buttonPanel, BorderLayout.SOUTH); + frame.add(buttonPanel, BorderLayout.CENTER); } @@ -248,6 +249,7 @@ heatZ.addActionListener(new ActionListener() { minRadio.setVisible(false); maxRadio.setVisible(false); meanRadio.setVisible(false); + confidenceRadio.setVisible(false); } public void switchToNormal() @@ -479,17 +481,17 @@ heatZ.addActionListener(new ActionListener() { heatZ.setToolTipText("Z Axis Series"); //Hier nicht diese Namen sondern die namen der resourcen der über controller einfügen - heatX.addItem("Series 1"); - heatX.addItem("Series 2"); - heatX.addItem("Series 3"); - - heatY.addItem("Series 2"); - heatY.addItem("Series 3"); - heatY.addItem("Series 1"); - - heatZ.addItem("Series 3"); - heatZ.addItem("Series 1"); - heatZ.addItem("Series 2"); +// heatX.addItem("Series 1"); +// heatX.addItem("Series 2"); +// heatX.addItem("Series 3"); +// +// heatY.addItem("Series 2"); +// heatY.addItem("Series 3"); +// heatY.addItem("Series 1"); +// +// heatZ.addItem("Series 3"); +// heatZ.addItem("Series 1"); +// heatZ.addItem("Series 2"); heatXPanel.setVisible(false); heatYPanel.setVisible(false); @@ -519,7 +521,6 @@ heatZ.addActionListener(new ActionListener() { buttons.add(confidenceRadio); buttons.add(exportButton); buttons.add(analysisPanel); - return buttons; } @@ -599,6 +600,23 @@ heatZ.addActionListener(new ActionListener() { public void setHeatZ(JComboBox<String> heatZ) { this.heatZ = heatZ; } + + + /** + * @return the blockerHeat + */ + public boolean isBlockerHeat() { + return blockerHeat; + } + + + /** + * @param blockerHeat the blockerHeat to set + */ + public void setBlockerHeat(boolean blockerHeat) { + this.blockerHeat = blockerHeat; + } +