public void render(GCModel model, String chartFilePath) throws IOException {
    GCPreferences gcPreferences = new GCPreferences();
    gcPreferences.load();

    final ModelChartImpl pane = new ModelChartImpl();
    pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

    pane.setModel(model, gcPreferences);
    pane.setFootprint(model.getFootprint());
    pane.setMaxPause(model.getPause().getMax());
    pane.setRunningTime(model.getRunningTime());

    Dimension d = new Dimension(gcPreferences.getWindowWidth(), gcPreferences.getWindowHeight());
    pane.setSize(d);
    pane.addNotify();
    pane.validate();

    pane.autoSetScaleFactor();

    final BufferedImage image = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_RGB);
    final Graphics2D graphics = image.createGraphics();
    graphics.setBackground(Color.WHITE);
    graphics.clearRect(0, 0, image.getWidth(), image.getHeight());

    pane.paint(graphics);

    ImageIO.write(image, "png", new File(chartFilePath));
  }
Beispiel #2
0
 private void applyPreferences(GCPreferences preferences) {
   setAntiAlias(preferences.getGcLineProperty(GCPreferences.ANTI_ALIAS));
   setShowTenured(preferences.getGcLineProperty(GCPreferences.TENURED_MEMORY));
   setShowYoung(preferences.getGcLineProperty(GCPreferences.YOUNG_MEMORY));
   setShowGCTimesLine(preferences.getGcLineProperty(GCPreferences.GC_LINES_LINE));
   setShowGCTimesRectangles(preferences.getGcLineProperty(GCPreferences.GC_TIMES_RECTANGLES));
   setShowFullGCLines(preferences.getGcLineProperty(GCPreferences.FULL_GC_LINES));
   setShowIncGCLines(preferences.getGcLineProperty(GCPreferences.INC_GC_LINES));
   setShowTotalMemoryLine(preferences.getGcLineProperty(GCPreferences.TOTAL_MEMORY));
   setShowUsedMemoryLine(preferences.getGcLineProperty(GCPreferences.USED_MEMORY));
   setShowInitialMarkLevel(preferences.getGcLineProperty(GCPreferences.INITIAL_MARK_LEVEL));
   setShowConcurrentCollectionBeginEnd(
       preferences.getGcLineProperty(GCPreferences.CONCURRENT_COLLECTION_BEGIN_END));
 }