diff --git a/src/com/bytezone/diskbrowser/visicalc/AbstractValue.java b/src/com/bytezone/diskbrowser/visicalc/AbstractValue.java index ca51db3..cf0972c 100644 --- a/src/com/bytezone/diskbrowser/visicalc/AbstractValue.java +++ b/src/com/bytezone/diskbrowser/visicalc/AbstractValue.java @@ -65,6 +65,12 @@ public abstract class AbstractValue implements Value { } + @Override + public boolean isBoolean () + { + return false; + } + // for debugging String getValueText (int depth) { diff --git a/src/com/bytezone/diskbrowser/visicalc/And.java b/src/com/bytezone/diskbrowser/visicalc/And.java index bc8092a..6ae6dc2 100644 --- a/src/com/bytezone/diskbrowser/visicalc/And.java +++ b/src/com/bytezone/diskbrowser/visicalc/And.java @@ -39,4 +39,16 @@ class And extends Function } value = 1; } + + @Override + public boolean isBoolean () + { + return true; + } + + @Override + public String getText () + { + return value == 0 ? "FALSE" : "TRUE"; + } } \ No newline at end of file diff --git a/src/com/bytezone/diskbrowser/visicalc/Cell.java b/src/com/bytezone/diskbrowser/visicalc/Cell.java index 2f82174..f2ba522 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Cell.java +++ b/src/com/bytezone/diskbrowser/visicalc/Cell.java @@ -182,6 +182,13 @@ class Cell extends AbstractValue implements Comparable return " " + Format.justify (value.getText (), colWidth - 1, fmtChar); } + if (value.isBoolean ()) // consider ValueType of BOOLEAN + { + if (fmtChar != 'L') + fmtChar = 'R'; + return Format.justify (value.getText (), colWidth, fmtChar); + } + if (colWidth == 1) return "."; return " " + Format.format (value, fmtChar, colWidth - 1); diff --git a/src/com/bytezone/diskbrowser/visicalc/False.java b/src/com/bytezone/diskbrowser/visicalc/False.java index e475d38..9d93d16 100644 --- a/src/com/bytezone/diskbrowser/visicalc/False.java +++ b/src/com/bytezone/diskbrowser/visicalc/False.java @@ -7,5 +7,18 @@ public class False extends Function super (parent, cell, text); value = 0; + valueType = ValueType.VALUE; + } + + @Override + public boolean isBoolean () + { + return true; + } + + @Override + public String getText () + { + return value == 0 ? "FALSE" : "TRUE"; } } \ No newline at end of file diff --git a/src/com/bytezone/diskbrowser/visicalc/Function.java b/src/com/bytezone/diskbrowser/visicalc/Function.java index 1712038..7eb8db2 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Function.java +++ b/src/com/bytezone/diskbrowser/visicalc/Function.java @@ -7,7 +7,7 @@ abstract class Function extends AbstractValue implements Iterable static final String[] functionList = { "@ABS(", "@ACOS(", "@AND(", "@ASIN(", "@ATAN(", "@AVERAGE(", "@COUNT(", "@CHOOSE(", "@COS(", "@ERROR", "@EXP(", "@FALSE", "@IF(", "@INT(", "@ISERROR(", - "@ISNA(", "@LOG10(", "@LOOKUP(", "@LN(", "@MIN(", "@MAX(", "@NA", "@NPV", "@OR(", + "@ISNA(", "@LOG10(", "@LOOKUP(", "@LN(", "@MIN(", "@MAX(", "@NA", "@NPV(", "@OR(", "@PI", "@SIN(", "@SUM(", "@SQRT(", "@TAN(", "@TRUE" }; protected final Sheet parent; diff --git a/src/com/bytezone/diskbrowser/visicalc/Or.java b/src/com/bytezone/diskbrowser/visicalc/Or.java index 7fe6613..24d5f91 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Or.java +++ b/src/com/bytezone/diskbrowser/visicalc/Or.java @@ -39,4 +39,16 @@ class Or extends Function } value = 0; } + + @Override + public boolean isBoolean () + { + return true; + } + + @Override + public String getText () + { + return value == 0 ? "FALSE" : "TRUE"; + } } \ No newline at end of file diff --git a/src/com/bytezone/diskbrowser/visicalc/True.java b/src/com/bytezone/diskbrowser/visicalc/True.java index 81fe490..7419ff5 100644 --- a/src/com/bytezone/diskbrowser/visicalc/True.java +++ b/src/com/bytezone/diskbrowser/visicalc/True.java @@ -7,5 +7,18 @@ public class True extends Function super (parent, cell, text); value = 1; + valueType = ValueType.VALUE; + } + + @Override + public boolean isBoolean () + { + return true; + } + + @Override + public String getText () + { + return value == 0 ? "FALSE" : "TRUE"; } } \ No newline at end of file diff --git a/src/com/bytezone/diskbrowser/visicalc/Value.java b/src/com/bytezone/diskbrowser/visicalc/Value.java index 630b8bf..ae6133b 100644 --- a/src/com/bytezone/diskbrowser/visicalc/Value.java +++ b/src/com/bytezone/diskbrowser/visicalc/Value.java @@ -20,4 +20,6 @@ interface Value public String getTypeText (); // Number/Function/Expression etc public boolean isVolatile (); + + public boolean isBoolean (); } \ No newline at end of file