diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml
index 66ab4cee..1cc0ee1e 100644
--- a/diylc/diylc-core/src/org/diylc/presenter/update.xml
+++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml
@@ -3039,7 +3039,7 @@
6
0
- 2020-04-20 00:00:00.000 CET
+ 2020-05-03 00:00:00.000 CET
@@ -3050,6 +3050,10 @@
NEW_FEATURE
Added "Sizing Mode" to Image component that allows stretching the image freely using two control points
+
+ NEW_FEATURE
+ Added "Loadline Editor" to the File menu, to be used in the future to calculate tube or transistor bias point using loadlines
+
IMPROVEMENT
Include themes and fonts in OSX app package
diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar
index e4eda30d..21092913 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-library/src/org/diylc/components/misc/Loadline.java b/diylc/diylc-library/src/org/diylc/components/misc/Loadline.java
index 79a8c626..fcc4e979 100644
--- a/diylc/diylc-library/src/org/diylc/components/misc/Loadline.java
+++ b/diylc/diylc-library/src/org/diylc/components/misc/Loadline.java
@@ -36,10 +36,10 @@ import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty;
-@ComponentDescriptor(name = "Loadline", category = "Misc", author = "Branislav Stojkovic",
- zOrder = IDIYComponent.BOARD, instanceNamePrefix = "LL",
- description = "Loadline of a tube or transistor", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME,
- autoEdit = false, transformer = SimpleComponentTransformer.class)
+//@ComponentDescriptor(name = "Loadline", category = "Misc", author = "Branislav Stojkovic",
+// zOrder = IDIYComponent.BOARD, instanceNamePrefix = "LL",
+// description = "Loadline of a tube or transistor", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME,
+// autoEdit = false, transformer = SimpleComponentTransformer.class)
public class Loadline extends AbstractBoard {
private static final long serialVersionUID = 1L;
diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml
index e9394afb..1e77ea6b 100644
--- a/diylc/diylc-swing/build.xml
+++ b/diylc/diylc-swing/build.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar
index e4eda30d..21092913 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 1b7c65fa..5d42a00c 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/images/IconLoader.java b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java
index d1f444fb..56391f55 100644
--- a/diylc/diylc-swing/src/org/diylc/images/IconLoader.java
+++ b/diylc/diylc-swing/src/org/diylc/images/IconLoader.java
@@ -66,7 +66,7 @@ public enum IconLoader {
Node("node.png"), Web("web.png"), Guitar("guitar.png"), Scientist("scientist.png"), StarGrey("star_grey.png"), StarBlue("star_blue.png"),
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");
+ Unlock("lock_open.png"), Earth("earth.png"), Loadline("loadline.png"), LoadlineAdd("loadline_add.png");
protected String name;
diff --git a/diylc/diylc-swing/src/org/diylc/images/loadline.png b/diylc/diylc-swing/src/org/diylc/images/loadline.png
new file mode 100644
index 00000000..57757f96
Binary files /dev/null and b/diylc/diylc-swing/src/org/diylc/images/loadline.png differ
diff --git a/diylc/diylc-swing/src/org/diylc/images/loadline_add.png b/diylc/diylc-swing/src/org/diylc/images/loadline_add.png
new file mode 100644
index 00000000..48003746
Binary files /dev/null and b/diylc/diylc-swing/src/org/diylc/images/loadline_add.png differ
diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java b/diylc/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java
index 4c1fdd95..459bad70 100644
--- a/diylc/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java
+++ b/diylc/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java
@@ -104,6 +104,16 @@ public class DialogFactory {
return processFileChooserResult(result, openFileChooser, defaultExtension);
}
+
+ public File showOpenDialog(Window owner, FileFilter fileFilter, File initialFile, String defaultExtension,
+ IFileChooserAccessory accessory) {
+ JFileChooser openFileChooser = new JFileChooser();
+ initializeFileChooser(openFileChooser, fileFilter, initialFile, defaultExtension, accessory, false);
+
+ int result = openFileChooser.showOpenDialog(owner);
+
+ return processFileChooserResult(result, openFileChooser, defaultExtension);
+ }
public File showOpenDialog(FileFilter fileFilter, File initialFile, String defaultExtension,
IFileChooserAccessory accessory, JFrame ownerFrame) {
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 0ed6de69..f08c7c07 100644
--- a/diylc/diylc-swing/src/org/diylc/swing/loadline/LoadlineEditorFrame.java
+++ b/diylc/diylc-swing/src/org/diylc/swing/loadline/LoadlineEditorFrame.java
@@ -23,12 +23,14 @@ import java.util.Set;
import javax.swing.AbstractAction;
import javax.swing.Action;
+import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
+import javax.swing.UIManager;
import org.apache.log4j.Logger;
import org.apache.poi.util.IOUtils;
@@ -97,6 +99,8 @@ public class LoadlineEditorFrame extends JFrame implements IView {
public LoadlineEditorFrame() {
super("Loadline Editor");
+ setIconImage(IconLoader.Loadline.getImage());
+ setResizable(false);
if (loadline == null) {
loadline = new LoadlineEntity();
@@ -174,6 +178,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
toolbar.add(new JButton(new SaveAction()));
toolbar.add(new JButton(new LoadImageAction()));
toolbar.add(new JButton(new AddCurveAction()));
+ toolbar.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 0, UIManager.getColor("InternalFrame.borderShadow")));
}
return toolbar;
}
@@ -265,6 +270,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
JButton updateButton = new JButton(new UpdateValuesAction());
controlPanel.add(updateButton);
+ controlPanel.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, UIManager.getColor("InternalFrame.borderShadow")));
}
return controlPanel;
}
@@ -513,7 +519,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
@Override
public boolean editProperties(List properties,
Set defaultedProperties) {
- PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog(properties,
+ PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog(LoadlineEditorFrame.this, properties,
LangUtil.translate("Edit Selection"), true);
editor.setVisible(true);
defaultedProperties.addAll(editor.getDefaultedProperties());
@@ -599,7 +605,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
@Override
public void actionPerformed(ActionEvent e) {
- final File file = DialogFactory.getInstance().showOpenDialog(FileFilterEnum.CRV.getFilter(), null,
+ final File file = DialogFactory.getInstance().showOpenDialog(LoadlineEditorFrame.this, FileFilterEnum.CRV.getFilter(), null,
FileFilterEnum.CRV.getExtensions()[0], null);
if (file != null) {
try {
@@ -643,7 +649,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
public AddCurveAction() {
super();
putValue(Action.NAME, "Add a Curve");
- // putValue(Action.SMALL_ICON, IconLoader.DiskBlue.getIcon());
+ putValue(Action.SMALL_ICON, IconLoader.LoadlineAdd.getIcon());
}
@Override
@@ -664,7 +670,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
@Override
public void actionPerformed(ActionEvent e) {
- File file = DialogFactory.getInstance().showOpenDialog(FileFilterEnum.IMAGES.getFilter(),
+ File file = DialogFactory.getInstance().showOpenDialog(LoadlineEditorFrame.this, FileFilterEnum.IMAGES.getFilter(),
null, FileFilterEnum.IMAGES.getExtensions()[0], null);
if (file != null) {
FileInputStream fis;
@@ -702,7 +708,7 @@ public class LoadlineEditorFrame extends JFrame implements IView {
public LoadlineEditorAction() {
super();
putValue(Action.NAME, "Loadline Editor");
-// putValue(Action.SMALL_ICON, IconLoader.Delete.getIcon());
+ putValue(Action.SMALL_ICON, IconLoader.Loadline.getIcon());
}
@Override
diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java
index 3af5ba45..07106bfb 100644
--- a/diylc/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java
+++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java
@@ -39,8 +39,7 @@ import org.diylc.core.ExpansionMode;
import org.diylc.core.Project;
import org.diylc.images.IconLoader;
import org.diylc.swing.ActionFactory;
-import org.diylc.swing.ISwingUI;
-import org.diylc.swing.loadline.LoadlineEditorFrame;
+import org.diylc.swing.ISwingUI;
public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
@@ -322,8 +321,7 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(getFlexibleLeadsAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
- swingUI.injectMenuAction(actionFactory.createEditProjectAction(plugInPort), EDIT_TITLE);
- swingUI.injectMenuAction(new LoadlineEditorFrame.LoadlineEditorAction(), EDIT_TITLE);
+ swingUI.injectMenuAction(actionFactory.createEditProjectAction(plugInPort), EDIT_TITLE);
refreshActions();
}
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 9022e28b..39ae2fa4 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
@@ -35,7 +35,8 @@ import org.diylc.common.IPlugInPort;
import org.diylc.images.IconLoader;
import org.diylc.swing.ActionFactory;
import org.diylc.swing.IDynamicSubmenuHandler;
-import org.diylc.swing.ISwingUI;
+import org.diylc.swing.ISwingUI;
+import org.diylc.swing.loadline.LoadlineEditorFrame;
/**
* Entry point class for File management utilities.
@@ -103,7 +104,8 @@ public class FileMenuPlugin implements IPlugIn, IDynamicSubmenuHandler {
swingUI.injectMenuAction(actionFactory.createExportBlocksAction(swingUI), INTEGRATION_TITLE);
swingUI.injectMenuAction(null, INTEGRATION_TITLE);
swingUI.injectMenuAction(actionFactory.createImportVariantsAction(swingUI, plugInPort), INTEGRATION_TITLE);
- swingUI.injectMenuAction(actionFactory.createExportVariantsAction(swingUI, plugInPort), INTEGRATION_TITLE);
+ swingUI.injectMenuAction(actionFactory.createExportVariantsAction(swingUI, plugInPort), INTEGRATION_TITLE);
+ swingUI.injectMenuAction(new LoadlineEditorFrame.LoadlineEditorAction(), FILE_TITLE);
swingUI.injectMenuAction(null, FILE_TITLE);
swingUI.injectMenuAction(actionFactory.createExitAction(plugInPort), FILE_TITLE);
}