mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-28 15:32:40 -04:00
improved pin number wizard
This commit is contained in:
parent
4a363c9436
commit
a8c860b86d
268
src/main/dig/74xx/lib/744075.dig
Normal file
268
src/main/dig/74xx/lib/744075.dig
Normal file
@ -0,0 +1,268 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<attributes>
|
||||
<entry>
|
||||
<string>isDIL</string>
|
||||
<boolean>true</boolean>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Description</string>
|
||||
<string>triple 3-input OR gate</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>lockedMode</string>
|
||||
<boolean>true</boolean>
|
||||
</entry>
|
||||
</attributes>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>Or</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Inputs</string>
|
||||
<int>3</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="360" y="200"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>1Y</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>9</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="440" y="220"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>1A</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>1</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="200"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>1C</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="240"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>1B</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>2</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="220"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Or</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Inputs</string>
|
||||
<int>3</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="360" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>2Y</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>6</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="440" y="320"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>2A</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>3</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>2C</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>5</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>2B</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>4</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="320"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Or</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Inputs</string>
|
||||
<int>3</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="360" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>3Y</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>10</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="440" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>3A</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>11</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>3C</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>13</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>3B</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>pinNumber</string>
|
||||
<int>12</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="420"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="200" y="240"/>
|
||||
<p2 x="360" y="240"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="420" y="320"/>
|
||||
<p2 x="440" y="320"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="320"/>
|
||||
<p2 x="360" y="320"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="400"/>
|
||||
<p2 x="360" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="420" y="420"/>
|
||||
<p2 x="440" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="420"/>
|
||||
<p2 x="360" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="340"/>
|
||||
<p2 x="360" y="340"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="440"/>
|
||||
<p2 x="360" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="200"/>
|
||||
<p2 x="360" y="200"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="420" y="220"/>
|
||||
<p2 x="440" y="220"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="220"/>
|
||||
<p2 x="360" y="220"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="200" y="300"/>
|
||||
<p2 x="360" y="300"/>
|
||||
</wire>
|
||||
</wires>
|
||||
</circuit>
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -785,7 +785,7 @@ Sind evtl. die Namen der Variablen nicht eindeutig?</string>
|
||||
Dies vereinfacht die Erzeugung von 74xx Schaltungen.</string>
|
||||
<string name="menu_numbering">Pinnummerierung</string>
|
||||
<string name="menu_numbering_tt">Wizard zur einfachen Nummerierung der Pins.</string>
|
||||
<string name="menu_removePinNumbers">Pin Nummern entfernen.</string>
|
||||
<string name="menu_removePinNumbers">Pin Nummern entfernen</string>
|
||||
<string name="menu_removePinNumbers_tt">Alle Pinnummern in der Schaltung werden entfernt.</string>
|
||||
|
||||
<string name="message">Digital
|
||||
@ -842,6 +842,7 @@ Die Icons stammen aus dem Tango Desktop Project.</string>
|
||||
<string name="msg_speedTestError">Fehler bei der Ausführung des Geschwindigkeitstests!</string>
|
||||
<string name="msg_pin_N">Pin {0}</string>
|
||||
<string name="msg_numberingWizard">Nummerierungshilfe</string>
|
||||
<string name="msg_pin_numbering_N">Wählen Sie Pin {0}:</string>
|
||||
|
||||
<string name="ok">Ok</string>
|
||||
<string name="rot_0">0°</string>
|
||||
|
@ -772,10 +772,11 @@ The names of the variables may not be unique.</string>
|
||||
<string name="menu_removePrefix">Remove IO-Prefix</string>
|
||||
<string name="menu_removePrefix_tt">The first character from the inputs and outputs labels are removed.
|
||||
Is used to simplify the doubling of circuits within a 74xx circuit.</string>
|
||||
<string name="menu_numbering">Pin Numbering</string>
|
||||
<string name="menu_numbering">Pin Wizard</string>
|
||||
<string name="menu_numbering_tt">Wizard to apply pin numbers to the inputs and outputs.</string>
|
||||
<string name="menu_removePinNumbers">Remove Pin Numbers</string>
|
||||
<string name="menu_removePinNumbers_tt">Remove all pin numbers in the circuit</string>
|
||||
<string name="msg_pin_numbering_N">Select pin {0}:</string>
|
||||
|
||||
|
||||
<string name="message">Digital
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user