/** * @(#)MinoidsHtmlReporter.java * @author JLMJ * @date 2001-10-12 */ package minoids1.controls; import netscape.javascript.*; import minoids1.Box; import minoids1.counter.MinoidsCounterMotor; import minoids1.counter.MinoidsCounterEvent; import java.applet.Applet; import java.util.Date; public class MinoidsHtmlReporter { private CounterControlDialog dialog; private JSObject javaScript; private int minoidsOrder; private Box[] boxes; private String minoidsType; private MinoidsCounterMotor minoidsCounterMotor; public MinoidsHtmlReporter(Applet applet, CounterControlDialog dialog) { this.dialog = dialog; try { javaScript = JSObject.getWindow(applet); } catch (Exception ex) { } } private String getReportContents(String message) { minoidsOrder = dialog.getMinoidsOrder(); boxes = dialog.getBoxes(); minoidsType = dialog.getMinoidsType(); minoidsCounterMotor = dialog.getMinoidsCounterMotor(); StringBuffer sb = new StringBuffer(); String title = minoidsOrder + "-minoids Counting Applet Automatic Report" + message; sb.append("\n
" + title + "
\n"); if (minoidsType.equals(MinoidsCounterMotor.POLYOMINOIDS_TYPE_STRING)) { sb.append(getPolyominoidsTableDataHTMLCode()); } else if (minoidsType.equals(MinoidsCounterMotor.POLYOMINOES_TYPE_STRING)) { sb.append(getPolyominoesTableDataHTMLCode()); } sb.append(getStatisticsHTMLCode()); sb.append(""); sb.append("\n\n"); return sb.toString(); } public void popupWindow() { if (javaScript == null) return; try { javaScript.eval("alert('Counting Finished');"); } catch (Exception e) { } } public void updateJavaScriptReport(String message) { if (javaScript != null) javaScript.call("applet", new Object[] { getReportContents(message) }); } private String getPolyominoidsTableDataHTMLCode() { if (boxes == null) return "There were not selected boxes!!! (order = 0)\n"; StringBuffer sb = new StringBuffer(); sb.append("
Translations Polyominoids | ||||||
---|---|---|---|---|---|---|
Order " + minoidsOrder + " | " + "" + MinoidsCounterMotor.ANY_CONNECTIONS_TYPE_STRING + " | " + "" + MinoidsCounterMotor.HARD_CONNECTIONS_TYPE_STRING + " | " + "" + MinoidsCounterMotor.SOFT_CONNECTIONS_TYPE_STRING + " | |||
" + boxes[i] + " | "); rot = "" + boxes[i].getNumberOfRotations() + "x"; mce = minoidsCounterMotor.getAnyMinoidsCounterEvent(i); count = (mce == null) ? "?" : "" + mce.getNumberOfMinoids(); sb.append(" | " + rot + count + " | "); if (boxes[i].getX() != 0) { mce = minoidsCounterMotor.getHardMinoidsCounterEvent(i); count = (mce == null) ? "?" : "" + mce.getNumberOfMinoids(); sb.append("" + rot + count + " | "); } else { sb.append("0 | "); } if (boxes[i].getX() == 0) { mce = minoidsCounterMotor.getSoftMinoidsCounterEvent(i); count = (mce == null) ? "?" : "" + mce.getNumberOfMinoids(); sb.append("" + rot + count + " | 0 | "); } } if (onlyThisBox == null) { sb.append("
Total of Polyominoids | "); sb.append("" + minoidsCounterMotor.getAnyMinoidsTotalCount() + " | "); sb.append("" + minoidsCounterMotor.getHardMinoidsTotalCount() + " | "); sb.append("" + minoidsCounterMotor.getSoftMinoidsTotalCount() + " | "); } sb.append("
\n"); return sb.toString(); } private String getPolyominoesTableDataHTMLCode() { if (boxes == null) return "There were not selected boxes!!! (order = 0)
\n"; StringBuffer sb = new StringBuffer(); sb.append("
Translations Polyominoes | ||
---|---|---|
Order " + minoidsOrder + " | " + "Soft | |
" + boxes[i] + " | "); //TranslationsCounter tc = new TranslationsCounter(boxes[i], null); rot = "" + boxes[i].getNumberOfRotations() / 3 + "x"; mce = minoidsCounterMotor.getSoftMinoidsCounterEvent(i); count = (mce == null) ? "?" : "" + mce.getNumberOfMinoids(); sb.append(" | " + rot + count + " |
Total of Polyominoes | "); sb.append("" + minoidsCounterMotor.getPolyominoesTotalCount() + " | "); } sb.append("
\n");
return sb.toString();
}
private String getStatisticsHTMLCode() {
if (minoidsCounterMotor.isCountFinished()) {
StringBuffer sb = new StringBuffer();
sb.append("Java Code Version : "
+ minoidsCounterMotor.getVersion() + "
\n");
long elapsedTime = minoidsCounterMotor.getElapsedTime();
int ms = (int)elapsedTime % 1000; elapsedTime /= 1000;
int s = (int)elapsedTime % 60; elapsedTime /= 60;
int m = (int)elapsedTime % 60; elapsedTime /= 60;
int h = (int)elapsedTime % 24;
sb.append("Elapsed time : " +
h + "h " + m + "m " + s + "s " + ms + "ms
\n");
sb.append("Generated at : " + new Date().toString() + "
\n");
sb.append("Java Virtual Machine: " +
System.getProperty("java.version") + ", " +
System.getProperty("java.vendor") + //", " +
//System.getProperty("java.vendor.url") +
"
\n");
sb.append("Operating System : " +
System.getProperty("os.name") + ", " +
System.getProperty("os.arch") + " " +
System.getProperty("os.version") +
"
\n");
return sb.toString();
} else {
return "Counting in progress...
";
}
}
}