mirror of
https://github.com/BorysLevytskyi/BitwiseCmd.git
synced 2025-12-13 00:12:14 +01:00
Fix error when not showing shift expression results
This commit is contained in:
@@ -8,12 +8,9 @@ export default class AppRoot extends React.Component {
|
|||||||
this.props.appState.onChange(() => this.refresh());
|
this.props.appState.onChange(() => this.refresh());
|
||||||
}
|
}
|
||||||
refresh() {
|
refresh() {
|
||||||
console.log(this.props.appState.commandResults);
|
|
||||||
this.setState(this.props.appState);
|
this.setState(this.props.appState);
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
console.log('[AppRoot] render():this.state.commandResults', this.state.commandResults)
|
|
||||||
|
|
||||||
var results = this.state.commandResults.map((r, i) => <DisplayResultView key={i} content={r} input={r.input} inputHash={r.inputHash} />);
|
var results = this.state.commandResults.map((r, i) => <DisplayResultView key={i} content={r} input={r.input} inputHash={r.inputHash} />);
|
||||||
return <div>
|
return <div>
|
||||||
<div className="header">
|
<div className="header">
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ export default class BitwiseOperationEpxressionView extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return <table className="expression">
|
return <table className="expression">
|
||||||
<tbody>{rows}</tbody>
|
<tbody>
|
||||||
|
{rows}
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,6 +26,7 @@ export default class BitwiseOperationEpxressionView extends React.Component {
|
|||||||
|
|
||||||
if(expr instanceof expression.MultipleOperandsExpression) {
|
if(expr instanceof expression.MultipleOperandsExpression) {
|
||||||
const m = BitwiseExpressionViewModel.buildMultiple(expr);
|
const m = BitwiseExpressionViewModel.buildMultiple(expr);
|
||||||
|
console.log('Render model', m);
|
||||||
return m.items.map((itm, i) => <ExpressionRow key={i} {...itm} maxNumberOfBits={m.maxNumberOfBits} />);
|
return m.items.map((itm, i) => <ExpressionRow key={i} {...itm} maxNumberOfBits={m.maxNumberOfBits} />);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,12 +38,14 @@ class ExpressionRow extends React.Component {
|
|||||||
render() {
|
render() {
|
||||||
const { sign, label, bin, other, css, maxNumberOfBits } = this.props;
|
const { sign, label, bin, other, css, maxNumberOfBits } = this.props;
|
||||||
|
|
||||||
return <tr className={css}>
|
var tr = <tr className={css}>
|
||||||
<td className="sign">{sign}</td>
|
<td className="sign">{sign}</td>
|
||||||
<td className="label">{label}</td>
|
<td className="label">{label}</td>
|
||||||
<td className="bin">{formatter.padLeft(bin, maxNumberOfBits, '0')}</td>
|
<td className="bin">{formatter.padLeft(bin, maxNumberOfBits, '0')}</td>
|
||||||
<td className="other">{other}</td>
|
<td className="other">{other}</td>
|
||||||
</tr>;
|
</tr>;
|
||||||
|
|
||||||
|
return tr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,14 +94,14 @@ class BitwiseExpressionViewModel {
|
|||||||
|
|
||||||
addExpression(expression) {
|
addExpression(expression) {
|
||||||
this.maxNumberOfBits = Math.max(expression.operand1.getLengthInBits(), this.maxNumberOfBits);
|
this.maxNumberOfBits = Math.max(expression.operand1.getLengthInBits(), this.maxNumberOfBits);
|
||||||
this.items.push({ sign: expression.sign, label: expression.operand1.input, bin: expression.operand1.bin, other: expression.operand1.other, css: ''});
|
this.items.push({ sign: expression.sign, label: expression.operand1.toString(), bin: expression.operand1.bin, other: expression.operand1.other, css: ''});
|
||||||
};
|
};
|
||||||
|
|
||||||
addShiftExpressionResult(expression, resultOperand) {
|
addShiftExpressionResult(expression, resultOperand) {
|
||||||
this.maxNumberOfBits = Math.max(resultOperand.getLengthInBits(), this.maxNumberOfBits);
|
this.maxNumberOfBits = Math.max(resultOperand.getLengthInBits(), this.maxNumberOfBits);
|
||||||
this.items.push({
|
this.items.push({
|
||||||
sign: expression.sign + expression.operand1.input,
|
sign: expression.sign + expression.operand1.input,
|
||||||
label: resultOperand,
|
label: resultOperand.toString(),
|
||||||
bin: resultOperand.bin,
|
bin: resultOperand.bin,
|
||||||
other: resultOperand.other,
|
other: resultOperand.other,
|
||||||
css: 'expression-result'});
|
css: 'expression-result'});
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ var expression = {
|
|||||||
this.factories.push(factory);
|
this.factories.push(factory);
|
||||||
},
|
},
|
||||||
Operand:Operand,
|
Operand:Operand,
|
||||||
TwoOperandExpression: TwoOperandExpression,
|
|
||||||
SingleOperandExpression: SingleOperandExpression,
|
SingleOperandExpression: SingleOperandExpression,
|
||||||
ListOfNumbersExpression: ListOfNumbersExpression,
|
ListOfNumbersExpression: ListOfNumbersExpression,
|
||||||
MultipleOperandsExpression: MultipleOperandsExpression
|
MultipleOperandsExpression: MultipleOperandsExpression
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ commands.initialize(cmd);
|
|||||||
|
|
||||||
// cmd.execute('1');
|
// cmd.execute('1');
|
||||||
// cmd.execute('2');
|
// cmd.execute('2');
|
||||||
cmd.execute('~3');
|
cmd.execute('1|2<<2');
|
||||||
|
|
||||||
var root = <AppRoot appState={appState} />;
|
var root = <AppRoot appState={appState} />;
|
||||||
ReactDOM.render(root, document.getElementById('root'));
|
ReactDOM.render(root, document.getElementById('root'));
|
||||||
Reference in New Issue
Block a user