mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
analyzer added
This commit is contained in:
@@ -21,6 +21,7 @@ import java.awt.datatransfer.Clipboard;
|
||||
import java.awt.datatransfer.ClipboardOwner;
|
||||
import javax.swing.Icon;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.diylc.swing.actions.analyze.AiAnalyzeAction;
|
||||
import org.diylc.swing.actions.analyze.HighlightConnectedAreasAction;
|
||||
import org.diylc.swingframework.IDrawingProvider;
|
||||
|
||||
@@ -275,6 +276,10 @@ public class ActionFactory {
|
||||
return new GenerateNetlistAction(plugInPort, swingUI, includeSwitches);
|
||||
}
|
||||
|
||||
public AiAnalyzeAction createAiAnalyzeAction(IPlugInPort plugInPort, ISwingUI swingUI) {
|
||||
return new AiAnalyzeAction(plugInPort, swingUI);
|
||||
}
|
||||
|
||||
public SummarizeNetlistAction createSummarizeNetlistAction(IPlugInPort plugInPort,
|
||||
ISwingUI swingUI, INetlistAnalyzer summarizer, boolean includeSwitches) {
|
||||
return new SummarizeNetlistAction(plugInPort, swingUI, summarizer, includeSwitches);
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package org.diylc.swing.actions.analyze;
|
||||
|
||||
import org.diylc.common.INetlistAnalyzer;
|
||||
import org.diylc.common.IPlugInPort;
|
||||
import org.diylc.common.ITask;
|
||||
import org.diylc.netlist.Netlist;
|
||||
import org.diylc.netlist.Summary;
|
||||
import org.diylc.swing.ISwingUI;
|
||||
import org.diylc.swingframework.TextDialog;
|
||||
import org.diylc.utils.IconLoader;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.util.List;
|
||||
|
||||
public class AiAnalyzeAction extends AbstractAction {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private IPlugInPort plugInPort;
|
||||
private ISwingUI swingUI;
|
||||
|
||||
public AiAnalyzeAction(IPlugInPort plugInPort, ISwingUI swingUI) {
|
||||
super();
|
||||
this.plugInPort = plugInPort;
|
||||
this.swingUI = swingUI;
|
||||
putValue(AbstractAction.NAME, "AI Circuit Analyzer");
|
||||
// putValue(AbstractAction.SMALL_ICON,
|
||||
// Enum.valueOf(IconLoader.class, summarizer.getIconName()).getIcon());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
swingUI.executeBackgroundTask(new ITask<String>() {
|
||||
|
||||
@Override
|
||||
public String doInBackground() throws Exception {
|
||||
return plugInPort.getChatbotService().analyzeCircuit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed(Exception e) {
|
||||
swingUI.showMessage(e.getMessage(), "AI Circuit Analyzer", ISwingUI.ERROR_MESSAGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void complete(String res) {
|
||||
if (res == null || res.isEmpty()) {
|
||||
swingUI.showMessage("The generated analysis is empty, nothing to show.",
|
||||
"AI Circuit Analyzer", ISwingUI.INFORMATION_MESSAGE);
|
||||
return;
|
||||
}
|
||||
new TextDialog(swingUI.getOwnerFrame().getRootPane(), res, "AI Circuit Analyzer",
|
||||
new Dimension(800, 600)).setVisible(true);
|
||||
}
|
||||
}, true);
|
||||
}
|
||||
}
|
||||
@@ -66,6 +66,7 @@ public class AnalyzeMenuPlugin implements IPlugIn {
|
||||
List<Action> menuActions = new ArrayList<>();
|
||||
|
||||
// Add all menu actions to the list
|
||||
menuActions.add(actionFactory.createAiAnalyzeAction(plugInPort, swingUI));
|
||||
menuActions.add(actionFactory.createCheckProximityAction(plugInPort, swingUI));
|
||||
menuActions.add(actionFactory.createBomAction(plugInPort));
|
||||
menuActions.add(actionFactory.createGenerateNetlistAction(plugInPort, swingUI, false));
|
||||
|
||||
Reference in New Issue
Block a user