summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzero <zero@66b5f39b-87a2-44c3-adb7-4b08653a3962>2009-12-04 00:38:49 +0000
committerMichael Blume <blume.mike@gmail.com>2010-05-30 19:43:25 -0700
commit48ce56f2ce57c1f381ae4b17ee86d78fedf40772 (patch)
treee44ab2d90b73ae1e425220c8c82aca847c25ad07
parentc28e529dccd6efecf4ad0a57d3e7958833625a3b (diff)
downloaduncertainfuture-48ce56f2ce57c1f381ae4b17ee86d78fedf40772.tar.gz
uncertainfuture-48ce56f2ce57c1f381ae4b17ee86d78fedf40772.zip
Compability fixes, better error messages added
git-svn-id: svn+ssh://10.37.55.100/usr/local/svn/uf@24 66b5f39b-87a2-44c3-adb7-4b08653a3962
-rw-r--r--java/build.jardesc40
-rw-r--r--java/libs/plugin.jarbin0 -> 1023321 bytes
-rw-r--r--java/src/org/singinst/uf/common/LogUtil.java6
-rw-r--r--java/src/org/singinst/uf/model/NodeMetadataFactory.java4
-rw-r--r--java/src/org/singinst/uf/model/ScalarValueHolder.java11
-rw-r--r--java/src/org/singinst/uf/presenter/Store.java4
-rw-r--r--java/src/org/singinst/uf/view/AppletBrowser.java108
-rw-r--r--java/src/org/singinst/uf/view/UfApplet.java3
-rw-r--r--java/src/org/singinst/uf/view/ViewUtil.java29
-rw-r--r--web/UfApplet.jarbin722518 -> 705854 bytes
-rw-r--r--web/UfApplet.jnlp3
-rw-r--r--web/main.html85
-rw-r--r--web/plugin.jarbin0 -> 1023321 bytes
13 files changed, 177 insertions, 116 deletions
diff --git a/java/build.jardesc b/java/build.jardesc
index 0497f93..110ca02 100644
--- a/java/build.jardesc
+++ b/java/build.jardesc
@@ -11,24 +11,29 @@
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{ViewUtil.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{AppletStore.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{AtLeastOneHappensCalculation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{InvertableFunction.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooresLawNodeMetadataContentsFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{SummarySource.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{LogBounds.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreAsymptote.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{AxisDirection.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreAsymptote.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarSubIDString.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreConstraint.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{GraphCanvas.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentFunction.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{SwingHelp.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{AxisSample.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleStyle.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarValueDependency.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{SimpleStyle.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NormalNodeMetadataContentsFactory.java"/>
<file path="/java/src/org/singinst/uf/model/UiTextConstant.java~"/>
<file path="/java/.classpath"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{TextScalarBinder.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{MainWindow.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{YearwiseCalculationRelation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{DraggableLine.java"/>
<file path="/java/libs/commons-math-1.2.jar"/>
@@ -42,27 +47,26 @@
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{MathUtilTest.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Evaluable.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{YearExtremeNodeMetadataContentsFactory.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadataFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{MouseClickListener.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadataFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{LineBounds.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{MathUtil.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ResearchersNodeMetadataContentsFactory.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.common{StringUtil.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{UfHelp.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.apache"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ScaledCanvas.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadataBuilder.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{PowerFunction.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{GeneLearningExtreme.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.apache.commons.math"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{GeneLearningNodeMetadataContentsFactory.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreDraggableLine.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{Store.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooreDraggableLine.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{SimplePoint.java"/>
<file path="/java/build.jardesc"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NeuromorphicAiRelation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{UiText.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NotablePercentile.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{GraphTransform.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NotablePercentile.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NeedsCalcCache.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NormalConstraint.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{OtherIaExtreme.java"/>
@@ -70,31 +74,36 @@
<file path="/java/.project"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Axis.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ConclusionReportGenerator.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{RangeScalarBinder.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Calculation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{SwingGraphCanvas.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{Completion.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarRelation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarValueHolder.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{RescheduledEventsRelation.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{PercentileDraggableLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarRelation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{AppletBrowser.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeIDString.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarSchema.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{PercentileDraggableLine.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{RescheduledEventsRelation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentExtremeNodeMetadataContentsFactory.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ScalarSchema.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{CanvasString.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.common"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ValueListener.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{NumericEntry.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ClickableCurve.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MooresLawData.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{UfApplet.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{LineBounded.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{MultiplicationCalculation.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ModelUtil.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{CompositeCalculation.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{ModelUtil.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{Graph.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{IncidentBounds.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{PlaneBounded.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{NodeMetadata.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{ProxyCanvas.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{UiTextConstant.java"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.view{SwingStyle.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.apache.commons.math{MathException.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{MouseDragListener.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{CalculationRelation.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{OtherIaNodeMetadataContentsFactory.java"/>
@@ -104,8 +113,9 @@
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{HtmlUtil.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{SimpleColor.java"/>
<javaElement handleIdentifier="=java/src&lt;org"/>
- <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Node.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.common{LogUtil.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.math{LinearTransform.java"/>
+ <javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{Node.java"/>
<file path="/java/libs/junit-4.6.jar"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.model{HazardRateNodeMetadataContentsFactory.java"/>
<javaElement handleIdentifier="=java/src&lt;org.singinst.uf.presenter{RelationPresentation.java"/>
diff --git a/java/libs/plugin.jar b/java/libs/plugin.jar
new file mode 100644
index 0000000..bd3b292
--- /dev/null
+++ b/java/libs/plugin.jar
Binary files differ
diff --git a/java/src/org/singinst/uf/common/LogUtil.java b/java/src/org/singinst/uf/common/LogUtil.java
index c316b54..5db6c6c 100644
--- a/java/src/org/singinst/uf/common/LogUtil.java
+++ b/java/src/org/singinst/uf/common/LogUtil.java
@@ -3,13 +3,17 @@ package org.singinst.uf.common;
public class LogUtil {
+ // Show debug information
+ private static final boolean debug = true;
+
public static void error(Exception e) {
e.printStackTrace();
}
public static void info(String string) {
- System.err.println(string);
+ if (debug)
+ System.err.println(string);
}
}
diff --git a/java/src/org/singinst/uf/model/NodeMetadataFactory.java b/java/src/org/singinst/uf/model/NodeMetadataFactory.java
index 1aa93bd..734e85a 100644
--- a/java/src/org/singinst/uf/model/NodeMetadataFactory.java
+++ b/java/src/org/singinst/uf/model/NodeMetadataFactory.java
@@ -6,6 +6,10 @@ import java.util.List;
import org.singinst.uf.presenter.NumericEntry;
public class NodeMetadataFactory {
+ /**
+ * Create all nodes (tabs) and set default values.
+ * @return
+ */
public static List<NodeMetadata> createTheNetwork() {
NodeMetadata q1_1 = constructQ1_1Builder().build();
NodeMetadata q1_2 = constructQ1_2Builder().build();
diff --git a/java/src/org/singinst/uf/model/ScalarValueHolder.java b/java/src/org/singinst/uf/model/ScalarValueHolder.java
index e435c3d..bdf9890 100644
--- a/java/src/org/singinst/uf/model/ScalarValueHolder.java
+++ b/java/src/org/singinst/uf/model/ScalarValueHolder.java
@@ -7,10 +7,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.singinst.uf.common.LogUtil;
import org.singinst.uf.common.StringUtil;
import org.singinst.uf.math.MathUtil;
import org.singinst.uf.presenter.LineBounds;
import org.singinst.uf.presenter.Store;
+import org.singinst.uf.view.ViewUtil;
public class ScalarValueHolder implements Evaluable {
@Override
@@ -29,6 +31,12 @@ public class ScalarValueHolder implements Evaluable {
this.scalarSchema = scalarSchema;
try {
Store s = Store.getInstance();
+ if (s == null) {
+ LogUtil.info("ScalarValueHolder.init(): Store instance is null!");
+ }
+ if (scalarSchema == null) {
+ LogUtil.info("ScalarValueHolder.init(): scalarSchema is null!");
+ }
Double storedValue = s.get(scalarSchema.getKey());
if (storedValue == null) {
this.value = value;
@@ -51,7 +59,8 @@ public class ScalarValueHolder implements Evaluable {
timestamp = System.currentTimeMillis();
this.value = constrainedValue;
notifyListeners();
- org.singinst.uf.common.LogUtil.info("storing with key \"" + scalarSchema.getKey() + "\" and value of "+value);
+
+ LogUtil.info("storing with key \"" + scalarSchema.getKey() + "\" and value of "+value);
try {
Store s = Store.getInstance();
s.put(scalarSchema.getKey(), value);
diff --git a/java/src/org/singinst/uf/presenter/Store.java b/java/src/org/singinst/uf/presenter/Store.java
index fcbfbe0..3cb3f41 100644
--- a/java/src/org/singinst/uf/presenter/Store.java
+++ b/java/src/org/singinst/uf/presenter/Store.java
@@ -12,6 +12,10 @@ public abstract class Store {
public abstract Double get(String key);
public abstract void put(String key, double value);
+ /**
+ * Load data (expert claim). This is called from the browser.
+ * @param jsonSubset
+ */
public void loadData(String jsonSubset) {
try {
attemptLoad(jsonSubset);
diff --git a/java/src/org/singinst/uf/view/AppletBrowser.java b/java/src/org/singinst/uf/view/AppletBrowser.java
index 52c162c..df50bfb 100644
--- a/java/src/org/singinst/uf/view/AppletBrowser.java
+++ b/java/src/org/singinst/uf/view/AppletBrowser.java
@@ -1,19 +1,14 @@
package org.singinst.uf.view;
import java.applet.Applet;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.rmi.UnexpectedException;
+import netscape.javascript.JSObject;
+
+import org.singinst.uf.common.LogUtil;
import org.w3c.dom.Element;
import org.w3c.dom.html.HTMLDocument;
+import org.w3c.dom.html.HTMLIFrameElement;
import com.sun.java.browser.dom.DOMAccessor;
import com.sun.java.browser.dom.DOMAction;
@@ -24,7 +19,6 @@ public class AppletBrowser {
private DOMService service;
private static AppletBrowser instance;
private final Applet applet;
- private static BufferedWriter log = null;
public AppletBrowser(Applet applet) {
this.applet = applet;
try {
@@ -34,61 +28,61 @@ public class AppletBrowser {
}
}
-// private void log(String msg) {
-// if (log == null) {
-//// File logFile = new File("uf-log" + new SimpleDateFormat("yyMMdd").format(new Date()) + ".log");
-// File logFile = null;
-// try {
-// logFile = File.createTempFile("uf-log", "log");
-// } catch (IOException e1) {
-// e1.printStackTrace();
-// }
-// OutputStream outStream = null;
-// try {
-// outStream = new FileOutputStream(logFile);
-// } catch (FileNotFoundException e) {
-// e.printStackTrace();
-// }
-// log = new BufferedWriter(new OutputStreamWriter(outStream));
-// System.out.println("FIXME: Created log file " + logFile.getAbsolutePath());
-// }
-// try {
-// log.write(msg + "\n");
-// log.flush();
-// System.out.println("FIXME: " + msg);
-// } catch (IOException e) {
-// e.printStackTrace();
-// }
-//// try {
-//// log.close();
-//// } catch (IOException e) {
-//// e.printStackTrace();
-//// }
-// }
-
+ /**
+ * Switch shown help page.
+ */
public void loadPage(final String helpName) {
-// log("loadPage(" + helpName + ")");
if (service != null) {
-// log("service != null");
try {
service.invokeAndWait(new DOMAction()
{
+ /**
+ * Firefox on Mac has some issues with accessing HTML elements
+ * from applets and is currently not working.
+ *
+ * See http://forums.sun.com/thread.jspa?threadID=5391691.
+ *
+ * This method is an approach that doesn't work, but might be used
+ * as a starting point.
+ */
+ private void getMacSidebar() {
+// element.getOwnerDocument() // Get document from element
+// applet.getDocumentBase() // Get URL for applet base
+ JSObject w = JSObject.getWindow(applet);
+ Object o = w.eval("getSidebar()");
+ Object o2 = w.eval("document.getElementById('sidebar')");
+ LogUtil.info("getSidebar(): " + o);
+ LogUtil.info("document.getElementById('sidebar'): " + o2 + ", " + o2.getClass());
+ LogUtil.info("sidebar object has class: " + o.getClass());
+ if (o instanceof HTMLIFrameElement) {
+ HTMLIFrameElement e = (HTMLIFrameElement) o;
+ e.setAttribute("class", "fooBar");
+ }
+ Class c = o.getClass();
+ }
public Object run(DOMAccessor accessor)
{
+ LogUtil.info("Applet: " + applet);
HTMLDocument doc = (HTMLDocument) accessor.getDocument(applet);
- Element element = doc.getElementById("sidebar");
-// log("doc: " + doc + ", element: " + element);
- //for (int i = 0; i < nodeList.getLength(); i++) {
- //Node node = nodeList.item(i);
- //if (node instanceof Element) {
- //Element element = (Element) node;
- if (element.getAttribute("name").startsWith("ufHelp")) {
- String pageName = "ufHelp/" + helpName + ".html";
- element.setAttribute("src", pageName);
- }
- //}
- //}
+ LogUtil.info("HTML document: " + doc);
+
+// if (ViewUtil.runningOnApple()) {
+// LogUtil.info("Running on OS X");
+// } else {
+// LogUtil.info("Running on ~OS X");
+// }
+
+ if (doc == null) {
+ LogUtil.error(new UnexpectedException("HTML document could not be accessed!"));
+ return null;
+ }
+ Element element = doc.getElementById("sidebar");
+ LogUtil.info("Element with id sidebar: " + element);
+ if (element.getAttribute("name").startsWith("ufHelp")) {
+ String pageName = "ufHelp/" + helpName + ".html";
+ element.setAttribute("src", pageName);
+ }
return null;
}
});
diff --git a/java/src/org/singinst/uf/view/UfApplet.java b/java/src/org/singinst/uf/view/UfApplet.java
index f71da15..783f45b 100644
--- a/java/src/org/singinst/uf/view/UfApplet.java
+++ b/java/src/org/singinst/uf/view/UfApplet.java
@@ -37,9 +37,6 @@ public class UfApplet extends JApplet {
Store.getInstance().loadData(jsonSubset);
}
- /**
- *
- */
private void createGUI() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
diff --git a/java/src/org/singinst/uf/view/ViewUtil.java b/java/src/org/singinst/uf/view/ViewUtil.java
index ce4c843..a8619ef 100644
--- a/java/src/org/singinst/uf/view/ViewUtil.java
+++ b/java/src/org/singinst/uf/view/ViewUtil.java
@@ -3,23 +3,32 @@ package org.singinst.uf.view;
import java.net.MalformedURLException;
import java.net.URL;
+import org.singinst.uf.common.LogUtil;
+
public class ViewUtil {
- private static Boolean isApple = isApple();
+ private static Boolean isApple = null;
public static boolean renderExponentsAsSuperscript() {
- return !isApple;
+ return !runningOnApple();
}
- private static URL apple() throws MalformedURLException {
- return new URL("http://apple.com/");
+ private static URL getAppleUrl() throws MalformedURLException {
+ return new URL("http://www.apple.com/");
}
- private static boolean isApple() {
- try {
- // this seems surprisingly slow on FireFox, try to only call it once
- return apple().equals(new URL(System.getProperty("java.vendor.url")));
- } catch (MalformedURLException e) {
- throw new RuntimeException(e);
+ public static boolean runningOnApple() {
+ if (isApple == null) {
+ try {
+ // this seems surprisingly slow on FireFox, try to only call it once
+ String vendorUrlString = System.getProperty("java.vendor.url");
+ LogUtil.info("Vendor URL: " + vendorUrlString);
+ isApple = getAppleUrl().equals(new URL(vendorUrlString));
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ isApple = false;
+ // throw new RuntimeException(e);
+ }
}
+ return isApple;
}
}
diff --git a/web/UfApplet.jar b/web/UfApplet.jar
index 98cfa1b..d00c9c4 100644
--- a/web/UfApplet.jar
+++ b/web/UfApplet.jar
Binary files differ
diff --git a/web/UfApplet.jnlp b/web/UfApplet.jnlp
index 6e686c6..fb3c76f 100644
--- a/web/UfApplet.jnlp
+++ b/web/UfApplet.jnlp
@@ -6,10 +6,11 @@
<offline-allowed />
</information>
<resources>
- <j2se version="1.6+"
+ <j2se version="1.5+"
href="http://java.sun.com/products/autodl/j2se" />
<jar href="UfApplet.jar" main="true" />
<jar href="commons-math-1.2.jar" />
+ <jar href="plugin.jar" />
</resources>
<applet-desc
name="The Uncertain Future"
diff --git a/web/main.html b/web/main.html
index 618b0fa..ffb95e7 100644
--- a/web/main.html
+++ b/web/main.html
@@ -8,37 +8,66 @@
<!-- <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> -->
<script type="text/javascript" src="js/json2.js"></script>
<script type="text/javascript">
+var debug = 2;
- function clog(str) {
-/* if (console && console.log)
- console.log(str);*/
+// Print debug messages if debug > 0
+function clog(str) {
+ if (debug > 1)
+ alert(str);
+ else if (debug > 0 && console && console.log)
+ console.log(str);
}
- function loadData(jsonObj) {
-/* clog("loadData:" + JSON.stringify(jsonObj));*/
- var json = JSON.stringify(jsonObj);
- if (getBrowser() == "ie") {
- alert("We're sorry, but this functionality isn't currently supported in IE. Please consider switching to Firefox or Opera.");
- } else {
- top.document.applets[0].loadData(json); // This fails on IE
- }
- }
+// Load data for an exprt claim
+function loadData(jsonObj) {
+ clog("loadData:" + JSON.stringify(jsonObj));
+ var json = JSON.stringify(jsonObj);
+// if (getBrowser() == "ie") {
+// alert("We're sorry, but this functionality isn't currently supported in Internet Explorer. Please consider using to Firefox or Opera.");
+// } else {
+ top.document.applets[0].loadData(json); // This fails on IE
+// }
+}
+
+function getOS() {
+ var agent = navigator.userAgent;
+ if (agent.indexOf("Linux") != -1)
+ return "linux";
+ else if (agent.indexOf("Mac OS X") != -1)
+ return "mac";
+ else if (agent.indexOf("Windows") != -1)
+ return "windows";
+}
+
function getBrowser() {
- // alert("userAgent: " + navigator.userAgent + ", appName: " + navigator.appName);
- var agent = navigator.userAgent;
- if (agent.indexOf("Firefox") != -1)
- return "ff";
- else if (agent.indexOf("Safari") != -1)
- return "sf";
- else {
- var name = navigator.appName;
- if (name.indexOf("Internet Explorer") != -1)
- return "ie";
- else
- return "unknown";
- }
- }
- </script>
+ clog("userAgent: " + navigator.userAgent + ", appName: " + navigator.appName);
+ var agent = navigator.userAgent;
+ if (agent.indexOf("Firefox") != -1)
+ return "ff";
+ else if (agent.indexOf("Safari") != -1)
+ return "sf";
+ else {
+ var name = navigator.appName;
+ if (name.indexOf("Internet Explorer") != -1)
+ return "ie";
+ else
+ return "unknown";
+ }
+}
+
+// Check browser and display warning if user has combination known to have issues
+function checkBrowser() {
+ var os = getOS();
+ var browser = getBrowser();
+ if (os == "mac" && browser == "ff") {
+ alert("We're sorry, but Firefox on Mac OS X does not support all features of this site. Please consider using Safari or Opera if you experience any problems.");
+ } else if (browser == "ie") {
+ alert("We're sorry, but Internet Explorer does not support all features of this site. Please consider using Firefox or Opera if you experience any problems.");
+ }
+
+}
+
+ </script>
</head>
<body>
<div id="wrap">
@@ -48,7 +77,7 @@ function getBrowser() {
archive:'UfApplet.jar,commons-math-1.2.jar', width:900, height:660, mayscript: true} ;
var parameters = {jnlp_href: 'UfApplet.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.5');
-
+ checkBrowser();
</script>
<div id="sidebar-wrap">
<hr style="margin: 0;"/>
diff --git a/web/plugin.jar b/web/plugin.jar
new file mode 100644
index 0000000..bd3b292
--- /dev/null
+++ b/web/plugin.jar
Binary files differ