Mercurial > hg > release > heapstats-2.1
changeset 191:e91a7dea56df
Bug 3246: HeapStats Analyzer should show popup window in SnapShot summary
Reviewed-by: ykubota
https://github.com/HeapStats/heapstats/pull/51
author | Yasumasa Suenaga <yasuenag@gmail.com> |
---|---|
date | Mon, 05 Dec 2016 12:25:50 +0900 |
parents | 0505e8809f39 |
children | 1374722a0d15 |
files | ChangeLog analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java analyzer/fx/src/main/resources/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/summary.fxml |
diffstat | 3 files changed, 38 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Dec 03 23:25:27 2016 +0900 +++ b/ChangeLog Mon Dec 05 12:25:50 2016 +0900 @@ -1,3 +1,7 @@ +2016-12-05 Yasumasa Suenaga <yasuenag@gmail.com> + + * Bug 3246: HeapStats Analyzer should show popup window in SnapShot summary + 2016-12-03 Yasumasa Suenaga <yasuenag@gmail.com> * Bug 3254: Incorrect time value in tooltip on SnapShot Histogram
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java Sat Dec 03 23:25:27 2016 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/SummaryController.java Mon Dec 05 12:25:50 2016 +0900 @@ -40,9 +40,10 @@ import javafx.scene.chart.XYChart; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; +import javafx.scene.control.Tooltip; import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; -import javafx.util.StringConverter; import jp.co.ntt.oss.heapstats.container.snapshot.SnapShotHeader; import jp.co.ntt.oss.heapstats.container.snapshot.SummaryData; import jp.co.ntt.oss.heapstats.utils.EpochTimeConverter; @@ -94,6 +95,10 @@ private ObjectProperty<ObservableSet<String>> currentClassNameSet; + private EpochTimeConverter epochTimeConverter; + + private Tooltip tooltip; + /** * Initializes the controller class. */ @@ -112,11 +117,11 @@ .peek(c -> c.lookup(".chart").setStyle(bgcolor)) .forEach(c -> c.getXAxis().setTickMarkVisible(HeapStatsUtils.getTickMarkerSwitch())); - StringConverter<Number> converter = new EpochTimeConverter(); + epochTimeConverter = new EpochTimeConverter(); Stream.of(heapChart, instanceChart, gcTimeChart, metaspaceChart) .map(c -> (NumberAxis)c.getXAxis()) - .forEach(a -> a.setTickLabelFormatter(converter)); - + .forEach(a -> a.setTickLabelFormatter(epochTimeConverter)); + initializeChartSeries(); } @@ -143,6 +148,8 @@ */ @SuppressWarnings("unchecked") private void initializeChartSeries() { + tooltip = new Tooltip(); + youngUsage = new XYChart.Series<>(); youngUsage.setName("Young"); oldUsage = new XYChart.Series<>(); @@ -278,6 +285,25 @@ metaspaceUsage.setData(metaspaceUsageBuf); metaspaceCapacity.setData(metaspaceCapacityBuf); + + /* Set tooltip */ + /* Java Heap & Metaspace */ + Stream.of(youngUsage, oldUsage, free, metaspaceUsage, metaspaceCapacity) + .flatMap(s -> s.getData().stream()) + .peek(d -> Tooltip.install(d.getNode(), tooltip)) + .forEach(d -> d.getNode().addEventHandler(MouseEvent.MOUSE_ENTERED_TARGET, e -> tooltip.setText(String.format("%s: %d MB", epochTimeConverter.toString(d.getXValue()), d.getYValue())))); + + /* Insatances */ + instances.getData() + .stream() + .peek(d -> Tooltip.install(d.getNode(), tooltip)) + .forEach(d -> d.getNode().addEventHandler(MouseEvent.MOUSE_ENTERED_TARGET, e -> tooltip.setText((epochTimeConverter.toString(d.getXValue()) + ": " + d.getYValue())))); + + /* GC time */ + gcTime.getData() + .stream() + .peek(d -> Tooltip.install(d.getNode(), tooltip)) + .forEach(d -> d.getNode().addEventHandler(MouseEvent.MOUSE_ENTERED_TARGET, e -> tooltip.setText(String.format("%s: %d ms", epochTimeConverter.toString(d.getXValue()), d.getYValue())))); } }
--- a/analyzer/fx/src/main/resources/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/summary.fxml Sat Dec 03 23:25:27 2016 +0900 +++ b/analyzer/fx/src/main/resources/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/summary.fxml Mon Dec 05 12:25:50 2016 +0900 @@ -44,7 +44,7 @@ <items> <StackPane prefHeight="150.0" prefWidth="200.0"> <children> - <StackedAreaChart id="heapChart" fx:id="heapChart" animated="false" createSymbols="false" layoutX="-129.0" layoutY="-91.0" minHeight="0.0" title="%chart.javaheap" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> + <StackedAreaChart id="heapChart" fx:id="heapChart" animated="false" layoutX="-129.0" layoutY="-91.0" minHeight="0.0" title="%chart.javaheap" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <xAxis> <NumberAxis side="BOTTOM" tickLabelsVisible="false" minorTickVisible="false" autoRanging="false" /> </xAxis> @@ -57,7 +57,7 @@ </StackPane> <StackPane prefHeight="150.0" prefWidth="200.0"> <children> - <LineChart id="instanceChart" fx:id="instanceChart" animated="false" createSymbols="false" layoutX="-149.0" layoutY="-120.0" legendVisible="false" minHeight="0.0" title="%chart.instances" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> + <LineChart id="instanceChart" fx:id="instanceChart" animated="false" layoutX="-149.0" layoutY="-120.0" legendVisible="false" minHeight="0.0" title="%chart.instances" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <xAxis> <NumberAxis side="BOTTOM" tickLabelsVisible="false" minorTickVisible="false" visible="false" autoRanging="false" /> </xAxis> @@ -70,7 +70,7 @@ </StackPane> <StackPane prefHeight="150.0" prefWidth="200.0"> <children> - <LineChart id="gcTimeChart" fx:id="gcTimeChart" animated="false" createSymbols="false" layoutX="-169.0" layoutY="-120.0" legendVisible="false" minHeight="0.0" title="%chart.gctime" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> + <LineChart id="gcTimeChart" fx:id="gcTimeChart" animated="false" layoutX="-169.0" layoutY="-120.0" legendVisible="false" minHeight="0.0" title="%chart.gctime" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <xAxis> <NumberAxis side="BOTTOM" tickLabelsVisible="false" minorTickVisible="false" autoRanging="false" /> </xAxis> @@ -83,7 +83,7 @@ </StackPane> <StackPane prefHeight="150.0" prefWidth="200.0"> <children> - <AreaChart id="metaspaceChart" fx:id="metaspaceChart" animated="false" createSymbols="false" layoutX="-174.0" layoutY="-166.0" minHeight="0.0" title="%chart.metaspace" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> + <AreaChart id="metaspaceChart" fx:id="metaspaceChart" animated="false" layoutX="-174.0" layoutY="-166.0" minHeight="0.0" title="%chart.metaspace" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <xAxis> <NumberAxis side="BOTTOM" tickLabelsVisible="false" minorTickVisible="false" autoRanging="false" /> </xAxis>