mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-11 01:32:08 +10:00
All file export actions (PNG, PDF, BOM...) take the current file name as
a default
This commit is contained in:
@@ -101,12 +101,12 @@ public class ActionFactory {
|
||||
return new CreateBomAction(plugInPort);
|
||||
}
|
||||
|
||||
public ExportPDFAction createExportPDFAction(IDrawingProvider drawingProvider, ISwingUI swingUI) {
|
||||
return new ExportPDFAction(drawingProvider, swingUI);
|
||||
public ExportPDFAction createExportPDFAction(IPlugInPort plugInPort, IDrawingProvider drawingProvider, ISwingUI swingUI, String defaultSuffix) {
|
||||
return new ExportPDFAction(plugInPort, drawingProvider, swingUI, defaultSuffix);
|
||||
}
|
||||
|
||||
public ExportPNGAction createExportPNGAction(IDrawingProvider drawingProvider, ISwingUI swingUI) {
|
||||
return new ExportPNGAction(drawingProvider, swingUI);
|
||||
public ExportPNGAction createExportPNGAction(IPlugInPort plugInPort, IDrawingProvider drawingProvider, ISwingUI swingUI, String defaultSuffix) {
|
||||
return new ExportPNGAction(plugInPort, drawingProvider, swingUI, defaultSuffix);
|
||||
}
|
||||
|
||||
public PrintAction createPrintAction(IDrawingProvider drawingProvider, int keyModifiers) {
|
||||
@@ -509,7 +509,15 @@ public class ActionFactory {
|
||||
LOG.info("CreateBomAction triggered");
|
||||
List<BomEntry> bom =
|
||||
org.diylc.utils.BomMaker.getInstance().createBom(plugInPort.getCurrentProject().getComponents());
|
||||
BomDialog dialog = DialogFactory.getInstance().createBomDialog(bom);
|
||||
|
||||
String initialFileName = null;
|
||||
String currentFile = plugInPort.getCurrentFileName();
|
||||
if (currentFile != null) {
|
||||
File cFile = new File(currentFile);
|
||||
initialFileName = cFile.getName().replaceAll("(?i)\\.diy", "") + " BOM";
|
||||
}
|
||||
|
||||
BomDialog dialog = DialogFactory.getInstance().createBomDialog(bom, initialFileName);
|
||||
dialog.setVisible(true);
|
||||
}
|
||||
}
|
||||
@@ -520,11 +528,15 @@ public class ActionFactory {
|
||||
|
||||
private IDrawingProvider drawingProvider;
|
||||
private ISwingUI swingUI;
|
||||
private IPlugInPort plugInPort;
|
||||
private String defaultSuffix;
|
||||
|
||||
public ExportPDFAction(IDrawingProvider drawingProvider, ISwingUI swingUI) {
|
||||
public ExportPDFAction(IPlugInPort plugInPort, IDrawingProvider drawingProvider, ISwingUI swingUI, String defaultSuffix) {
|
||||
super();
|
||||
this.plugInPort = plugInPort;
|
||||
this.drawingProvider = drawingProvider;
|
||||
this.swingUI = swingUI;
|
||||
this.defaultSuffix = defaultSuffix;
|
||||
putValue(AbstractAction.NAME, "Export to PDF");
|
||||
putValue(AbstractAction.SMALL_ICON, IconLoader.PDF.getIcon());
|
||||
}
|
||||
@@ -532,8 +544,16 @@ public class ActionFactory {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LOG.info("ExportPDFAction triggered");
|
||||
|
||||
File initialFile = null;
|
||||
String currentFile = plugInPort.getCurrentFileName();
|
||||
if (currentFile != null) {
|
||||
File cFile = new File(currentFile);
|
||||
initialFile = new File(cFile.getName().replaceAll("(?i)\\.diy", "") + defaultSuffix + ".pdf");
|
||||
}
|
||||
|
||||
final File file =
|
||||
DialogFactory.getInstance().showSaveDialog(swingUI.getOwnerFrame(), FileFilterEnum.PDF.getFilter(), null,
|
||||
DialogFactory.getInstance().showSaveDialog(swingUI.getOwnerFrame(), FileFilterEnum.PDF.getFilter(), initialFile,
|
||||
FileFilterEnum.PDF.getExtensions()[0], null);
|
||||
if (file != null) {
|
||||
swingUI.executeBackgroundTask(new ITask<Void>() {
|
||||
@@ -563,11 +583,16 @@ public class ActionFactory {
|
||||
|
||||
private IDrawingProvider drawingProvider;
|
||||
private ISwingUI swingUI;
|
||||
private IPlugInPort plugInPort;
|
||||
private String defaultSuffix;
|
||||
|
||||
public ExportPNGAction(IDrawingProvider drawingProvider, ISwingUI swingUI) {
|
||||
public ExportPNGAction(IPlugInPort plugInPort, IDrawingProvider drawingProvider, ISwingUI swingUI, String defaultSuffix) {
|
||||
super();
|
||||
this.plugInPort = plugInPort;
|
||||
this.drawingProvider = drawingProvider;
|
||||
this.drawingProvider = drawingProvider;
|
||||
this.swingUI = swingUI;
|
||||
this.defaultSuffix = defaultSuffix;
|
||||
putValue(AbstractAction.NAME, "Export to PNG");
|
||||
putValue(AbstractAction.SMALL_ICON, IconLoader.Image.getIcon());
|
||||
}
|
||||
@@ -575,8 +600,16 @@ public class ActionFactory {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LOG.info("ExportPNGAction triggered");
|
||||
|
||||
File initialFile = null;
|
||||
String currentFile = plugInPort.getCurrentFileName();
|
||||
if (currentFile != null) {
|
||||
File cFile = new File(currentFile);
|
||||
initialFile = new File(cFile.getName().replaceAll("(?i)\\.diy", "") + defaultSuffix + ".png");
|
||||
}
|
||||
|
||||
final File file =
|
||||
DialogFactory.getInstance().showSaveDialog(swingUI.getOwnerFrame(), FileFilterEnum.PNG.getFilter(), null,
|
||||
DialogFactory.getInstance().showSaveDialog(swingUI.getOwnerFrame(), FileFilterEnum.PNG.getFilter(), initialFile,
|
||||
FileFilterEnum.PNG.getExtensions()[0], null);
|
||||
if (file != null) {
|
||||
swingUI.executeBackgroundTask(new ITask<Void>() {
|
||||
|
||||
@@ -89,8 +89,8 @@ public class DialogFactory {
|
||||
return new InfoDialog(mainFrame, tipKey);
|
||||
}
|
||||
|
||||
public BomDialog createBomDialog(List<BomEntry> bom) {
|
||||
BomDialog dialog = new BomDialog(mainFrame, bom);
|
||||
public BomDialog createBomDialog(List<BomEntry> bom, String initialFileName) {
|
||||
BomDialog dialog = new BomDialog(mainFrame, bom, initialFileName);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.Action;
|
||||
import javax.swing.JButton;
|
||||
@@ -35,7 +35,7 @@ import javax.swing.JDialog;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
|
||||
|
||||
import org.diylc.images.IconLoader;
|
||||
import org.diylc.swing.gui.DialogFactory;
|
||||
import org.diylc.swingframework.export.TableExporter;
|
||||
@@ -47,10 +47,12 @@ public class BomDialog extends JDialog {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private ObjectListTable<BomEntry> table;
|
||||
private JPanel toolbar;
|
||||
private JPanel toolbar;
|
||||
private String initialFileName;
|
||||
|
||||
public BomDialog(JFrame parent, List<BomEntry> bom) {
|
||||
super(parent, "Bill of Materials");
|
||||
public BomDialog(JFrame parent, List<BomEntry> bom, String initialFileName) {
|
||||
super(parent, "Bill of Materials");
|
||||
this.initialFileName = initialFileName;
|
||||
setContentPane(createMainPanel());
|
||||
getTable().setData(bom);
|
||||
pack();
|
||||
@@ -110,9 +112,14 @@ public class BomDialog extends JDialog {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
File initialFile = null;
|
||||
if (initialFileName != null) {
|
||||
initialFile = new File(initialFileName + ".xls");
|
||||
}
|
||||
|
||||
File file =
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.EXCEL.getFilter(), null,
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.EXCEL.getFilter(), initialFile,
|
||||
FileFilterEnum.EXCEL.getExtensions()[0], null);
|
||||
if (file != null) {
|
||||
try {
|
||||
@@ -136,9 +143,14 @@ public class BomDialog extends JDialog {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
File initialFile = null;
|
||||
if (initialFileName != null) {
|
||||
initialFile = new File(initialFileName + ".csv");
|
||||
}
|
||||
|
||||
File file =
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.CSV.getFilter(), null,
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.CSV.getFilter(), initialFile,
|
||||
FileFilterEnum.CSV.getExtensions()[0], null);
|
||||
if (file != null) {
|
||||
try {
|
||||
@@ -162,9 +174,14 @@ public class BomDialog extends JDialog {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
File initialFile = null;
|
||||
if (initialFileName != null) {
|
||||
initialFile = new File(initialFileName + ".html");
|
||||
}
|
||||
|
||||
File file =
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.HTML.getFilter(), null,
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.HTML.getFilter(), initialFile,
|
||||
FileFilterEnum.HTML.getExtensions()[0], null);
|
||||
if (file != null) {
|
||||
try {
|
||||
@@ -188,9 +205,14 @@ public class BomDialog extends JDialog {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
File initialFile = null;
|
||||
if (initialFileName != null) {
|
||||
initialFile = new File(initialFileName + ".png");
|
||||
}
|
||||
|
||||
File file =
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.PNG.getFilter(), null,
|
||||
DialogFactory.getInstance().showSaveDialog(BomDialog.this.getOwner(), FileFilterEnum.PNG.getFilter(), initialFile,
|
||||
FileFilterEnum.PNG.getExtensions()[0], null);
|
||||
if (file != null) {
|
||||
try {
|
||||
|
||||
@@ -73,14 +73,14 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler {
|
||||
swingUI.injectMenuAction(actionFactory.createSaveAsAction(plugInPort, swingUI), FILE_TITLE);
|
||||
swingUI.injectDynamicSubmenu("Recent Files", IconLoader.History.getIcon(), FILE_TITLE, this);
|
||||
swingUI.injectMenuAction(null, FILE_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPDFAction(drawingProvider, swingUI), FILE_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPNGAction(drawingProvider, swingUI), FILE_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPDFAction(plugInPort, drawingProvider, swingUI, ""), FILE_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPNGAction(plugInPort, drawingProvider, swingUI, ""), FILE_TITLE);
|
||||
swingUI.injectMenuAction(
|
||||
actionFactory.createPrintAction(drawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
|
||||
FILE_TITLE);
|
||||
swingUI.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPDFAction(traceMaskDrawingProvider, swingUI), TRACE_MASK_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPNGAction(traceMaskDrawingProvider, swingUI), TRACE_MASK_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPDFAction(plugInPort, traceMaskDrawingProvider, swingUI, " (mask)"), TRACE_MASK_TITLE);
|
||||
swingUI.injectMenuAction(actionFactory.createExportPNGAction(plugInPort, traceMaskDrawingProvider, swingUI, " (mask)"), TRACE_MASK_TITLE);
|
||||
swingUI.injectMenuAction(
|
||||
actionFactory.createPrintAction(traceMaskDrawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
|
||||
| KeyEvent.SHIFT_DOWN_MASK), TRACE_MASK_TITLE);
|
||||
|
||||
Reference in New Issue
Block a user