mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-19 01:44:44 -04:00
added option to create only NOr-Gates
This commit is contained in:
parent
3ac04cf501
commit
d3bd8afe89
@ -1,6 +1,7 @@
|
|||||||
package de.neemann.digital.analyse.expression.modify;
|
package de.neemann.digital.analyse.expression.modify;
|
||||||
|
|
||||||
import de.neemann.digital.analyse.expression.Expression;
|
import de.neemann.digital.analyse.expression.Expression;
|
||||||
|
import de.neemann.digital.analyse.expression.Not;
|
||||||
import de.neemann.digital.analyse.expression.Operation;
|
import de.neemann.digital.analyse.expression.Operation;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -14,7 +15,9 @@ public class NAnd implements ExpressionModifier {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Expression modify(Expression expression) {
|
public Expression modify(Expression expression) {
|
||||||
if (expression instanceof Operation.Or) {
|
if (expression instanceof Operation.And) {
|
||||||
|
return new Not(not(expression));
|
||||||
|
} else if (expression instanceof Operation.Or) {
|
||||||
ArrayList<Expression> exp = new ArrayList<>();
|
ArrayList<Expression> exp = new ArrayList<>();
|
||||||
for (Expression e : ((Operation.Or) expression).getExpressions())
|
for (Expression e : ((Operation.Or) expression).getExpressions())
|
||||||
exp.add(not(e));
|
exp.add(not(e));
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package de.neemann.digital.analyse.expression.modify;
|
package de.neemann.digital.analyse.expression.modify;
|
||||||
|
|
||||||
import de.neemann.digital.analyse.expression.Expression;
|
import de.neemann.digital.analyse.expression.Expression;
|
||||||
|
import de.neemann.digital.analyse.expression.Not;
|
||||||
import de.neemann.digital.analyse.expression.Operation;
|
import de.neemann.digital.analyse.expression.Operation;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -14,6 +15,9 @@ public class NOr implements ExpressionModifier {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Expression modify(Expression expression) {
|
public Expression modify(Expression expression) {
|
||||||
|
if (expression instanceof Operation.Or) {
|
||||||
|
return new Not(not(expression));
|
||||||
|
} else
|
||||||
if (expression instanceof Operation.And) {
|
if (expression instanceof Operation.And) {
|
||||||
ArrayList<Expression> exp = new ArrayList<>();
|
ArrayList<Expression> exp = new ArrayList<>();
|
||||||
for (Expression e : ((Operation.And) expression).getExpressions())
|
for (Expression e : ((Operation.And) expression).getExpressions())
|
||||||
|
@ -172,6 +172,7 @@ public class Builder {
|
|||||||
*/
|
*/
|
||||||
public Circuit createCircuit() {
|
public Circuit createCircuit() {
|
||||||
createInputBus();
|
createInputBus();
|
||||||
|
circuit.setNotModified();
|
||||||
return circuit;
|
return circuit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,6 +383,13 @@ public class Circuit {
|
|||||||
modified = true;
|
modified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets this circuits state to not modified
|
||||||
|
*/
|
||||||
|
public void setNotModified() {
|
||||||
|
modified = false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return true if modified
|
* @return true if modified
|
||||||
*/
|
*/
|
||||||
|
@ -8,6 +8,7 @@ import de.neemann.digital.analyse.expression.format.FormatToExpression;
|
|||||||
import de.neemann.digital.analyse.expression.format.FormatterException;
|
import de.neemann.digital.analyse.expression.format.FormatterException;
|
||||||
import de.neemann.digital.analyse.expression.modify.ExpressionModifier;
|
import de.neemann.digital.analyse.expression.modify.ExpressionModifier;
|
||||||
import de.neemann.digital.analyse.expression.modify.NAnd;
|
import de.neemann.digital.analyse.expression.modify.NAnd;
|
||||||
|
import de.neemann.digital.analyse.expression.modify.NOr;
|
||||||
import de.neemann.digital.draw.builder.Builder;
|
import de.neemann.digital.draw.builder.Builder;
|
||||||
import de.neemann.digital.draw.builder.BuilderException;
|
import de.neemann.digital.draw.builder.BuilderException;
|
||||||
import de.neemann.digital.draw.elements.Circuit;
|
import de.neemann.digital.draw.elements.Circuit;
|
||||||
@ -133,12 +134,12 @@ public class TableFrame extends JFrame {
|
|||||||
createCircuit(new NAnd());
|
createCircuit(new NAnd());
|
||||||
}
|
}
|
||||||
}.setToolTip(Lang.get("menu_table_createNAnd_tt")).createJMenuItem());
|
}.setToolTip(Lang.get("menu_table_createNAnd_tt")).createJMenuItem());
|
||||||
// createMenu.add(new ToolTipAction(Lang.get("menu_table_createNOr")) {
|
createMenu.add(new ToolTipAction(Lang.get("menu_table_createNOr")) {
|
||||||
// @Override
|
@Override
|
||||||
// public void actionPerformed(ActionEvent actionEvent) {
|
public void actionPerformed(ActionEvent actionEvent) {
|
||||||
// createCircuit(new NOr());
|
createCircuit(new NOr());
|
||||||
// }
|
}
|
||||||
// }.setToolTip(Lang.get("menu_table_createNOr_tt")).createJMenuItem());
|
}.setToolTip(Lang.get("menu_table_createNOr_tt")).createJMenuItem());
|
||||||
|
|
||||||
bar.add(createMenu);
|
bar.add(createMenu);
|
||||||
|
|
||||||
|
@ -270,6 +270,8 @@ menu_table_create=Model erzeugen
|
|||||||
menu_table_create_tt=Erzeugt ein Model, welches der Wahrheitstabelle entspricht.
|
menu_table_create_tt=Erzeugt ein Model, welches der Wahrheitstabelle entspricht.
|
||||||
menu_table_createNAnd=Model erzeugen mit NAnd
|
menu_table_createNAnd=Model erzeugen mit NAnd
|
||||||
menu_table_createNAnd_tt=Erzeugt ein Model, welches der Wahrheitstabelle entspricht nur mit NAnd-Gattern.
|
menu_table_createNAnd_tt=Erzeugt ein Model, welches der Wahrheitstabelle entspricht nur mit NAnd-Gattern.
|
||||||
|
menu_table_createNOr=Model erzeugen mit NOr
|
||||||
|
menu_table_createNOr_tt=Erzeugt ein Model, welches der Wahrheitstabelle entspricht nur mit NOr-Gattern.
|
||||||
|
|
||||||
menu_about=\u00DCber Digital
|
menu_about=\u00DCber Digital
|
||||||
|
|
||||||
|
@ -250,6 +250,8 @@ menu_table_create=create circuit
|
|||||||
menu_table_create_tt=Creates a circuit which reproduces the truth table.
|
menu_table_create_tt=Creates a circuit which reproduces the truth table.
|
||||||
menu_table_createNAnd=create with NAnd
|
menu_table_createNAnd=create with NAnd
|
||||||
menu_table_createNAnd_tt=Creates a circuit which reproduces the truth table only with NAnd gates.
|
menu_table_createNAnd_tt=Creates a circuit which reproduces the truth table only with NAnd gates.
|
||||||
|
menu_table_createNOr=create with NOr
|
||||||
|
menu_table_createNOr_tt=Creates a circuit which reproduces the truth table only with NOr gates.
|
||||||
|
|
||||||
win_saveChanges=Save Changes?
|
win_saveChanges=Save Changes?
|
||||||
win_confirmExit=Confirm Exit!
|
win_confirmExit=Confirm Exit!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user