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