summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnitsGUI/TabbedView.java
diff options
context:
space:
mode:
authorAdrien Hopkins <ahopk127@my.yorku.ca>2022-04-09 11:32:43 -0500
committerAdrien Hopkins <ahopk127@my.yorku.ca>2022-04-09 11:32:43 -0500
commitc421e474a7b0d0d453e4a527907f327f2ddef320 (patch)
tree1edf5930488ad18f318a05dcfa3aa4824f5e22ca /src/main/java/sevenUnitsGUI/TabbedView.java
parent91f87da88f98de996e167f0ff6809356f6d57e11 (diff)
View now sends and recieves Strings instead of data
Diffstat (limited to 'src/main/java/sevenUnitsGUI/TabbedView.java')
-rw-r--r--src/main/java/sevenUnitsGUI/TabbedView.java76
1 files changed, 36 insertions, 40 deletions
diff --git a/src/main/java/sevenUnitsGUI/TabbedView.java b/src/main/java/sevenUnitsGUI/TabbedView.java
index 0461cb6..ed45011 100644
--- a/src/main/java/sevenUnitsGUI/TabbedView.java
+++ b/src/main/java/sevenUnitsGUI/TabbedView.java
@@ -23,13 +23,12 @@ import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import java.text.NumberFormat;
-import java.text.ParseException;
import java.util.AbstractSet;
import java.util.Collections;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Optional;
-import java.util.OptionalDouble;
import java.util.Set;
import javax.swing.BorderFactory;
@@ -57,12 +56,6 @@ import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import sevenUnits.ProgramInfo;
-import sevenUnits.unit.BaseDimension;
-import sevenUnits.unit.Unit;
-import sevenUnits.unit.UnitPrefix;
-import sevenUnits.unit.UnitValue;
-import sevenUnits.utils.NamedObjectProduct;
-import sevenUnits.utils.ObjectProduct;
/**
* A View that separates its functions into multiple tabs
@@ -140,13 +133,13 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView {
// DIMENSION-BASED CONVERTER
/** The combo box that selects dimensions */
- private final JComboBox<NamedObjectProduct<BaseDimension>> dimensionSelector;
+ private final JComboBox<String> dimensionSelector;
/** The panel for inputting values in the dimension-based converter */
private final JFormattedTextField valueInput;
/** The panel for "From" in the dimension-based converter */
- private final SearchBoxList<Unit> fromSearch;
+ private final SearchBoxList<String> fromSearch;
/** The panel for "To" in the dimension-based converter */
- private final SearchBoxList<Unit> toSearch;
+ private final SearchBoxList<String> toSearch;
/** The output area in the dimension-based converter */
private final JTextArea unitOutput;
@@ -160,9 +153,9 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView {
// UNIT AND PREFIX VIEWERS
/** The searchable list of unit names in the unit viewer */
- private final SearchBoxList<Unit> unitNameList;
+ private final SearchBoxList<String> unitNameList;
/** The searchable list of prefix names in the prefix viewer */
- private final SearchBoxList<UnitPrefix> prefixNameList;
+ private final SearchBoxList<String> prefixNameList;
/** The text box for unit data in the unit viewer */
private final JTextArea unitTextBox;
/** The text box for prefix data in the prefix viewer */
@@ -528,7 +521,7 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView {
}
@Override
- public Set<NamedObjectProduct<BaseDimension>> getDimensions() {
+ public Set<String> getDimensionNames() {
return Collections
.unmodifiableSet(new JComboBoxItemSet<>(this.dimensionSelector));
}
@@ -539,27 +532,25 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView {
}
@Override
- public Optional<Unit> getFromSelection() {
+ public Optional<String> getFromSelection() {
return this.fromSearch.getSelectedValue();
}
@Override
- public OptionalDouble getInputValue() {
- try {
- this.valueInput.commitEdit();
- } catch (final ParseException e) {
- return OptionalDouble.empty();
- }
- return OptionalDouble
- .of(((Number) this.valueInput.getValue()).doubleValue());
+ public Set<String> getFromUnitNames() {
+ // this should work because the only way I can mutate the item list is
+ // with setFromUnits which only accepts a Set
+ return new HashSet<>(this.fromSearch.getItems());
+ }
+
+ @Override
+ public String getInputValue() {
+ return this.valueInput.getText();
}
@Override
- public Optional<? extends ObjectProduct<BaseDimension>> getSelectedDimension() {
- // this must work because this function can only return items that are in
- // the selector, which are all of type ObjectProduct<BaseDimension>
- @SuppressWarnings("unchecked")
- final ObjectProduct<BaseDimension> selectedItem = (ObjectProduct<BaseDimension>) this.dimensionSelector
+ public Optional<String> getSelectedDimensionName() {
+ final String selectedItem = (String) this.dimensionSelector
.getSelectedItem();
return Optional.ofNullable(selectedItem);
}
@@ -570,26 +561,32 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView {
}
@Override
- public Optional<Unit> getToSelection() {
+ public Optional<String> getToSelection() {
return this.toSearch.getSelectedValue();
}
@Override
- public void setDimensions(
- Set<NamedObjectProduct<BaseDimension>> dimensions) {
+ public Set<String> getToUnitNames() {
+ // this should work because the only way I can mutate the item list is
+ // with setToUnits which only accepts a Set
+ return new HashSet<>(this.toSearch.getItems());
+ }
+
+ @Override
+ public void setDimensionNames(Set<String> dimensionNames) {
this.dimensionSelector.removeAllItems();
- for (final NamedObjectProduct<BaseDimension> d : dimensions) {
+ for (final String d : dimensionNames) {
this.dimensionSelector.addItem(d);
}
}
@Override
- public void setFromUnits(Set<? extends Unit> units) {
+ public void setFromUnitNames(Set<String> units) {
this.fromSearch.setItems(units);
}
@Override
- public void setToUnits(Set<? extends Unit> units) {
+ public void setToUnitNames(Set<String> units) {
this.toSearch.setItems(units);
}
@@ -600,15 +597,14 @@ final class TabbedView implements ExpressionConversionView, UnitConversionView {
}
@Override
- public void showExpressionConversionOutput(String fromExpression,
- String toExpression, double value) {
- this.expressionOutput.setText(
- String.format("%s = %s %s", fromExpression, value, toExpression));
+ public void showExpressionConversionOutput(UnitConversionRecord uc) {
+ this.expressionOutput.setText(String.format("%s = %s %s", uc.fromName(),
+ uc.outputValueString(), uc.toName()));
}
@Override
- public void showUnitConversionOutput(UnitValue input, UnitValue output) {
- this.unitOutput.setText(input + " = " + output);
+ public void showUnitConversionOutput(UnitConversionRecord uc) {
+ this.unitOutput.setText(uc.toString());
}
}