[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$