Big update to custom expression feature.
authorrichardgraham <richardgraham@180e2498-e6e9-4542-8430-84ac67f01cd8>
Sun, 5 Aug 2012 23:59:54 +0000 (23:59 +0000)
committerrichardgraham <richardgraham@180e2498-e6e9-4542-8430-84ac67f01cd8>
Sun, 5 Aug 2012 23:59:54 +0000 (23:59 +0000)
commitcb6cee5e14451dd9b852723a30a5fbdee404d959
treecd4b4584d99ae5625f3fea92dfe23c8ea3a9517b
parent0be17fea9df8667c018922d9eca1166254dce470
Big update to custom expression feature.
 - supports range and index subexpressions and many new operators
 - switched to my patched version of exp4j to support all this.
 - expressions belong to rocket document. Accessed from analysis menu.
 - expression importing from file
 - datatypes section defined in file for storing datatypes other than internal ones
 - flightdatatype fix to forget outdated types
 - many GUI fixes to custom expressions
 - new unitgroups supported. Auto unit detection for SI units in custom expressions.

Had to carefully merge loading/saving code with Kevins recent de-localization update. Hopefully changes to materials saving kept but switched datatype access to just using symbol as the key.

Hopefully can get the changes to exp4j upstream so we don't need to keep using this patched version.

git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@953 180e2498-e6e9-4542-8430-84ac67f01cd8
34 files changed:
core/fileformat.txt
core/lib/exp4j-rdg.jar [new file with mode: 0644]
core/resources/l10n/messages.properties
core/src/net/sf/openrocket/document/OpenRocketDocument.java
core/src/net/sf/openrocket/document/Simulation.java
core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
core/src/net/sf/openrocket/file/openrocket/importt/OpenRocketLoader.java
core/src/net/sf/openrocket/file/openrocket/savers/RocketSaver.java
core/src/net/sf/openrocket/gui/customexpression/CustomExpressionDialog.java [new file with mode: 0644]
core/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java
core/src/net/sf/openrocket/gui/customexpression/ExpressionBuilderDialog.java
core/src/net/sf/openrocket/gui/customexpression/OperatorSelector.java
core/src/net/sf/openrocket/gui/customexpression/OperatorTableModel.java
core/src/net/sf/openrocket/gui/customexpression/VariableSelector.java
core/src/net/sf/openrocket/gui/customexpression/VariableTableModel.java
core/src/net/sf/openrocket/gui/main/BasicFrame.java
core/src/net/sf/openrocket/gui/main/SimulationEditDialog.java
core/src/net/sf/openrocket/rocketcomponent/Rocket.java
core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java
core/src/net/sf/openrocket/simulation/CustomExpression.java [deleted file]
core/src/net/sf/openrocket/simulation/FlightDataType.java
core/src/net/sf/openrocket/simulation/customexpression/CustomExpression.java [new file with mode: 0644]
core/src/net/sf/openrocket/simulation/customexpression/Functions.java [new file with mode: 0644]
core/src/net/sf/openrocket/simulation/customexpression/IndexExpression.java [new file with mode: 0644]
core/src/net/sf/openrocket/simulation/customexpression/RangeExpression.java [new file with mode: 0644]
core/src/net/sf/openrocket/unit/FixedUnitGroup.java
core/src/net/sf/openrocket/unit/UnitGroup.java
core/src/net/sf/openrocket/util/ArrayUtils.java
core/src/net/sf/openrocket/util/ExpressionParser.java
core/src/net/sf/openrocket/util/LinearInterpolator.java
core/src/net/sf/openrocket/util/MathUtil.java
core/src/net/sf/openrocket/util/TextUtil.java
core/test/net/sf/openrocket/simulation/customexpression/TestExpressions.java [new file with mode: 0644]
core/test/net/sf/openrocket/util/MathUtilTest.java