Bug 489096 - HTML5 support
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages.properties b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages.properties
index 9987206..2334f1d 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
+# Copyright (c) 2006, 2016 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
@@ -14,3 +14,4 @@
CSSViewer_1=&Open
ElementViewerJFace_0=Select
ElementViewerJFace_1=View Help...
+ProgressBar_1=indeterminate
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages_ja.properties b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages_ja.properties
index 396486d..8c20e0c 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/messages_ja.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
+# Copyright (c) 2006, 2016 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
@@ -14,4 +14,5 @@
CSSViewer_1=\u958b\u304f(&O)
ElementViewerJFace_0=\u9078\u629e\u3059\u308b
ElementViewerJFace_1=\u30d8\u30eb\u30d7\u3092\u53c2\u7167\u3059\u308b...
+ProgressBar_1=\u672a\u78ba\u5b9a
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java
index 0b5116d..bf10152 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java
@@ -38,6 +38,7 @@
import org.eclipse.actf.visualization.eval.html.statistics.PageData;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.internal.engines.blind.html.BlindProblem;
+import org.eclipse.actf.visualization.internal.engines.blind.html.Messages;
import org.eclipse.actf.visualization.internal.engines.blind.html.util.DocumentCleaner;
import org.eclipse.actf.visualization.internal.engines.blind.html.util.ImgChecker;
import org.eclipse.actf.visualization.internal.engines.blind.html.util.LinkAnalyzer;
@@ -266,7 +267,7 @@
calMaxTime();
problems.addAll(linkAnalyzer.skipLinkCheck(iMaxTime, iMaxTimeLeaf));
-
+
// remove embedded elements (original/results)
for (String s : new String[] { "svg", "math" }) {
NodeList tmpNL = orig.getElementsByTagName(s);
@@ -280,12 +281,20 @@
}
replaceElement(result, "math", new String[0], "MathML");
replaceElement(result, "svg", new String[] { "title", "desc" }, "SVG");
- replaceElement(result, "video", new String[0], "video"); //src or source?
- replaceElement(result, "audio", new String[0], "audio"); //src or source?
+ replaceElement(result, "canvas", new String[0], "canvas");
+
+ // TBD src/source
+ replaceElement(result, "video", new String[0], "video");
+ replaceElement(result, "audio", new String[0], "audio");
// template (temp code (remove after IE supports template tag)
replaceElement(result, "template", new String[0], null);
-
+
+ // progress
+ visualizeProgress(result); // TODO move to jwatc
+
+ // meter (JAWS 15/NVDA 2016) do not support
+ replaceElement(result, "meter", new String[0], "meter");
replaceImgAndCheck(result, mapData, curParamBlind.oReplaceImage);
@@ -359,6 +368,29 @@
}
// merge
+ // datalist
+ NodeList tmpNL = result.getElementsByTagName("input");
+ NodeList tmpNL2 = orig.getElementsByTagName("datalist");
+ if (tmpNL2.getLength() > 0) {
+ for (int i = 0; i < tmpNL.getLength(); i++) {
+ Element e = (Element) tmpNL.item(i);
+ String listS = e.getAttribute("list");
+ for(int j = 0; j < tmpNL2.getLength(); j++){
+ Element e2 = (Element) tmpNL2.item(j);
+ String id = e2.getAttribute("id");
+ System.out.println(listS+" : "+id);
+ if(id!=null && id.equals(listS)){
+ Node tmpN = mapData.getResultNode(e2);
+ if(tmpN!=null && tmpN instanceof Element){
+ String targetId = ((Element)tmpN).getAttribute("id");
+ e.setAttribute("list", targetId);
+ }
+ }
+ }
+ }
+
+ }
+
VisualizeStyleInfoManager.getInstance().fireVisualizeStyleInfoUpdate(styleInfo);
if (curParamBlind.visualizeMode.equals(ParamBlind.BLIND_BROWSER_MODE)) {
@@ -419,6 +451,59 @@
}
@SuppressWarnings("nls")
+ private void visualizeProgress(Document doc) {
+ NodeList nl = doc.getElementsByTagName("progress");
+ int size = nl.getLength();
+ for (int i = size - 1; i >= 0; i--) {
+ Element target = (Element) nl.item(i);
+ Element div = doc.createElement("div");
+ div.setAttribute("comment", target.getAttribute("comment"));
+ div.setAttribute("id", target.getAttribute("id"));
+
+ StringBuffer tmpSB = new StringBuffer();
+ tmpSB.append("(progress bar: ");
+ double max = 1.0; // default
+ double value = 0; // default
+
+ if (target.hasAttribute("value")) {
+ try {
+ double tmpValue = Double.parseDouble(target.getAttribute("value"));
+ if (tmpValue > value) {
+ value = tmpValue;
+ }
+ } catch (NumberFormatException e) {
+ }
+ if (target.hasAttribute("max")) {
+ double tmpValue = Double.parseDouble(target.getAttribute("max"));
+ if (tmpValue > 0) {
+ max = tmpValue;
+ }
+ }
+ if (value > max) {
+ tmpSB.append("100%");
+ } else {
+ tmpSB.append(value / max * 100);
+ tmpSB.append("%");
+ }
+ } else {
+ tmpSB.append(Messages.ProgressBar_1); // ¢mè
+ }
+
+ tmpSB.append(")");
+
+ // remove other tags and attributes
+
+ div.appendChild(doc.createTextNode(tmpSB.toString()));
+
+ Node parent = target.getParentNode();
+ parent.insertBefore(div, target);
+ mapData.addReplacedNodeMapping(target, div);
+ parent.removeChild(target);
+ }
+
+ }
+
+ @SuppressWarnings("nls")
private void replaceImgAndCheck(Document doc, VisualizeMapDataImpl mapData, boolean remove) {
NodeList mapList = doc.getElementsByTagName("map");
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/Messages.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/Messages.java
index 3b76ee4..bed9f85 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/Messages.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/Messages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and Others
+ * Copyright (c) 2006, 2016 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -25,7 +25,8 @@
public static String CSSViewer_1;
public static String ElementViewerJFace_0;
public static String ElementViewerJFace_1;
-
+ public static String ProgressBar_1;
+
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java
index 87a166a..96e1dbe 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java
@@ -230,6 +230,8 @@
} else if (nodeName.contains("caption")){
info.setCaption(true);
info.appendComment(curNode.getNodeName());
+ } else if (nodeName.equals("mark")){
+ info.appendComment("mark");
}
if (nodeName.equals("body")) {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java
index 13b8d3e..dcc9928 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java
@@ -18,6 +18,7 @@
import org.eclipse.actf.util.logging.DebugPrintUtil;
import org.eclipse.actf.visualization.engines.blind.ParamBlind;
+import org.eclipse.actf.visualization.eval.html.HtmlTagUtil;
import org.eclipse.swt.graphics.RGB;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
@@ -142,8 +143,8 @@
String inputRGB = getRGBString(param.inputTagsColor, "#FF9900");
String captionRGB = getRGBString(param.captionColor, "#FFFF80");
- if (param.bColorizeTags
- && (info.isHeading() | info.isTableHeader() | info.isLabel() | info.isIdRequiredInput() | info.isCaption())) {
+ if (param.bColorizeTags && (info.isHeading() | info.isTableHeader() | info.isLabel()
+ | info.isIdRequiredInput() | info.isCaption())) {
if (info.isHeading()) {
strRGB = headingRGB;
} else if (info.isTableHeader()) {
@@ -152,12 +153,12 @@
strRGB = labelRGB;
} else if (info.isIdRequiredInput()) {
strRGB = inputRGB;
- } else if (info.isCaption()){
+ } else if (info.isCaption()) {
strRGB = captionRGB;
}
-
- //TBD caption
-
+
+ // TBD caption
+
el.setAttribute("style", "color: black; background-image: none; background-color:" + strRGB);// +
// "}");
// } else if (info.getWords() > 0) {
@@ -176,8 +177,12 @@
}
if (param.bVisualizeTime == true) {
- el.setAttribute("style", "color: black; background-image: none; background-color: #"
- + calcColor(time, param.maxTimeColor, param.iMaxTime));
+ if ("mark".equals(el.getTagName())||HtmlTagUtil.hasAncestor(el, "mark")) {
+ el.setAttribute("style", "color: black; background-image: none;");
+ } else {
+ el.setAttribute("style", "color: black; background-image: none; background-color: #"
+ + calcColor(time, param.maxTimeColor, param.iMaxTime));
+ }
} else {
el.setAttribute("style", "color: black; background-image: none; background-color: transparent");