diff options
author | zero <zero@66b5f39b-87a2-44c3-adb7-4b08653a3962> | 2009-12-02 00:23:35 +0000 |
---|---|---|
committer | zero <zero@66b5f39b-87a2-44c3-adb7-4b08653a3962> | 2009-12-02 00:23:35 +0000 |
commit | 5c85a3742e20876a7d3803bcfa962f1077c0ec7b (patch) | |
tree | 81260b9414bb2613a6e9f6a7bd1fbd85b063f785 | |
parent | c4c95c4b2ecdc01f197c889dcbf3bb74e370153c (diff) | |
download | uncertainfuture-5c85a3742e20876a7d3803bcfa962f1077c0ec7b.tar.gz uncertainfuture-5c85a3742e20876a7d3803bcfa962f1077c0ec7b.zip |
Changed version of JRE to 1.5
git-svn-id: svn+ssh://10.37.55.100/usr/local/svn/uf@20 66b5f39b-87a2-44c3-adb7-4b08653a3962
-rw-r--r-- | java/build.jardesc | 110 | ||||
-rw-r--r-- | java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java | 306 | ||||
-rw-r--r-- | java/src/org/singinst/uf/view/AppletBrowser.java | 3 | ||||
-rw-r--r-- | web/UfApplet.jar | bin | 780226 -> 722981 bytes | |||
-rw-r--r-- | web/index.html | 2 |
5 files changed, 239 insertions, 182 deletions
diff --git a/java/build.jardesc b/java/build.jardesc index ae3b3fa..0497f93 100644 --- a/java/build.jardesc +++ b/java/build.jardesc @@ -11,50 +11,104 @@ </sealing> </manifest> <selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false"> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{AtLeastOneHappensCalculation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.math{InvertableFunction.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{MooresLawNodeMetadataContentsFactory.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{SummarySource.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{LogBounds.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{MooreAsymptote.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{AxisDirection.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ScalarSubIDString.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{MooreConstraint.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{GraphCanvas.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{IncidentFunction.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{SimpleLine.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{AxisSample.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{SimpleStyle.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ScalarValueDependency.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NormalNodeMetadataContentsFactory.java"/> + <file path="/java/src/org/singinst/uf/model/UiTextConstant.java~"/> + <file path="/java/.classpath"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{YearwiseCalculationRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{DraggableLine.java"/> + <file path="/java/libs/commons-math-1.2.jar"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{CumulativeNormalDistributionCalculation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ResearcherExtreme.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{AiRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ScalarValuePointList.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.math{InvertedFunction.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{CumulativeHazardsRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{DisruptionRelation.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.math{MathUtilTest.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{LineBounded.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{Evaluable.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{YearExtremeNodeMetadataContentsFactory.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NodeMetadataFactory.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{MouseClickListener.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ClippedCanvas.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{LineBounds.java"/> - <file path="/java/.project"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.math{MathUtil.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.math{InvertableFunction.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{PlaneBounded.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ProxyCanvas.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{AxisDirection.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ResearchersNodeMetadataContentsFactory.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{UfHelp.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.model"/> <javaElement handleIdentifier="=java/src<org.apache"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ScaledCanvas.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{GraphCanvas.java"/> - <javaElement handleIdentifier="=java/src<org.apache.commons"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.view"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NodeMetadataBuilder.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{PowerFunction.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{GeneLearningExtreme.java"/> + <javaElement handleIdentifier="=java/src<org.apache.commons.math"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{GeneLearningNodeMetadataContentsFactory.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{MooreDraggableLine.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{Store.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.math{SimplePoint.java"/> + <file path="/java/build.jardesc"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NeuromorphicAiRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{UiText.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NotablePercentile.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{GraphTransform.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NeedsCalcCache.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NormalConstraint.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{OtherIaExtreme.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ClippedCanvas.java"/> + <file path="/java/.project"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{Axis.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ConclusionReportGenerator.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{Calculation.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{Completion.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{SimpleLine.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ScalarRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ScalarValueHolder.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{RescheduledEventsRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{PercentileDraggableLine.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NodeIDString.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ScalarSchema.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{IncidentExtremeNodeMetadataContentsFactory.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{CanvasString.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.common"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ValueListener.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{NumericEntry.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ClickableCurve.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{MooresLawData.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{LineBounded.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{MultiplicationCalculation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{ModelUtil.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{CompositeCalculation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{IncidentBounds.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{PlaneBounded.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{NodeMetadata.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ProxyCanvas.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{UiTextConstant.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.view"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{MouseDragListener.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{AxisSample.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{SimpleStyle.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{CalculationRelation.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{OtherIaNodeMetadataContentsFactory.java"/> <javaElement handleIdentifier="=java/src<org.singinst"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{Status.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{PlaneBounds.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{HtmlUtil.java"/> - <javaElement handleIdentifier="=java/src<org.apache.commons.math"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{SimpleColor.java"/> <javaElement handleIdentifier="=java/src<org"/> - <file path="/java/.classpath"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{Node.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.math{LinearTransform.java"/> <file path="/java/libs/junit-4.6.jar"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{CanvasString.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.common"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{DraggableLine.java"/> - <file path="/java/libs/commons-math-1.2.jar"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{Store.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.math{SimplePoint.java"/> - <file path="/java/build.jardesc"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{HazardRateNodeMetadataContentsFactory.java"/> <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{RelationPresentation.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{NumericEntry.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ClickableCurve.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{ScalarValuePointList.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.presenter{GraphTransform.java"/> - <javaElement handleIdentifier="=java/src<org.singinst.uf.math{InvertedFunction.java"/> + <javaElement handleIdentifier="=java/src<org.singinst.uf.model{IncidentLine.java"/> </selectedElements> </jardesc> diff --git a/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java b/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java index 34488a8..39f347b 100644 --- a/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java +++ b/java/src/org/singinst/uf/model/NormalNodeMetadataContentsFactory.java @@ -1,153 +1,153 @@ -package org.singinst.uf.model;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.singinst.uf.math.MathUtil;
-import org.singinst.uf.math.SimplePoint;
-import org.singinst.uf.presenter.ClickableCurve;
-import org.singinst.uf.presenter.HtmlUtil;
-import org.singinst.uf.presenter.LineBounds;
-import org.singinst.uf.presenter.MouseClickListener;
-import org.singinst.uf.presenter.ScalarValuePointList;
-import org.singinst.uf.presenter.SimpleLine;
-import org.singinst.uf.presenter.SimpleStyle;
-
-public class NormalNodeMetadataContentsFactory implements MouseClickListener {
-
- private final Collection<ScalarSchema> scalarSchemata = new ArrayList<ScalarSchema>();
- private final List<ScalarValueHolder> scalarValueHolders = new ArrayList<ScalarValueHolder>();
-
- private final ScalarValuePointList curvePointList = new ClickableCurve(this);
- private final ScalarValuePointList pointList5 = new ScalarValuePointList(new SimpleStyle(SimpleColor.GREEN));
- private final ScalarValuePointList pointList50 = new ScalarValuePointList(new SimpleStyle(SimpleColor.BLACK));
- private final ScalarValuePointList pointList95 = new ScalarValuePointList(new SimpleStyle(SimpleColor.RED));
-
- private final ScalarRelation relation;
- private final ScalarSchema mean;
- //private final ScalarSchema median;
- private final ScalarSchema stdDev;
- private final String normalUnits;
-
- public NormalNodeMetadataContentsFactory(Node node, String units, final LineBounds meanBounds, String stdSuffix) {
- String powerStr = meanBounds.displayAsLog() ? " 10 to the " : " ";
- // if we are not displaying as log, it is going to be 'year', so add an 's'
- String plural = meanBounds.displayAsLog() ? "" : "s";
-
- this.normalUnits = units;
- mean = new ScalarSchema(node, ScalarSubIDString.MEAN, meanBounds, meanUnits(), "The median value is " + powerStr, plural, meanBounds, true);
- double maxStdDev = meanBounds.getLength() / 10;
- stdDev = new ScalarSchema(node, ScalarSubIDString.STD_DEV, new LineBounds(0, maxStdDev), units, "std dev is " + stdSuffix + powerStr, "", new LineBounds(0, maxStdDev * 100), true);
- Axis vertical = new Axis(new LineBounds(0, 5 / maxStdDev), false);
- Axis horizontal = new Axis(meanBounds);
- scalarSchemata.add(mean);
- scalarSchemata.add(stdDev);
- scalarValueHolders.add(mean.getScalarValueHolder());
- scalarValueHolders.add(stdDev.getScalarValueHolder());
-
- relation = new ScalarRelation(horizontal, vertical) {
-
- @Override
- public List<ScalarValuePointList> getPointLists() {
- List<SimplePoint> pointSamples = new ArrayList<SimplePoint>();
- Iterable<Double> samples =
- meanBounds.getVisualSamples(5001, mean.getScalarValueHolder().getValue(), Arrays.asList(getPercentile5(), getPercentile95()));
- for (double x : samples) {
- pointSamples.add(new SimplePoint(x, yFromX(x)));
- }
- curvePointList.setHypothesisPoints(pointSamples);
-
- pointList5.setHypothesisPoints(verticalLine(getPercentile5()));
- pointList50.setHypothesisPoints(verticalLine(mean.getScalarValueHolder().getValue()));
- pointList95.setHypothesisPoints(verticalLine(getPercentile95()));
-
- List<ScalarValuePointList> retVal = Arrays.asList(curvePointList, pointList5, pointList50, pointList95);
- for (ScalarValuePointList scalarValuePointList : retVal) {
- List<SimplePoint> filteredList = new ArrayList<SimplePoint>();
- for (SimplePoint simplePoint : scalarValuePointList.getHypothesisPoints()) {
- double x = simplePoint.x;
- if (x >= meanBounds.getFirst() && x <= meanBounds.getSecond()) {
- filteredList.add(simplePoint);
- }
- }
- scalarValuePointList.setHypothesisPoints(filteredList);
- }
- return retVal;
- }
-
- private List<SimplePoint> verticalLine(double x) {
- SimpleLine line = SimpleLine.vertical(x, 0, yFromX(x));
- return Arrays.asList(line.p1, line.p2);
- }
-
- public List<? extends ConclusionReportGenerator> getConclusionGenerators() {
- return Collections.singletonList(new ConclusionReportGenerator() {
- public String getText(ScalarValueHolder scalarValueHolder, double value) {
- boolean power = meanBounds.displayAsLog();
- // if we are not displaying as log, it is going to be 'year', so add an 's'
- String plural = power ? "" : "s";
- String str = "There is a 90% chance of being between ";
- if (power){
- str += HtmlUtil.green("10 <sup>" + mean.getBounds().userFormat(getPercentile5()) + "</sup>") +
- " and " +
- HtmlUtil.red("10 <sup>" + mean.getBounds().userFormat(getPercentile95()) + "</sup>") + " " + meanUnits() + plural;
- }
- else {
- str += HtmlUtil.green(mean.getBounds().userFormat(getPercentile5())) + " and " +
- HtmlUtil.red(mean.getBounds().userFormat(getPercentile95())) + " " + meanUnits() + plural;
- }
-
- return str;
- }
- });
- }
-
- public List<ScalarValueHolder> getScalarValues() {
- return scalarValueHolders;
- }
-
- };
- }
-
- private Double getPercentile5() {
- return mean.getScalarValueHolder().getValue() - MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue();
- }
-
- private Double getPercentile95() {
- return mean.getScalarValueHolder().getValue() + MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue();
- }
-
- protected double yFromX(double x) {
- double meanValue = mean.getScalarValueHolder().getValue();
- double stdDevValue = stdDev.getScalarValueHolder().getValue();
- double squaredDistanceFromMean = (meanValue - x) * (meanValue - x);
- double variance = stdDevValue * stdDevValue;
- double functionalY = (1 / Math.sqrt(2 * Math.PI * variance)) * Math.exp(-1 * squaredDistanceFromMean / (2 * variance));
- return functionalY;
- }
-
- public Collection<? extends ScalarSchema> getScalars() {
- return scalarSchemata;
- }
-
- public ScalarRelation getRelation() {
- return relation;
- }
-
- public void mouseClick(SimplePoint point) {
- double newMean = point.x;
- double newDensityAtMean = point.y;
- double newVariance = 1 / (2 * Math.PI * newDensityAtMean * newDensityAtMean);
- stdDev.getScalarValueHolder().setValue(Math.sqrt(newVariance));
- mean.getScalarValueHolder().setValue(newMean);
-
- }
-
- // TODO5 called from constructor
- protected String meanUnits() {
- return normalUnits;
- }
-}
+package org.singinst.uf.model; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.singinst.uf.math.MathUtil; +import org.singinst.uf.math.SimplePoint; +import org.singinst.uf.presenter.ClickableCurve; +import org.singinst.uf.presenter.HtmlUtil; +import org.singinst.uf.presenter.LineBounds; +import org.singinst.uf.presenter.MouseClickListener; +import org.singinst.uf.presenter.ScalarValuePointList; +import org.singinst.uf.presenter.SimpleLine; +import org.singinst.uf.presenter.SimpleStyle; + +public class NormalNodeMetadataContentsFactory implements MouseClickListener { + + private final Collection<ScalarSchema> scalarSchemata = new ArrayList<ScalarSchema>(); + private final List<ScalarValueHolder> scalarValueHolders = new ArrayList<ScalarValueHolder>(); + + private final ScalarValuePointList curvePointList = new ClickableCurve(this); + private final ScalarValuePointList pointList5 = new ScalarValuePointList(new SimpleStyle(SimpleColor.GREEN)); + private final ScalarValuePointList pointList50 = new ScalarValuePointList(new SimpleStyle(SimpleColor.BLACK)); + private final ScalarValuePointList pointList95 = new ScalarValuePointList(new SimpleStyle(SimpleColor.RED)); + + private final ScalarRelation relation; + private final ScalarSchema mean; + //private final ScalarSchema median; + private final ScalarSchema stdDev; + private final String normalUnits; + + public NormalNodeMetadataContentsFactory(Node node, String units, final LineBounds meanBounds, String stdSuffix) { + String powerStr = meanBounds.displayAsLog() ? " 10 to the " : " "; + // if we are not displaying as log, it is going to be 'year', so add an 's' + String plural = meanBounds.displayAsLog() ? "" : "s"; + + this.normalUnits = units; + mean = new ScalarSchema(node, ScalarSubIDString.MEAN, meanBounds, meanUnits(), "The median value is " + powerStr, plural, meanBounds, true); + double maxStdDev = meanBounds.getLength() / 10; + stdDev = new ScalarSchema(node, ScalarSubIDString.STD_DEV, new LineBounds(0, maxStdDev), units, "std dev is " + stdSuffix + powerStr, "", new LineBounds(0, maxStdDev * 100), true); + Axis vertical = new Axis(new LineBounds(0, 5 / maxStdDev), false); + Axis horizontal = new Axis(meanBounds); + scalarSchemata.add(mean); + scalarSchemata.add(stdDev); + scalarValueHolders.add(mean.getScalarValueHolder()); + scalarValueHolders.add(stdDev.getScalarValueHolder()); + + relation = new ScalarRelation(horizontal, vertical) { + + @Override + public List<ScalarValuePointList> getPointLists() { + List<SimplePoint> pointSamples = new ArrayList<SimplePoint>(); + Iterable<Double> samples = + meanBounds.getVisualSamples(5001, mean.getScalarValueHolder().getValue(), Arrays.asList(getPercentile5(), getPercentile95())); + for (double x : samples) { + pointSamples.add(new SimplePoint(x, yFromX(x))); + } + curvePointList.setHypothesisPoints(pointSamples); + + pointList5.setHypothesisPoints(verticalLine(getPercentile5())); + pointList50.setHypothesisPoints(verticalLine(mean.getScalarValueHolder().getValue())); + pointList95.setHypothesisPoints(verticalLine(getPercentile95())); + + List<ScalarValuePointList> retVal = Arrays.asList(curvePointList, pointList5, pointList50, pointList95); + for (ScalarValuePointList scalarValuePointList : retVal) { + List<SimplePoint> filteredList = new ArrayList<SimplePoint>(); + for (SimplePoint simplePoint : scalarValuePointList.getHypothesisPoints()) { + double x = simplePoint.x; + if (x >= meanBounds.getFirst() && x <= meanBounds.getSecond()) { + filteredList.add(simplePoint); + } + } + scalarValuePointList.setHypothesisPoints(filteredList); + } + return retVal; + } + + private List<SimplePoint> verticalLine(double x) { + SimpleLine line = SimpleLine.vertical(x, 0, yFromX(x)); + return Arrays.asList(line.p1, line.p2); + } + + public List<? extends ConclusionReportGenerator> getConclusionGenerators() { + return Collections.singletonList(new ConclusionReportGenerator() { + public String getText(ScalarValueHolder scalarValueHolder, double value) { + boolean power = meanBounds.displayAsLog(); + // if we are not displaying as log, it is going to be 'year', so add an 's' + String plural = power ? "" : "s"; + String str = "There is a 90% chance of being between "; + if (power){ + str += HtmlUtil.green("10 <sup>" + mean.getBounds().userFormat(getPercentile5()) + "</sup>") + + " and " + + HtmlUtil.red("10 <sup>" + mean.getBounds().userFormat(getPercentile95()) + "</sup>") + " " + meanUnits() + plural; + } + else { + str += HtmlUtil.green(mean.getBounds().userFormat(getPercentile5())) + " and " + + HtmlUtil.red(mean.getBounds().userFormat(getPercentile95())) + " " + meanUnits() + plural; + } + + return str; + } + }); + } + + public List<ScalarValueHolder> getScalarValues() { + return scalarValueHolders; + } + + }; + } + + private Double getPercentile5() { + return mean.getScalarValueHolder().getValue() - MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue(); + } + + private Double getPercentile95() { + return mean.getScalarValueHolder().getValue() + MathUtil.NINETY_FIVE_PERCENTILE * stdDev.getScalarValueHolder().getValue(); + } + + protected double yFromX(double x) { + double meanValue = mean.getScalarValueHolder().getValue(); + double stdDevValue = stdDev.getScalarValueHolder().getValue(); + double squaredDistanceFromMean = (meanValue - x) * (meanValue - x); + double variance = stdDevValue * stdDevValue; + double functionalY = (1 / Math.sqrt(2 * Math.PI * variance)) * Math.exp(-1 * squaredDistanceFromMean / (2 * variance)); + return functionalY; + } + + public Collection<? extends ScalarSchema> getScalars() { + return scalarSchemata; + } + + public ScalarRelation getRelation() { + return relation; + } + + public void mouseClick(SimplePoint point) { + double newMean = point.x; + double newDensityAtMean = point.y; + double newVariance = 1 / (2 * Math.PI * newDensityAtMean * newDensityAtMean); + stdDev.getScalarValueHolder().setValue(Math.sqrt(newVariance)); + mean.getScalarValueHolder().setValue(newMean); + + } + + // TODO5 called from constructor + protected String meanUnits() { + return normalUnits; + } +} diff --git a/java/src/org/singinst/uf/view/AppletBrowser.java b/java/src/org/singinst/uf/view/AppletBrowser.java index 2c83f9e..9d10d99 100644 --- a/java/src/org/singinst/uf/view/AppletBrowser.java +++ b/java/src/org/singinst/uf/view/AppletBrowser.java @@ -23,7 +23,9 @@ public class AppletBrowser { }
}
public void loadPage(final String helpName) {
+ System.out.println("FIXME: loadPage(" + helpName + ")");
if (service != null) {
+ System.out.println("FIXME: service != null");
try {
service.invokeAndWait(new DOMAction()
{
@@ -31,6 +33,7 @@ public class AppletBrowser { {
HTMLDocument doc = (HTMLDocument) accessor.getDocument(applet);
Element element = doc.getElementById("sidebar");
+ System.out.println("doc: " + doc + ", element: " + element);
//for (int i = 0; i < nodeList.getLength(); i++) {
//Node node = nodeList.item(i);
//if (node instanceof Element) {
diff --git a/web/UfApplet.jar b/web/UfApplet.jar Binary files differindex 42de08d..96661b8 100644 --- a/web/UfApplet.jar +++ b/web/UfApplet.jar diff --git a/web/index.html b/web/index.html index 0579b79..9ef2377 100644 --- a/web/index.html +++ b/web/index.html @@ -73,7 +73,7 @@ </p> <p><a id="large-start-link" href="main.html">Ready to start?</a></p> - <p style="font-size: 0.8em;">The Uncertain Future requires Java 5 or later. + <p style="font-size: 0.8em;">The Uncertain Future requires Java 6 or later. <a target="_blank" href="http://www.java.com/en/download/index.jsp"> Click here</a> to get a Java runtime environment. |