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);
|
return new CreateBomAction(plugInPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExportPDFAction createExportPDFAction(IDrawingProvider drawingProvider, ISwingUI swingUI) {
|
public ExportPDFAction createExportPDFAction(IPlugInPort plugInPort, IDrawingProvider drawingProvider, ISwingUI swingUI, String defaultSuffix) {
|
||||||
return new ExportPDFAction(drawingProvider, swingUI);
|
return new ExportPDFAction(plugInPort, drawingProvider, swingUI, defaultSuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExportPNGAction createExportPNGAction(IDrawingProvider drawingProvider, ISwingUI swingUI) {
|
public ExportPNGAction createExportPNGAction(IPlugInPort plugInPort, IDrawingProvider drawingProvider, ISwingUI swingUI, String defaultSuffix) {
|
||||||
return new ExportPNGAction(drawingProvider, swingUI);
|
return new ExportPNGAction(plugInPort, drawingProvider, swingUI, defaultSuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PrintAction createPrintAction(IDrawingProvider drawingProvider, int keyModifiers) {
|
public PrintAction createPrintAction(IDrawingProvider drawingProvider, int keyModifiers) {
|
||||||
@@ -509,7 +509,15 @@ public class ActionFactory {
|
|||||||
LOG.info("CreateBomAction triggered");
|
LOG.info("CreateBomAction triggered");
|
||||||
List<BomEntry> bom =
|
List<BomEntry> bom =
|
||||||
org.diylc.utils.BomMaker.getInstance().createBom(plugInPort.getCurrentProject().getComponents());
|
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);
|
dialog.setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -520,11 +528,15 @@ public class ActionFactory {
|
|||||||
|
|
||||||
private IDrawingProvider drawingProvider;
|
private IDrawingProvider drawingProvider;
|
||||||
private ISwingUI swingUI;
|
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();
|
super();
|
||||||
|
this.plugInPort = plugInPort;
|
||||||
this.drawingProvider = drawingProvider;
|
this.drawingProvider = drawingProvider;
|
||||||
this.swingUI = swingUI;
|
this.swingUI = swingUI;
|
||||||
|
this.defaultSuffix = defaultSuffix;
|
||||||
putValue(AbstractAction.NAME, "Export to PDF");
|
putValue(AbstractAction.NAME, "Export to PDF");
|
||||||
putValue(AbstractAction.SMALL_ICON, IconLoader.PDF.getIcon());
|
putValue(AbstractAction.SMALL_ICON, IconLoader.PDF.getIcon());
|
||||||
}
|
}
|
||||||
@@ -532,8 +544,16 @@ public class ActionFactory {
|
|||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
LOG.info("ExportPDFAction triggered");
|
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 =
|
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);
|
FileFilterEnum.PDF.getExtensions()[0], null);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
swingUI.executeBackgroundTask(new ITask<Void>() {
|
swingUI.executeBackgroundTask(new ITask<Void>() {
|
||||||
@@ -563,11 +583,16 @@ public class ActionFactory {
|
|||||||
|
|
||||||
private IDrawingProvider drawingProvider;
|
private IDrawingProvider drawingProvider;
|
||||||
private ISwingUI swingUI;
|
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();
|
super();
|
||||||
|
this.plugInPort = plugInPort;
|
||||||
|
this.drawingProvider = drawingProvider;
|
||||||
this.drawingProvider = drawingProvider;
|
this.drawingProvider = drawingProvider;
|
||||||
this.swingUI = swingUI;
|
this.swingUI = swingUI;
|
||||||
|
this.defaultSuffix = defaultSuffix;
|
||||||
putValue(AbstractAction.NAME, "Export to PNG");
|
putValue(AbstractAction.NAME, "Export to PNG");
|
||||||
putValue(AbstractAction.SMALL_ICON, IconLoader.Image.getIcon());
|
putValue(AbstractAction.SMALL_ICON, IconLoader.Image.getIcon());
|
||||||
}
|
}
|
||||||
@@ -575,8 +600,16 @@ public class ActionFactory {
|
|||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
LOG.info("ExportPNGAction triggered");
|
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 =
|
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);
|
FileFilterEnum.PNG.getExtensions()[0], null);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
swingUI.executeBackgroundTask(new ITask<Void>() {
|
swingUI.executeBackgroundTask(new ITask<Void>() {
|
||||||
|
|||||||
@@ -89,8 +89,8 @@ public class DialogFactory {
|
|||||||
return new InfoDialog(mainFrame, tipKey);
|
return new InfoDialog(mainFrame, tipKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BomDialog createBomDialog(List<BomEntry> bom) {
|
public BomDialog createBomDialog(List<BomEntry> bom, String initialFileName) {
|
||||||
BomDialog dialog = new BomDialog(mainFrame, bom);
|
BomDialog dialog = new BomDialog(mainFrame, bom, initialFileName);
|
||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,11 @@ public class BomDialog extends JDialog {
|
|||||||
|
|
||||||
private ObjectListTable<BomEntry> table;
|
private ObjectListTable<BomEntry> table;
|
||||||
private JPanel toolbar;
|
private JPanel toolbar;
|
||||||
|
private String initialFileName;
|
||||||
|
|
||||||
public BomDialog(JFrame parent, List<BomEntry> bom) {
|
public BomDialog(JFrame parent, List<BomEntry> bom, String initialFileName) {
|
||||||
super(parent, "Bill of Materials");
|
super(parent, "Bill of Materials");
|
||||||
|
this.initialFileName = initialFileName;
|
||||||
setContentPane(createMainPanel());
|
setContentPane(createMainPanel());
|
||||||
getTable().setData(bom);
|
getTable().setData(bom);
|
||||||
pack();
|
pack();
|
||||||
@@ -111,8 +113,13 @@ public class BomDialog extends JDialog {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
File initialFile = null;
|
||||||
|
if (initialFileName != null) {
|
||||||
|
initialFile = new File(initialFileName + ".xls");
|
||||||
|
}
|
||||||
|
|
||||||
File file =
|
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);
|
FileFilterEnum.EXCEL.getExtensions()[0], null);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
try {
|
try {
|
||||||
@@ -137,8 +144,13 @@ public class BomDialog extends JDialog {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
File initialFile = null;
|
||||||
|
if (initialFileName != null) {
|
||||||
|
initialFile = new File(initialFileName + ".csv");
|
||||||
|
}
|
||||||
|
|
||||||
File file =
|
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);
|
FileFilterEnum.CSV.getExtensions()[0], null);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
try {
|
try {
|
||||||
@@ -163,8 +175,13 @@ public class BomDialog extends JDialog {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
File initialFile = null;
|
||||||
|
if (initialFileName != null) {
|
||||||
|
initialFile = new File(initialFileName + ".html");
|
||||||
|
}
|
||||||
|
|
||||||
File file =
|
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);
|
FileFilterEnum.HTML.getExtensions()[0], null);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
try {
|
try {
|
||||||
@@ -189,8 +206,13 @@ public class BomDialog extends JDialog {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
File initialFile = null;
|
||||||
|
if (initialFileName != null) {
|
||||||
|
initialFile = new File(initialFileName + ".png");
|
||||||
|
}
|
||||||
|
|
||||||
File file =
|
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);
|
FileFilterEnum.PNG.getExtensions()[0], null);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -73,14 +73,14 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler {
|
|||||||
swingUI.injectMenuAction(actionFactory.createSaveAsAction(plugInPort, swingUI), FILE_TITLE);
|
swingUI.injectMenuAction(actionFactory.createSaveAsAction(plugInPort, swingUI), FILE_TITLE);
|
||||||
swingUI.injectDynamicSubmenu("Recent Files", IconLoader.History.getIcon(), FILE_TITLE, this);
|
swingUI.injectDynamicSubmenu("Recent Files", IconLoader.History.getIcon(), FILE_TITLE, this);
|
||||||
swingUI.injectMenuAction(null, FILE_TITLE);
|
swingUI.injectMenuAction(null, FILE_TITLE);
|
||||||
swingUI.injectMenuAction(actionFactory.createExportPDFAction(drawingProvider, swingUI), FILE_TITLE);
|
swingUI.injectMenuAction(actionFactory.createExportPDFAction(plugInPort, drawingProvider, swingUI, ""), FILE_TITLE);
|
||||||
swingUI.injectMenuAction(actionFactory.createExportPNGAction(drawingProvider, swingUI), FILE_TITLE);
|
swingUI.injectMenuAction(actionFactory.createExportPNGAction(plugInPort, drawingProvider, swingUI, ""), FILE_TITLE);
|
||||||
swingUI.injectMenuAction(
|
swingUI.injectMenuAction(
|
||||||
actionFactory.createPrintAction(drawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
|
actionFactory.createPrintAction(drawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
|
||||||
FILE_TITLE);
|
FILE_TITLE);
|
||||||
swingUI.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE);
|
swingUI.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE);
|
||||||
swingUI.injectMenuAction(actionFactory.createExportPDFAction(traceMaskDrawingProvider, swingUI), TRACE_MASK_TITLE);
|
swingUI.injectMenuAction(actionFactory.createExportPDFAction(plugInPort, traceMaskDrawingProvider, swingUI, " (mask)"), TRACE_MASK_TITLE);
|
||||||
swingUI.injectMenuAction(actionFactory.createExportPNGAction(traceMaskDrawingProvider, swingUI), TRACE_MASK_TITLE);
|
swingUI.injectMenuAction(actionFactory.createExportPNGAction(plugInPort, traceMaskDrawingProvider, swingUI, " (mask)"), TRACE_MASK_TITLE);
|
||||||
swingUI.injectMenuAction(
|
swingUI.injectMenuAction(
|
||||||
actionFactory.createPrintAction(traceMaskDrawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
|
actionFactory.createPrintAction(traceMaskDrawingProvider, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
|
||||||
| KeyEvent.SHIFT_DOWN_MASK), TRACE_MASK_TITLE);
|
| KeyEvent.SHIFT_DOWN_MASK), TRACE_MASK_TITLE);
|
||||||
|
|||||||
@@ -1966,6 +1966,10 @@
|
|||||||
<changeType>NEW_FEATURE</changeType>
|
<changeType>NEW_FEATURE</changeType>
|
||||||
<description>Added few chassis-related components under "Electromechanical" category</description>
|
<description>Added few chassis-related components under "Electromechanical" category</description>
|
||||||
</org.diylc.appframework.update.Change>
|
</org.diylc.appframework.update.Change>
|
||||||
|
<org.diylc.appframework.update.Change>
|
||||||
|
<changeType>NEW_FEATURE</changeType>
|
||||||
|
<description>All file export actions (PNG, PDF, BOM...) take the current file name as a default</description>
|
||||||
|
</org.diylc.appframework.update.Change>
|
||||||
<org.diylc.appframework.update.Change>
|
<org.diylc.appframework.update.Change>
|
||||||
<changeType>IMPROVEMENT</changeType>
|
<changeType>IMPROVEMENT</changeType>
|
||||||
<description>Change mouse cursor when in "Highlight Connected Areas" mode to avoid confusion</description>
|
<description>Change mouse cursor when in "Highlight Connected Areas" mode to avoid confusion</description>
|
||||||
|
|||||||
Reference in New Issue
Block a user