From 3e5978beb7670b4c5c6edf7df08e3ad06c2c8dda Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 20 Dec 2020 12:48:12 +0100 Subject: [PATCH] Added 'Check Trace Proximity' functionality under File -> Analyze menu that checks if there are any traces or pads that are too close to each other --- .../src/org/diylc/common/IPlugInPort.java | 11 ++- .../diylc-core/src/org/diylc/core/IView.java | 2 +- .../src/org/diylc/presenter/AreaUtils.java | 2 +- .../org/diylc/presenter/DrawingManager.java | 56 +++++++++++- .../src/org/diylc/presenter/Presenter.java | 7 +- .../src/org/diylc/presenter/update.xml | 4 + diylc/diylc-library/lib/diylc-core.jar | Bin 340132 -> 340274 bytes diylc/diylc-swing/lib/diylc-core.jar | Bin 340132 -> 340274 bytes diylc/diylc-swing/lib/swing-framework.jar | Bin 164104 -> 164092 bytes diylc/diylc-swing/library/main.jar | Bin 751817 -> 751816 bytes .../src/org/diylc/swing/ActionFactory.java | 84 +++++++++++++++++- .../src/org/diylc/swing/gui/DummyView.java | 2 +- .../src/org/diylc/swing/gui/MainFrame.java | 4 +- .../org/diylc/swing/gui/TemplateDialog.java | 2 +- .../org/diylc/swing/images/IconLoader.java | 2 +- .../diylc/swing/images/trace_proximity.png | Bin 0 -> 2342 bytes .../swing/loadline/LoadlineEditorFrame.java | 7 +- .../swing/plugins/file/FileMenuPlugin.java | 1 + .../diylc-swing/test/org/diylc/MockView.java | 2 +- 19 files changed, 169 insertions(+), 17 deletions(-) create mode 100644 diylc/diylc-swing/src/org/diylc/swing/images/trace_proximity.png diff --git a/diylc/diylc-core/src/org/diylc/common/IPlugInPort.java b/diylc/diylc-core/src/org/diylc/common/IPlugInPort.java index de1e43a6..f05d1c9e 100644 --- a/diylc/diylc-core/src/org/diylc/common/IPlugInPort.java +++ b/diylc/diylc-core/src/org/diylc/common/IPlugInPort.java @@ -25,6 +25,7 @@ import java.awt.Cursor; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Point; +import java.awt.geom.Area; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.util.Collection; @@ -40,6 +41,7 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.Project; import org.diylc.core.Template; import org.diylc.core.Theme; +import org.diylc.core.measures.Size; import org.diylc.test.ITestProcessor; /** @@ -396,5 +398,12 @@ public interface IPlugInPort extends ISelectionProcessor, IMouseProcessor, IKeyP /** * Locks or unlocks a single component. */ - void lockComponent(IDIYComponent c, boolean locked); + void lockComponent(IDIYComponent c, boolean locked); + + /** + * Checks for proximity between continuity areas and creates additional components around any problematic areas to visually identify them. + * + * @param threshold + */ + List checkContinuityAreaProximity(Size threshold); } diff --git a/diylc/diylc-core/src/org/diylc/core/IView.java b/diylc/diylc-core/src/org/diylc/core/IView.java index 8cff063e..75e2ca38 100644 --- a/diylc/diylc-core/src/org/diylc/core/IView.java +++ b/diylc/diylc-core/src/org/diylc/core/IView.java @@ -56,7 +56,7 @@ public interface IView { int showConfirmDialog(String message, String title, int optionType, int messageType); - boolean editProperties(List properties, Set defaultedProperties); + boolean editProperties(List properties, Set defaultedProperties, String title); String showInputDialog(String message, String title); diff --git a/diylc/diylc-core/src/org/diylc/presenter/AreaUtils.java b/diylc/diylc-core/src/org/diylc/presenter/AreaUtils.java index 4a8674e7..ee30f1d3 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/AreaUtils.java +++ b/diylc/diylc-core/src/org/diylc/presenter/AreaUtils.java @@ -60,7 +60,7 @@ public class AreaUtils { if (intersection != null && !intersection.isEmpty()) { a1.add(a2); consumed.set(j, true); - } else { // maybe there's a connection between them + } else if (connections != null) { // maybe there's a connection between them for (Connection p : connections) { // use getBounds to optimize the computation, don't get into complex math if not needed if ((a1.getBounds().contains(p.getP1()) && a2.getBounds().contains(p.getP2()) && a1.contains(p.getP1()) && a2.contains(p.getP2())) || (a1.getBounds().contains(p.getP2()) && a2.getBounds().contains(p.getP1())) && a1.contains(p.getP2()) && a2.contains(p.getP1())) { diff --git a/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java b/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java index 4b78cf0c..b4e3c55a 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java +++ b/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java @@ -26,8 +26,11 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.RenderingHints; +import java.awt.Shape; +import java.awt.Stroke; import java.awt.geom.AffineTransform; import java.awt.geom.Area; +import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; @@ -55,6 +58,8 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.Project; import org.diylc.core.Theme; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; import org.diylc.utils.Constants; /** @@ -112,6 +117,8 @@ public class DrawingManager { private IConfigurationManager configManager; + private List proximityMarkers = null; + public DrawingManager(MessageDispatcher messageDispatcher, IConfigurationManager configManager) { super(); this.messageDispatcher = messageDispatcher; @@ -470,6 +477,14 @@ public class DrawingManager { g2d.draw(a); } } + + if (this.proximityMarkers != null) + { + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); + g2d.setColor(Color.red); + for (Shape s : this.proximityMarkers) + g2d.draw(s); + } if (currentContinuityArea != null) { Composite oldComposite = g2d.getComposite(); @@ -524,6 +539,7 @@ public class DrawingManager { public void invalidateComponent(IDIYComponent component) { componentAreaMap.remove(component); lastDrawnStateMap.remove(component); + proximityMarkers = null; } public ComponentArea getComponentArea(IDIYComponent component) { @@ -533,11 +549,13 @@ public class DrawingManager { public void clearComponentAreaMap() { componentAreaMap.clear(); lastDrawnStateMap.clear(); + proximityMarkers = null; } public void clearContinuityArea() { currentContinuityArea = null; continuityAreaCache = null; + proximityMarkers = null; } public List> findComponentsAt(Point2D point, Project project) { @@ -654,5 +672,41 @@ public class DrawingManager { AreaUtils.crunchAreas(areas, connections); return areas; - } + } + + public List getContinuityAreaProximity(Project project, float threshold) { + List continuityAreas = getContinuityAreas(project); + Stroke s = ObjectCache.getInstance().fetchBasicStroke(threshold - 1); // value eyeballed for approx good results + List expanded = continuityAreas.parallelStream().map((a) -> new Area(s.createStrokedShape(a))).collect(Collectors.toList()); + List intersections = new ArrayList(); + for (int i = 0; i < expanded.size() - 1; i++) { + for (int j = i + 1; j < expanded.size(); j++) { + Area first = new Area(expanded.get(i)); + Area second = expanded.get(j); + first.intersect(second); + if (!first.isEmpty()) + intersections.add(first); + } + } + + AreaUtils.crunchAreas(intersections, null); + double minSize = new Size(1d, SizeUnit.cm).convertToPixels(); + + List shapes = new ArrayList(); + for (Area a : intersections) { + Rectangle2D bounds2d = a.getBounds2D(); + if (bounds2d.getWidth() < minSize) + bounds2d = new Rectangle2D.Double(bounds2d.getCenterX() - minSize / 2, bounds2d.getY(), minSize, bounds2d.getHeight()); + if (bounds2d.getHeight() < minSize) + bounds2d = new Rectangle2D.Double(bounds2d.getX(), bounds2d.getCenterY() - minSize / 2, bounds2d.getWidth(), minSize); + + shapes.add(new Area(new Ellipse2D.Double(bounds2d.getX(), bounds2d.getY(), bounds2d.getWidth(), bounds2d.getHeight()))); + } + + //AreaUtils.crunchAreas(shapes, null); + + this.proximityMarkers = shapes; + + return shapes; + } } diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 9f9bc944..b7a879b9 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -863,7 +863,7 @@ public class Presenter implements IPlugInPort { List properties = getMutualSelectionProperties(); if (properties != null && !properties.isEmpty()) { Set defaultedProperties = new HashSet(); - boolean edited = view.editProperties(properties, defaultedProperties); + boolean edited = view.editProperties(properties, defaultedProperties, LangUtil.translate("Edit Selection")); if (edited) { try { applyPropertiesToSelection(properties); @@ -3412,4 +3412,9 @@ public class Presenter implements IPlugInPort { } return new Snapshot(currentProject.clone(), new HashSet>(selectedComponents), areas, new HashSet(drawingManager.getContinuityAreas(currentProject))); } + + @Override + public List checkContinuityAreaProximity(Size threshold) { + return drawingManager.getContinuityAreaProximity(this.currentProject, (float)threshold.convertToPixels()); + } } diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index 44bf0a97..47e0c829 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3354,6 +3354,10 @@ 2020-12-06 00:00:00.000 CET + + NEW_FEATURE + Added 'Check Trace Proximity' functionality under File -> Analyze menu that checks if there are any traces or pads that are too close to each other + NEW_FEATURE 'Tactile Micro-Switch' component added diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 720a6978f475ccc1884a9cda2cba1004b1d0e145..5a07cd64f6be78196601b2d377107d8a6775108b 100644 GIT binary patch delta 26234 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 diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 720a6978f475ccc1884a9cda2cba1004b1d0e145..5a07cd64f6be78196601b2d377107d8a6775108b 100644 GIT binary patch delta 26234 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 diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar index 5c5c54e951bc79b67927491345b725366b4dc7a2..8688c27fa30898461b7a55e1f6a77668a1ef40d8 100644 GIT binary patch delta 8798 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 V0H;i_5IJNn8Rn$9Zvm$0{{c37UDE&n delta 8872 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 diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 7ddfd9ffeded3bdd6066a85dec5d3ca74767b4b5..a19b18e88f3ca774ccf010bfe98cd576dcf92dbb 100644 GIT binary patch delta 19797 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 delta 19727 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 X4CY@P&Khrx4@(1YM}L8{5AOc}e1lg8 diff --git a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java index 738df72b..e3e4ae02 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/diylc/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -23,6 +23,7 @@ import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; +import java.awt.geom.Area; import java.awt.print.PrinterException; import java.io.BufferedOutputStream; import java.io.File; @@ -34,6 +35,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -63,17 +65,19 @@ import org.diylc.core.IView; import org.diylc.core.Project; import org.diylc.core.Template; import org.diylc.core.Theme; -import org.diylc.swing.images.IconLoader; +import org.diylc.core.annotations.PositiveNonZeroMeasureValidator; import org.diylc.core.measures.Nudge; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.editor.FlexibleLeadsEditor; +import org.diylc.lang.LangUtil; import org.diylc.netlist.Group; import org.diylc.netlist.Netlist; import org.diylc.netlist.Summary; import org.diylc.presenter.Presenter; import org.diylc.swing.gui.DialogFactory; import org.diylc.swing.gui.editor.PropertyEditorDialog; +import org.diylc.swing.images.IconLoader; import org.diylc.swing.plugins.config.ConfigPlugin; import org.diylc.swing.plugins.edit.ComponentTransferable; import org.diylc.swing.plugins.edit.FindDialog; @@ -292,6 +296,10 @@ public class ActionFactory { ISwingUI swingUI, INetlistAnalyzer summarizer) { return new SummarizeNetlistAction(plugInPort, swingUI, summarizer); } + + public CheckProximityAction createCheckProximityAction(IPlugInPort plugInPort, ISwingUI swingUI) { + return new CheckProximityAction(plugInPort, swingUI); + } // File menu actions. @@ -419,7 +427,7 @@ public class ActionFactory { @Override public boolean editProperties(List properties, - Set defaultedProperties) { + Set defaultedProperties, String title) { return false; } }, InMemoryConfigurationManager.getInstance()); @@ -1931,4 +1939,76 @@ public class ActionFactory { }, true); } } + + public static class CheckProximityAction extends AbstractAction implements Cloneable { + + private static final long serialVersionUID = 1L; + + private IPlugInPort plugInPort; + private ISwingUI swingUI; + private Size threshold; + + public CheckProximityAction(IPlugInPort plugInPort, ISwingUI swingUI) { + super(); + this.plugInPort = plugInPort; + this.swingUI = swingUI; + putValue(AbstractAction.NAME, "Check Trace Proximity"); + putValue(AbstractAction.SMALL_ICON, IconLoader.TraceProximity.getIcon()); + this.threshold = new Size(0.5d, SizeUnit.mm); + } + + public Size getThreshold() { + return threshold; + } + + public void setThreshold(Size threshold) { + this.threshold = threshold; + } + + @Override + public void actionPerformed(ActionEvent e) { + PropertyWrapper wrapper = new PropertyWrapper("Threshold", Size.class, "getThreshold", "setThreshold", false, new PositiveNonZeroMeasureValidator(), 0); + try { + wrapper.readFrom(CheckProximityAction.this); + } catch (Exception e1) { + LOG.error("Error reading proximity threshold", e1); + } + + if (swingUI.editProperties(Arrays.asList(wrapper), new HashSet(), (String)CheckProximityAction.this.getValue(NAME))) { + try { + wrapper.writeTo(CheckProximityAction.this); + } catch (Exception e1) { + LOG.error("Error writing proximity threshold", e1); + } + + swingUI.executeBackgroundTask(new ITask>() { + + @Override + public List doInBackground() throws Exception { + return plugInPort.checkContinuityAreaProximity(threshold); + } + + @Override + public void failed(Exception e) { + swingUI.showMessage(e.getMessage(), (String)CheckProximityAction.this.getValue(NAME), ISwingUI.INFORMATION_MESSAGE); + } + + @Override + public void complete(List res) { + if (res == null || res.size() == 0) + swingUI.showMessage(LangUtil.translate("No proximity issues detected."), + (String)CheckProximityAction.this.getValue(NAME), ISwingUI.INFORMATION_MESSAGE); + else + swingUI.showMessage(String.format("%s potential proximity issue(s) detected and marked red.", res.size()), + (String)CheckProximityAction.this.getValue(NAME), ISwingUI.WARNING_MESSAGE); + } + }, true); + } + } + + @Override + public Object clone() throws CloneNotSupportedException { + return new CheckProximityAction(plugInPort, swingUI); + } + } } diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/DummyView.java b/diylc/diylc-swing/src/org/diylc/swing/gui/DummyView.java index 845d8af2..0206d24b 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/DummyView.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/DummyView.java @@ -44,7 +44,7 @@ public class DummyView implements IView { } @Override - public boolean editProperties(List properties, Set defaultedProperties) { + public boolean editProperties(List properties, Set defaultedProperties, String title) { return false; } diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index 4556a48e..ed0117f3 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -298,9 +298,9 @@ public class MainFrame extends JFrame implements ISwingUI { } @Override - public boolean editProperties(List properties, Set defaultedProperties) { + public boolean editProperties(List properties, Set defaultedProperties, String title) { PropertyEditorDialog editor = - DialogFactory.getInstance().createPropertyEditorDialog(properties, LangUtil.translate("Edit Selection"), true); + DialogFactory.getInstance().createPropertyEditorDialog(properties, title, true); editor.setVisible(true); defaultedProperties.addAll(editor.getDefaultedProperties()); return ButtonDialog.OK.equals(editor.getSelectedButtonCaption()); diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java b/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java index 70e5886e..6e3f1ce2 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java @@ -110,7 +110,7 @@ public class TemplateDialog extends JDialog { } @Override - public boolean editProperties(List properties, Set defaultedProperties) { + public boolean editProperties(List properties, Set defaultedProperties, String title) { return false; } }, InMemoryConfigurationManager.getInstance()); diff --git a/diylc/diylc-swing/src/org/diylc/swing/images/IconLoader.java b/diylc/diylc-swing/src/org/diylc/swing/images/IconLoader.java index 8d320b3e..03072b31 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/images/IconLoader.java +++ b/diylc/diylc-swing/src/org/diylc/swing/images/IconLoader.java @@ -67,7 +67,7 @@ public enum IconLoader { JarBeanInto("jar_bean_into.png"), GraphEdgeDirected("graph_edge_directed.png"), LaserPointer("laserpointer.png"), TapeMeasure("tape_measure1.png"), Elements("elements1.png"), GraphNodes("graph_nodes.png"), User("user1.png"), FlexibleLeads("flexible_leads.png"), Pads("pads.png"), Lock("lock.png"), Unlock("lock_open.png"), Earth("earth.png"), Loadline("loadline.png"), LoadlineAdd("loadline_add.png"), SnapToGrid("snap_to_grid.png"), - SnapToComponents("snap_to_components.png"), SnapToNone("snap_to_none.png"); + SnapToComponents("snap_to_components.png"), SnapToNone("snap_to_none.png"), TraceProximity("trace_proximity.png"); protected String name; diff --git a/diylc/diylc-swing/src/org/diylc/swing/images/trace_proximity.png b/diylc/diylc-swing/src/org/diylc/swing/images/trace_proximity.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5be80e9b546dcdc3cca138da5ac409d67e52b8 GIT binary patch literal 2342 zcmcgud2ka|91b0&w1CA@X~#OSY%3P%W{;$s>_Q4{QfNj}dITwQl+EtjW@(a5v)eW; zhunyOIN&uLBP~Ud5i8dWg(8E9(pnr!2SFV~xym1mfS^_m^=+C)aEdVeVP-b__Py_Y zzwh^Z-+Q~u^Yg~{k9{^)r_=Sf=h_P4eSmiL=?(vf-1v)ww-|r!6h)`&J5alN>DFyX z(&>7)NX}xl*fD|SWv`wSWEao}y?%(+=|+zU`Z>M~sE7-cN8lKSIZ%p|48!0Ag;Nv;5tvf#Q@J4KQ&PGaY(U`yl3$f%AEGgG zF1bRrpipU73SNJN)~AHa1Pg`-IX_P72`!}%P~amte?`C(3NG+C@BlCHsS3oB5v<=W ztFq#jA3z-$zApeQt-}$C(W4fxHxfcob1GpP;ezytR-Dy-fENNqt_biTrxMCc(X#Qg z)&SsCIpCCKPxnIQcS}aBR&8MzByFOJp6iY#<`93IgjlikgL%{;iigLiq!JH*8R|;^yuM|Zhm1M25 zM-ITiP@Uo4e!JD0ACN`K0|%7C@!5zy$4Zk7O=Fav49RskSi4VAIUf(~HVX>tqn9Ls zB}5}d6Gk2r0ZdlpjUvYI860LZ0Ro5wFf%mQJ>Mqt6`BjQ`CS`Aka@`Qk353rO&nw5 zFveu$Fmndv<#>+6UW}3`x60k>)U9bh$8+Gnz1$ znSdfmBVjT!1{Xz!I0vhg?dZ@=E zMGnueasx>EA1>*NuE?TV#RWiCDXiV27!iMveub-ihY?ZVL5 zJqI#e&QKRT<+Wzy^#UIvFDT%Hr3%2;PyF0dK&Oj}vfHwp=2ctTzk2blf`lipoxR%x z;)+%bj(<~J)zA7yex1GTD4JRqHL`Wxq~pl#xDB?OL|UIZdsae$VfKXAu1sHJTViQ# zac(P{aq*jz>woBd_Jt*FTP+YjWWuRnI{y;mI*`W39Po=hEdfv8xlF8p-V z=rf-u_v5cLMDKj!@JGkC{8G|BxUF$P*_oRui&72+%NPIJ=oFL6E=?tsVTN5R|JMI z{0TN|->P2q*JCmq#<`o&)dkbCM+}bXJdf`A!}+^m;jW~_z0a+3xAtATdCTrieGinI z4}F$;^5UJQBSWW+i+ibda78Y5zQx0?tsPQBCTzM;yf=PS~Z+n-b&NN+w<$^tO}QGaqR_opR#XoP#X`GS5Ae znKJOOZ+EPNTAAG%cejqH#|CcSjmK9ZEz4`8HYTmij~+U`oqT@Z>YUu7VRybLAy;mj VGWO@Wo!Xa-JtxoharVrGe*=HMCFKAB literal 0 HcmV?d00001 diff --git a/diylc/diylc-swing/src/org/diylc/swing/loadline/LoadlineEditorFrame.java b/diylc/diylc-swing/src/org/diylc/swing/loadline/LoadlineEditorFrame.java index 43499abb..5b4ab7ab 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/loadline/LoadlineEditorFrame.java +++ b/diylc/diylc-swing/src/org/diylc/swing/loadline/LoadlineEditorFrame.java @@ -54,16 +54,15 @@ import org.diylc.components.misc.LoadlineEntity; import org.diylc.core.IDIYComponent; import org.diylc.core.IView; import org.diylc.core.Project; -import org.diylc.swing.images.IconLoader; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.Voltage; import org.diylc.core.measures.VoltageUnit; -import org.diylc.lang.LangUtil; import org.diylc.presenter.Presenter; import org.diylc.swing.gui.DialogFactory; import org.diylc.swing.gui.TranslatedPanel; import org.diylc.swing.gui.editor.PropertyEditorDialog; +import org.diylc.swing.images.IconLoader; import org.diylc.swing.plugins.canvas.CanvasPanel; import org.diylc.swing.plugins.file.FileFilterEnum; import org.diylc.swingframework.ButtonDialog; @@ -520,9 +519,9 @@ public class LoadlineEditorFrame extends JFrame implements IView { @Override public boolean editProperties(List properties, - Set defaultedProperties) { + Set defaultedProperties, String title) { PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog(LoadlineEditorFrame.this, properties, - LangUtil.translate("Edit Selection"), true); + title, true); editor.setVisible(true); defaultedProperties.addAll(editor.getDefaultedProperties()); return ButtonDialog.OK.equals(editor.getSelectedButtonCaption()); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java index f6a3c857..b0d4af1e 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java @@ -91,6 +91,7 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler { swingUI.injectSubmenu(ANALYZE_TITLE, IconLoader.Scientist.getIcon(), FILE_TITLE); swingUI.injectMenuAction(actionFactory.createBomAction(plugInPort), ANALYZE_TITLE); swingUI.injectMenuAction(actionFactory.createGenerateNetlistAction(plugInPort, swingUI), ANALYZE_TITLE); + swingUI.injectMenuAction(actionFactory.createCheckProximityAction(plugInPort, swingUI), ANALYZE_TITLE); List summarizers = plugInPort.getNetlistAnalyzers(); if (summarizers != null) { diff --git a/diylc/diylc-swing/test/org/diylc/MockView.java b/diylc/diylc-swing/test/org/diylc/MockView.java index 756e9700..7f070b38 100644 --- a/diylc/diylc-swing/test/org/diylc/MockView.java +++ b/diylc/diylc-swing/test/org/diylc/MockView.java @@ -23,7 +23,7 @@ public class MockView implements IView { @Override public boolean editProperties(List properties, - Set defaultedProperties) { + Set defaultedProperties, String title) { // TODO Auto-generated method stub return false; }