diff --git a/diylc/diylc-core/src/org/diylc/common/BuildingBlockPackage.java b/diylc/diylc-core/src/org/diylc/common/BuildingBlockPackage.java index 1131dd2e..bf69e4e6 100644 --- a/diylc/diylc-core/src/org/diylc/common/BuildingBlockPackage.java +++ b/diylc/diylc-core/src/org/diylc/common/BuildingBlockPackage.java @@ -21,23 +21,23 @@ */ package org.diylc.common; -import java.util.Collection; +import java.util.List; import java.util.Map; import org.diylc.core.IDIYComponent; public class BuildingBlockPackage { - private Map>> block; + private Map>> block; private String owner; - public BuildingBlockPackage(Map>> blocks, String owner) { + public BuildingBlockPackage(Map>> blocks, String owner) { super(); this.block = blocks; this.owner = owner; } - public Map>> getBlocks() { + public Map>> getBlocks() { return block; } diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 4063593d..94199f5b 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -2505,11 +2505,18 @@ public class Presenter implements IPlugInPort { @Override public void saveSelectionAsBlock(String blockName) { LOG.debug(String.format("saveSelectionAsBlock(%s)", blockName)); - Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + Map>> blocks = + (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); if (blocks == null) - blocks = new HashMap>>(); - blocks.put(blockName, this.selectedComponents); + blocks = new HashMap>>(); + List> blockComponents = new ArrayList>(this.selectedComponents); + Collections.sort(blockComponents, new Comparator>() { + + @Override + public int compare(IDIYComponent o1, IDIYComponent o2) { + return new Integer(currentProject.getComponents().indexOf(o1)).compareTo(currentProject.getComponents().indexOf(o2)); + }}); + blocks.put(blockName, blockComponents); ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, blocks); } @@ -2517,8 +2524,8 @@ public class Presenter implements IPlugInPort { @Override public void loadBlock(String blockName) throws InvalidBlockException { LOG.debug(String.format("loadBlock(%s)", blockName)); - Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + Map>> blocks = + (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); if (blocks != null) { Collection> components = blocks.get(blockName); if (components == null) @@ -2548,8 +2555,8 @@ public class Presenter implements IPlugInPort { @Override public void deleteBlock(String blockName) { LOG.debug(String.format("deleteBlock(%s)", blockName)); - Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + Map>> blocks = + (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); if (blocks != null) { blocks.remove(blockName); ConfigurationManager.getInstance().writeValue(BLOCKS_KEY, blocks); @@ -2626,13 +2633,13 @@ public class Presenter implements IPlugInPort { if (pkg == null || pkg.getBlocks().isEmpty()) return 0; - Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); + Map>> blocks = + (Map>>) ConfigurationManager.getInstance().readObject(BLOCKS_KEY, null); if (blocks == null) { - blocks = new HashMap>>(); + blocks = new HashMap>>(); } - for (Map.Entry>> entry : pkg.getBlocks().entrySet()) { + for (Map.Entry>> entry : pkg.getBlocks().entrySet()) { blocks.put(entry.getKey() + " [" + pkg.getOwner() + "]", entry.getValue()); } diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index f633f9f9..2e62f615 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml index 7b397b77..28bc3652 100644 --- a/diylc/diylc-swing/build.xml +++ b/diylc/diylc-swing/build.xml @@ -7,7 +7,7 @@ - + diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index f633f9f9..2e62f615 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 7f3199d6..929dd437 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java index e6177c6e..c51542e7 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -893,11 +893,11 @@ public class ActionFactory { public void actionPerformed(ActionEvent e) { LOG.info("ExportBuildingBlocksAction triggered"); - Map>> selectedBlocks; + Map>> selectedBlocks; try { - Map>> blocks = - (Map>>) ConfigurationManager.getInstance().readObject(IPlugInPort.BLOCKS_KEY, null); + Map>> blocks = + (Map>>) ConfigurationManager.getInstance().readObject(IPlugInPort.BLOCKS_KEY, null); if (blocks == null || blocks.isEmpty()) { swingUI.showMessage("No building blocks found to export.", "Error", IView.ERROR_MESSAGE); return; @@ -926,7 +926,7 @@ public class ActionFactory { return; } - selectedBlocks = new HashMap>>(); + selectedBlocks = new HashMap>>(); for (Object key : selected) { selectedBlocks.put(key.toString(), blocks.get(key)); } diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java index 0c91b107..97e1e353 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/tree/TreePanel.java @@ -152,7 +152,7 @@ public class TreePanel extends JPanel { @SuppressWarnings("unchecked") @Override public void valueChanged(String key, Object value) { - Map>> newBlocks = (Map>>) value; + Map>> newBlocks = (Map>>) value; if (newBlocks != null) { List blockNames = new ArrayList(newBlocks.keySet()); Collections.sort(blockNames); @@ -216,8 +216,8 @@ public class TreePanel extends JPanel { if (this.blocksNode == null) { this.blocksNode = new DefaultMutableTreeNode(new Payload("(Building Blocks)", null), true); @SuppressWarnings("unchecked") - Map>> newBlocks = - (Map>>) ConfigurationManager.getInstance().readObject( + Map>> newBlocks = + (Map>>) ConfigurationManager.getInstance().readObject( IPlugInPort.BLOCKS_KEY, null); if (newBlocks != null) { List blockNames = new ArrayList(newBlocks.keySet()); diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index 48854357..8bf1e40d 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2516,7 +2516,7 @@ NEW_FEATURE - Show wire diameter in mm and in next to AWG gauge + "Analyze Guitar Wiring" can figure out if wiring is hum-cancelling and in or out of phase for each position, split-coil wiring, series/parallel humbucking mode, volume and tone potentiometers NEW_FEATURE @@ -2525,11 +2525,11 @@ NEW_FEATURE Added 4-position Tele switch type to the "Lever Switch" component - + NEW_FEATURE - "Analyze Guitar Wiring" can figure out if wiring is hum-cancelling and in or out of phase for each position, split-coil wiring, series/parallel humbucking mode, volume and tone potentiometers - + Show wire diameter in mm and in next to AWG gauge + IMPROVEMENT Increase the range of zoom slider for images to 500% @@ -2552,6 +2552,22 @@ https://github.com/bancika/diy-layout-creator/releases + + + + 3 + 55 + 1 + + 2019-03-02 00:00:00.000 CET + + + + BUG_FIX + Z-order of components is not retained in building blocks + + + https://github.com/bancika/diy-layout-creator/releases