package org.jzy3d.chart.controllers.keyboard.screenshot;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.jzy3d.chart.Chart;
import org.jzy3d.chart.controllers.AbstractController;
import com.jogamp.opengl.util.texture.TextureIO;
public class AbstractScreenshotKeyController extends AbstractController implements IScreenshotKeyController{
protected Chart chart;
protected String outputFile;
protected List listeners = new ArrayList(1);
/*public AbstractScreenshotKeyController() {
super();
}
public AbstractScreenshotKeyController(Chart chart) {
super(chart);
}*/
public AbstractScreenshotKeyController(Chart chart, String outputFile) {
super(chart);
register(chart);
this.chart = chart;
this.outputFile = outputFile;
}
@Override
public void register(Chart chart) {
super.register(chart);
chart.getCanvas().addKeyController(this);
}
@Override
public void dispose() {
for(Chart c: targets){
c.getCanvas().removeKeyController(this);
}
super.dispose(); // i.e. target=null
}
@Override
public void screenshot(Chart chart, String filename) throws IOException {
File output = new File(filename);
if (!output.getParentFile().exists())
output.mkdirs();
TextureIO.write(chart.screenshot(), new File(filename));
}
@Override
public void addListener(IScreenshotEventListener listener) {
listeners.add(listener);
}
protected void fireDone(String file) {
for(IScreenshotEventListener listener: listeners){
listener.doneScreenshot(file);
}
}
protected void fireError(String file, Exception e) {
for(IScreenshotEventListener listener: listeners){
listener.failedScreenshot(file, e);
}
}
}
Ads help maintain this website.