[289739, 323933, 335892] WCAG 2.0/JIS support (Level A/AA), UI enhancements
diff --git a/plugins/org.eclipse.actf.visualization.blind/plugin.properties b/plugins/org.eclipse.actf.visualization.blind/plugin.properties
index 6030f4e..5998689 100644
--- a/plugins/org.eclipse.actf.visualization.blind/plugin.properties
+++ b/plugins/org.eclipse.actf.visualization.blind/plugin.properties
@@ -11,4 +11,4 @@
actf.blind.view.title=Blind
actf.action.visualize=Visualize Blind Usability
actf.visualization.actionset=ACTF Visualization
-actf.visualization.menu=Visualize
\ No newline at end of file
+actf.visualization.menu=Visuali&ze
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.blind/plugin_ja.properties b/plugins/org.eclipse.actf.visualization.blind/plugin_ja.properties
index 5a44d80..723d2cd 100644
--- a/plugins/org.eclipse.actf.visualization.blind/plugin_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.blind/plugin_ja.properties
@@ -9,6 +9,6 @@
# IBM Corporation - initial API and implementation
###############################################################################
actf.blind.view.title=\u97f3\u58f0\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3
-actf.action.visualize=\u97f3\u58f0\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u8996\u899a\u5316
+actf.action.visualize=\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u691c\u8a3c\u30fb\u97f3\u58f0\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u8996\u899a\u5316
actf.visualization.actionset=ACTF\u8996\u899a\u5316
-actf.visualization.menu=\u8996\u899a\u5316
\ No newline at end of file
+actf.visualization.menu=\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u691c\u8a3c\u30fb\u8996\u899a\u5316(&Z)
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/BlindVisualizerBase.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/BlindVisualizerBase.java
index cd03ff5..bc7c00e 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/BlindVisualizerBase.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/BlindVisualizerBase.java
@@ -68,6 +68,9 @@
modelService = targetModel;
targetUrl = targetModel.getURL();
+ if(targetUrl==null){
+ targetUrl="";
+ }
return true;
}
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/actions/BlindSaveAction.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/actions/BlindSaveAction.java
index 71edc5b..347bea9 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/actions/BlindSaveAction.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/actions/BlindSaveAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and Others
+ * Copyright (c) 2005, 2010 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
@@ -15,20 +15,57 @@
import org.eclipse.actf.visualization.blind.ui.internal.PartControlBlind;
import org.eclipse.actf.visualization.engines.blind.BlindVizResourceUtil;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
public class BlindSaveAction extends Action {
- PartControlBlind prb;
+ private PartControlBlind pcb;
+ private boolean saveReport = false;
public BlindSaveAction(PartControlBlind prb) {
- setToolTipText(Messages.Tooltip_Save);
+ super(Messages.MenuConst_Save,
+ AS_DROP_DOWN_MENU);
+ this.pcb = prb;
+
+ setToolTipText(Messages.Tooltip_Save);
setImageDescriptor(BlindVizResourceUtil
.getImageDescriptor("icons/ButtonSave.png")); //$NON-NLS-1$
- setText(Messages.MenuConst_Save);
- this.prb = prb;
+
+ setMenuCreator(new IMenuCreator() {
+
+ public void dispose() {
+ }
+
+ public Menu getMenu(Control parent) {
+ Menu menu = new Menu(parent);
+ MenuItem item1 = new MenuItem(menu, SWT.CHECK);
+ item1.setText(org.eclipse.actf.visualization.blind.ui.internal.Messages.Report);
+ item1.setSelection(saveReport);
+ item1.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ saveReport = !saveReport;
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ return menu;
+ }
+
+ public Menu getMenu(Menu parent) {
+ return null;
+ }
+ });
+
}
public void run() {
- prb.doSave();
+ pcb.doSave(saveReport);
}
}
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/BlindVisualizationBrowser.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/BlindVisualizationBrowser.java
index b995c07..7198990 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/BlindVisualizationBrowser.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/BlindVisualizationBrowser.java
@@ -124,7 +124,13 @@
Variant[] rgvarg = new Variant[1];
rgvarg[0] = new Variant(str);
- ieWindowAutomation.invoke(id_exec_script, rgvarg);
+ if(ieWindowAutomation.invoke(id_exec_script, rgvarg)==null){
+ //try again
+ ieWindowAutomation = null;
+ if(initWindowAutomation()){
+ ieWindowAutomation.invoke(id_exec_script, rgvarg);
+ }
+ }
}
}
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java
index ff546ad..f1fbda3 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java
@@ -30,6 +30,7 @@
public static String BlindView_Visualize_4;
public static String BlindVisualizationAction_0;
public static String Visualization_Error;
+ public static String Report;
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/PartControlBlind.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/PartControlBlind.java
index 0b1f59e..a59b1a0 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/PartControlBlind.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/PartControlBlind.java
@@ -10,7 +10,11 @@
*******************************************************************************/
package org.eclipse.actf.visualization.blind.ui.internal;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -37,8 +41,8 @@
import org.eclipse.actf.visualization.eval.html.statistics.PageData;
import org.eclipse.actf.visualization.eval.problem.HighlightTargetId;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.actf.visualization.eval.problem.ReportUtil;
import org.eclipse.actf.visualization.ui.IVisualizationView;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
@@ -79,26 +83,59 @@
this.vizView = vizView;
this._shell = parent.getShell();
- //new BlindToolBar(parent, SWT.NONE, this);
+ // new BlindToolBar(parent, SWT.NONE, this);
this._blindBrowser = new BlindVisualizationBrowser(parent);
this._blindBrowser.setBrowserSilent();
}
- public void doSave() {
- String saveFile = DialogSave.open(_shell, DialogSave.HTML, targetUrl,
- "_blind.htm"); //$NON-NLS-1$
+ public void doSave(boolean withReport) {
+ String saveFile = DialogSave.open(_shell, DialogSave.CSV, targetUrl,
+ ".csv"); //$NON-NLS-1$
- if (null == this.resultDoc || null == saveFile) {
- return;
+ if (saveFile != null) {
+
+ // final IViewPart curView =
+ // PlatformUIUtil.showView(IVisualizationView.ID_BLINDVIEW);
+ // TODO
+ IEvaluationResult result = (IEvaluationResult) Mediator
+ .getInstance().getReport(vizView);
+ if (result != null) {
+ try {
+ OutputStreamWriter osw = new OutputStreamWriter(
+ new BufferedOutputStream(new FileOutputStream(saveFile)),
+ // "UTF-8");
+ "Shift_JIS"); // TODO
+ PrintWriter reportPW = new PrintWriter(osw);
+ ReportUtil reportUtil = new ReportUtil();
+ reportUtil.setPrintWriter(reportPW);
+ reportUtil.writeFirstLine();
+ result.accept(reportUtil);
+ reportPW.flush();
+ reportPW.close();
+
+ } catch (Exception e) {
+ }
+ }
+
+ if (withReport) {
+ if (null == this.resultDoc || null == saveFile) {
+ return;
+ }
+
+ if (saveFile.toLowerCase().endsWith(".csv")) {
+ saveFile = saveFile.substring(0, saveFile.length() - 3);
+ }
+ saveFile = saveFile.concat(".html");
+
+ String imageBriefDir = saveFile.substring(saveFile
+ .lastIndexOf("\\") + 1, saveFile.lastIndexOf(".")) //$NON-NLS-1$ //$NON-NLS-2$
+ + "/"; //$NON-NLS-1$
+ // 2007.09.25 remove space character to include JavaScript files
+ imageBriefDir = imageBriefDir.replace(' ', '_');
+ saveReportFile(saveFile, imageBriefDir, true);
+ }
}
-
- String imageBriefDir = saveFile.substring(
- saveFile.lastIndexOf("\\") + 1, saveFile.lastIndexOf(".")) //$NON-NLS-1$ //$NON-NLS-2$
- + "/"; //$NON-NLS-1$
- // 2007.09.25 remove space character to include JavaScript files
- imageBriefDir = imageBriefDir.replace(' ', '_');
- saveReportFile(saveFile, imageBriefDir, true);
}
public int doVisualize() {
@@ -291,4 +328,21 @@
}
}
+
+ public boolean isBrowserModeSupported(IModelServiceHolder msh) {
+ if (msh != null) {
+ for (IBlindVisualizer bvh : blindVizualizers) {
+ if (bvh.setModelService(msh.getModelService())) {
+ // TODO add method into interface
+ if (bvh.getClass()
+ .getName()
+ .startsWith("org.eclipse.actf.visualization.blind.")) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
}
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java
index b6e2a60..cc58e50 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java
@@ -51,7 +51,7 @@
private static final String SRC = "src";
private static final String[] ICON_NAMES = { "Err.png", "Warn.png",
- "Info.png" };
+ "Conf.png", "Info.png" };
// moved from PartRightBlind
// TODO renew
@@ -67,17 +67,17 @@
IEvaluationResult evalResult = (IEvaluationResult) checkResult;
- String saveDir = sFileName.substring(0, sFileName
- .lastIndexOf(File.separator) + 1);
+ String saveDir = sFileName.substring(0,
+ sFileName.lastIndexOf(File.separator) + 1);
String imageDir = saveDir + imageBriefDir;
File fDir = new File(imageDir);
if ((!fDir.isDirectory() || !fDir.canWrite()) && !fDir.mkdirs()) {
System.err.println("can't create image dir:" + imageDir);
}
- String preName = sFileName.substring(sFileName
- .lastIndexOf(File.separator) + 1, sFileName
- .lastIndexOf("."));
+ String preName = sFileName.substring(
+ sFileName.lastIndexOf(File.separator) + 1,
+ sFileName.lastIndexOf("."));
String scriptVariantName = preName + "_variant.js";
String reportImgSaveName = preName + ".png";
@@ -114,9 +114,10 @@
// e.printStackTrace();
}
- FileUtils.copyFile(new File(BlindVizResourceUtil
- .getTempDirectory(), "pagerating.png"), imageDir
- + reportImgSaveName, true);
+ FileUtils.copyFile(
+ new File(BlindVizResourceUtil.getTempDirectory(),
+ "pagerating.png"),
+ imageDir + reportImgSaveName, true);
}
@@ -154,18 +155,16 @@
Element newEle = result.createElement("script");
StringBuffer buffer = new StringBuffer();
- buffer
- .append(FileUtils.LINE_SEP
- + "if(navigator.appName.toLowerCase().indexOf(\"microsoft\")>=0){"
- + FileUtils.LINE_SEP);
+ buffer.append(FileUtils.LINE_SEP
+ + "if(navigator.appName.toLowerCase().indexOf(\"microsoft\")>=0){"
+ + FileUtils.LINE_SEP);
buffer.append("jsFile=\"highlight.js\";" + FileUtils.LINE_SEP);
buffer.append("}else{" + FileUtils.LINE_SEP);
buffer.append("jsFile=\"highlight_moz.js\";"
+ FileUtils.LINE_SEP);
buffer.append("}" + FileUtils.LINE_SEP);
- buffer
- .append("document.write(\"<script src=\"+acc_imageDir+jsFile+\"></script>\");"
- + FileUtils.LINE_SEP);
+ buffer.append("document.write(\"<script src=\"+acc_imageDir+jsFile+\"></script>\");"
+ + FileUtils.LINE_SEP);
newEle.appendChild(result.createComment(buffer.toString()));
el.appendChild(newEle);
}
@@ -421,8 +420,10 @@
return ICON_NAMES[0];
case IEvaluationItem.SEV_WARNING:
return ICON_NAMES[1];
- case IEvaluationItem.SEV_INFO:
+ case IEvaluationItem.SEV_USER:
return ICON_NAMES[2];
+ case IEvaluationItem.SEV_INFO:
+ return ICON_NAMES[3];
default:
return NULL_STRING;
}
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties
index d33f0e7..86e3eb3 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties
@@ -23,6 +23,7 @@
#
BlindView_Visualize_4 = Visualize blind usability
BlindVisualizationAction_0 = Visualize
+Report = Save HTML Report
#
# Others
#
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties
index 46805c7..af50ab0 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties
@@ -21,8 +21,9 @@
#
# Actions
#
-BlindView_Visualize_4 = \u97f3\u58f0\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u8996\u899a\u5316\u5b9f\u884c
+BlindView_Visualize_4 = \u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u691c\u8a3c\u30fb\u97f3\u58f0\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u8996\u899a\u5316\u5b9f\u884c
BlindVisualizationAction_0 = \u8996\u899a\u5316\u5b9f\u884c
+Report = HTML\u5f62\u5f0f\u306e\u30ec\u30dd\u30fc\u30c8\u3082\u4fdd\u5b58
#
# Others
#
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/views/BlindView.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/views/BlindView.java
index 3fdf14e..42dd425 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/views/BlindView.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/views/BlindView.java
@@ -23,6 +23,7 @@
import org.eclipse.actf.visualization.engines.blind.html.ui.elementViewer.ElementViewerManagerFactory;
import org.eclipse.actf.visualization.engines.blind.html.ui.elementViewer.IElementViewerManager;
import org.eclipse.actf.visualization.engines.blind.ui.actions.BlindSettingAction;
+import org.eclipse.actf.visualization.engines.blind.ui.actions.BlindVisualizationBrowserModeAction;
import org.eclipse.actf.visualization.ui.IVisualizationView;
import org.eclipse.actf.visualization.ui.VisualizationStatusLineContributionItem;
import org.eclipse.actf.visualization.ui.report.table.ResultTableLabelProvider;
@@ -55,6 +56,8 @@
private PartControlBlind partRightBlind;
private HashSet<IWorkbenchPage> pageSet = new HashSet<IWorkbenchPage>();
+
+ private BlindVisualizationBrowserModeAction browserVisualizaton;
public BlindView() {
super();
@@ -85,8 +88,11 @@
IActionBars bars = getViewSite().getActionBars();
// IMenuManager menuManager = bars.getMenuManager();
IToolBarManager toolbarManager = bars.getToolBarManager();
+
+ browserVisualizaton = new BlindVisualizationBrowserModeAction();
toolbarManager.add(new BlindVisualizationAction(partRightBlind));
+ toolbarManager.add(browserVisualizaton);
toolbarManager.add(new BlindSettingAction());
toolbarManager.add(new BlindSaveAction(partRightBlind));
toolbarManager.add(new BlindOpenIdCssAction());
@@ -192,7 +198,11 @@
}
public void modelserviceChanged(MediatorEvent event) {
- // do nothing
+ if(partRightBlind.isBrowserModeSupported(event.getModelServiceHolder())){
+ browserVisualizaton.setEnabled(true);
+ }else{
+ browserVisualizaton.setEnabled(false);
+ }
}
public void modelserviceInputChanged(MediatorEvent event) {
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 48a7369..3fa474d 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
@@ -284,6 +284,7 @@
DocumentCleaner.removeEmbed(result);
DocumentCleaner.removeApplet(result);
DocumentCleaner.removeBase(result);
+ DocumentCleaner.removePI(result);
VisualizationResultCleaner.clean(result, targetUrl);
@@ -308,7 +309,8 @@
VisualizeStyleInfoManager.getInstance()
.fireVisualizeStyleInfoUpdate(styleInfo);
- if (curParamBlind.visualizeMode == ParamBlind.BLIND_BROWSER_MODE) {
+ if (curParamBlind.visualizeMode
+ .equals(ParamBlind.BLIND_BROWSER_MODE)) {
VisualizeViewUtil.returnTextView(result, allPc, baseUrl);
return;
} else {
@@ -380,21 +382,24 @@
title = titleNode.getNodeValue();
} else {
error = true;
- title = "untitled";
+ title = "";
}
- title.trim();
if (remove) {
- if (title.length() > 0) {
- div.appendChild(doc.createTextNode("[Internal frame:"
- + title + "]"));
- }
div.setAttribute("width", iframe.getAttribute("width"));
div.setAttribute("height", iframe.getAttribute("height"));
if (error) {
+ div.appendChild(doc
+ .createTextNode("[iframe: (without title)]"));
div.setAttribute("style", errorStyle);
} else {
- div.setAttribute("style", iframe.getAttribute("style"));
+ div.appendChild(doc.createTextNode("[iframe: title=\""
+ + title + "\"]"));
+ if (title.matches("^[\\s\u3000]*$")) {
+ div.setAttribute("style", errorStyle);
+ } else {
+ div.setAttribute("style", iframe.getAttribute("style"));
+ }
}
Node parent = iframe.getParentNode();
parent.insertBefore(div, iframe);
@@ -413,7 +418,7 @@
if (typeS.equalsIgnoreCase("image")) {
input.setAttribute("type", "button");
- //
+ //
NamedNodeMap map = input.getAttributes();
int mapSize = map.getLength();
Node altNode = null;
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java
index 176cf88..b80434e 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java
@@ -64,7 +64,7 @@
orgDoctype = orgDoctype.substring(0, orgDoctype
.indexOf("\""));
if (orgDoctype
- .matches("-//W3C//DTD XHTML ((1.0 (Strict|Transitional|Frameset))|1.1|Basic 1.0)//EN")) {
+ .matches("-//W3C//DTD XHTML ((1.0 (Strict|Transitional|Frameset))|1.1|Basic 1.0|Basic 1.1)//EN")) {
orgDoctype = "";
} else {
isInvalidDoctype = true;
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/DocumentCleaner.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/DocumentCleaner.java
index b06d519..fb566b9 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/DocumentCleaner.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/DocumentCleaner.java
@@ -23,6 +23,7 @@
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.w3c.dom.ProcessingInstruction;
@SuppressWarnings("nls")
public class DocumentCleaner {
@@ -355,5 +356,15 @@
}
}
+
+ public static void removePI(Document doc){
+ NodeList nl = doc.getChildNodes();
+ for(int i=nl.getLength()-1;i>-1;i--){
+ Node n = nl.item(i);
+ if(n instanceof ProcessingInstruction){
+ doc.removeChild(n);
+ }
+ }
+ }
}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/ImgChecker.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/ImgChecker.java
index 65721df..a5b516a 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/ImgChecker.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/ImgChecker.java
@@ -128,8 +128,10 @@
if (!areaE.hasAttribute(ALT)) {
if (areaE.hasAttribute("href")) {
prob = new BlindProblem(IBlindProblem.NO_ALT_AREA,
- mapEl.getAttribute("name") + " , href=\""
- + areaE.getAttribute("href") + "\"");
+ "map name=\"" + mapEl.getAttribute("name")
+ + "\", href=\""
+ + areaE.getAttribute("href")
+ + "\".");
prob.setTargetNode(mapData.getOrigNode(areaE));
}
} else {
@@ -174,8 +176,8 @@
if (checkItems[prob.getSubType()]) {
Element errorImg = doc.createElement("img");
errorImg.setAttribute(ALT, "error icon");
- errorImg.setAttribute("title", prob
- .getDescription());
+ errorImg.setAttribute("title",
+ prob.getDescription());
if (idObj != null) {
errorImg.setAttribute("onmouseover",
"updateBaloon('id" + idObj + "');");
@@ -196,6 +198,7 @@
}
private String checkAlt(Element img) {
+ // check_H67(img); // For new JIS
boolean noAltError = false;
String altS = ""; //$NON-NLS-1$
@@ -203,17 +206,19 @@
BlindProblem prob = null;
if (!img.hasAttribute(ALT)) {
- prob = new BlindProblem(IBlindProblem.NO_ALT_IMG, img
- .getAttribute(SRC));
+ prob = new BlindProblem(IBlindProblem.NO_ALT_IMG,
+ img.getAttribute(SRC));
noAltError = true;
} else {
altS = img.getAttribute(ALT);
if (altS.length() > 0) {
if (textChecker.isInappropriateAlt(altS)) {
- prob = new BlindProblem(IBlindProblem.WRONG_ALT_IMG, altS);
+ // prob = new BlindProblem(IBlindProblem.WRONG_ALT_IMG,
+ // altS);
+ prob = new BlindProblem(IBlindProblem.ALERT_WRONG_ALT, altS);
} else if (textChecker.isSeparatedJapaneseChars(altS)) {
- prob = new BlindProblem(IBlindProblem.SEPARATE_DBCS_ALT_IMG,
- altS);
+ prob = new BlindProblem(
+ IBlindProblem.SEPARATE_DBCS_ALT_IMG, altS);
} else {
switch (textChecker.checkInappropriateAlt(altS)) {
case 3:
@@ -221,8 +226,10 @@
altS);
break;
case 2:
- prob = new BlindProblem(IBlindProblem.WRONG_ALT_IMG,
+ prob = new BlindProblem(IBlindProblem.ALERT_WRONG_ALT,
altS);
+ // prob = new BlindProblem(IBlindProblem.WRONG_ALT_IMG,
+ // altS);
break;
case 1:
prob = new BlindProblem(IBlindProblem.ALERT_WRONG_ALT,
@@ -260,4 +267,42 @@
}
return (imgText);
}
+
+ /**
+ * For new JIS
+ *
+ * @param img
+ */
+ private void check_H67(Element img) {
+ System.out.println("----");
+ System.out.println("check_H67");
+ String src = img.getAttribute(SRC);
+ System.out.println("src = " + src + ", alt = [" + img.getAttribute(ALT)
+ + "]");
+ System.out.println(isIgnoredByAT(img));
+
+ if (isIgnoredByAT(img)) {
+ String alt = img.getAttribute(ALT); // it must exist
+ if (alt.matches("[ ]+"))
+ System.out.println("warning: alt=\"\" is recommended");
+ if (alt.matches("(\\u00A0)+"))
+ System.out
+ .println("error: cannot be used for null ALT purpose");
+ if (img.hasAttribute("title")
+ && img.getAttribute("title").length() > 0)
+ System.out.println("error: title att exists in ignored img");
+ }
+ }
+
+ /**
+ * For new JIS
+ *
+ * @param img
+ * @return
+ */
+ private boolean isIgnoredByAT(Element img) {
+ String alt = img.getAttribute(ALT);
+ // System.out.println(Integer.toHexString(alt.codePointAt(0)));
+ return img.hasAttribute(ALT) && alt.matches("[ \\u00A0]*");
+ }
}
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 19ca922..85b8d14 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
@@ -83,7 +83,7 @@
} else if (tagName.equals("textarea")) {
return true;
} else if (tagName.equals("input")) {
- String type = el.getAttribute("type");
+ String type = el.getAttribute("type").toLowerCase();
if ((type.length() == 0) | type.equals("text")
| type.equals("textarea") | type.equals("radio")
| type.equals("checkbox")) {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/icons/etool16/wh_16.png b/plugins/org.eclipse.actf.visualization.engines.blind/icons/etool16/wh_16.png
new file mode 100644
index 0000000..db9aaa9
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/icons/etool16/wh_16.png
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties
index 0a77297..b5b7875 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
+# Copyright (c) 2006, 2010 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
@@ -9,31 +9,31 @@
# IBM Corporation - initial API and implementation
###############################################################################
#
-AltDialog_TITLE = Edit Inappropriate Alt List
-AltDialog_Column_Name = Inappropreate ALT WORDS
+AltDialog_TITLE = Edit Inappropriate alt attribute List
+AltDialog_Column_Name = Inappropreate alt WORDS
AltDialog_MSG_No_String = Please input string.
AltDialog_MSG_Existed = The Word has existed.
#
# PageEvaluation
#
-PageEvaluation_Bad=Unsatisfactory (needs modification)
+PageEvaluation_Bad=Very poor
PageEvaluation_Excellent=Excellent
PageEvaluation_Good=Good
-PageEvaluation_Poor=Passes minimum requirements
+PageEvaluation_Poor=Poor
#
# SummaryEvaluation
#
-Eval_redundant_img_alt=Redundant ALT attribute:
-Eval_wrong_img_alt=Image with wrong ALT attribute:
-Eval_no_img_alt=Image without ALT attribute:
+Eval_redundant_img_alt=Redundant alt attribute:
+Eval_wrong_img_alt=Image with wrong alt attribute:
+Eval_no_img_alt=Image without alt attribute:
Eval_redundant_img_alt_error_msg=If there are alternative text near the image, please use alt="".
-Eval_wrong_img_alt_error_msg=Please do not use unclear ALT, such as "click here" or "image".
+Eval_wrong_img_alt_error_msg=Please do not use unclear alt, such as "click here" or "image".
Eval_no_img_alt_error_msg=Please provide alternative text for an image (If the image has no information to read out, please provide alt=""
Eval_navigability_low_score_error_msg=In visualization view, you can confirm that most part of the page are dark-colored.{0}Blind users have to wait too long to visit these fragments.{1}To improve blind users' navigability, please provide more headings(H1,H2,...) or skip-links.
Eval_navigability_long_time_error_msg=This page has some skip-links or some headings.{0}"However, you can find some dark fragments in visualization view.{1}Blind users have to wait too long to visit these fragments.{2}"To improve blind users' navigability, please provide more headings(H1,H2,...) or skip-links.
-Eval_navigability_good_msg=This page is well structured and might be easy for blind users to navigate.
+Eval_navigability_good_msg=This page is well structured and might be easy for blind users to operate.
Eval_confirm_errors_detailed_report=Please confirm errors at detailed report tab, then correct them.
-Eval_confirm_alt_attributes_first=At first, please confirm ALT attribute of images.
+Eval_confirm_alt_attributes_first=At first, please confirm alt attribute of images.
Eval_many_accessibility_issues=This page seems to have many accessibility issues.
Eval_some_accessibility_issues=This page seems to have some accessibility issues.
Eval_completely_compliant_with_user_check_items=This page seems completely compliant with guidelines.
@@ -44,7 +44,7 @@
Eval_some_errors_on_metrics1=({0}: Please confirm them at detailed report tab.)
Eval_compliant_with_some_other_errors=This page is almost compliant with guidelines, however, there are still some errors.
Eval_excellent=Excellent!
-Eval_easy_for_blind_user_to_navigate=This page is well structured and might be easy for blind users to navigate.
+Eval_easy_for_blind_user_to_navigate=This page is well structured and might be easy for blind users to operate.
Eval_page_has_skiplinks_headings=This page has some skip-links or some headings.
Eval_darkcolored_visualization_view=However, you can find some dark fragments in visualization view. In visualization view, you can confirm that most part of the page are dark-colored.
#
@@ -66,3 +66,8 @@
DialogSettingBlind_Input_tags_22 = Input tags:
DialogSettingBlind_Label_tags_23 = Label tags:
DialogSettingBlind_Tabel_border_24 = Tabel border:
+#
+#
+#
+VisualizeBrowserMode = Visualize (Voice browser mode)
+VisualizeBrowserModeTooltip = Visualize blind usability (Voice browser mode)
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties
index ce59ac2..81e67ef 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties
@@ -9,31 +9,31 @@
# IBM Corporation - initial API and implementation
###############################################################################
#
-AltDialog_TITLE = \u4e0d\u9069\u5207\u306aALT\u5c5e\u6027\u3092\u8a2d\u5b9a
-AltDialog_Column_Name = \u4e0d\u9069\u5207\u306aALT\u5c5e\u6027
+AltDialog_TITLE = \u4e0d\u9069\u5207\u306aalt\u5c5e\u6027\u3092\u8a2d\u5b9a
+AltDialog_Column_Name = \u4e0d\u9069\u5207\u306aalt\u5c5e\u6027
AltDialog_MSG_No_String = \u4f55\u3089\u304b\u306e\u6587\u5b57\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
AltDialog_MSG_Existed = \u65e2\u306b\u5165\u529b\u3055\u308c\u305f\u5358\u8a9e\u3067\u3059
#
# PageEvaluation
#
-PageEvaluation_Bad=\u8981\u4fee\u6b63
+PageEvaluation_Bad=\u975e\u5e38\u306b\u60aa\u3044
PageEvaluation_Excellent=\u975e\u5e38\u306b\u826f\u3044
PageEvaluation_Good=\u826f\u3044
-PageEvaluation_Poor=\u5229\u7528\u56f0\u96e3
+PageEvaluation_Poor=\u60aa\u3044
#
# SummaryEvaluation
#
-Eval_redundant_img_alt=\u7e70\u308a\u8fd4\u3057\u306b\u306a\u308bALT\u5c5e\u6027\u3092\u6301\u3064\u753b\u50cf\u306e\u6570:
-Eval_wrong_img_alt=\u5224\u308a\u306b\u304f\u3044ALT\u5c5e\u6027\u3092\u6301\u3064\u753b\u50cf\u306e\u6570:
-Eval_no_img_alt=ALT\u5c5e\u6027\u306e\u7121\u3044\u753b\u50cf\u306e\u6570:
-Eval_redundant_img_alt_error_msg=\u3082\u3057\u753b\u50cf\u306e\u3059\u3050\u524d\u5f8c\u306b\uff0c\u305d\u306e\u753b\u50cf\u306e\u610f\u5473\u3092\u8868\u3059\u6587\u5b57\u5217\u306a\u3069\u304c\u5b58\u5728\u3057\u3066\u3044\u308b\u5834\u5408\u306b\u306f\uff0cALT="" \u3068\u3057\u3066\u304f\u3060\u3055\u3044\uff0e \uff08\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u3067\u95b2\u89a7\u3057\u305f\u969b\u306b\uff0c\u540c\u3058\u6587\u7ae0\u3092\u7e70\u308a\u8fd4\u3057\u8aad\u307f\u4e0a\u3052\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\uff09
-Eval_wrong_img_alt_error_msg=\u753b\u50cf\u306e\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\uff08ALT\u5c5e\u6027\uff09\u306b\u306f\u610f\u5473\u306e\u3042\u308b\u6587\u5b57\u5217\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\uff0e \uff08\u300c\u30af\u30ea\u30c3\u30af\u300d\u3084\u300cimage\u300d\u7b49\u3067\u306f\uff0c\u97f3\u58f0\u3067\u8aad\u307f\u4e0a\u3052\u305f\u969b\u306b\u753b\u50cf\u306e\u610f\u5473\u3084\u5f79\u5272\u304c\u4f1d\u308f\u308a\u307e\u305b\u3093\uff0e)
-Eval_no_img_alt_error_msg=\u753b\u50cf\uff08IMG\u30bf\u30b0\uff09\u306b\u306f\uff0c\u305d\u306e\u753b\u50cf\u306e\u610f\u5473\u3084\u5f79\u5272\u3092\u8868\u3059\u6587\u5b57\u5217\u3092ALT\u5c5e\u6027\u3068\u3057\u3066\u4ed8\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\uff0e \uff08\u3082\u3057\uff0c\u7a7a\u767d\u753b\u50cf\u306a\u3069\uff0c\u610f\u5473\u306e\u7121\u3044\u753b\u50cf\u306e\u5834\u5408\u306f ALT="" \u3068\u3057\u3066\u304f\u3060\u3055\u3044)
+Eval_redundant_img_alt=\u7e70\u308a\u8fd4\u3057\u306b\u306a\u308balt\u5c5e\u6027\u3092\u6301\u3064\u753b\u50cf\u306e\u6570:
+Eval_wrong_img_alt=\u5224\u308a\u306b\u304f\u3044alt\u5c5e\u6027\u3092\u6301\u3064\u753b\u50cf\u306e\u6570:
+Eval_no_img_alt=alt\u5c5e\u6027\u306e\u7121\u3044\u753b\u50cf\u306e\u6570:
+Eval_redundant_img_alt_error_msg=\u3082\u3057\u753b\u50cf\u306e\u3059\u3050\u524d\u5f8c\u306b\uff0c\u305d\u306e\u753b\u50cf\u306e\u610f\u5473\u3092\u8868\u3059\u6587\u5b57\u5217\u306a\u3069\u304c\u5b58\u5728\u3057\u3066\u3044\u308b\u5834\u5408\u306b\u306f\uff0calt="" \u3068\u3057\u3066\u304f\u3060\u3055\u3044\uff0e \uff08\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u3067\u95b2\u89a7\u3057\u305f\u969b\u306b\uff0c\u540c\u3058\u6587\u7ae0\u3092\u7e70\u308a\u8fd4\u3057\u8aad\u307f\u4e0a\u3052\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\uff09
+Eval_wrong_img_alt_error_msg=\u753b\u50cf\u306e\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\uff08alt\u5c5e\u6027\uff09\u306b\u306f\u610f\u5473\u306e\u3042\u308b\u6587\u5b57\u5217\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\uff0e \uff08\u300c\u30af\u30ea\u30c3\u30af\u300d\u3084\u300cimage\u300d\u7b49\u3067\u306f\uff0c\u97f3\u58f0\u3067\u8aad\u307f\u4e0a\u3052\u305f\u969b\u306b\u753b\u50cf\u306e\u610f\u5473\u3084\u5f79\u5272\u304c\u4f1d\u308f\u308a\u307e\u305b\u3093\uff0e)
+Eval_no_img_alt_error_msg=\u753b\u50cf\uff08IMG\u30bf\u30b0\uff09\u306b\u306f\uff0c\u305d\u306e\u753b\u50cf\u306e\u610f\u5473\u3084\u5f79\u5272\u3092\u8868\u3059\u6587\u5b57\u5217\u3092alt\u5c5e\u6027\u3068\u3057\u3066\u4ed8\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\uff0e \uff08\u3082\u3057\uff0c\u7a7a\u767d\u753b\u50cf\u306a\u3069\uff0c\u610f\u5473\u306e\u7121\u3044\u753b\u50cf\u306e\u5834\u5408\u306f alt="" \u3068\u3057\u3066\u304f\u3060\u3055\u3044)
Eval_navigability_low_score_error_msg=\u53f3\u4e0a\u306e\u7d50\u679c\u753b\u9762\u3067\u30da\u30fc\u30b8\u306e\u5927\u90e8\u5206\u304c\u6697\u3044\u8272\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u304b\uff1f{0} \u3053\u306e\u30da\u30fc\u30b8\u306b\u97f3\u58f0\u3067\u30a2\u30af\u30bb\u30b9\u3057\u305f\u5834\u5408\uff0c\u6700\u3082\u6697\u3044\u8272\u306e\u90e8\u5206\u306b\u5230\u9054\u3059\u308b\u306b\u306f90\u79d2\u4ee5\u4e0a\u304b\u304b\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e{1} \u898b\u51fa\u3057\u30bf\u30b0(H1,H2...)\u3084\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\uff0c\u30da\u30fc\u30b8\u5185\u306e\u5404\u9805\u76ee\u3078\u306e\u79fb\u52d5\u304c\u7c21\u5358\u306b\u306a\u308b\u3088\u3046\u306b\u3057\u3066\u4e0b\u3055\u3044\uff0e{2} \u7d50\u679c\u753b\u9762\u306e\u4e2d\u3067\u306f\uff0c\u898b\u51fa\u3057\u306f\u6c34\u8272\uff0c\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u77e2\u5370\u3067\u8868\u793a\u3055\u308c\u307e\u3059\uff0e{3} \u307e\u305f\uff0c\u3053\u308c\u3089\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\uff0c\u7d50\u679c\u5168\u4f53\u304c\u660e\u308b\u3044\u8272\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u306e\u3067\u78ba\u8a8d\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\uff0e
-Eval_navigability_long_time_error_msg=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\uff0c\u97f3\u58f0\u3067\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u304c\u96e3\u3057\u3044\u7b87\u6240\u304c\u6b8b\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e{0} \u53f3\u4e0a\u306e\u7d50\u679c\u753b\u9762\u306e\u4e2d\u3067\u6700\u3082\u6697\u3044\u8272\u306e\u90e8\u5206\u306b\u5230\u9054\u3059\u308b\u306b\u306f90\u79d2\u4ee5\u4e0a\u304b\u304b\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e{1} \u3088\u308a\u591a\u304f\u306e\u898b\u51fa\u3057\u30bf\u30b0(H1,H2...)\u3084\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\uff0c\u30da\u30fc\u30b8\u5185\u306e\u5404\u9805\u76ee\u3078\u7c21\u5358\u306b\u79fb\u52d5\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e{2} \u7d50\u679c\u753b\u9762\u306e\u4e2d\u3067\u306f\uff0c\u898b\u51fa\u3057\u306f\u6c34\u8272\uff0c\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u77e2\u5370\u3067\u8868\u793a\u3055\u308c\u307e\u3059\uff0e{3} \u307e\u305f\uff0c\u3053\u308c\u3089\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\uff0c\u7d50\u679c\u5168\u4f53\u304c\u660e\u308b\u3044\u8272\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u306e\u3067\u78ba\u8a8d\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\uff0e
-Eval_navigability_good_msg=\u3053\u306e\u30da\u30fc\u30b8\u306f\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u3067\u3082\u7c21\u5358\u306b\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u3067\u304d\u308b\u3068\u601d\u308f\u308c\u307e\u3059\uff0e{0} \u53f3\u4e0a\u306e\u7d50\u679c\u753b\u9762\u3067\uff0c\u80cc\u666f\u304c\u6c34\u8272\u306e\u6587\u5b57\u5217\u304c\u898b\u51fa\u3057\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff0e{1} \u307e\u305f\uff0c\u77e2\u5370\u306e\u30a2\u30a4\u30b3\u30f3\u3092\u62bc\u3057\u3066\uff0c\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306e\u30b8\u30e3\u30f3\u30d7\u5148\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
+Eval_navigability_long_time_error_msg=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\uff0c\u97f3\u58f0\u3067\u306e\u64cd\u4f5c\u304c\u96e3\u3057\u3044\u7b87\u6240\u304c\u6b8b\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e{0} \u53f3\u4e0a\u306e\u7d50\u679c\u753b\u9762\u306e\u4e2d\u3067\u6700\u3082\u6697\u3044\u8272\u306e\u90e8\u5206\u306b\u5230\u9054\u3059\u308b\u306b\u306f90\u79d2\u4ee5\u4e0a\u304b\u304b\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e{1} \u3088\u308a\u591a\u304f\u306e\u898b\u51fa\u3057\u30bf\u30b0(H1,H2...)\u3084\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\uff0c\u30da\u30fc\u30b8\u5185\u306e\u5404\u9805\u76ee\u3078\u7c21\u5358\u306b\u79fb\u52d5\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e{2} \u7d50\u679c\u753b\u9762\u306e\u4e2d\u3067\u306f\uff0c\u898b\u51fa\u3057\u306f\u6c34\u8272\uff0c\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u77e2\u5370\u3067\u8868\u793a\u3055\u308c\u307e\u3059\uff0e{3} \u307e\u305f\uff0c\u3053\u308c\u3089\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\uff0c\u7d50\u679c\u5168\u4f53\u304c\u660e\u308b\u3044\u8272\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u306e\u3067\u78ba\u8a8d\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\uff0e
+Eval_navigability_good_msg=\u3053\u306e\u30da\u30fc\u30b8\u306f\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u3067\u3082\u7c21\u5358\u306b\u64cd\u4f5c\u3067\u304d\u308b\u3068\u601d\u308f\u308c\u307e\u3059\uff0e{0} \u53f3\u4e0a\u306e\u7d50\u679c\u753b\u9762\u3067\uff0c\u80cc\u666f\u304c\u6c34\u8272\u306e\u6587\u5b57\u5217\u304c\u898b\u51fa\u3057\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff0e{1} \u307e\u305f\uff0c\u77e2\u5370\u306e\u30a2\u30a4\u30b3\u30f3\u3092\u62bc\u3057\u3066\uff0c\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306e\u30b8\u30e3\u30f3\u30d7\u5148\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
Eval_confirm_errors_detailed_report=\u8a73\u7d30\u30ec\u30dd\u30fc\u30c8\u3067\uff0c\u3069\u306e\u3088\u3046\u306a\u554f\u984c\u304c\u3042\u308b\u304b\u78ba\u8a8d\u3057\u3066\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
-Eval_confirm_alt_attributes_first=\u307e\u305a\u306f\uff0c\u30da\u30fc\u30b8\u5185\u306e\u753b\u50cf\u306b\u5bfe\u3057\u3066\uff0c\u305d\u306e\u610f\u5473\u30fb\u5f79\u5272\u3092\u8aac\u660e\u3059\u308b\u6587\u5b57\u5217(ALT\u5c5e\u6027)\u304c\u4ed8\u52a0\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u3087\u3046\uff0e
+Eval_confirm_alt_attributes_first=\u307e\u305a\u306f\uff0c\u30da\u30fc\u30b8\u5185\u306e\u753b\u50cf\u306b\u5bfe\u3057\u3066\uff0c\u305d\u306e\u610f\u5473\u30fb\u5f79\u5272\u3092\u8aac\u660e\u3059\u308b\u6587\u5b57\u5217(alt\u5c5e\u6027)\u304c\u4ed8\u52a0\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u3087\u3046\uff0e
Eval_many_accessibility_issues=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u306b\u95a2\u3059\u308b\u554f\u984c\u304c\u591a\u6570\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\uff0e
Eval_some_accessibility_issues=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u3044\u304f\u3064\u304b\u306e\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u306b\u95a2\u3059\u308b\u554f\u984c\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\uff0e
Eval_completely_compliant_with_user_check_items=\u3053\u306e\u30da\u30fc\u30b8\u306f\u3053\u306e\u30c4\u30fc\u30eb\u3067\u30c1\u30a7\u30c3\u30af\u53ef\u80fd\u306a\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u306e\u9805\u76ee\u5168\u3066\u306b\u6e96\u62e0\u3057\u3066\u3044\u308b\u69d8\u3067\u3059\uff0e
@@ -44,14 +44,14 @@
Eval_some_errors_on_metrics1=({0}: \u8a73\u7d30\u30ec\u30dd\u30fc\u30c8\u3067\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff0e)
Eval_compliant_with_some_other_errors=\u3053\u306e\u30da\u30fc\u30b8\u306f\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u306b\u307b\u307c\u6e96\u62e0\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u304c\uff0c\u307e\u3060\u3044\u304f\u3064\u304b\u306e\u554f\u984c\u304c\u6b8b\u3063\u3066\u3044\u307e\u3059\uff0e
Eval_excellent=Excellent!
-Eval_easy_for_blind_user_to_navigate=\u3053\u306e\u30da\u30fc\u30b8\u306f\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u3067\u3082\u7c21\u5358\u306b\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u3067\u304d\u308b\u3068\u601d\u308f\u308c\u307e\u3059\uff0e
-Eval_page_has_skiplinks_headings=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\uff0c\u97f3\u58f0\u3067\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u304c\u96e3\u3057\u3044\u7b87\u6240\u304c\u6b8b\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e
+Eval_easy_for_blind_user_to_navigate=\u3053\u306e\u30da\u30fc\u30b8\u306f\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u3067\u3082\u7c21\u5358\u306b\u64cd\u4f5c\u3067\u304d\u308b\u3068\u601d\u308f\u308c\u307e\u3059\uff0e
+Eval_page_has_skiplinks_headings=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\uff0c\u97f3\u58f0\u3067\u306e\u64cd\u4f5c\u304c\u96e3\u3057\u3044\u7b87\u6240\u304c\u6b8b\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e
Eval_darkcolored_visualization_view=\u53f3\u4e0a\u306e\u7d50\u679c\u753b\u9762\u3067\u30da\u30fc\u30b8\u306e\u5927\u90e8\u5206\u304c\u6697\u3044\u8272\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u304b\uff1f
#
# PreferencePage
#
-DialogSettingBlind_NG_Word___Wrong_Text_5 = \u4e0d\u9069\u5207\u306aALT\u5c5e\u6027
-DialogSettingBlind_NG_Word_Wrong_Text_Edit____25 = \u4e0d\u9069\u5207\u306aALT\u5c5e\u6027\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
+DialogSettingBlind_NG_Word___Wrong_Text_5 = \u4e0d\u9069\u5207\u306aalt\u5c5e\u6027
+DialogSettingBlind_NG_Word_Wrong_Text_Edit____25 = \u4e0d\u9069\u5207\u306aalt\u5c5e\u6027\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
DialogSettingBlind_Language_4 = \u8a00\u8a9e
DialogSettingBlind_English_15 = \u82f1\u8a9e
DialogSettingBlind_Japanese_16 = \u65e5\u672c\u8a9e
@@ -66,3 +66,8 @@
DialogSettingBlind_Input_tags_22 = \u5165\u529b\u30bf\u30b0 (Input):
DialogSettingBlind_Label_tags_23 = \u30e9\u30d9\u30eb\u30bf\u30b0 (Label):
DialogSettingBlind_Tabel_border_24 = \u30c6\u30fc\u30d6\u30eb\u306e\u5883\u754c:
+#
+#
+#
+VisualizeBrowserMode = \u8996\u899a\u5316 (\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u30e2\u30fc\u30c9)
+VisualizeBrowserModeTooltip = \u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u691c\u8a3c\u30fb\u97f3\u58f0\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u8996\u899a\u5316\u5b9f\u884c (\u97f3\u58f0\u30d6\u30e9\u30a6\u30b6\u30e2\u30fc\u30c9)
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java
index 4b65294..c99f531 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java
@@ -40,6 +40,8 @@
+ "Err.png", true);
FileUtils.copyFile(bundleChecker, new Path("icons/Warn.png"), path
+ "Warn.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/Conf.png"), path
+ + "Conf.png", true);
FileUtils.copyFile(bundleChecker, new Path("icons/Info.png"), path
+ "Info.png", true);
FileUtils.copyFile(bundleChecker, new Path("icons/star.gif"), path
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/eval/PageEvaluation.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/eval/PageEvaluation.java
index e4d38e0..541fedd 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/eval/PageEvaluation.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/eval/PageEvaluation.java
@@ -62,9 +62,7 @@
hlsl.addTarget(Messages.Eval_some_accessibility_issues, red, SWT.BOLD);
hlsl.addTarget(Messages.Eval_easy_for_blind_user_to_navigate, blue,
SWT.BOLD);
- hlsl
- .addTarget(Messages.Eval_page_has_skiplinks_headings, red,
- SWT.BOLD);
+ hlsl.addTarget(Messages.Eval_page_has_skiplinks_headings, red, SWT.BOLD);
hlsl.addTarget(Messages.Eval_darkcolored_visualization_view, red,
SWT.BOLD);
@@ -76,6 +74,7 @@
private PageData pageData;
private String[] metrics = guidelineHolder.getMetricsNames();
+ private String[] lMetrics = guidelineHolder.getLocalizedMetricsNames();
private int metricsSize = metrics.length;
@@ -122,8 +121,13 @@
protected boolean hasComplianceError() {
for (int i = 0; i < metricsSize; i++) {
- if (metrics[i].equalsIgnoreCase("compliance")) { //$NON-NLS-1$
- return (scores[i] != 100);
+ if (metrics[i].equalsIgnoreCase("perceivable") || //$NON-NLS-1$
+ metrics[i].equalsIgnoreCase("understandable") || //$NON-NLS-1$
+ metrics[i].equalsIgnoreCase("robust") || //$NON-NLS-1$
+ metrics[i].equalsIgnoreCase("operable")) { //$NON-NLS-1$)
+ if (scores[i] != 100) {
+ return (true);
+ }
}
}
return (false);
@@ -143,7 +147,7 @@
for (int i = 0; i < metricsSize; i++) {
if (enabledMetrics[i]) {
- tmpV.add(metrics[i]);
+ tmpV.add(lMetrics[i]);
tmpV.add(String.valueOf(scores[i]));
}
}
@@ -178,14 +182,13 @@
String rating = Messages.PageEvaluation_Bad;
- if (!hasComplianceError()) {
- if (minValue >= 90) {
- rating = Messages.PageEvaluation_Excellent;
- } else if (minValue >= 70) {
- rating = Messages.PageEvaluation_Good;
- } else if (minValue >= 60) {
- rating = Messages.PageEvaluation_Poor;
- }
+ // TODO check compliance / others
+ if (minValue == 100) {
+ rating = Messages.PageEvaluation_Excellent;
+ } else if (minValue >= 75) {
+ rating = Messages.PageEvaluation_Good;
+ } else if (minValue >= 50) {
+ rating = Messages.PageEvaluation_Poor;
}
return (rating);
}
@@ -212,14 +215,14 @@
String rating = IVisualizationConst.RATING_BAD;
- if (!hasComplianceError()) {
- if (minValue >= 90) {
- rating = IVisualizationConst.RATING_V_GOOD;
- } else if (minValue >= 80) {
- rating = IVisualizationConst.RATING_GOOD;
- } else if (minValue >= 60) {
- rating = IVisualizationConst.RATING_POOR;
- }
+ // TODO check compliance / others
+
+ if (minValue == 100) {
+ rating = IVisualizationConst.RATING_V_GOOD;
+ } else if (minValue >= 75) {
+ rating = IVisualizationConst.RATING_GOOD;
+ } else if (minValue >= 50) {
+ rating = IVisualizationConst.RATING_POOR;
}
return (rating);
}
@@ -234,7 +237,7 @@
this.checkMinus();
boolean[] enabled = GuidelineHolder.getInstance().getMatchedMetrics();
- String[] metrics = this.getMetrics();
+ String[] metrics = lMetrics;
int[] scores = this.getScores();
Vector<String> metricsV = new Vector<String>();
@@ -276,6 +279,16 @@
}
/**
+ * Get evaluation metrics used to evaluate this page
+ *
+ * @return metrics names (localized)
+ */
+ public String[] getLocalizedMetrics() {
+ return lMetrics;
+ }
+
+
+ /**
* Get scores for each metrics
*
* @return scores
@@ -283,7 +296,7 @@
public int[] getScores() {
return scores;
}
-
+
/**
* Get {@link PageData} used for this evaluation
*
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/actions/BlindVisualizationBrowserModeAction.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/actions/BlindVisualizationBrowserModeAction.java
new file mode 100644
index 0000000..68a83bd
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/actions/BlindVisualizationBrowserModeAction.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.actf.visualization.engines.blind.ui.actions;
+
+import org.eclipse.actf.ui.util.PlatformUIUtil;
+import org.eclipse.actf.visualization.engines.blind.BlindVizResourceUtil;
+import org.eclipse.actf.visualization.engines.blind.ParamBlind;
+import org.eclipse.actf.visualization.engines.blind.ui.preferences.IBlindPreferenceConstants;
+import org.eclipse.actf.visualization.internal.engines.blind.BlindVizEnginePlugin;
+import org.eclipse.actf.visualization.internal.engines.blind.Messages;
+import org.eclipse.actf.visualization.ui.IVisualizationView;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ui.IViewPart;
+
+public class BlindVisualizationBrowserModeAction extends Action {
+
+ public BlindVisualizationBrowserModeAction() {
+ setToolTipText(Messages.VisualizeBrowserModeTooltip);
+ setImageDescriptor(BlindVizResourceUtil
+ .getImageDescriptor("icons/etool16/wh_16.png")); //$NON-NLS-1$
+ setText(Messages.VisualizeBrowserMode);
+ }
+
+ public void run() {
+
+ IPreferenceStore ps = BlindVizEnginePlugin.getDefault().getPreferenceStore();
+ ps.setValue(IBlindPreferenceConstants.BLIND_MODE, IBlindPreferenceConstants.BLIND_BROWSER_MODE);
+ ParamBlind.refresh();
+
+ IViewPart viewPart = PlatformUIUtil
+ .showView(IVisualizationView.ID_BLINDVIEW);
+ if (viewPart instanceof IVisualizationView) {
+ ((IVisualizationView) viewPart).doVisualize();
+ }
+ ps.setValue(IBlindPreferenceConstants.BLIND_MODE, IBlindPreferenceConstants.BLIND_LAYOUT_MODE);
+ ParamBlind.refresh();
+ }
+
+}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java
index 4ff8f94..97d53cc 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java
@@ -20,7 +20,6 @@
import org.eclipse.actf.visualization.internal.engines.blind.Messages;
import org.eclipse.jface.preference.ColorFieldEditor;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
-import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -36,7 +35,7 @@
public static final String ID = BlindPreferencePage.class.getName();
- private RadioGroupFieldEditor modeRadio;
+// private RadioGroupFieldEditor modeRadio;
private Group visualizationSetting;
@@ -80,20 +79,20 @@
Composite parent = getFieldEditorParent();
- modeRadio = new RadioGroupFieldEditor(
- IBlindPreferenceConstants.BLIND_MODE,
- Messages.DialogSettingBlind_Visualization_mode_3,
- 1,
- new String[][] {
- {
- Messages.DialogSettingBlind_Layout_mode_9,
- IBlindPreferenceConstants.BLIND_LAYOUT_MODE },
- {
- Messages.DialogSettingBlind_Voice_browser_output_mode_8,
- IBlindPreferenceConstants.BLIND_BROWSER_MODE } },
- parent);
-
- addField(modeRadio);
+// modeRadio = new RadioGroupFieldEditor(
+// IBlindPreferenceConstants.BLIND_MODE,
+// Messages.DialogSettingBlind_Visualization_mode_3,
+// 1,
+// new String[][] {
+// {
+// Messages.DialogSettingBlind_Layout_mode_9,
+// IBlindPreferenceConstants.BLIND_LAYOUT_MODE },
+// {
+// Messages.DialogSettingBlind_Voice_browser_output_mode_8,
+// IBlindPreferenceConstants.BLIND_BROWSER_MODE } },
+// parent);
+//
+// addField(modeRadio);
visualizationSetting = createFieldGroup(Messages.DialogSettingBlind_LayoutModeSetting);
@@ -155,19 +154,19 @@
visualizationSetting.setVisible(isLayoutMode);
}
- @Override
- public void propertyChange(PropertyChangeEvent event) {
- super.propertyChange(event);
-
- if (event.getSource() == modeRadio) {
- if (!event.getOldValue().equals(event.getNewValue())) {
- boolean isLayoutMode = IBlindPreferenceConstants.BLIND_LAYOUT_MODE
- .equals(event.getNewValue());
- visualizationSetting.setEnabled(isLayoutMode);
- visualizationSetting.setVisible(isLayoutMode);
- }
- }
- }
+// @Override
+// public void propertyChange(PropertyChangeEvent event) {
+// super.propertyChange(event);
+//
+// if (event.getSource() == modeRadio) {
+// if (!event.getOldValue().equals(event.getNewValue())) {
+// boolean isLayoutMode = IBlindPreferenceConstants.BLIND_LAYOUT_MODE
+// .equals(event.getNewValue());
+// visualizationSetting.setEnabled(isLayoutMode);
+// visualizationSetting.setVisible(isLayoutMode);
+// }
+// }
+// }
@Override
public boolean performOk() {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java
index 2b30384..3b224a7 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java
@@ -68,6 +68,9 @@
public static String DialogSettingBlind_Input_tags_22;
public static String DialogSettingBlind_Label_tags_23;
public static String DialogSettingBlind_Tabel_border_24;
+
+ public static String VisualizeBrowserMode;
+ public static String VisualizeBrowserModeTooltip;
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java
index f85f5e1..1c2f82a 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java
@@ -53,38 +53,45 @@
StringBuffer noGoodMetrics = new StringBuffer();
boolean hasComp = false;
- boolean hasNav = false;
+ boolean hasOperable = false;
boolean hasOther = false;
String[] metrics = pe.getMetrics();
+ String[] lMetrics = pe.getLocalizedMetrics();
int[] scores = pe.getScores();
- int comp = 100;
- int nav = 100;
+ int compTotal = 0;
+ int compCount = 0;
+ int operable = 100;
int other = 100;
// boolean[] enabledMetrics = guidelineHolder.getMatchedMetrics();
for (int i = 0; i < metrics.length; i++) {
int score = scores[i];
- if (metrics[i].equalsIgnoreCase("compliance") //$NON-NLS-1$
+ if ((metrics[i].equalsIgnoreCase("perceivable") //$NON-NLS-1$
+ || metrics[i].equalsIgnoreCase("understandable") || //$NON-NLS-1$
+ metrics[i].equalsIgnoreCase("robust"))//$NON-NLS-1$
&& guidelineHolder.isMatchedMetric(metrics[i])) {
- comp = score;
+ compTotal += score;
+ compCount++;
hasComp = true;
if (score != 100) {
- noGoodMetrics.append(metrics[i] + ","); //$NON-NLS-1$
+ noGoodMetrics.append(lMetrics[i] + ","); //$NON-NLS-1$
}
- } else if (metrics[i].equalsIgnoreCase("navigability") //$NON-NLS-1$
+ } else if (metrics[i].equalsIgnoreCase("operable") //$NON-NLS-1$
&& guidelineHolder.isMatchedMetric(metrics[i])) {
- nav = score;
- hasNav = true;
+ operable = score;
+ compTotal += score;
+ compCount++;
+ hasOperable = true;
} else {
hasOther = true;
if (other > score) {
other = score;
}
if (score != 100) {
- noGoodMetrics.append(metrics[i] + ","); //$NON-NLS-1$
+ noGoodMetrics.append(lMetrics[i] + ","); //$NON-NLS-1$
}
}
}
@@ -102,54 +109,13 @@
boolean isGood = false;
- if (hasComp) {
- if (comp >= 80) {
- if (hasError) {
- aboutComp
- .append(Messages.Eval_compliant_with_some_other_errors
- + FileUtils.LINE_SEP);
-
- if (totalAltError > 0) {
- aboutComp
- .append(Messages.Eval_confirm_alt_attributes_first
- + FileUtils.LINE_SEP);
- aboutComp.append(getImageAltStatistics());
- } else {
- aboutComp
- .append(Messages.Eval_confirm_errors_detailed_report);
- }
- } else {
- if (hasOther && other != 100) {
- aboutComp.append(Messages.Eval_some_errors_on_metrics
- + FileUtils.LINE_SEP
- + MessageFormat.format(
- Messages.Eval_some_errors_on_metrics1,
- (new String[] { noGoodMetrics
- .substring(0, noGoodMetrics
- .length() - 1) })));
- } else {
- if (comp == 100) {
- isGood = true;
- aboutComp.append(Messages.Eval_completely_compliant
- + FileUtils.LINE_SEP
- + Messages.Eval_user_check2);
- } else {
- isGood = true;
- aboutComp
- .append(Messages.Eval_completely_compliant_with_user_check_items
- + FileUtils.LINE_SEP
- + Messages.Eval_user_check1);
- }
- }
- }
- } else {
- if (comp > 50) {
- aboutComp.append(Messages.Eval_some_accessibility_issues
- + FileUtils.LINE_SEP);
- } else {
- aboutComp.append(Messages.Eval_many_accessibility_issues
- + FileUtils.LINE_SEP);
- }
+ if(compCount==0){
+ return("");
+ }
+ if (compTotal / compCount >= 75) {
+ if (hasError) { // hasComplianceError
+ aboutComp.append(Messages.Eval_compliant_with_some_other_errors
+ + FileUtils.LINE_SEP);
if (totalAltError > 0) {
aboutComp.append(Messages.Eval_confirm_alt_attributes_first
@@ -159,12 +125,50 @@
aboutComp
.append(Messages.Eval_confirm_errors_detailed_report);
}
+ } else {
+ if (hasOther && other != 100) {
+ aboutComp.append(Messages.Eval_some_errors_on_metrics
+ + FileUtils.LINE_SEP
+ + MessageFormat.format(
+ Messages.Eval_some_errors_on_metrics1,
+ (new String[] { noGoodMetrics.substring(0,
+ noGoodMetrics.length() - 1) })));
+ } else {
+ if (compTotal / compCount == 100) {
+ isGood = true;
+ aboutComp.append(Messages.Eval_completely_compliant
+ + FileUtils.LINE_SEP
+ + Messages.Eval_user_check2);
+ } else {
+ isGood = true;
+ aboutComp
+ .append(Messages.Eval_completely_compliant_with_user_check_items
+ + FileUtils.LINE_SEP
+ + Messages.Eval_user_check1);
+ }
+ }
+ }
+ } else {
+ if (compTotal / compCount >= 50) {
+ aboutComp.append(Messages.Eval_some_accessibility_issues
+ + FileUtils.LINE_SEP);
+ } else {
+ aboutComp.append(Messages.Eval_many_accessibility_issues
+ + FileUtils.LINE_SEP);
+ }
+
+ if (totalAltError > 0) {
+ aboutComp.append(Messages.Eval_confirm_alt_attributes_first
+ + FileUtils.LINE_SEP);
+ aboutComp.append(getImageAltStatistics());
+ } else {
+ aboutComp.append(Messages.Eval_confirm_errors_detailed_report);
}
}
//
- if (hasNav && guidelineHolder.isEnabledMetric("navigability")) { //$NON-NLS-1$
- if (nav > 80) {
+ if (hasOperable && guidelineHolder.isEnabledMetric("operable")) { //$NON-NLS-1$
+ if (operable >= 75) {
if (pageData.getMaxTime() > 240) {
aboutNav.append(MessageFormat.format(
Messages.Eval_navigability_long_time_error_msg,
@@ -189,18 +193,18 @@
}
}
- if ((hasComp || hasNav) && isGood) {
+ if ((hasComp || hasOperable) && isGood) {
tmpSB.append(Messages.Eval_excellent + FileUtils.LINE_SEP
+ FileUtils.LINE_SEP);
}
- tmpSB.append(aboutNav + FileUtils.LINE_SEP);
- tmpSB.append(aboutComp);
+ tmpSB.append(aboutComp + FileUtils.LINE_SEP + FileUtils.LINE_SEP);
+ tmpSB.append(aboutNav);
return (tmpSB.toString());
}
private String getImageAltStatistics() {
- StringBuffer tmpSB = new StringBuffer();
+ StringBuffer tmpSB = new StringBuffer(FileUtils.LINE_SEP);
if (noImageAltCount > 0) {
tmpSB.append(" -" + Messages.Eval_no_img_alt_error_msg //$NON-NLS-1$
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/scripts/highlight.js b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/scripts/highlight.js
index f4784e0..4ab86f0 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/scripts/highlight.js
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/scripts/highlight.js
@@ -33,7 +33,7 @@
var idNumber_Old=0;
var refresh=false;
var HIGHLIGHT_BGCOLOR = "#ffdddd";
-var MAX_PROBLEM_SELECTION = 30;
+var MAX_PROBLEM_SELECTION = 250;
// call it like: setHighlight2(new Array(43,47,49), new Array(45,47,50));
function setHighlight2(firstNodeArray, lastNodeArray) {
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/messages.properties b/plugins/org.eclipse.actf.visualization.ui.report/src/messages.properties
index 55e1757..4e389a7 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/messages.properties
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/messages.properties
@@ -10,9 +10,9 @@
###############################################################################
#
ProblemTable_5 = View Source HTML
-ProblemTable_6 = View Problem Description
+ProblemTable_6 = Properties
ProblemTable_Clear_Selection_15 = Clear Selection
-ProblemTable_View_Guideline_16 = View Guideline
+ProblemTable_View_Guideline_16 = View Success Criterion
DialogTextSearch_0 = Search
DialogTextSearch_1 = The string to be searched:
@@ -31,5 +31,9 @@
SrcViewer_9 = &Copy
SrcViewer_0 = file can't read:
-GuidelineSubMenu_0=Guideline help is not available.
+GuidelineSubMenu_0=Help for Success Criterion is not available.
SrcViewerForPT_0=HTML Source
+
+ViewTechniques=View Techniques
+NoTechniques=Help for Technique is not available.
+Copy = Copy
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/messages_ja.properties b/plugins/org.eclipse.actf.visualization.ui.report/src/messages_ja.properties
index d805e00..8f278d3 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/messages_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/messages_ja.properties
@@ -10,9 +10,9 @@
###############################################################################
#
ProblemTable_5 = \u30bd\u30fc\u30b9HTML\u3092\u898b\u308b
-ProblemTable_6 = \u30a8\u30e9\u30fc\u306e\u5185\u5bb9\u3092\u898b\u308b
+ProblemTable_6 = \u30d7\u30ed\u30d1\u30c6\u30a3
ProblemTable_Clear_Selection_15 = \u9078\u629e\u306e\u89e3\u9664
-ProblemTable_View_Guideline_16 = \u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u3092\u898b\u308b
+ProblemTable_View_Guideline_16 = \u9054\u6210\u57fa\u6e96\u3092\u898b\u308b
DialogTextSearch_0 = \u691c\u7d22
DialogTextSearch_1 = \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217:
@@ -31,5 +31,8 @@
SrcViewer_9 = \u30b3\u30d4\u30fc\t(&C)
SrcViewer_0 = \u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u3053\u3068\u304c\u51fa\u6765\u307e\u305b\u3093:
-GuidelineSubMenu_0=\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u306e\u30d8\u30eb\u30d7\u304c\u6709\u308a\u307e\u305b\u3093.
+GuidelineSubMenu_0=\u9054\u6210\u57fa\u6e96\u306e\u30d8\u30eb\u30d7\u304c\u6709\u308a\u307e\u305b\u3093.
SrcViewerForPT_0=HTML \u30bd\u30fc\u30b9
+Copy = \u30b3\u30d4\u30fc
+ViewTechniques=\u5b9f\u88c5\u65b9\u6cd5\u3092\u898b\u308b
+NoTechniques=\u5b9f\u88c5\u65b9\u6cd5\u306e\u30d8\u30eb\u30d7\u304c\u6709\u308a\u307e\u305b\u3093.
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/Messages.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/Messages.java
index 8d425e4..a9d1822 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/Messages.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/Messages.java
@@ -41,6 +41,11 @@
public static String SrcViewer_9;
public static String SrcViewer_0;
public static String SrcViewerForPT_0;
+
+ public static String ViewTechniques;
+ public static String NoTechniques;
+
+ public static String Copy;
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ProblemTree.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ProblemTree.java
index 3c227da..9d8fd91 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ProblemTree.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ProblemTree.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and Others
+ * Copyright (c) 2003, 2010 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
@@ -43,6 +43,8 @@
private TreeItem node1_2;
private TreeItem node1_3;
+
+ private TreeItem node1_4;
private ResultTableViewer _resultTableViewer = null;
@@ -77,6 +79,8 @@
} else if (item == node1_2) {
result = result | IEvaluationItem.SEV_WARNING;
} else if (item == node1_3) {
+ result = result | IEvaluationItem.SEV_USER;
+ } else if (item ==node1_4){
result = result | IEvaluationItem.SEV_INFO;
}
}
@@ -106,6 +110,10 @@
node1_3 = new TreeItem(nodeRoot, SWT.NULL);
node1_3.setImage(AbstractUIPlugin.imageDescriptorFromPlugin(
+ EvaluationUtil.PLUGIN_ID, "icons/Conf.png").createImage()); //$NON-NLS-1$
+
+ node1_4 = new TreeItem(nodeRoot, SWT.NULL);
+ node1_4.setImage(AbstractUIPlugin.imageDescriptorFromPlugin(
EvaluationUtil.PLUGIN_ID, "icons/Info.png").createImage()); //$NON-NLS-1$
nodeRoot.setExpanded(true);
@@ -129,6 +137,7 @@
public void changeTreeNodeAmount(List<IProblemItem> targetList) {
int error = 0;
+ int warn = 0;
int user = 0;
int info = 0;
@@ -139,6 +148,9 @@
error++;
break;
case IProblemItem.SEV_WARNING:
+ warn++;
+ break;
+ case IProblemItem.SEV_USER:
user++;
break;
case IProblemItem.SEV_INFO:
@@ -154,8 +166,9 @@
nodeRoot.setText(IProblemConst.ALL_ERRORS + " (" + all + ")"); //$NON-NLS-1$ //$NON-NLS-2$
node1_1.setText(IProblemConst.ESSENTIAL + " (" + error + ")"); //$NON-NLS-1$ //$NON-NLS-2$
- node1_2.setText(IProblemConst.USER_CHECK + " (" + user + ")"); //$NON-NLS-1$ //$NON-NLS-2$
- node1_3.setText(IProblemConst.INFO + " (" + info + ")"); //$NON-NLS-1$ //$NON-NLS-2$
+ node1_2.setText(IProblemConst.WARNING + " (" + warn + ")"); //$NON-NLS-1$ //$NON-NLS-2$
+ node1_3.setText(IProblemConst.USER_CHECK + " (" + user + ")"); //$NON-NLS-1$ //$NON-NLS-2$
+ node1_4.setText(IProblemConst.INFO + " (" + info + ")"); //$NON-NLS-1$ //$NON-NLS-2$;
}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ReportMessageDialog.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ReportMessageDialog.java
new file mode 100644
index 0000000..df353d1
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/ReportMessageDialog.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.visualization.internal.ui.report;
+
+import org.eclipse.actf.util.FileUtils;
+import org.eclipse.actf.visualization.eval.guideline.GuidelineHolder;
+import org.eclipse.actf.visualization.eval.guideline.IGuidelineData;
+import org.eclipse.actf.visualization.eval.problem.IProblemConst;
+import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+
+public class ReportMessageDialog {
+ public static void openReportMEssageDialog(Shell shell, IProblemItem curItem) {
+ if(shell==null||curItem==null)return;
+
+ StringBuffer tmpSB = new StringBuffer();
+
+ IGuidelineData[] dataArray = GuidelineHolder.getInstance()
+ .getGuidelineData();
+ for (int i = 0; i < dataArray.length; i++) {
+ if (dataArray[i].isMatched()) {
+ tmpSB.append(dataArray[i].getGuidelineName() + ": "
+ + curItem.getTableDataGuideline()[i]
+ + FileUtils.LINE_SEP + FileUtils.LINE_SEP);
+ }
+ }
+ tmpSB.append(IProblemConst.TITLE_TECHNIQUS + ": "
+ + curItem.getEvaluationItem().getTableDataTechniques()
+ + FileUtils.LINE_SEP + FileUtils.LINE_SEP);
+ String lineS = curItem.getLineStrMulti();
+ if (lineS != null && lineS.length() > 0) {
+ tmpSB.append(IProblemConst.TITLE_LINE + ": " + lineS
+ + FileUtils.LINE_SEP + FileUtils.LINE_SEP);
+ }
+ tmpSB.append(IProblemConst.TITLE_DESCRIPTION + ": "
+ + FileUtils.LINE_SEP + curItem.getDescription());
+
+ switch (curItem.getSeverity()) {
+ case IProblemItem.SEV_ERROR:
+ MessageDialog.openError(shell, IProblemConst.ESSENTIAL,
+ tmpSB.toString());
+ break;
+ case IProblemItem.SEV_WARNING:
+ MessageDialog.openWarning(shell, IProblemConst.WARNING,
+ tmpSB.toString());
+ break;
+ case IProblemItem.SEV_USER:
+ MessageDialog.openInformation(shell, IProblemConst.USER_CHECK,
+ tmpSB.toString());
+ break;
+ case IProblemItem.SEV_INFO:
+ MessageDialog.openInformation(shell, IProblemConst.INFO,
+ tmpSB.toString());
+ break;
+ }
+ }
+}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/CopyAction.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/CopyAction.java
new file mode 100644
index 0000000..fdd9471
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/CopyAction.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.visualization.internal.ui.report.action;
+
+import java.util.List;
+
+import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.actf.visualization.eval.problem.IProblemItemImage;
+import org.eclipse.actf.visualization.eval.problem.ReportUtil;
+import org.eclipse.actf.visualization.internal.ui.report.Messages;
+import org.eclipse.actf.visualization.internal.ui.report.table.ResultTableViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+public class CopyAction extends Action {
+
+ private TableViewer tableViewer;
+
+ public CopyAction(ResultTableViewer resultTableViewer) {
+ super(Messages.Copy);
+
+ tableViewer = resultTableViewer.getTableViewer();
+ tableViewer
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent arg0) {
+ @SuppressWarnings("rawtypes")
+ List tmpList = ((IStructuredSelection) arg0
+ .getSelection()).toList();
+ if (tmpList == null || tmpList.size() == 0) {
+ setIProblemItem(null);
+ } else {
+ try {
+ setIProblemItem((IProblemItem) tmpList.get(0));
+ } catch (Exception e) {
+ setIProblemItem(null);
+ }
+ }
+ }
+ });
+
+ this.setEnabled(false);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ public void run() {
+
+ @SuppressWarnings("unchecked")
+ List<IProblemItem> targetList = ((IStructuredSelection) tableViewer
+ .getSelection()).toList();
+
+ ReportUtil reportUtil = new ReportUtil();
+ StringBuffer tmpSB = new StringBuffer(reportUtil.getFirstLine()
+ + ReportUtil.LINE_SEP);
+
+ for (IProblemItem tmpItem : targetList) {
+ tmpSB.append(reportUtil.getCSV(tmpItem) + ReportUtil.LINE_SEP);
+ }
+
+ Clipboard clipboard = new Clipboard(tableViewer.getControl()
+ .getDisplay());
+ clipboard.setContents(new Object[] { tmpSB.toString() },
+ new Transfer[] { TextTransfer.getInstance() });
+
+ }
+
+ public void setIProblemItem(IProblemItem target) {
+ if (target == null) {
+ this.setEnabled(false);
+ } else {
+ if (target instanceof IProblemItemImage) {
+ // TODO CSV export function for lv
+ this.setEnabled(false);
+ } else {
+ this.setEnabled(true);
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/GuidelineSubMenu.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/GuidelineSubMenu.java
index 6f47c03..2329506 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/GuidelineSubMenu.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/GuidelineSubMenu.java
@@ -12,12 +12,10 @@
import java.util.Arrays;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
import org.eclipse.actf.visualization.eval.IGuidelineItem;
-import org.eclipse.actf.visualization.eval.guideline.GuidelineHolder;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.internal.ui.report.Messages;
import org.eclipse.actf.visualization.internal.ui.report.table.ResultTableViewer;
@@ -36,8 +34,6 @@
private Action _dummy;
- private GuidelineHolder _guidelineHolder = GuidelineHolder.getInstance();
-
public GuidelineSubMenu(ResultTableViewer resultTableViewer) {
super(Messages.ProblemTable_View_Guideline_16);
@@ -68,20 +64,19 @@
}
});
- for (Iterator<IProblemItem> i = target.iterator(); i.hasNext();) {
- IProblemItem tmpItem = i.next();
+ for (IProblemItem tmpItem : target) {
tmpSet.addAll(Arrays.asList(tmpItem.getEvaluationItem()
.getGuidelines()));
}
this.removeAll();
- for (Iterator<IGuidelineItem> i = tmpSet.iterator(); i.hasNext();) {
- IGuidelineItem tmpItem = i.next();
+ for (IGuidelineItem tmpItem : tmpSet) {
if (tmpItem.getUrl() != null && tmpItem.getUrl().length() != 0) {
// Lowvision-> show all
- if (_resultTableViewer.isShowAllGuidelineItems()
- || this._guidelineHolder.isMatchedInTopLevel(tmpItem)) {
+ if (// _resultTableViewer.isShowAllGuidelineItems()
+ // ||
+ tmpItem.isEnabled()) {
add(new ShowGuidelineAction(tmpItem));
}
}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowDescriptionAction.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowDescriptionAction.java
index 83b69b0..2b9b20e 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowDescriptionAction.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowDescriptionAction.java
@@ -14,14 +14,14 @@
import java.util.List;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
-import org.eclipse.actf.visualization.eval.problem.IProblemConst;
import org.eclipse.actf.visualization.internal.ui.report.Messages;
+import org.eclipse.actf.visualization.internal.ui.report.ReportMessageDialog;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Shell;
public class ShowDescriptionAction extends Action {
@@ -38,9 +38,9 @@
this.tableViewer = tableViewer;
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- @SuppressWarnings("unchecked")
- public void selectionChanged(SelectionChangedEvent arg0) {
- List tmpList = ((IStructuredSelection) arg0.getSelection()).toList();
+ public void selectionChanged(SelectionChangedEvent arg0) {
+ @SuppressWarnings("rawtypes")
+ List tmpList = ((IStructuredSelection) arg0.getSelection()).toList();
if(tmpList==null||tmpList.size()>1||tmpList.size()==0){
setIProblemItem(null);
}else{
@@ -61,7 +61,8 @@
* @see org.eclipse.jface.action.Action#run()
*/
public void run() {
- MessageDialog.openInformation(tableViewer.getControl().getShell(),IProblemConst.TITLE_DESCRIPTION,curItem.getDescription());
+ Shell shell = tableViewer.getControl().getShell();
+ ReportMessageDialog.openReportMEssageDialog(shell, curItem);
}
public void setIProblemItem(IProblemItem target){
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowTechniquesAction.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowTechniquesAction.java
new file mode 100644
index 0000000..87a8922
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/ShowTechniquesAction.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.visualization.internal.ui.report.action;
+
+import org.eclipse.actf.visualization.eval.ITechniquesItem;
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.program.Program;
+
+
+
+public class ShowTechniquesAction extends Action {
+
+ private ITechniquesItem targetItem;
+
+ /**
+ *
+ */
+ public ShowTechniquesAction(ITechniquesItem targetItem) {
+ super(targetItem.getGuidelineName() + ": " + targetItem.getId()); //$NON-NLS-1$
+ this.targetItem = targetItem;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ public void run() {
+
+ // launch default web browser
+ Program program = Program.findProgram(".html"); //$NON-NLS-1$
+ if (null != program) {
+ program.execute(targetItem.getUrl());
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/SrcHighlightAction.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/SrcHighlightAction.java
index 4198005..f5fa990 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/SrcHighlightAction.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/SrcHighlightAction.java
@@ -12,7 +12,6 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.actf.visualization.eval.problem.HighlightTargetSourceInfo;
@@ -24,48 +23,49 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
-
-
public class SrcHighlightAction extends Action {
- private ResultTableViewer _resultTableViewer;
-
- private TableViewer _tableView;
+ private ResultTableViewer _resultTableViewer;
- private SrcViewerForPT _srcViewer;
+ private TableViewer _tableView;
- public SrcHighlightAction(ResultTableViewer resultTableViewer) {
- super(Messages.ProblemTable_5);
- this._resultTableViewer = resultTableViewer;
- this._tableView = resultTableViewer.getTableViewer();
- this._srcViewer = SrcViewerForPT.getInstance();
- }
+ private SrcViewerForPT _srcViewer;
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.action.Action#run()
- */
- @SuppressWarnings("unchecked")
+ public SrcHighlightAction(ResultTableViewer resultTableViewer) {
+ super(Messages.ProblemTable_5);
+ this._resultTableViewer = resultTableViewer;
+ this._tableView = resultTableViewer.getTableViewer();
+ this._srcViewer = SrcViewerForPT.getInstance();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.action.Action#run()
+ */
public void run() {
- if (_srcViewer != null) {
+ if (_srcViewer != null) {
- _srcViewer.openSrcViewer();
+ _srcViewer.openSrcViewer();
- List targetList = ((IStructuredSelection) _tableView.getSelection()).toList();
- ArrayList<HighlightTargetSourceInfo> srcLineArray = new ArrayList<HighlightTargetSourceInfo>();
+ @SuppressWarnings("unchecked")
+ List<IProblemItem> targetList = ((IStructuredSelection) _tableView
+ .getSelection()).toList();
+ ArrayList<HighlightTargetSourceInfo> srcLineArray = new ArrayList<HighlightTargetSourceInfo>();
- for (Iterator i = targetList.iterator(); i.hasNext();) {
- IProblemItem tmpItem = (IProblemItem) i.next();
- srcLineArray.addAll(Arrays.asList(tmpItem.getHighlightTargetSoruceInfo()));
- }
+ for (IProblemItem tmpItem : targetList) {
+ srcLineArray.addAll(Arrays.asList(tmpItem
+ .getHighlightTargetSoruceInfo()));
+ }
- HighlightTargetSourceInfo[] target = new HighlightTargetSourceInfo[srcLineArray.size()];
- srcLineArray.toArray(target);
- _srcViewer.highlightSrcViewer(target, _resultTableViewer.getCurrentSoruceFile());
+ HighlightTargetSourceInfo[] target = new HighlightTargetSourceInfo[srcLineArray
+ .size()];
+ srcLineArray.toArray(target);
+ _srcViewer.highlightSrcViewer(target,
+ _resultTableViewer.getCurrentSoruceFile());
- }
- }
+ }
+ }
}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/TechniquesSubMenu.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/TechniquesSubMenu.java
new file mode 100644
index 0000000..6994242
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/action/TechniquesSubMenu.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.visualization.internal.ui.report.action;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TreeSet;
+
+import org.eclipse.actf.visualization.eval.IEvaluationItem;
+import org.eclipse.actf.visualization.eval.IGuidelineItem;
+import org.eclipse.actf.visualization.eval.ITechniquesItem;
+import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.actf.visualization.internal.ui.report.Messages;
+import org.eclipse.actf.visualization.internal.ui.report.table.ResultTableViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+
+public class TechniquesSubMenu extends MenuManager {
+
+ private ResultTableViewer _resultTableViewer;
+
+ private TableViewer _tableViewer;
+
+ private Action _dummy;
+
+ public TechniquesSubMenu(ResultTableViewer resultTableViewer) {
+ super(Messages.ViewTechniques);
+
+ this._resultTableViewer = resultTableViewer;
+ this._tableViewer = resultTableViewer.getTableViewer();
+
+ this._tableViewer
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ @SuppressWarnings("unchecked")
+ public void selectionChanged(SelectionChangedEvent arg0) {
+ List<IProblemItem> tmpList = ((IStructuredSelection) arg0
+ .getSelection()).toList();
+ setTechniques(tmpList);
+ }
+ });
+
+ this._dummy = new Action(Messages.NoTechniques) {
+ };
+ this._dummy.setEnabled(false);
+ add(this._dummy);
+ }
+
+ public void setTechniques(List<IProblemItem> target) {
+ this.removeAll();
+
+ TreeSet<IEvaluationItem> tmpSet = new TreeSet<IEvaluationItem>(
+ new Comparator<IEvaluationItem>() {
+ public int compare(IEvaluationItem o1, IEvaluationItem o2) {
+ return o1.getId().compareTo(o2.getId());
+ }
+ });
+
+ for (Iterator<IProblemItem> i = target.iterator(); i.hasNext();) {
+ IProblemItem tmpItem = i.next();
+ tmpSet.add(tmpItem.getEvaluationItem());
+ }
+
+ TreeSet<ITechniquesItem> techSet = new TreeSet<ITechniquesItem>(
+ new Comparator<ITechniquesItem>() {
+ public int compare(ITechniquesItem o1, ITechniquesItem o2) {
+ int flag = o1.getGuidelineName().compareTo(
+ o2.getGuidelineName());
+ if (flag == 0) {
+ flag = o1.getId().compareTo(o2.getId());
+ }
+ return flag;
+ }
+ });
+
+ for (Iterator<IEvaluationItem> i = tmpSet.iterator(); i.hasNext();) {
+ IEvaluationItem eval = i.next();
+ IGuidelineItem[] guidelines = eval.getGuidelines();
+ ITechniquesItem[][] techs = eval.getTechniques();
+ for (int j = 0; j < guidelines.length; j++) {
+ // Lowvision-> show all
+ if (// _resultTableViewer.isShowAllGuidelineItems()
+ // ||
+ guidelines[j].isEnabled()) {
+ techSet.addAll(Arrays.asList(techs[j]));
+ }
+ }
+ }
+
+ for (Iterator<ITechniquesItem> i = techSet.iterator(); i.hasNext();) {
+ add(new ShowTechniquesAction(i.next()));
+ }
+
+ if (this.getItems().length == 0) {
+ this.add(this._dummy);
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/srcviewer/SrcViewerForPT.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/srcviewer/SrcViewerForPT.java
index c12f81e..00eaa48 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/srcviewer/SrcViewerForPT.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/srcviewer/SrcViewerForPT.java
@@ -12,7 +12,6 @@
import java.io.File;
-import org.eclipse.actf.visualization.eval.EvaluationUtil;
import org.eclipse.actf.visualization.eval.problem.HighlightTargetSourceInfo;
import org.eclipse.actf.visualization.internal.ui.report.Messages;
import org.eclipse.actf.visualization.internal.ui.report.ReportPlugin;
@@ -22,137 +21,142 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-
-
-
public class SrcViewerForPT {
- //TODO viewpart, SourceViewer
-
- private static SrcViewerForPT INSTANCE = null;
+ // TODO viewpart, SourceViewer
- private static SrcViewer _srcViewer;
+ private static SrcViewerForPT INSTANCE = null;
- private static Shell _srcViewerShell;
+ private static SrcViewer _srcViewer;
- private Shell _shell = null;
+ private static Shell _srcViewerShell;
- private boolean srcChanged;
-
- private File curTarget;
+ private Shell _shell = null;
- /**
- * @param pt
- * @param display
- */
- private SrcViewerForPT(Shell shell) {
- super();
- this._shell = shell;
- initSrcViewer();
- }
+ private boolean srcChanged;
- public static SrcViewerForPT initSrcViewerForPT(Shell parent) {
- if (INSTANCE != null) {
- // TODO close
- // INSTANCE.PARENT.removeShellListener();
- }
+ private File curTarget;
- INSTANCE = new SrcViewerForPT(parent);
- return (INSTANCE);
- }
+ /**
+ * @param pt
+ * @param display
+ */
+ private SrcViewerForPT(Shell shell) {
+ super();
+ this._shell = shell;
+ initSrcViewer();
+ }
- public static SrcViewerForPT getInstance() {
- return (INSTANCE);
- }
+ public static SrcViewerForPT initSrcViewerForPT(Shell parent) {
+ if (INSTANCE != null) {
+ // TODO close
+ // INSTANCE.PARENT.removeShellListener();
+ }
- private void initSrcViewer() {
- srcChanged = true;
+ INSTANCE = new SrcViewerForPT(parent);
+ return (INSTANCE);
+ }
- if (_shell != null) {
- _shell.addShellListener(new ShellAdapter() {
- public void shellClosed(ShellEvent arg0) {
- if (_srcViewerShell != null && !_srcViewerShell.isDisposed()) {
- _srcViewerShell.dispose();
- }
- }
- });
- }
- }
+ public static SrcViewerForPT getInstance() {
+ return (INSTANCE);
+ }
- public void openSrcViewer() {
- if (null == _srcViewerShell || _srcViewerShell.isDisposed()) {
- Display display = _shell.getDisplay();
- if (null == display) {
- display = Display.getDefault();
- }
- _srcViewerShell = new Shell(display);
- _srcViewerShell.setLayout(new FillLayout());
- _srcViewerShell.setImage(ReportPlugin.imageDescriptorFromPlugin(ReportPlugin.PLUGIN_ID, "icons/excla_squ.png").createImage()); //$NON-NLS-1$
- _srcViewerShell.setText(Messages.SrcViewerForPT_0);
- _srcViewer = new SrcViewer(_srcViewerShell);
- _srcViewerShell.setSize(600, 750);
- _srcViewerShell.setFocus();
- _srcViewerShell.open();
+ private void initSrcViewer() {
+ srcChanged = true;
- _srcViewerShell.addShellListener(new ShellAdapter() {
- public void shellClosed(ShellEvent arg0) {
- _srcViewer.closeSearchDlgShell();
- }
- });
+ if (_shell != null) {
+ _shell.addShellListener(new ShellAdapter() {
+ public void shellClosed(ShellEvent arg0) {
+ if (_srcViewerShell != null
+ && !_srcViewerShell.isDisposed()) {
+ _srcViewerShell.dispose();
+ }
+ }
+ });
+ }
+ }
- srcChanged = true;
+ public void openSrcViewer() {
+ if (null == _srcViewerShell || _srcViewerShell.isDisposed()) {
+ Display display = _shell.getDisplay();
+ if (null == display) {
+ display = Display.getDefault();
+ }
+ _srcViewerShell = new Shell(display);
+ _srcViewerShell.setLayout(new FillLayout());
+ _srcViewerShell.setImage(ReportPlugin
+ .imageDescriptorFromPlugin(ReportPlugin.PLUGIN_ID,
+ "icons/excla_squ.png").createImage()); //$NON-NLS-1$
+ _srcViewerShell.setText(Messages.SrcViewerForPT_0);
+ _srcViewer = new SrcViewer(_srcViewerShell);
+ _srcViewerShell.setSize(600, 750);
+ _srcViewerShell.setFocus();
+ _srcViewerShell.open();
- } else if (!_srcViewerShell.isDisposed()) {
- if (_srcViewerShell.getMinimized()) {
- _srcViewerShell.setMinimized(false);
- }
- _srcViewerShell.forceActive();
- }
- }
+ _srcViewerShell.addShellListener(new ShellAdapter() {
+ public void shellClosed(ShellEvent arg0) {
+ _srcViewer.closeSearchDlgShell();
+ }
+ });
- public void highlightSrcViewer(HighlightTargetSourceInfo[] sourceInfos, File target) {
- if (_srcViewerShell != null && !_srcViewerShell.isDisposed() && EvaluationUtil.isOriginalDOM()) {
+ srcChanged = true;
- if(curTarget!=target || srcChanged){
- srcChanged =true;
- updateSrcViewer(target);
- }
-
- //updateSrcViewer(currentLayout);
- _srcViewer.clearHighlight();
+ } else if (!_srcViewerShell.isDisposed()) {
+ if (_srcViewerShell.getMinimized()) {
+ _srcViewerShell.setMinimized(false);
+ }
+ _srcViewerShell.forceActive();
+ }
+ }
- for (int i = 0; i < sourceInfos.length; i++) {
- HighlightTargetSourceInfo curInfo = sourceInfos[i];
+ public void highlightSrcViewer(HighlightTargetSourceInfo[] sourceInfos,
+ File target) {
+ if (_srcViewerShell != null && !_srcViewerShell.isDisposed()) {
- if (curInfo.getStartColumn() < 0 || curInfo.getEndColumn() < 0) {
- _srcViewer.highlightLines(curInfo.getStartLine(),curInfo.getEndLine());
- } else {
- _srcViewer.highlight(curInfo.getStartLine(),curInfo.getStartColumn(),curInfo.getEndLine(),curInfo.getEndColumn());
- }
+ if (curTarget != target || srcChanged) {
+ srcChanged = true;
+ updateSrcViewer(target);
+ }
- }
- }
+ // updateSrcViewer(currentLayout);
+ _srcViewer.clearHighlight();
- }
+ for (int i = 0; i < sourceInfos.length; i++) {
+ HighlightTargetSourceInfo curInfo = sourceInfos[i];
- public void updateSrcViewer(File target) {
- if (_srcViewerShell != null && !_srcViewerShell.isDisposed() && srcChanged) {
- try {
- _srcViewer.openFile(target);
- curTarget = target;
- } catch (Exception e) {
- // e.printStackTrace();
- _srcViewer.setText(""); //$NON-NLS-1$
- }
- srcChanged = false;
- }
- }
+ if (curInfo.getStartColumn() < 0 || curInfo.getEndColumn() < 0) {
+ _srcViewer.highlightLines(curInfo.getStartLine(),
+ curInfo.getEndLine());
+ } else {
+ _srcViewer.highlight(curInfo.getStartLine(),
+ curInfo.getStartColumn(), curInfo.getEndLine(),
+ curInfo.getEndColumn());
+ }
- /**
- * @param srcChanged
- * The srcChanged to set.
- */
- public void setSrcChanged(boolean srcChanged) {
- this.srcChanged = srcChanged;
- }
+ }
+ }
+
+ }
+
+ public void updateSrcViewer(File target) {
+ if (_srcViewerShell != null && !_srcViewerShell.isDisposed()
+ && srcChanged) {
+ try {
+ _srcViewer.openFile(target);
+ curTarget = target;
+ } catch (Exception e) {
+ // e.printStackTrace();
+ _srcViewer.setText(""); //$NON-NLS-1$
+ }
+ srcChanged = false;
+ }
+ }
+
+ /**
+ * @param srcChanged
+ * The srcChanged to set.
+ */
+ public void setSrcChanged(boolean srcChanged) {
+ this.srcChanged = srcChanged;
+ }
}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/table/ResultTableViewer.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/table/ResultTableViewer.java
index e31b727..3f8e594 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/table/ResultTableViewer.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/internal/ui/report/table/ResultTableViewer.java
@@ -25,16 +25,21 @@
import org.eclipse.actf.visualization.eval.problem.HighlightTargetSourceInfo;
import org.eclipse.actf.visualization.eval.problem.IProblemConst;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.actf.visualization.internal.ui.report.ReportMessageDialog;
import org.eclipse.actf.visualization.internal.ui.report.action.ClearSelectionAction;
+import org.eclipse.actf.visualization.internal.ui.report.action.CopyAction;
import org.eclipse.actf.visualization.internal.ui.report.action.GuidelineSubMenu;
import org.eclipse.actf.visualization.internal.ui.report.action.ShowDescriptionAction;
import org.eclipse.actf.visualization.internal.ui.report.action.SrcHighlightAction;
+import org.eclipse.actf.visualization.internal.ui.report.action.TechniquesSubMenu;
import org.eclipse.actf.visualization.internal.ui.report.srcviewer.SrcViewerForPT;
import org.eclipse.actf.visualization.ui.IVisualizationView;
import org.eclipse.actf.visualization.ui.report.table.IResultTableSorter;
import org.eclipse.actf.visualization.ui.report.table.ResultTableSorter;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -45,6 +50,7 @@
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
@@ -87,9 +93,13 @@
private SrcHighlightAction srcHighlightAction;
private boolean isShowAllGuidelineItems = false;
+
+ private Shell shell;
public ResultTableViewer(Composite parent) {
+ shell = parent.getShell();
+
tableViewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION
| SWT.MULTI);
table = tableViewer.getTable();
@@ -109,25 +119,27 @@
MenuManager popupMenu = new MenuManager();
popupMenu.add(new ClearSelectionAction(tableViewer));
popupMenu.add(new GuidelineSubMenu(this));
- popupMenu.add(new ShowDescriptionAction(tableViewer));
+ popupMenu.add(new TechniquesSubMenu(this));
srcHighlightAction = new SrcHighlightAction(this);
srcHighlightAction.setEnabled(false);
popupMenu.add(srcHighlightAction);
+ popupMenu.add(new CopyAction(this));
+ popupMenu.add(new ShowDescriptionAction(tableViewer));
table.setMenu(popupMenu.createContextMenu(table));
guidelineHolder.addGuidelineSelectionChangedListener(this);
tableViewer
.addSelectionChangedListener(new ISelectionChangedListener() {
- @SuppressWarnings("unchecked")
public void selectionChanged(SelectionChangedEvent event) {
ISelection selection = event.getSelection();
if (srcViewerForPT != null
&& selection instanceof IStructuredSelection) {
ArrayList<HighlightTargetSourceInfo> srcLineArray = new ArrayList<HighlightTargetSourceInfo>();
- for (Iterator i = ((IStructuredSelection) selection)
+ for (@SuppressWarnings("unchecked")
+ Iterator<IProblemItem> i = ((IStructuredSelection) selection)
.iterator(); i.hasNext();) {
- IProblemItem tmpItem = (IProblemItem) i.next();
+ IProblemItem tmpItem = i.next();
srcLineArray.addAll(Arrays.asList(tmpItem
.getHighlightTargetSoruceInfo()));
}
@@ -140,7 +152,19 @@
}
}
});
-
+ tableViewer.addDoubleClickListener(new IDoubleClickListener() {
+ public void doubleClick(DoubleClickEvent event) {
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection) {
+ for (@SuppressWarnings("unchecked")
+ Iterator<IProblemItem> i = ((IStructuredSelection) selection)
+ .iterator(); i.hasNext();) {
+ IProblemItem tmpItem = i.next();
+ ReportMessageDialog.openReportMEssageDialog(shell, tmpItem);
+ }
+ }
+ }
+ });
}
public TableViewer getTableViewer() {
@@ -169,9 +193,9 @@
}
private void initColumns() {
- int columnSize = 3 + guidelineHolder.getGuidelineData().length
+ int columnSize = 4 + guidelineHolder.getGuidelineData().length
+ guidelineHolder.getMetricsNames().length;
- int lvColumn = 3 + 6 + guidelineHolder.getGuidelineData().length;
+ int lvColumn = 4 + 6 + guidelineHolder.getGuidelineData().length;
if (lvColumn > columnSize) {
columnSize = lvColumn;
@@ -199,7 +223,7 @@
columns[curPos].setWidth(25);
curPos++;
- String[] tmpSarray = guidelineHolder.getMetricsNames();
+ String[] tmpSarray = guidelineHolder.getLocalizedMetricsNames();
boolean[] enabledMetrics = guidelineHolder.getMatchedMetrics();
for (int i = 0; i < tmpSarray.length; i++) {
columns[curPos].setText(tmpSarray[i]);
@@ -221,7 +245,7 @@
* "icons/IconPink.gif").createImage()); break; default: }
*/
if (enabledMetrics[i]) {
- columns[curPos].setWidth(70);
+ columns[curPos].setWidth(55);
} else {
columns[curPos].setWidth(0);
columns[curPos].setResizable(false);
@@ -241,6 +265,10 @@
curPos++;
}
+ columns[curPos].setText(IProblemConst.TITLE_TECHNIQUS);
+ columns[curPos].setWidth(65);
+ curPos++;
+
columns[curPos].setText(IProblemConst.TITLE_LINE);
columns[curPos].setWidth(60);
curPos++;
@@ -273,18 +301,23 @@
IGuidelineData[] dataArray = guidelineHolder.getGuidelineData();
for (int i = 0; i < dataArray.length; i++) {
columns[curPos].setText(dataArray[i].getGuidelineName());
- columns[curPos].setWidth(70);
+ if (dataArray[i].isMatched()) {
+ columns[curPos].setWidth(70);
+ } else {
+ columns[curPos].setWidth(0);
+ columns[curPos].setResizable(false);
+ }
curPos++;
}
columns[curPos].setText(IProblemConst.TITLE_SEVERITY);
- columns[curPos].setWidth(60);
+ columns[curPos].setWidth(55);
curPos++;
columns[curPos].setText(IProblemConst.TITLE_FORECOLOR);
- columns[curPos].setWidth(100);
+ columns[curPos].setWidth(70);
curPos++;
columns[curPos].setText(IProblemConst.TITLE_BACKCOLOR);
- columns[curPos].setWidth(100);
+ columns[curPos].setWidth(70);
curPos++;
columns[curPos].setText(IProblemConst.TITLE_X);
columns[curPos].setWidth(50);
@@ -293,7 +326,11 @@
columns[curPos].setWidth(50);
curPos++;
columns[curPos].setText(IProblemConst.TITLE_AREA);
- columns[curPos].setWidth(70);
+ columns[curPos].setWidth(50);
+ curPos++;
+
+ columns[curPos].setText(IProblemConst.TITLE_TECHNIQUS);
+ columns[curPos].setWidth(60);
curPos++;
columns[curPos].setText(IProblemConst.TITLE_DESCRIPTION);
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProvider.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProvider.java
index 5655123..5f42cc8 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProvider.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProvider.java
@@ -11,6 +11,7 @@
package org.eclipse.actf.visualization.ui.report.table;
import org.eclipse.actf.visualization.eval.EvaluationUtil;
+import org.eclipse.actf.visualization.eval.IEvaluationItem;
import org.eclipse.actf.visualization.eval.guideline.GuidelineHolder;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.internal.ui.report.ReportPlugin;
@@ -32,19 +33,23 @@
private int guidelineFinPos = metricsFinPos
+ guidelineHolder.getGuidelineData().length;
+ private static Image HIGHLIGHT_IMAGE = ReportPlugin
+ .imageDescriptorFromPlugin(EvaluationUtil.PLUGIN_ID,
+ "icons/star.gif") //$NON-NLS-1$
+ .createImage();
+
/*
* (non-Javadoc)
*
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
- * int)
+ * @see
+ * org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang
+ * .Object, int)
*/
public Image getColumnImage(Object arg0, int arg1) {
IProblemItem tmpItem = (IProblemItem) arg0;
if (arg1 == 0) {
if (tmpItem.isCanHighlight()) {
- return (ReportPlugin.imageDescriptorFromPlugin(
- EvaluationUtil.PLUGIN_ID, "icons/star.gif") //$NON-NLS-1$
- .createImage());
+ return (HIGHLIGHT_IMAGE);
}
} else if (arg1 < metricsFinPos) {
return (tmpItem.getEvaluationItem().getMetricsIcons()[arg1 - 1]);
@@ -55,28 +60,32 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
- * int)
+ * @see
+ * org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang
+ * .Object, int)
*/
public String getColumnText(Object arg0, int arg1) {
IProblemItem tmpItem = (IProblemItem) arg0;
+ IEvaluationItem ei = tmpItem.getEvaluationItem();
if (arg1 == 0) {
} else if (arg1 < metricsFinPos) {
- return (tmpItem.getEvaluationItem().getTableDataMetrics()[arg1 - 1]);
+ return (ei.getTableDataMetrics()[arg1 - 1]);
} else if (arg1 < guidelineFinPos) {
- return (tmpItem.getEvaluationItem().getTableDataGuideline()[arg1
- - metricsFinPos]);
+ return (ei.getTableDataGuideline()[arg1 - metricsFinPos]);
} else {
- if (arg1 - guidelineFinPos == 0) {
+ switch (arg1 - guidelineFinPos) {
+ case 0:
+ return ei.getTableDataTechniques(); // techniques
+ case 1:
return (tmpItem.getLineStrMulti());
- } else {
+ case 2:
return (tmpItem.getDescription());
+ default:
}
}
return ""; //$NON-NLS-1$
}
-
}
diff --git a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProviderLV.java b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProviderLV.java
index 76c7e93..145902e 100644
--- a/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProviderLV.java
+++ b/plugins/org.eclipse.actf.visualization.ui.report/src/org/eclipse/actf/visualization/ui/report/table/ResultTableLabelProviderLV.java
@@ -39,8 +39,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
- * int)
+ * @see
+ * org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang
+ * .Object, int)
*/
public Image getColumnImage(Object arg0, int arg1) {
IProblemItemImage tmpItem = (IProblemItemImage) arg0;
@@ -53,20 +54,28 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
- * int)
+ * @see
+ * org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang
+ * .Object, int)
*/
public String getColumnText(Object arg0, int arg1) {
IProblemItemImage tmpItem = (IProblemItemImage) arg0;
if (arg1 == 0) {
- return(tmpItem.getIconTooltip());
+ return (tmpItem.getIconTooltip());
} else if (arg1 < guidelineFinPos) {
- return (tmpItem.getEvaluationItem().getTableDataGuideline()[arg1 - 1]);
+ try {
+ return (tmpItem.getEvaluationItem().getTableDataGuideline()[arg1 - 1]);
+ } catch (Exception e) {
+ return ("");
+ }
} else {
switch (arg1 - guidelineFinPos) {
case 0:
- return (Integer.toString(tmpItem.getSeverityLV()));
+ if(tmpItem.getSeverityLV()>0){
+ return (Integer.toString(tmpItem.getSeverityLV()));
+ }
+ return("-");
case 1:
return (tmpItem.getForeground());
case 2:
@@ -78,6 +87,8 @@
case 5:
return (Integer.toString(tmpItem.getArea()));
case 6:
+ return (tmpItem.getEvaluationItem().getTableDataTechniques());// techniques
+ case 7:
return (tmpItem.getDescription());
default:
return (""); //$NON-NLS-1$