diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index 677941953..a76089365 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -611,7 +611,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS ToolTipAction editAttributes = new ToolTipAction(Lang.get("menu_editAttributes")) { @Override public void actionPerformed(ActionEvent e) { - circuitComponent.editCircuitAttributes(Main.this); + circuitComponent.editCircuitAttributes(); } }.setToolTip(Lang.get("menu_editAttributes_tt")); @@ -1611,7 +1611,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS */ public static class MainBuilder { private File fileToOpen; - private Component parent; + private Window parent; private ElementLibrary library; private Circuit circuit; private boolean allowAllFileActions = true; @@ -1641,7 +1641,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS * @param parent the parent component * @return this for chained calls */ - public MainBuilder setParent(Component parent) { + public MainBuilder setParent(Window parent) { this.parent = parent; return this; } diff --git a/src/main/java/de/neemann/digital/gui/components/AttributeDialog.java b/src/main/java/de/neemann/digital/gui/components/AttributeDialog.java index c6e4ffd54..d50b914f3 100644 --- a/src/main/java/de/neemann/digital/gui/components/AttributeDialog.java +++ b/src/main/java/de/neemann/digital/gui/components/AttributeDialog.java @@ -29,7 +29,7 @@ import java.util.HashMap; public class AttributeDialog extends JDialog { private final java.util.List editors; private final JPanel panel; - private final Component parent; + private final Window parent; private final Point pos; private final ElementAttributes originalAttributes; private final ElementAttributes modifiedAttributes; @@ -47,7 +47,7 @@ public class AttributeDialog extends JDialog { * @param list the list of keys which are to edit * @param elementAttributes the data stored */ - public AttributeDialog(Component parent, java.util.List list, ElementAttributes elementAttributes) { + public AttributeDialog(Window parent, java.util.List list, ElementAttributes elementAttributes) { this(parent, null, list, elementAttributes, false); } @@ -59,7 +59,7 @@ public class AttributeDialog extends JDialog { * @param list the list of keys which are to edit * @param elementAttributes the data stored */ - public AttributeDialog(Component parent, Point pos, java.util.List list, ElementAttributes elementAttributes) { + public AttributeDialog(Window parent, Point pos, java.util.List list, ElementAttributes elementAttributes) { this(parent, pos, list, elementAttributes, false); } @@ -72,8 +72,8 @@ public class AttributeDialog extends JDialog { * @param elementAttributes the initial data to modify * @param addCheckBoxes th true check boxes behind the attributes are added */ - public AttributeDialog(Component parent, Point pos, java.util.List list, ElementAttributes elementAttributes, boolean addCheckBoxes) { - super(SwingUtilities.getWindowAncestor(parent), Lang.get("attr_dialogTitle"), ModalityType.APPLICATION_MODAL); + public AttributeDialog(Window parent, Point pos, java.util.List list, ElementAttributes elementAttributes, boolean addCheckBoxes) { + super(parent, Lang.get("attr_dialogTitle"), ModalityType.APPLICATION_MODAL); this.parent = parent; this.pos = pos; this.originalAttributes = elementAttributes; @@ -228,7 +228,7 @@ public class AttributeDialog extends JDialog { /** * @return the dialogs parent */ - public Component getDialogParent() { + public Window getDialogParent() { return parent; } @@ -246,8 +246,6 @@ public class AttributeDialog extends JDialog { public Main getMain() { // ToDo: is a hack! find a better solution for getting the main frame if (parent instanceof Main) return (Main) parent; - if (parent instanceof CircuitComponent) - return ((CircuitComponent) parent).getMain(); return null; } diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java index 0d3be0b62..052b38f04 100644 --- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java +++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java @@ -391,20 +391,17 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe /** * Opens the attribute editor - * - * @param parent the parent component */ - public void editCircuitAttributes(Component parent) { - editCircuitAttributes(parent, ATTR_LIST); + public void editCircuitAttributes() { + editCircuitAttributes(ATTR_LIST); } /** * Opens the attribute editor * - * @param parent the parent component * @param attrList the list of keys to edit */ - public void editCircuitAttributes(Component parent, java.util.List attrList) { + public void editCircuitAttributes(java.util.List attrList) { ElementAttributes modifiedAttributes = new AttributeDialog(parent, attrList, circuit.getAttributes()).showDialog(); if (modifiedAttributes != null) modify(new ModifyCircuitAttributes(modifiedAttributes)); @@ -976,14 +973,14 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe if (list.size() > 0) { Point p = new Point(e.getX(), e.getY()); SwingUtilities.convertPointToScreen(p, CircuitComponent.this); - AttributeDialog attributeDialog = new AttributeDialog(this, p, list, element.getElementAttributes()).setVisualElement(element); + AttributeDialog attributeDialog = new AttributeDialog(parent, p, list, element.getElementAttributes()).setVisualElement(element); if (elementType instanceof ElementLibrary.ElementTypeDescriptionCustom) { attributeDialog.addButton(Lang.get("attr_openCircuitLabel"), new ToolTipAction(Lang.get("attr_openCircuit")) { @Override public void actionPerformed(ActionEvent e) { attributeDialog.dispose(); new Main.MainBuilder() - .setParent(CircuitComponent.this) + .setParent(parent) .setFileToOpen(((ElementLibrary.ElementTypeDescriptionCustom) elementType).getFile()) .setLibrary(library) .denyMostFileActions() @@ -1125,7 +1122,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe } if (keyList.size() > 0) { - AttributeDialog ad = new AttributeDialog(this, null, keyList, attr, true); + AttributeDialog ad = new AttributeDialog(parent, null, keyList, attr, true); for (Map.Entry u : useKeyMap.entrySet()) ad.getCheckBoxes().get(u.getKey()).setSelected(u.getValue()); ElementAttributes mod = ad.showDialog(); diff --git a/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionDialog.java b/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionDialog.java index 36f465a21..dd84ceb7c 100644 --- a/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionDialog.java +++ b/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionDialog.java @@ -35,8 +35,8 @@ public class TestCaseDescriptionDialog extends JDialog { * @param data the data to edit * @param element the element to be modified */ - public TestCaseDescriptionDialog(Component parent, TestCaseDescription data, VisualElement element) { - super(SwingUtilities.getWindowAncestor(parent), + public TestCaseDescriptionDialog(Window parent, TestCaseDescription data, VisualElement element) { + super(parent, Lang.get("key_Testdata"), element == null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS); setDefaultCloseOperation(DISPOSE_ON_CLOSE); @@ -72,8 +72,8 @@ public class TestCaseDescriptionDialog extends JDialog { buttons.add(new ToolTipAction(Lang.get("btn_addTransitions")) { @Override public void actionPerformed(ActionEvent e) { - if (parent instanceof CircuitComponent) { - CircuitComponent cc = (CircuitComponent) parent; + if (parent instanceof Main) { + CircuitComponent cc = ((Main) parent).getCircuitComponent(); try { Transitions tr = new Transitions(text.getText(), cc.getCircuit().getInputNames()); if (tr.isNew()) { @@ -93,9 +93,9 @@ public class TestCaseDescriptionDialog extends JDialog { public void actionPerformed(ActionEvent e) { try { data.setDataString(text.getText()); - if (parent instanceof CircuitComponent) { + if (parent instanceof Main) { + CircuitComponent cc = ((Main) parent).getCircuitComponent(); element.getElementAttributes().set(TestCaseElement.TESTDATA, data); - CircuitComponent cc = (CircuitComponent) parent; cc.getMain().startTests(); } } catch (ParserException | IOException e1) { @@ -112,8 +112,8 @@ public class TestCaseDescriptionDialog extends JDialog { data.setDataString(text.getText()); if (element != null && !initialDataString.equals(data.getDataString()) - && parent instanceof CircuitComponent) { - CircuitComponent cc = (CircuitComponent) parent; + && parent instanceof Main) { + CircuitComponent cc = ((Main) parent).getCircuitComponent(); cc.modify(new ModifyAttribute<>(element, TestCaseElement.TESTDATA, new TestCaseDescription(data))); } dispose(); diff --git a/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionEditor.java b/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionEditor.java index 2617a78ad..c7c093cff 100644 --- a/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionEditor.java +++ b/src/main/java/de/neemann/digital/gui/components/testing/TestCaseDescriptionEditor.java @@ -19,7 +19,6 @@ import java.awt.event.ActionEvent; public class TestCaseDescriptionEditor extends EditorFactory.LabelEditor { private final TestCaseDescription data; - private final Key key; /** * Creates a new editor @@ -29,7 +28,6 @@ public class TestCaseDescriptionEditor extends EditorFactory.LabelEditor key) { this.data = new TestCaseDescription(data); - this.key = key; } @Override @@ -44,7 +42,7 @@ public class TestCaseDescriptionEditor extends EditorFactory.LabelEditor