package opg.main; import java.io.File; import opg.gui.DrawableChart; import opg.gui.OPGGUI; import opg.other.Chart; import opg.other.Utility; //import org.apache.fop.svg.PDFDocumentGraphics2D; public class Controller { private static Controller singleton = new Controller(); public static Controller singleton(){ return singleton; } private Chart chart; private DrawableChart dChart; private Controller(){ chart = new Chart(); dChart = new DrawableChart(chart); } // GETTERS public Chart getChart(){ return chart; } public DrawableChart getDrawableChart() { return dChart; } //SPLASH SCREEN CLICKS public void splashCloseClick(){ OPGGUI.singleton().setVisible(true);} public void splashDonate(){ OPGGUI.singleton().setVisible(true); Utility.openURL(Const.URL_DONATE); } // BUTTON CLICKS public void zoomInClick(){ View.singleton().zoomIn(); } public void zoomOutClick(){ View.singleton().zoomOut(); } public void rootSelectClick(){ //TODO update root person } public void openFileClick(File file){ chart = Utility.parse(file); } public void handClick(){ System.out.println("handClick"); } public void arrowClick(){ System.out.println("arrowClick"); } public void fitToWidthClick(){ System.out.println("fitToPageClick"); } public void nextClick(){ System.out.println("nextClick"); } public void previousClick(){ System.out.println("previousClick"); } // MENU CLICKS public void mainQuit(){} //TODO saveState public void saveProject(){}; public void saveAsProject(){}; public void saveChart(){}; public void saveAsChart(){}; public void print(){}; public void exit(){}; public void showRuler(boolean isShown){ View.singleton().setRuler(isShown); } public void showGrid(boolean isShown){ View.singleton().setGrid(isShown); } public void showAdvancedOptions(boolean isShown){} public void saveAsPDFClick(){ // PDFGraphics2D graphicsPDF = new PDFGraphics2D(0, 0, chart.getWidth(), chart.getHeight()); // BufferedImage image = new BufferedImage(chart.getWidth(), chart.getHeight(), BufferedImage.TYPE_INT_RGB); // Graphics2D g = image.createGraphics(); // g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // g.setBackground(Color.WHITE); // g.clearRect(0, 0, chart.getWidth(), chart.getHeight()); // // List<BufferedImage> images = new ArrayList<BufferedImage>(); // images.add(image); // // Utility.createPDF(images, "sideways.pdf"); // Utility.writeBytes(graphicsPDF.getBytes(), "test.pdf"); } }