📄 exportertoimage.java
字号:
/* * Created on 28.05.2005 */package net.sourceforge.ganttproject.export;import java.awt.image.BufferedImage;import java.awt.image.RenderedImage;import java.io.File;import java.text.MessageFormat;import java.util.Arrays;import javax.imageio.ImageIO;import net.sourceforge.ganttproject.GanttExportSettings;import net.sourceforge.ganttproject.GanttGraphicArea;import net.sourceforge.ganttproject.IGanttProject;import net.sourceforge.ganttproject.chart.Chart;import net.sourceforge.ganttproject.gui.UIFacade;import net.sourceforge.ganttproject.gui.options.model.EnumerationOption;import net.sourceforge.ganttproject.gui.options.model.GPAbstractOption;import net.sourceforge.ganttproject.gui.options.model.GPOption;import net.sourceforge.ganttproject.gui.options.model.GPOptionGroup;import net.sourceforge.ganttproject.language.GanttLanguage;/** * @author bard */public class ExporterToImage implements Exporter { static class FileTypeOption extends GPAbstractOption implements EnumerationOption { static final String[] FILE_FORMAT_ID = new String[] { "impex.image.fileformat.png", "impex.image.fileformat.jpeg" }; static final String[] FILE_EXTENSION = new String[] { "png", "jpg" }; private String myValue = FILE_FORMAT_ID[0]; FileTypeOption() { super("impex.image.fileformat"); } public String[] getAvailableValues() { return FILE_FORMAT_ID; } public void setValue(String value) { myValue = value; } public String getValue() { return myValue; } String proposeFileExtension() { for (int i = 0; i < FileTypeOption.FILE_FORMAT_ID.length; i++) { if (myValue.equals(FILE_FORMAT_ID[i])) { return FILE_EXTENSION[i]; } } throw new IllegalStateException("Selected format=" + myValue + " has not been found in known formats:" + Arrays.asList(FILE_FORMAT_ID)); } public String getPersistentValue() { return null; } public void loadPersistentValue(String value) { } public boolean isChanged() { return false; } } private IGanttProject myProject; private UIFacade myUIFacade; private FileTypeOption myFileTypeOption = new FileTypeOption(); private GPOptionGroup myOptions = new GPOptionGroup("impex.image", new GPOption[] { myFileTypeOption }); private Chart myGanttChart; public ExporterToImage() { myOptions.setTitled(false); } public String getFileTypeDescription() { return MessageFormat.format(GanttLanguage.getInstance().getText( "impex.image.description"), new Object[] { proposeFileExtension() }); } public GPOptionGroup getOptions() { return myOptions; } public GPOptionGroup[] getSecondaryOptions() { //return myGanttChart.getOptionGroups(); return null; } public String getFileNamePattern() { return proposeFileExtension(); } public void setContext(IGanttProject project, UIFacade uiFacade) { myProject = project; myUIFacade = uiFacade; myGanttChart = uiFacade.getGanttChart().createCopy(); } public void run(File outputFile,ExportFinalizationJob finalizationJob) throws Exception { Chart chart = myUIFacade.getActiveChart(); if (chart==null) { chart = myUIFacade.getGanttChart(); } RenderedImage renderedImage = chart.getRenderedImage(new GanttExportSettings()); ImageIO.write(renderedImage, myFileTypeOption.proposeFileExtension(), outputFile); finalizationJob.run(new File[] { outputFile }); } public String proposeFileExtension() { return myFileTypeOption.proposeFileExtension(); } public String[] getFileExtensions() { return FileTypeOption.FILE_EXTENSION; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -