diff --git a/.gitignore b/.gitignore index 1de5659..be874a5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -target \ No newline at end of file +target +.settings +.project +.classpath \ No newline at end of file diff --git a/accessodf-addon/pom.xml b/accessodf-addon/pom.xml index 475f4de..628638b 100644 --- a/accessodf-addon/pom.xml +++ b/accessodf-addon/pom.xml @@ -6,11 +6,10 @@ be.docarch accessodf - 0.1.0-SNAPSHOT + 0.2.2-SNAPSHOT ../ accessodf-addon - 0.1.0-SNAPSHOT oxt accessodf :: Addon diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/AccessODFAddOn.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/AccessODFAddOn.java index bad0354..462f58a 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/AccessODFAddOn.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/AccessODFAddOn.java @@ -26,7 +26,11 @@ import java.util.logging.FileHandler; import java.util.logging.SimpleFormatter; +import com.sun.star.beans.Property; import com.sun.star.beans.XPropertySet; +import com.sun.star.container.XChild; +import com.sun.star.container.XEnumeration; +import com.sun.star.container.XEnumerationAccess; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.XComponentContext; import com.sun.star.frame.XModel; @@ -38,6 +42,7 @@ import com.sun.star.lang.XSingleComponentFactory; import com.sun.star.registry.XRegistryKey; +import com.sun.star.ui.XUIElement; import com.sun.star.lib.uno.helper.WeakBase; import com.sun.star.lib.uno.helper.Factory; @@ -63,6 +68,10 @@ public final class AccessODFAddOn extends WeakBase private File logFile = null; private int counter = 0; + /** + * ProtocolHandler + * @param context + */ public AccessODFAddOn( XComponentContext context ) { m_xContext = context; diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/ChecksFailedException.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/ChecksFailedException.java new file mode 100644 index 0000000..c69a044 --- /dev/null +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/ChecksFailedException.java @@ -0,0 +1,25 @@ +package be.docarch.accessodf.ooo; + +import java.util.List; + +public class ChecksFailedException extends Exception { + private static final long serialVersionUID = 7337389404514647563L; + private List exceptions; + + public ChecksFailedException(List exceptions) { + this.exceptions = exceptions; + } + + @Override + public String getMessage() { + StringBuilder sb = new StringBuilder(); + String delim = ""; + for (Exception exception : exceptions) { + String message = exception.getMessage(); + sb.append(message); + sb.append(delim); + delim = "\n"; + } + return sb.toString(); + } +} diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/IssueManager.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/IssueManager.java index 7d6e3ab..22b2c6d 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/IssueManager.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/IssueManager.java @@ -124,18 +124,14 @@ public IssueManager(Document document, } - public void refresh() throws IllegalArgumentException, - RepositoryException, - UnknownPropertyException, - NoSuchElementException, - WrappedTargetException, - PropertyVetoException, - ParseException, - IOException, - com.sun.star.uno.Exception { + public void refresh() throws IOException, + com.sun.star.uno.Exception, + ChecksFailedException { settings.loadData(); File odtFile = null; + + ArrayList exceptions = new ArrayList(); for (Checker checker : checkers.list()) { if (checker instanceof RemoteRunnableChecker) { @@ -150,20 +146,32 @@ public void refresh() throws IllegalArgumentException, } RemoteRunnableChecker remoteChecker = (RemoteRunnableChecker)checker; remoteChecker.setOdtFile(odtFile); - if (remoteChecker.run()) { - document.removeAccessibilityData(remoteChecker.getIdentifier()); - Report report = remoteChecker.getAccessibilityReport(); - if (report != null) { - document.importAccessibilityData(report.getFile(), remoteChecker.getIdentifier(), report.getName()); - } + + try { + remoteChecker.run(); + document.removeAccessibilityData(remoteChecker.getIdentifier()); + Report report = remoteChecker.getAccessibilityReport(); + if (report != null) { + document.importAccessibilityData(report.getFile(), remoteChecker.getIdentifier(), report.getName()); + } + } catch (Exception e) { + exceptions.add(e); } } else if (checker instanceof RunnableChecker) { - ((RunnableChecker)checker).run(); + try { + ((RunnableChecker)checker).run(); + } catch (Exception e) { + exceptions.add(e); + } } } // Load accessibility issues from metadata loadMetadata(); + + if (!exceptions.isEmpty()) { + throw new ChecksFailedException(exceptions); + } } public void clear() throws IllegalArgumentException, diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/MainChecker.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/MainChecker.java index 4cab5e2..74df260 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/MainChecker.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/MainChecker.java @@ -40,6 +40,7 @@ import com.sun.star.container.XEnumerationAccess; import com.sun.star.container.XEnumeration; import com.sun.star.container.XIndexAccess; +import com.sun.star.container.XNameContainer; import com.sun.star.container.XNamed; import com.sun.star.graphic.XGraphic; import com.sun.star.text.XTextFramesSupplier; @@ -67,6 +68,8 @@ import com.sun.star.rdf.XNamedGraph; import com.sun.star.drawing.XDrawPage; import com.sun.star.drawing.XDrawPageSupplier; +import com.sun.star.form.XForm; +import com.sun.star.form.XFormComponent; import com.sun.star.form.XFormsSupplier2; import com.sun.star.linguistic2.XLanguageGuessing; @@ -171,7 +174,7 @@ public String toString() { return getIdentifier(); } - public boolean run(){ + public void run() throws Exception{ //document.removeAccessibilityData(getIdentifier()); @@ -179,53 +182,43 @@ public boolean run(){ reportName = MainChecker.class.getCanonicalName() + "/" + new SimpleDateFormat("yyyy-MM-dd'T'HH.mm.ss").format(new Date()) + ".rdf"; - try { - - settings.loadData(); - daisyChecks = settings.daisyChecks(); - detectedIssues.clear(); - detectedChecks.clear(); - textMetaMap.clear(); + settings.loadData(); + daisyChecks = settings.daisyChecks(); + detectedIssues.clear(); + detectedChecks.clear(); + textMetaMap.clear(); - // Traverse document - traverseDocument(); + // Traverse document + traverseDocument(); - // Save detected issues in RDF + // Save detected issues in RDF - XURI[] types = new XURI[]{ URI.create(document.xContext, getIdentifier()) }; - XURI graphURI = null; - try { - graphURI = document.xDMA.addMetadataFile(document.metaFolder + reportName, types); - } catch (ElementExistException e) { - graphURI = URI.create(document.xContext, document.metaFolderURI.getStringValue() + reportName); - } + XURI[] types = new XURI[]{ URI.create(document.xContext, getIdentifier()) }; + XURI graphURI = null; + try { + graphURI = document.xDMA.addMetadataFile(document.metaFolder + reportName, types); + } catch (ElementExistException e) { + graphURI = URI.create(document.xContext, document.metaFolderURI.getStringValue() + reportName); + } - XNamedGraph graph = document.xRepository.getGraph(graphURI); - Assertions assertions = new Assertions(graph, document); - if (detectedIssues.isEmpty()) { - // Create dummy assertion to indicate that the document is validated - assertions.create(new Issue(null, dummyCheck, this, date)).write(); - } - for (Issue i : detectedIssues) { - if (detectedChecks.get(i.getCheck()) <= 10) { - assertions.create(i).write(); - } + XNamedGraph graph = document.xRepository.getGraph(graphURI); + Assertions assertions = new Assertions(graph, document); + if (detectedIssues.isEmpty()) { + // Create dummy assertion to indicate that the document is validated + assertions.create(new Issue(null, dummyCheck, this, date)).write(); + } + for (Issue i : detectedIssues) { + if (detectedChecks.get(i.getCheck()) <= 10) { + assertions.create(i).write(); } - for (Check c : detectedChecks.keySet()) { - if (detectedChecks.get(c) > 10) { - assertions.create(new Issue(null, c, this, date, detectedChecks.get(c))).write(); - } + } + for (Check c : detectedChecks.keySet()) { + if (detectedChecks.get(c) > 10) { + assertions.create(new Issue(null, c, this, date, detectedChecks.get(c))).write(); } - - document.setModified(); - - return true; - - } catch (Exception e) { - logger.log(Level.SEVERE, null, e); } - return false; + document.setModified(); } private void traverseDocument() throws IllegalArgumentException, @@ -296,7 +289,7 @@ private void traverseDocument() throws IllegalArgumentException, if (daisyChecks) { if (document.docProperties.getTitle().length() == 0) { metadata.add(DaisyCheck.ID.A_EmptyTitleField.name()); } } - if (xSuppForms.hasForms()) { metadata.add(GeneralCheck.ID.A_HasForms.name()); } + if (xSuppForms.hasForms() && xSuppForms.getForms().getElementNames().length > 0) { metadata.add(GeneralCheck.ID.A_HasForms.name()); } if (numberOfTitles == 0) { metadata.add(GeneralCheck.ID.A_NoTitle.name()); } if (numberOfHeadings == 0) { metadata.add(GeneralCheck.ID.A_NoHeadings.name()); } if (metadata.size() > 0) { @@ -978,6 +971,9 @@ private void traverseGraphicObjects(XIndexAccess graphicObjects) String url = null; String fileExtension = null; String mimeType = null; + XPropertySet xGraphicDescriptor = null; + boolean linked = false; + boolean animated = false; Collection graphicMetadata = new ArrayList(); @@ -985,10 +981,14 @@ private void traverseGraphicObjects(XIndexAccess graphicObjects) graphicObject = graphicObjects.getByIndex(i); properties = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, graphicObject); + graphic = (XGraphic) AnyConverter.toObject(XGraphic.class, properties.getPropertyValue("Graphic")); + xGraphicDescriptor = UnoRuntime.queryInterface(XPropertySet.class, graphic); title = AnyConverter.toString(properties.getPropertyValue("Title")); description = AnyConverter.toString(properties.getPropertyValue("Description")); - url = AnyConverter.toString(properties.getPropertyValue("GraphicURL")); + linked = AnyConverter.toBoolean(xGraphicDescriptor.getPropertyValue("Linked")); + url = AnyConverter.toString(xGraphicDescriptor.getPropertyValue("OriginURL")); + animated = AnyConverter.toBoolean(xGraphicDescriptor.getPropertyValue("Animated")); TextContentAnchorType anchorType = (TextContentAnchorType)AnyConverter.toObject( TextContentAnchorType.class, properties.getPropertyValue("AnchorType")); @@ -998,12 +998,10 @@ private void traverseGraphicObjects(XIndexAccess graphicObjects) if (title.length() == 0) { graphicMetadata.add(GeneralCheck.ID.A_ImageWithoutAlt.name()); } - if (url.startsWith("vnd.sun.star.GraphicObject:")) { + + if (!linked) { if (daisyChecks) { - graphic = (XGraphic)AnyConverter.toObject( - XGraphic.class, properties.getPropertyValue("Graphic")); - mediaProperties = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, graphic); - mimeType = AnyConverter.toString(mediaProperties.getPropertyValue("MimeType")); + mimeType = AnyConverter.toString(xGraphicDescriptor.getPropertyValue("MimeType")); if (!mimeType.equals("image/jpeg") && !mimeType.equals("image/png") && !mimeType.equals("image/x-vclgraphic")) { diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/UnoAwtUtils.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/UnoAwtUtils.java index c8b24e6..a921a93 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/UnoAwtUtils.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/UnoAwtUtils.java @@ -20,6 +20,7 @@ package be.docarch.accessodf.ooo; import com.sun.star.awt.MessageBoxButtons; +import com.sun.star.awt.MessageBoxType; import com.sun.star.awt.Rectangle; import com.sun.star.awt.XMessageBox; import com.sun.star.awt.XMessageBoxFactory; @@ -103,7 +104,7 @@ public static String showSaveAsDialog(String filename, String filterName, String return sStorePath; } - public static short showMessageBox(XWindowPeer parentWindowPeer, String messageBoxType, int messageBoxButtons, String messageBoxTitle, String message) { + public static short showMessageBox(XWindowPeer parentWindowPeer, MessageBoxType messageBoxType, int messageBoxButtons, String messageBoxTitle, String message) { if (parentWindowPeer == null || messageBoxType == null || messageBoxTitle == null || message == null) { return 0; } @@ -111,9 +112,7 @@ public static short showMessageBox(XWindowPeer parentWindowPeer, String messageB // Initialize the message box factory XMessageBoxFactory messageBoxFactory = (XMessageBoxFactory) UnoRuntime.queryInterface(XMessageBoxFactory.class, parentWindowPeer.getToolkit()); - Rectangle messageBoxRectangle = new Rectangle(); - - XMessageBox box = messageBoxFactory.createMessageBox(parentWindowPeer, messageBoxRectangle, messageBoxType, messageBoxButtons, messageBoxTitle, message); + XMessageBox box = messageBoxFactory.createMessageBox(parentWindowPeer, messageBoxType, messageBoxButtons, messageBoxTitle, message); return box.execute(); } @@ -122,7 +121,7 @@ public static short showInfoMessageBox(XWindowPeer parentWindowPeer, String mess return 0; } - return showMessageBox(parentWindowPeer, "infobox", MessageBoxButtons.BUTTONS_OK, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.INFOBOX, MessageBoxButtons.BUTTONS_OK, messageBoxTitle, message); } public static short showErrorMessageBox(XWindowPeer parentWindowPeer, String messageBoxTitle, String message) { @@ -130,7 +129,7 @@ public static short showErrorMessageBox(XWindowPeer parentWindowPeer, String mes return 0; } - return showMessageBox(parentWindowPeer, "errorbox", MessageBoxButtons.BUTTONS_OK, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.ERRORBOX, MessageBoxButtons.BUTTONS_OK, messageBoxTitle, message); } public static short showYesNoWarningMessageBox(XWindowPeer parentWindowPeer, String messageBoxTitle, String message) { @@ -138,7 +137,7 @@ public static short showYesNoWarningMessageBox(XWindowPeer parentWindowPeer, Str return 0; } - return showMessageBox(parentWindowPeer, "warningbox", MessageBoxButtons.BUTTONS_YES_NO + MessageBoxButtons.DEFAULT_BUTTON_NO, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.WARNINGBOX, MessageBoxButtons.BUTTONS_YES_NO + MessageBoxButtons.DEFAULT_BUTTON_NO, messageBoxTitle, message); } public static short showOkCancelWarningMessageBox(XWindowPeer parentWindowPeer, String messageBoxTitle, String message) { @@ -146,7 +145,7 @@ public static short showOkCancelWarningMessageBox(XWindowPeer parentWindowPeer, return 0; } - return showMessageBox(parentWindowPeer, "warningbox", MessageBoxButtons.BUTTONS_OK_CANCEL + MessageBoxButtons.DEFAULT_BUTTON_OK, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.WARNINGBOX, MessageBoxButtons.BUTTONS_OK_CANCEL + MessageBoxButtons.DEFAULT_BUTTON_OK, messageBoxTitle, message); } public static short showQuestionMessageBox(XWindowPeer parentWindowPeer, String messageBoxTitle, String message) { @@ -154,7 +153,7 @@ public static short showQuestionMessageBox(XWindowPeer parentWindowPeer, String return 0; } - return showMessageBox(parentWindowPeer, "querybox", MessageBoxButtons.BUTTONS_YES_NO_CANCEL + MessageBoxButtons.DEFAULT_BUTTON_YES, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.QUERYBOX, MessageBoxButtons.BUTTONS_YES_NO_CANCEL + MessageBoxButtons.DEFAULT_BUTTON_YES, messageBoxTitle, message); } public static short showAbortRetryIgnoreErrorMessageBox(XWindowPeer parentWindowPeer, String messageBoxTitle, String message) { @@ -162,7 +161,7 @@ public static short showAbortRetryIgnoreErrorMessageBox(XWindowPeer parentWindow return 0; } - return showMessageBox(parentWindowPeer, "errorbox", MessageBoxButtons.BUTTONS_ABORT_IGNORE_RETRY + MessageBoxButtons.DEFAULT_BUTTON_RETRY, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.ERRORBOX, MessageBoxButtons.BUTTONS_ABORT_IGNORE_RETRY + MessageBoxButtons.DEFAULT_BUTTON_RETRY, messageBoxTitle, message); } public static short showRetryCancelErrorMessageBox(XWindowPeer parentWindowPeer, String messageBoxTitle, String message) { @@ -170,6 +169,6 @@ public static short showRetryCancelErrorMessageBox(XWindowPeer parentWindowPeer, return 0; } - return showMessageBox(parentWindowPeer, "errorbox", MessageBoxButtons.BUTTONS_RETRY_CANCEL + MessageBoxButtons.DEFAULT_BUTTON_CANCEL, messageBoxTitle, message); + return showMessageBox(parentWindowPeer, MessageBoxType.ERRORBOX, MessageBoxButtons.BUTTONS_RETRY_CANCEL + MessageBoxButtons.DEFAULT_BUTTON_CANCEL, messageBoxTitle, message); } } diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/AccessibilityPanel.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/AccessibilityPanel.java index 1b990e0..bc9513d 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/AccessibilityPanel.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/AccessibilityPanel.java @@ -34,7 +34,6 @@ import java.net.URLDecoder; import java.io.File; import java.io.FileFilter; - import com.sun.star.uno.XComponentContext; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.AnyConverter; @@ -71,6 +70,8 @@ import com.sun.star.awt.tree.XTreeControl; import com.sun.star.awt.tree.XMutableTreeDataModel; import com.sun.star.awt.tree.XMutableTreeNode; +import com.sun.star.ui.LayoutSize; +import com.sun.star.ui.XSidebarPanel; import com.sun.star.ui.XToolPanel; import com.sun.star.deployment.PackageInformationProvider; import com.sun.star.deployment.XPackageInformationProvider; @@ -101,6 +102,7 @@ public class AccessibilityPanel extends ComponentBase XItemListener, XActionListener, XWindowListener, + XSidebarPanel, XAdjustmentListener, XSelectionChangeListener { @@ -231,6 +233,7 @@ public AccessibilityPanel(XComponentContext xContext, window = (XWindow)UnoRuntime.queryInterface(XWindow.class, windowPeer); if (window != null) { + window.setVisible(true); window.setPosSize(0, 0, panelAnchorSize.Width, panelAnchorSize.Height, PosSize.POSSIZE); @@ -589,21 +592,16 @@ public boolean accept(File file) { logger.exiting("AccessibilityPanel", "initialize"); } - private void refresh() throws IllegalArgumentException, - ElementExistException, - RepositoryException, - UnknownPropertyException, - NoSuchElementException, - WrappedTargetException, - PropertyVetoException, - ExpandVetoException, - java.text.ParseException, - java.io.IOException, + private void refresh() throws java.io.IOException, com.sun.star.uno.Exception { logger.entering("AccessibilityPanel", "refresh"); - manager.refresh(); + try { + manager.refresh(); + } catch (ChecksFailedException e) { + handleUnexpectedException(e); + } focusedIssue = null; Issue oldIssue = manager.selectedIssue(); @@ -1377,7 +1375,7 @@ private void setWindowPosSize(XWindow window, private void handleUnexpectedException(Exception ex) { logger.log(Level.SEVERE, null, ex); - UnoAwtUtils.showErrorMessageBox(docWindowPeer, "Unexpected exception","Unexpected exception"); + UnoAwtUtils.showErrorMessageBox(docWindowPeer, "Unexpected exception","Unexpected exception: " + ex.getMessage()); } @@ -1421,4 +1419,15 @@ private static String unoURLtoURL(String unoURL) { return null; } } + + @Override + public LayoutSize getHeightForWidth (final int nWidth) + { + return new LayoutSize(100, 1000, 500); // min, max, preferred + } + + @Override + public int getMinimalWidth() { + return 300; + } } diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/PanelUIElement.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/PanelUIElement.java index f4b5fb1..47d0936 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/PanelUIElement.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/PanelUIElement.java @@ -21,44 +21,36 @@ import java.util.logging.Logger; -import com.sun.star.uno.XComponentContext; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.awt.XWindow; import com.sun.star.frame.XFrame; -import com.sun.star.lang.XComponent; import com.sun.star.ui.XUIElement; import com.sun.star.ui.XToolPanel; import com.sun.star.ui.UIElementType; -import com.sun.star.lib.uno.helper.ComponentBase; import com.sun.star.lang.DisposedException; import be.docarch.accessodf.Constants; -public class PanelUIElement extends ComponentBase - implements XUIElement { +public class PanelUIElement implements XUIElement { private final String m_sResourceURL; private XToolPanel m_xToolPanel; + private XFrame m_xFrame; private static final Logger logger = Logger.getLogger(Constants.LOGGER_NAME); - public PanelUIElement(XComponentContext context, - XWindow i_rParentWindow, - String i_rResourceURL) { + public PanelUIElement(String i_rResourceURL, + XFrame xFrame, XToolPanel toolPanel) { logger.entering("PanelUIElement", ""); + m_xFrame = xFrame; + m_xToolPanel = toolPanel; m_sResourceURL = i_rResourceURL; - m_xToolPanel = new AccessibilityPanel(context, i_rParentWindow); - } - // XUIElement +// XUIElement public XFrame getFrame() { - - // TODO - return null; + return m_xFrame; } public String getResourceURL() { @@ -79,11 +71,6 @@ public Object getRealInterface() { return m_xToolPanel; } - public void disposing() { - - XComponent xPanelComponent = (XComponent)UnoRuntime.queryInterface(XComponent.class, m_xToolPanel); - xPanelComponent.dispose(); - } } diff --git a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/ToolPanelFactory.java b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/ToolPanelFactory.java index 2437c3f..2a063f4 100644 --- a/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/ToolPanelFactory.java +++ b/accessodf-addon/src/main/java/be/docarch/accessodf/ooo/toolpanel/ToolPanelFactory.java @@ -40,6 +40,7 @@ import com.sun.star.registry.XRegistryKey; import com.sun.star.container.NoSuchElementException; +import com.sun.star.frame.XFrame; import com.sun.star.lang.IllegalArgumentException; import be.docarch.accessodf.Constants; @@ -88,25 +89,30 @@ public XUIElement createUIElement(String i_rResourceURL, logger.entering("_ToolPanelFactory", "createUIElement"); - if (!i_rResourceURL.startsWith("private:resource/toolpanel/be.docarch.accessodf.ooo.toolpanel")) { - throw new NoSuchElementException(i_rResourceURL, this); + if (!i_rResourceURL.startsWith("private:resource/toolpanel/AccessODFPanelFactory/be.docarch.accessodf.ooo.toolpanel")) { + logger.severe("got wrong resource url: " + i_rResourceURL); + throw new NoSuchElementException(i_rResourceURL, this); } // retrieve the parent window XWindow xParentWindow = null; + XFrame xFrame = null; + for (int i=0; i ~Accessibility Evaluation… - ~Accesibilidad… - ~Toegankelijkheid… - ~Accessibilité… - ~Προσβασιμότητα… - ~Barrierefreiheit… + ~Accesibilidad… + ~Toegankelijkheid… + ~Accessibilité… + ~Προσβασιμότητα… + ~Barrierefreiheit… diff --git a/accessodf-addon/src/main/oxt/META-INF/manifest.xml b/accessodf-addon/src/main/oxt/META-INF/manifest.xml index fe9e76d..91448a0 100644 --- a/accessodf-addon/src/main/oxt/META-INF/manifest.xml +++ b/accessodf-addon/src/main/oxt/META-INF/manifest.xml @@ -3,13 +3,15 @@ - + manifest:full-path="registry/ProtocolHandler.xcu"/> + + + manifest:full-path="registry/data/org/openoffice/Office/UI/Sidebar.xcu"/> + - - - - - - - - Accessibility Evaluation - Accesibilidad - Toegankelijkheid - Accessibilité - Barrierefreiheit - Προσβασιμότητα - - - - - - diff --git a/accessodf-addon/src/main/oxt/description.xml b/accessodf-addon/src/main/oxt/description.xml index aadf8a6..260eb63 100644 --- a/accessodf-addon/src/main/oxt/description.xml +++ b/accessodf-addon/src/main/oxt/description.xml @@ -1,12 +1,14 @@ - + - - - + + + diff --git a/accessodf-addon/src/main/oxt/images/logo_24x24.png b/accessodf-addon/src/main/oxt/images/logo_24x24.png new file mode 100644 index 0000000..dc2e380 Binary files /dev/null and b/accessodf-addon/src/main/oxt/images/logo_24x24.png differ diff --git a/accessodf-addon/src/main/oxt/images/logo_64x64.png b/accessodf-addon/src/main/oxt/images/logo_64x64.png new file mode 100644 index 0000000..a9e8fb9 Binary files /dev/null and b/accessodf-addon/src/main/oxt/images/logo_64x64.png differ diff --git a/accessodf-addon/src/main/oxt/ProtocolHandler.xcu b/accessodf-addon/src/main/oxt/registry/ProtocolHandler.xcu similarity index 100% rename from accessodf-addon/src/main/oxt/ProtocolHandler.xcu rename to accessodf-addon/src/main/oxt/registry/ProtocolHandler.xcu diff --git a/accessodf-addon/src/main/oxt/Factories.xcu b/accessodf-addon/src/main/oxt/registry/data/org/openoffice/Office/UI/Factories.xcu similarity index 89% rename from accessodf-addon/src/main/oxt/Factories.xcu rename to accessodf-addon/src/main/oxt/registry/data/org/openoffice/Office/UI/Factories.xcu index 15c0d43..ec0652b 100644 --- a/accessodf-addon/src/main/oxt/Factories.xcu +++ b/accessodf-addon/src/main/oxt/registry/data/org/openoffice/Office/UI/Factories.xcu @@ -6,13 +6,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + toolpanel - be.docarch.accessodf.ooo.toolpanel + AccessODFPanelFactory diff --git a/accessodf-addon/src/main/oxt/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/accessodf-addon/src/main/oxt/registry/data/org/openoffice/Office/UI/Sidebar.xcu new file mode 100644 index 0000000..cc59def --- /dev/null +++ b/accessodf-addon/src/main/oxt/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -0,0 +1,53 @@ + + + + + + + Accessibility Evaluation + Accesibilidad + Toegankelijkheid + Accessibilité + Προσβασιμότητα + Barrierefreiheit + + + AccessibilityDeck + + + + WriterVariants, any, visible ; + + + + vnd.sun.star.extension://be.docarch.accessodf.ooo.accessodfaddon/images/logo_24x24.png + + + + + + + + AccessibilityPanel + + + AccessibilityDeck + + + private:resource/toolpanel/AccessODFPanelFactory/be.docarch.accessodf.ooo.toolpanel + + + 100 + + + + WriterVariants, any, visible ; + + + + true + + + + + \ No newline at end of file diff --git a/accessodf-api/pom.xml b/accessodf-api/pom.xml index 3a9488c..43f0c7e 100644 --- a/accessodf-api/pom.xml +++ b/accessodf-api/pom.xml @@ -6,11 +6,10 @@ be.docarch accessodf - 0.1.0-SNAPSHOT + 0.2.2-SNAPSHOT ../ accessodf-api - 0.1.0-SNAPSHOT jar accessodf :: API diff --git a/accessodf-api/src/main/java/be/docarch/accessodf/RunnableChecker.java b/accessodf-api/src/main/java/be/docarch/accessodf/RunnableChecker.java index ece00ef..4963d31 100644 --- a/accessodf-api/src/main/java/be/docarch/accessodf/RunnableChecker.java +++ b/accessodf-api/src/main/java/be/docarch/accessodf/RunnableChecker.java @@ -27,7 +27,8 @@ public interface RunnableChecker extends Checker { /** * @return true if the check was successful + * @throws Exception */ - public boolean run(); + public void run() throws Exception; } diff --git a/pom.xml b/pom.xml index f51e97f..59506bf 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 be.docarch accessodf - 0.1.0-SNAPSHOT + 0.2.2-SNAPSHOT pom accessodf AccessODF is an extension for LibreOffice Writer that helps authors evaluate and repair accessibility issues in OpenDocument Text. @@ -32,7 +32,9 @@ UTF-8 ${project.version} - 3.3.0 + 6.3.2 + 1.8 + 1.8 accessodf-api @@ -59,23 +61,26 @@ org.libreoffice juh - ${openoffice.version} + ${libreoffice.version} provided org.libreoffice jurt - ${openoffice.version} + ${libreoffice.version} + provided org.libreoffice ridl - ${openoffice.version} + ${libreoffice.version} + provided org.libreoffice unoil - ${openoffice.version} + ${libreoffice.version} + provided