From a8c860b86da71166c15021ee4252e2f51e0ae81d Mon Sep 17 00:00:00 2001 From: hneemann Date: Sun, 14 May 2017 13:38:20 +0200 Subject: [PATCH] improved pin number wizard --- src/main/dig/74xx/lib/744075.dig | 268 ++++++++++++++++++ .../neemann/digital/gui/NumberingWizard.java | 25 +- src/main/resources/lang/lang_de.xml | 3 +- src/main/resources/lang/lang_en.xml | 3 +- .../digital/integration/TestExamples.java | 2 +- 5 files changed, 290 insertions(+), 11 deletions(-) create mode 100644 src/main/dig/74xx/lib/744075.dig diff --git a/src/main/dig/74xx/lib/744075.dig b/src/main/dig/74xx/lib/744075.dig new file mode 100644 index 000000000..4362644f6 --- /dev/null +++ b/src/main/dig/74xx/lib/744075.dig @@ -0,0 +1,268 @@ + + + 1 + + + isDIL + true + + + Description + triple 3-input OR gate + + + lockedMode + true + + + + + Or + + + Inputs + 3 + + + + + + Out + + + Label + 1Y + + + pinNumber + 9 + + + + + + In + + + Label + 1A + + + pinNumber + 1 + + + + + + In + + + Label + 1C + + + pinNumber + 8 + + + + + + In + + + Label + 1B + + + pinNumber + 2 + + + + + + Or + + + Inputs + 3 + + + + + + Out + + + Label + 2Y + + + pinNumber + 6 + + + + + + In + + + Label + 2A + + + pinNumber + 3 + + + + + + In + + + Label + 2C + + + pinNumber + 5 + + + + + + In + + + Label + 2B + + + pinNumber + 4 + + + + + + Or + + + Inputs + 3 + + + + + + Out + + + Label + 3Y + + + pinNumber + 10 + + + + + + In + + + Label + 3A + + + pinNumber + 11 + + + + + + In + + + Label + 3C + + + pinNumber + 13 + + + + + + In + + + Label + 3B + + + pinNumber + 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/de/neemann/digital/gui/NumberingWizard.java b/src/main/java/de/neemann/digital/gui/NumberingWizard.java index ce20eb09d..213f3e5b6 100644 --- a/src/main/java/de/neemann/digital/gui/NumberingWizard.java +++ b/src/main/java/de/neemann/digital/gui/NumberingWizard.java @@ -6,8 +6,10 @@ import de.neemann.digital.core.io.Out; import de.neemann.digital.draw.elements.VisualElement; import de.neemann.digital.gui.components.CircuitComponent; import de.neemann.digital.lang.Lang; +import de.neemann.gui.Screen; import javax.swing.*; +import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -22,15 +24,19 @@ public class NumberingWizard extends JDialog implements CircuitComponent.WizardN /** * Creates a new instance - * @param parent the parent frame + * + * @param parent the parent frame * @param circuitComponent the component used to select the inputs and outputs */ public NumberingWizard(JFrame parent, CircuitComponent circuitComponent) { super(parent, Lang.get("msg_numberingWizard"), false); setDefaultCloseOperation(DISPOSE_ON_CLOSE); this.circuitComponent = circuitComponent; - pinNumber = 0; - label = new JLabel("________________"); + label = new JLabel(); + label.setFont(Screen.getInstance().getFont(1.5f)); + int b = Screen.getInstance().getFontSize(); + label.setBorder(BorderFactory.createEmptyBorder(b, b, b, b)); + setPinNumber(999); getContentPane().add(label); addWindowListener(new WindowAdapter() { @@ -40,14 +46,15 @@ public class NumberingWizard extends JDialog implements CircuitComponent.WizardN } }); pack(); - incPinNumber(); + + pinNumber = 1; + setPinNumber(pinNumber); setAlwaysOnTop(true); setLocation(parent.getLocation()); } - private void incPinNumber() { - pinNumber++; - label.setText(Lang.get("msg_pin_N", pinNumber)); + private void setPinNumber(int num) { + label.setText(Lang.get("msg_pin_numbering_N", num)); } /** @@ -62,8 +69,10 @@ public class NumberingWizard extends JDialog implements CircuitComponent.WizardN public void notify(VisualElement clicked) { if (clicked.equalsDescription(In.DESCRIPTION) || clicked.equalsDescription(Out.DESCRIPTION)) { clicked.getElementAttributes().set(Keys.PINNUMBER, pinNumber); - incPinNumber(); + pinNumber++; + setPinNumber(pinNumber); circuitComponent.hasChanged(); + circuitComponent.getCircuit().modified(); } } diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml index 9c33e872c..a1f52d161 100644 --- a/src/main/resources/lang/lang_de.xml +++ b/src/main/resources/lang/lang_de.xml @@ -785,7 +785,7 @@ Sind evtl. die Namen der Variablen nicht eindeutig? Dies vereinfacht die Erzeugung von 74xx Schaltungen. Pinnummerierung Wizard zur einfachen Nummerierung der Pins. - Pin Nummern entfernen. + Pin Nummern entfernen Alle Pinnummern in der Schaltung werden entfernt. Digital @@ -842,6 +842,7 @@ Die Icons stammen aus dem Tango Desktop Project. Fehler bei der Ausführung des Geschwindigkeitstests! Pin {0} Nummerierungshilfe + Wählen Sie Pin {0}: Ok diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml index a3bdda3dc..07e234fff 100644 --- a/src/main/resources/lang/lang_en.xml +++ b/src/main/resources/lang/lang_en.xml @@ -772,10 +772,11 @@ The names of the variables may not be unique. Remove IO-Prefix The first character from the inputs and outputs labels are removed. Is used to simplify the doubling of circuits within a 74xx circuit. - Pin Numbering + Pin Wizard Wizard to apply pin numbers to the inputs and outputs. Remove Pin Numbers Remove all pin numbers in the circuit + Select pin {0}: Digital diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java index fd7b7fb2e..eda3975d0 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -28,7 +28,7 @@ public class TestExamples extends TestCase { */ public void testDistExamples() throws Exception { File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig"); - assertEquals(152, new FileScanner(this::check).scan(examples)); + assertEquals(153, new FileScanner(this::check).scan(examples)); assertEquals(74, testCasesInFiles); }