mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-11 01:32:08 +10:00
Remove junk from BOM (eyelets, wires, traces)
This commit is contained in:
Binary file not shown.
Binary file not shown.
+2
-3
@@ -25,12 +25,11 @@ import org.diylc.swing.gui.DialogFactory;
|
||||
import org.diylc.swing.gui.editor.PropertyEditorDialog;
|
||||
import org.diylc.swing.plugins.edit.ComponentTransferable;
|
||||
import org.diylc.swing.plugins.file.BomDialog;
|
||||
import org.diylc.swing.plugins.file.BomEntry;
|
||||
import org.diylc.swing.plugins.file.BomMaker;
|
||||
import org.diylc.swing.plugins.file.FileFilterEnum;
|
||||
import org.diylc.swingframework.ButtonDialog;
|
||||
import org.diylc.swingframework.IDrawingProvider;
|
||||
import org.diylc.swingframework.export.DrawingExporter;
|
||||
import org.diylc.utils.BomEntry;
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
|
||||
@@ -380,7 +379,7 @@ public class ActionFactory {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LOG.info("CreateBomAction triggered");
|
||||
List<BomEntry> bom = BomMaker.getInstance().createBom(
|
||||
List<BomEntry> bom = org.diylc.utils.BomMaker.getInstance().createBom(
|
||||
plugInPort.getCurrentProject().getComponents());
|
||||
BomDialog dialog = DialogFactory.getInstance().createBomDialog(bom);
|
||||
dialog.setVisible(true);
|
||||
|
||||
+1
-1
@@ -13,13 +13,13 @@ import org.diylc.common.PropertyWrapper;
|
||||
import org.diylc.swing.gui.components.OverwritePromptFileChooser;
|
||||
import org.diylc.swing.gui.editor.PropertyEditorDialog;
|
||||
import org.diylc.swing.plugins.file.BomDialog;
|
||||
import org.diylc.swing.plugins.file.BomEntry;
|
||||
import org.diylc.swing.plugins.online.view.LoginDialog;
|
||||
import org.diylc.swing.plugins.online.view.NewUserDialog;
|
||||
import org.diylc.swing.plugins.online.view.UploadDialog;
|
||||
import org.diylc.swingframework.AboutDialog;
|
||||
import org.diylc.swingframework.IFileChooserAccessory;
|
||||
import org.diylc.swingframework.ProgressDialog;
|
||||
import org.diylc.utils.BomEntry;
|
||||
|
||||
public class DialogFactory {
|
||||
|
||||
|
||||
+1
@@ -19,6 +19,7 @@ import org.diylc.images.IconLoader;
|
||||
import org.diylc.swing.gui.DialogFactory;
|
||||
import org.diylc.swingframework.export.TableExporter;
|
||||
import org.diylc.swingframework.objecttable.ObjectListTable;
|
||||
import org.diylc.utils.BomEntry;
|
||||
|
||||
public class BomDialog extends JDialog {
|
||||
|
||||
|
||||
-89
@@ -1,89 +0,0 @@
|
||||
package org.diylc.swing.plugins.file;
|
||||
|
||||
public class BomEntry {
|
||||
|
||||
private String name;
|
||||
private String value;
|
||||
private Integer quantity;
|
||||
private String notes;
|
||||
|
||||
public BomEntry(String name, String value, int quantity) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
this.quantity = quantity;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public Integer getQuantity() {
|
||||
return quantity;
|
||||
}
|
||||
|
||||
public void setQuantity(Integer quantity) {
|
||||
this.quantity = quantity;
|
||||
}
|
||||
|
||||
public String getNotes() {
|
||||
return notes;
|
||||
}
|
||||
|
||||
public void setNotes(String notes) {
|
||||
this.notes = notes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
result = prime * result + ((notes == null) ? 0 : notes.hashCode());
|
||||
result = prime * result + quantity;
|
||||
result = prime * result + ((value == null) ? 0 : value.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
BomEntry other = (BomEntry) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
if (notes == null) {
|
||||
if (other.notes != null)
|
||||
return false;
|
||||
} else if (!notes.equals(other.notes))
|
||||
return false;
|
||||
if (quantity != other.quantity)
|
||||
return false;
|
||||
if (value == null) {
|
||||
if (other.value != null)
|
||||
return false;
|
||||
} else if (!value.equals(other.value))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
-55
@@ -1,55 +0,0 @@
|
||||
package org.diylc.swing.plugins.file;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.diylc.core.IDIYComponent;
|
||||
|
||||
public class BomMaker {
|
||||
|
||||
private static BomMaker instance;
|
||||
|
||||
public static BomMaker getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new BomMaker();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
private BomMaker() {
|
||||
}
|
||||
|
||||
public List<BomEntry> createBom(List<IDIYComponent<?>> components) {
|
||||
Map<String, BomEntry> entryMap = new HashMap<String, BomEntry>();
|
||||
for (IDIYComponent<?> component : components) {
|
||||
String name = component.getName();
|
||||
String value = component.getValue() == null ? null : component.getValue().toString();
|
||||
if ((name != null) && (value != null)) {
|
||||
String key = name + "|" + value;
|
||||
if (entryMap.containsKey(key)) {
|
||||
BomEntry entry = entryMap.get(key);
|
||||
entry.setQuantity(entry.getQuantity() + 1);
|
||||
} else {
|
||||
entryMap.put(key, new BomEntry(name, value, 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
List<BomEntry> bom = new ArrayList<BomEntry>(entryMap.values());
|
||||
Collections.sort(bom, new Comparator<BomEntry>() {
|
||||
|
||||
@Override
|
||||
public int compare(BomEntry o1, BomEntry o2) {
|
||||
int compare = o1.getName().compareToIgnoreCase(o2.getName());
|
||||
if (compare != 0) {
|
||||
return compare;
|
||||
}
|
||||
return o1.getValue().compareToIgnoreCase(o2.getValue());
|
||||
}
|
||||
});
|
||||
return bom;
|
||||
}
|
||||
}
|
||||
@@ -642,6 +642,10 @@
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
<description>Click on a component in the toolbar sometimes doesn't register</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
<description>Remove junk from BOM (eyelets, wires, traces)</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
</changes>
|
||||
<url>http://code.google.com/p/diy-layout-creator/downloads/list</url>
|
||||
</org.diylc.appframework.update.Version>
|
||||
|
||||
Reference in New Issue
Block a user