Hi, See below,
cristinas (SVN) wrote: > Author: cristinas > Date: 2009-05-31 09:54:20 +0200 (Sun, 31 May 2009) > New Revision: 20663 > > Added: > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Debug.java > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Settings.java > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/SettingsDialog.java > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Utils.java > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiAddIn.java > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiDialog.java > sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/ > sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Login.xdl > sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Module1.xba > sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/dialog.xlb > sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/script.xlb > Modified: > sandbox/gsoc/xoo/pom.xml > sandbox/gsoc/xoo/src/main/assembly/dep.xml > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/IConstants.java > sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XOO.java > sandbox/gsoc/xoo/src/main/oxt/META-INF/manifest.xml > Log: > connection wizard added > > Modified: sandbox/gsoc/xoo/pom.xml > =================================================================== > --- sandbox/gsoc/xoo/pom.xml 2009-05-31 04:19:18 UTC (rev 20662) > +++ sandbox/gsoc/xoo/pom.xml 2009-05-31 07:54:20 UTC (rev 20663) > @@ -1,9 +1,8 @@ > -<?xml version="1.0" encoding="UTF-8"?> > -<project> > +<project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd"> > <modelVersion>4.0.0</modelVersion> > <groupId>org.xwiki.xoo</groupId> > <artifactId>xoo</artifactId> > - <version>1.0</version> > + <version>1.0-SNAPSHOT</version> > <description>XWiki OpenOffice.org Integration</description> > <build> > <plugins> > @@ -72,21 +71,27 @@ > <dependency> > <groupId>org.openoffice</groupId> > <artifactId>jurt</artifactId> > - <version>2.1.0</version> > + <version>3.0.0</version> > <scope>compile</scope> > </dependency> > <dependency> > <groupId>org.openoffice</groupId> > <artifactId>ridl</artifactId> > - <version>2.1.0</version> > + <version>3.0.0</version> > <scope>compile</scope> > </dependency> > <dependency> > <groupId>org.openoffice</groupId> > <artifactId>unoil</artifactId> > - <version>2.1.0</version> > + <version>3.0.0</version> > <scope>compile</scope> > </dependency> > + <dependency> > + <groupId>org.xwiki.platform</groupId> > + <artifactId>xwiki-core-xmlrpc-client</artifactId> > + <version>1.9-SNAPSHOT</version> > + <scope>compile</scope> > + </dependency> > </dependencies> > </project> > > > Modified: sandbox/gsoc/xoo/src/main/assembly/dep.xml > =================================================================== > --- sandbox/gsoc/xoo/src/main/assembly/dep.xml 2009-05-31 04:19:18 UTC > (rev 20662) > +++ sandbox/gsoc/xoo/src/main/assembly/dep.xml 2009-05-31 07:54:20 UTC > (rev 20663) > @@ -1,9 +1,12 @@ > <assembly> > - <id>bin</id> > <formats> > <format>zip</format> > </formats> > <includeBaseDirectory>false</includeBaseDirectory> > + <dependencySets> > + <dependencySet> > + </dependencySet> > + </dependencySets> > <fileSets> > <fileSet> > <directory>src/main/oxt</directory> > @@ -20,6 +23,10 @@ > <directory>src/main/oxt/META-INF</directory> > <outputDirectory>/META-INF</outputDirectory> > </fileSet> > + <fileSet> > + <directory>src/main/oxt/dialogLibrary</directory> > + <outputDirectory>/dialogLibrary</outputDirectory> > + </fileSet> > <fileSet> > <directory>target</directory> > <outputDirectory></outputDirectory> > > Added: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Debug.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Debug.java > (rev 0) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Debug.java 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -0,0 +1,107 @@ > +/* > + * See the NOTICE file distributed with this work for additional > + * information regarding copyright ownership. > + * > + * This is free software; you can redistribute it and/or modify it > + * under the terms of the GNU Lesser General Public License as > + * published by the Free Software Foundation; either version 2.1 of > + * the License, or (at your option) any later version. > + * > + * This software is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this software; if not, write to the Free > + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA > + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. > + */ > + > +package org.xwiki.xoo; > + > +import com.sun.star.awt.Rectangle; > +import com.sun.star.awt.WindowAttribute; > +import com.sun.star.awt.WindowClass; > +import com.sun.star.awt.WindowDescriptor; > +import com.sun.star.awt.XMessageBox; > +import com.sun.star.awt.XToolkit; > +import com.sun.star.awt.XWindowPeer; > +import com.sun.star.uno.UnoRuntime; > +import com.sun.star.frame.XFrame; > + > +public class Debug { > + > + private static Debug _instance; > + > + private XFrame m_xFrame; > + private XToolkit m_xToolkit; > + > + /** > + * > + */ > + private Debug() { > + } > + > + /** > + * > + * @param m_xFrame > + * @param m_xToolkit > + */ > + public void setContext(XFrame m_xFrame, XToolkit m_xToolkit) { > + this.m_xFrame = m_xFrame; > + this.m_xToolkit = m_xToolkit; > + } > + > + /** > + * > + * @return > + */ > + public static Debug getInstance() { > + if (null == _instance) { > + _instance = new Debug(); > + } > + return _instance; > + } > + > + /** > + * Shows a dialog used for debugging > + * > + * @param sTitle > + * the title of the dialog > + * @param sMessage > + * the message to be displayed > + */ > + public void showMessageBox(String sMessage) { > + try { > + if (null != m_xFrame && null != m_xToolkit) { > + > + // describe window properties. > + WindowDescriptor aDescriptor = new > WindowDescriptor(); > + aDescriptor.Type = WindowClass.MODALTOP; > + aDescriptor.WindowServiceName = new > String("infobox"); > + aDescriptor.ParentIndex = -1; > + aDescriptor.Parent = (XWindowPeer) > UnoRuntime.queryInterface( > + XWindowPeer.class, > m_xFrame.getContainerWindow()); > + aDescriptor.Bounds = new Rectangle(0, 0, 300, > 200); > + aDescriptor.WindowAttributes = > WindowAttribute.BORDER > + | WindowAttribute.MOVEABLE | > WindowAttribute.CLOSEABLE; > + > + XWindowPeer xPeer = > m_xToolkit.createWindow(aDescriptor); > + if (null != xPeer) { > + XMessageBox xMsgBox = (XMessageBox) > UnoRuntime > + > .queryInterface(XMessageBox.class, xPeer); > + if (null != xMsgBox) { > + xMsgBox.setCaptionText("Debug"); > + > xMsgBox.setMessageText(sMessage); > + xMsgBox.execute(); > + } > + } > + } > + } catch (com.sun.star.uno.Exception e) { > + // TODO error handling > + > + } > + } > + > +} > > Modified: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/IConstants.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/IConstants.java > 2009-05-31 04:19:18 UTC (rev 20662) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/IConstants.java > 2009-05-31 07:54:20 UTC (rev 20663) > @@ -25,8 +25,19 @@ > */ > > public interface IConstants { Why do you need an interface for this? This looks like a .net interface naming convention, but I did not see it in the java world. The XWiki convention is documented here: - http://dev.xwiki.org/xwiki/bin/view/Community/CodeStyle#HClass2FInterfacenames > - > - public final static String PROTOCOL_XOO = "org.xwiki.xoo.xoo:"; > - public final static String CMD_LOGIN = "cmdLogin"; > - > + > + final static String PROTOCOL_XOO = "org.xwiki.xoo.xoo:"; > + final static String CMD_LOGIN = "cmdLogin"; > + final static String SETTINGS_DIALOG = > "vnd.sun.star.script:dialogLibrary.Login?location=application"; > + > + final static int TYPE_INFO = 0; > + final static int TYPE_ERROR = 1; > + > + final static String TITLE_ERROR = "XWiki Error"; > + final static String TITLE_XWIKI = "XWiki"; > + > + final static int ERROR_LOGINFAILED = 0; > + final static String[] errorMessages = { "Login failed! Please check the > server URL, the username and password " }; > + final static int MESS_LOGINSUCC = 0; > + final static String[] Messages = { "Login succeed!" }; > } > > Added: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Settings.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Settings.java > (rev 0) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Settings.java > 2009-05-31 07:54:20 UTC (rev 20663) > @@ -0,0 +1,63 @@ > +/* > + * See the NOTICE file distributed with this work for additional > + * information regarding copyright ownership. > + * > + * This is free software; you can redistribute it and/or modify it > + * under the terms of the GNU Lesser General Public License as > + * published by the Free Software Foundation; either version 2.1 of > + * the License, or (at your option) any later version. > + * > + * This software is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this software; if not, write to the Free > + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA > + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. > + */ > + > +package org.xwiki.xoo; > + > +public class Settings { > I this a generic settings class or will it store just authentication settings? > + > + private String serverURL; > + private String username; > + private String password; > + > + public Settings(String serverURL, String username, String password) { > + this.serverURL = serverURL; > + this.username = username; > + this.password = password; > + } > + > + public String getServerURL() { > + return serverURL; > + } > + > + public void setServerURL(String serverURL) { > + this.serverURL = serverURL; > + } > + > + public String getUsername() { > + return username; > + } > + > + public void setUsername(String username) { > + this.username = username; > + } > + > + public String getPassword() { > + return password; > + } > + > + public void setPassword(String password) { > + this.password = password; > + } > + > + public String toString() { > + return serverURL + " " + username + " " + password; > + } > + > +} > > Added: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/SettingsDialog.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/SettingsDialog.java > (rev 0) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/SettingsDialog.java > 2009-05-31 07:54:20 UTC (rev 20663) > @@ -0,0 +1,106 @@ > +/* > + * See the NOTICE file distributed with this work for additional > + * information regarding copyright ownership. > + * > + * This is free software; you can redistribute it and/or modify it > + * under the terms of the GNU Lesser General Public License as > + * published by the Free Software Foundation; either version 2.1 of > + * the License, or (at your option) any later version. > + * > + * This software is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this software; if not, write to the Free > + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA > + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. > + */ > + > +package org.xwiki.xoo; > + > +import org.xwiki.xmlrpc.XWikiXmlRpcClient; > + > +import com.sun.star.awt.XDialog; > +import com.sun.star.beans.UnknownPropertyException; > +import com.sun.star.lang.WrappedTargetException; > +import com.sun.star.uno.XComponentContext; > + > +public class SettingsDialog extends XWikiDialog { > + > + private final String sOKMethod = "btnOK_Clicked"; > + private final String sCancelMethod = "btnCancel_Clicked"; > + > + /** > + * > + * @param c > + */ > + public SettingsDialog(XComponentContext c) { > + super(c, IConstants.SETTINGS_DIALOG); > + } > + > + /** > + * > + */ > + public boolean callHandlerMethod(XDialog xDialog, Object EventObject, > + String MethodName) { > + > + if (MethodName.equals(sOKMethod)) { > + btnOK_Clicked(); > + } > + if (MethodName.equals(sCancelMethod)) { > + btnCancel_Clicked(); > + } > + return true; > + } > + > + /** > + * > + */ > + public void btnOK_Clicked() { > + > + boolean bResult = false; > + > + try { > + String sURL = (String) > GetPropSet("txtServerURL").getPropertyValue( > + "Text"); > + String sUserName = (String) GetPropSet("txtUsername") > + .getPropertyValue("Text"); > + String sPassword = (String) GetPropSet("txtPassword") > + .getPropertyValue("Text"); > + Settings set = new Settings(sURL, sUserName, sPassword); > + > + XWikiAddIn xWikiAddIn = XWikiAddIn.getInstance(); > + xWikiAddIn.setSettings(set); > + XWikiXmlRpcClient client = xWikiAddIn.getClient(); > + if (client != null) { > + bResult = xWikiAddIn.doLogin(); > + } > + if (bResult) { > + m_xDialog.endExecute(); > + Utils.ShowMessage(m_xContext, m_xDialog, > + IConstants.TITLE_XWIKI, > IConstants.MESS_LOGINSUCC, > + IConstants.TYPE_INFO, false); > + } else { > + Utils.ShowMessage(m_xContext, m_xDialog, > + IConstants.TITLE_ERROR, > IConstants.ERROR_LOGINFAILED, > + IConstants.TYPE_ERROR, false); > + } > + } catch (UnknownPropertyException e) { > + // TODO Auto-generated catch block > + e.printStackTrace(); > + } catch (WrappedTargetException e) { > + // TODO Auto-generated catch block > + e.printStackTrace(); > + } > + > + } > + > + /** > + * > + */ > + public void btnCancel_Clicked() { > + m_xDialog.endExecute(); > + } > You have missing javadoc on every method in this class. Why are the mouse clicked methods public? > +} > \ No newline at end of file > > Added: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Utils.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Utils.java > (rev 0) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/Utils.java 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -0,0 +1,169 @@ > +/* > + * See the NOTICE file distributed with this work for additional > + * information regarding copyright ownership. > + * > + * This is free software; you can redistribute it and/or modify it > + * under the terms of the GNU Lesser General Public License as > + * published by the Free Software Foundation; either version 2.1 of > + * the License, or (at your option) any later version. > + * > + * This software is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this software; if not, write to the Free > + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA > + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. > + */ > + > +package org.xwiki.xoo; > + > +import com.sun.star.awt.MessageBoxButtons; > +import com.sun.star.awt.XControl; > +import com.sun.star.awt.XDialog; > +import com.sun.star.awt.XMessageBox; > +import com.sun.star.awt.XMessageBoxFactory; > +import com.sun.star.awt.XWindowPeer; > +import com.sun.star.lang.XComponent; > +import com.sun.star.lang.XMultiComponentFactory; > +import com.sun.star.uno.UnoRuntime; > +import com.sun.star.uno.XComponentContext; > + > +public class Utils { > + > + /** > + * > + * @param nMessID > + * @param nTypeID > + * @return > + */ > + private static String getText(int nMessID, int nTypeID) { > + String sMessage = null; > + > + switch (nTypeID) { > + case IConstants.TYPE_ERROR: > + sMessage = (IConstants.errorMessages.length > nMessID) > ? IConstants.errorMessages[nMessID] > + : "Error: " + nMessID; > + break; > + case IConstants.TYPE_INFO: > + sMessage = (IConstants.Messages.length > nMessID) ? > IConstants.Messages[nMessID] > + : "Error: " + nMessID; > + break; > + } > + return sMessage; > + } > + > + /** > + * > + * @param xContext > + * @param xDialog > + * @param sTitle > + * @param nMessID > + * @param nTypeID > + * @param bQuery > + */ > + protected static void ShowMessage(XComponentContext xContext, > + XDialog xDialog, String sTitle, int nMessID, int > nTypeID, > + boolean bQuery) { > + XWindowPeer xPeer = null; > + XControl xControl = (XControl) UnoRuntime.queryInterface( > + XControl.class, xDialog); > + if (xControl != null) > + xPeer = xControl.getPeer(); > + ShowMessage(xContext, xPeer, sTitle, nMessID, nTypeID, bQuery); > + } > + > + /** > + * > + * @param xContext > + * @param xParentPeer > + * @param sTitle > + * @param nMessID > + * @param nTypeID > + * @param bQuery > + * @return > + */ > + protected static boolean ShowMessage(XComponentContext xContext, > + XWindowPeer xParentPeer, String sTitle, int nMessID, > int nTypeID, > + boolean bQuery) { > + boolean bResult = false; > + > + if (xContext != null) { > + String sMessage = getText(nMessID, nTypeID); > + > + if (xParentPeer != null) { > + XMessageBoxFactory xMBFactory = null; > + XMessageBox xMB = null; > + try { > + XMultiComponentFactory xFactory = > xContext > + .getServiceManager(); > + if (xFactory != null) > + xMBFactory = > (XMessageBoxFactory) UnoRuntime > + > .queryInterface(XMessageBoxFactory.class, > + > xFactory.createInstanceWithContext( > + > "com.sun.star.awt.Toolkit", > + > xContext)); > + > + if (xMBFactory != null) { > + if (bQuery) { > + xMB = xMBFactory > + > .createMessageBox( > + > xParentPeer, > + > new com.sun.star.awt.Rectangle(), > + > "querybox", > + > MessageBoxButtons.BUTTONS_YES_NO > + > | MessageBoxButtons.DEFAULT_BUTTON_NO, > + > sTitle, sMessage); > + } else if (nTypeID == > IConstants.TYPE_INFO) { > + xMB = > xMBFactory.createMessageBox(xParentPeer, > + new > com.sun.star.awt.Rectangle(), > + > "infobox", > + > MessageBoxButtons.BUTTONS_YES_NO, sTitle, > + > sMessage); > + } > + > + else { > + xMB = > xMBFactory.createMessageBox(xParentPeer, > + new > com.sun.star.awt.Rectangle(), > + > "errorbox", MessageBoxButtons.BUTTONS_OK, > + sTitle, > sMessage); > + } > + if (xMB != null) { > + xMB.execute(); > + bResult = true; > + } > + } > + } catch (Exception e) { > + e.printStackTrace(); > + // TODO error Handling > + > + } finally { > + if (xMB != null) > + Dispose(xMB); > + } > + } > + } > + > + return bResult; > + } > + > + /** > + * > + * @param oObject > + */ > + public static void Dispose(Object oObject) { > + if (oObject != null) { > + try { > + XComponent xComp = (XComponent) > UnoRuntime.queryInterface( > + XComponent.class, oObject); > + if (xComp != null) > + xComp.dispose(); > + } catch (Exception e) { > + e.printStackTrace(); > + } > + } > + } > + > +} > > Modified: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XOO.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XOO.java 2009-05-31 > 04:19:18 UTC (rev 20662) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XOO.java 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -25,14 +25,7 @@ > import com.sun.star.lang.XSingleComponentFactory; > import com.sun.star.registry.XRegistryKey; > import com.sun.star.lib.uno.helper.WeakBase; > - > import com.sun.star.awt.XToolkit; > -import com.sun.star.awt.XWindowPeer; > -import com.sun.star.awt.XMessageBox; > -import com.sun.star.awt.WindowAttribute; > -import com.sun.star.awt.WindowClass; > -import com.sun.star.awt.WindowDescriptor; > -import com.sun.star.awt.Rectangle; > > /** > * > @@ -163,6 +156,8 @@ > m_xFrame = > (com.sun.star.frame.XFrame) > UnoRuntime.queryInterface(com.sun.star.frame.XFrame.class, object[0]); > } > + Debug debug = Debug.getInstance(); > + debug.setContext(m_xFrame, m_xToolkit); > } > > /** > @@ -175,7 +170,9 @@ > { > if (aURL.Protocol.compareTo(IConstants.PROTOCOL_XOO) == 0) { > if (aURL.Path.compareTo(IConstants.CMD_LOGIN) == 0) { > - showMessageBox("Test", "Test"); > + //showMessageBox("Test", "Test"); > + SettingsDialog set = new SettingsDialog(m_xContext); > + set.show(); > return; > } > } > @@ -203,41 +200,4 @@ > // TODO add code > } > > - /** > - * Shows a dialog used for debugging > - * @param sTitle the title of the dialog > - * @param sMessage the message to be displayed > - */ > - public void showMessageBox(String sTitle, String sMessage) > - { > - try { > - if (null != m_xFrame && null != m_xToolkit) { > - > - // describe window properties. > - WindowDescriptor aDescriptor = new WindowDescriptor(); > - aDescriptor.Type = WindowClass.MODALTOP; > - aDescriptor.WindowServiceName = new String("infobox"); > - aDescriptor.ParentIndex = -1; > - aDescriptor.Parent = > - (XWindowPeer) > UnoRuntime.queryInterface(XWindowPeer.class, m_xFrame.getContainerWindow()); > - aDescriptor.Bounds = new Rectangle(0, 0, 300, 200); > - aDescriptor.WindowAttributes = > - WindowAttribute.BORDER | WindowAttribute.MOVEABLE | > WindowAttribute.CLOSEABLE; > - > - XWindowPeer xPeer = m_xToolkit.createWindow(aDescriptor); > - if (null != xPeer) { > - XMessageBox xMsgBox = (XMessageBox) > UnoRuntime.queryInterface(XMessageBox.class, xPeer); > - if (null != xMsgBox) { > - xMsgBox.setCaptionText(sTitle); > - xMsgBox.setMessageText(sMessage); > - xMsgBox.execute(); > - } > - } > - } > - } catch (com.sun.star.uno.Exception e) { > - // TODO error handling > - > - } > - } > - > } > > Added: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiAddIn.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiAddIn.java > (rev 0) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiAddIn.java > 2009-05-31 07:54:20 UTC (rev 20663) > @@ -0,0 +1,93 @@ > +/* > + * See the NOTICE file distributed with this work for additional > + * information regarding copyright ownership. > + * > + * This is free software; you can redistribute it and/or modify it > + * under the terms of the GNU Lesser General Public License as > + * published by the Free Software Foundation; either version 2.1 of > + * the License, or (at your option) any later version. > + * > + * This software is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this software; if not, write to the Free > + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA > + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. > + */ > + > +package org.xwiki.xoo; > + > +import java.net.MalformedURLException; > + > +import org.apache.xmlrpc.XmlRpcException; > +import org.xwiki.xmlrpc.XWikiXmlRpcClient; > + > +public class XWikiAddIn { > Can you explain a bit what is the role of this class? I hope this doesn't become a massive singleton that will be used everywhere across the sources. You are using the add-in and add-on terms in your sources. We should respect the OOo naming and call it 'extension'. > + > + static private XWikiAddIn _instance = null; > + > + private XWikiXmlRpcClient client = null; > + private Settings settings; > + > + /** > + * > + */ > + private XWikiAddIn() { > + } > + > + /** > + * > + * @return > + */ > + public static synchronized XWikiAddIn getInstance() { > + if (null == _instance) { > + _instance = new XWikiAddIn(); > + } > + return _instance; > + } > + > + /** > + * > + * @return > + */ > + public XWikiXmlRpcClient getClient() { > + return client; > + } > + > + /** > + * > + * @param set > + */ > + public void setSettings(Settings set) { > + this.settings = set; > + try { > + client = new XWikiXmlRpcClient(set.getServerURL()); > + } catch (MalformedURLException e) { > + } > + } > + > + /** > + * > + * @return > + */ > + public Settings getSettings() { > + return settings; > + } > + > + /** > + * > + * @return > + */ > + public boolean doLogin() { > + boolean bResult = true; > + try { > + client.login(settings.getUsername(), > settings.getPassword()); > + } catch (XmlRpcException e) { > + bResult = false; > + } > + return bResult; > + } > +} > > Added: sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiDialog.java > =================================================================== > --- sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiDialog.java > (rev 0) > +++ sandbox/gsoc/xoo/src/main/java/org/xwiki/xoo/XWikiDialog.java > 2009-05-31 07:54:20 UTC (rev 20663) > @@ -0,0 +1,158 @@ > +/* > + * See the NOTICE file distributed with this work for additional > + * information regarding copyright ownership. > + * > + * This is free software; you can redistribute it and/or modify it > + * under the terms of the GNU Lesser General Public License as > + * published by the Free Software Foundation; either version 2.1 of > + * the License, or (at your option) any later version. > + * > + * This software is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this software; if not, write to the Free > + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA > + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. > + */ > + > +package org.xwiki.xoo; > + > +import com.sun.star.awt.XControl; > +import com.sun.star.awt.XControlContainer; > +import com.sun.star.awt.XControlModel; > +import com.sun.star.awt.XDialog; > +import com.sun.star.awt.XDialogEventHandler; > +import com.sun.star.awt.XDialogProvider2; > +import com.sun.star.beans.XPropertySet; > +import com.sun.star.lang.XMultiComponentFactory; > +import com.sun.star.uno.UnoRuntime; > +import com.sun.star.uno.XComponentContext; > +import com.sun.star.awt.XTopWindow; > +import com.sun.star.awt.XTopWindowListener; > +import com.sun.star.awt.XWindow; > +import com.sun.star.container.XNameContainer; > +import com.sun.star.lang.EventObject; > +import com.sun.star.lang.XMultiServiceFactory; > + > +public class XWikiDialog implements XDialogEventHandler, XTopWindowListener { > + > + XComponentContext m_xContext; > + XControlContainer m_xControlContainer; > + XDialog m_xDialog; > + String[] m_aMethods; > + boolean m_bAction = false; > + > + protected Thread m_aThread; > + protected boolean m_bThreadFinished = false; > + > + /** Creates a new instance of XWikiDialog */ > + public XWikiDialog(XComponentContext c, String DialogURL) { > + this.m_xContext = c; > + XMultiComponentFactory xMCF = m_xContext.getServiceManager(); > + try { > + Object obj; > + obj = xMCF.createInstanceWithContext( > + "com.sun.star.awt.DialogProvider2", > m_xContext); > + XDialogProvider2 xDialogProvider = (XDialogProvider2) > UnoRuntime > + .queryInterface(XDialogProvider2.class, > obj); > + > + m_xDialog = xDialogProvider > + .createDialogWithHandler(DialogURL, > this); > + m_xControlContainer = (XControlContainer) UnoRuntime > + > .queryInterface(XControlContainer.class, m_xDialog); > + XTopWindow xTopWindow = (XTopWindow) > UnoRuntime.queryInterface( > + XTopWindow.class, m_xDialog); > + if (xTopWindow != null) > + xTopWindow.addTopWindowListener(this); > + } catch (com.sun.star.uno.Exception ex) { > + ex.printStackTrace(); > + } > + } > + > + /** > + * Shows the Dialog. > + */ > + public void show() { > + if (m_xDialog != null) > + m_xDialog.execute(); > + } > + > + /** > + * > + * @param sControl The control for > + * @return > + */ > + protected XPropertySet GetPropSet(String sControl) { > + return GetPropSet(m_xControlContainer, sControl); > + } > + > + protected static XPropertySet GetPropSet( > + XControlContainer xControlContainer, String sControl) { > + XPropertySet xPS = null; > + > + if (xControlContainer != null && sControl != null) { > + XControl xControl = > xControlContainer.getControl(sControl); > + xPS = (XPropertySet) > UnoRuntime.queryInterface(XPropertySet.class, > + xControl.getModel()); > + } > + > + if (xPS == null) > + throw new com.sun.star.uno.RuntimeException(); > + > + return xPS; > + } > + > + public void DisposeDialog() { > + } > + > + public void SetFocusTo(String aControl) { > + if (m_xControlContainer != null) { > + try { > + XWindow xWindow = (XWindow) UnoRuntime > + .queryInterface(XWindow.class, > m_xControlContainer > + > .getControl(aControl)); > + if (xWindow != null) > + xWindow.setFocus(); > + } catch (Exception e) { > + e.printStackTrace(); > + } > + } > + } > + > + public boolean callHandlerMethod(XDialog arg0, Object arg1, String > arg2) { > + return true; > + } > + > + public String[] getSupportedMethodNames() { > + // TODO Auto-generated method stub > + return null; > + } > + > + public void windowActivated(EventObject arg0) { > + } > + > + public void windowClosed(EventObject arg0) { > + } > + > + public void windowClosing(EventObject arg0) { > + } > + > + public void windowDeactivated(EventObject arg0) { > + } > + > + public void windowMinimized(EventObject arg0) { > + } > + > + public void windowNormalized(EventObject arg0) { > + } > + > + public void windowOpened(EventObject arg0) { > + } > + > + public void disposing(EventObject arg0) { > + } > + > +} > > Modified: sandbox/gsoc/xoo/src/main/oxt/META-INF/manifest.xml > =================================================================== > --- sandbox/gsoc/xoo/src/main/oxt/META-INF/manifest.xml 2009-05-31 > 04:19:18 UTC (rev 20662) > +++ sandbox/gsoc/xoo/src/main/oxt/META-INF/manifest.xml 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -4,6 +4,8 @@ > manifest:full-path="xoo-1.0.jar"/> > <manifest:file-entry > manifest:media-type="application/vnd.sun.star.configuration-data" > > manifest:full-path="registry/data/org/openoffice/Office/ProtocolHandler.xcu"/> > + <manifest:file-entry manifest:full-path="dialogLibrary/" > + > manifest:media-type="application/vnd.sun.star.basic-library"/> > <manifest:file-entry > manifest:media-type="application/vnd.sun.star.configuration-data" > > manifest:full-path="registry/data/org/openoffice/Office/Addons.xcu"/> > </manifest:manifest> > > Added: sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Login.xdl > =================================================================== > --- sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Login.xdl > (rev 0) > +++ sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Login.xdl 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -0,0 +1,27 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" > "dialog.dtd"> > +<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" > xmlns:script="http://openoffice.org/2000/script" dlg:id="Login" > dlg:left="101" dlg:top="52" dlg:width="143" dlg:height="108" > dlg:closeable="true" dlg:moveable="true" dlg:title="Connection Settings"> > + <dlg:bulletinboard> > + <dlg:button dlg:id="btnOK" dlg:tab-index="0" dlg:left="26" dlg:top="86" > dlg:width="37" dlg:height="16" dlg:value="OK"> > + <script:event script:event-name="on-performaction" > script:macro-name="vnd.sun.star.UNO:btnOK_Clicked" script:language="UNO"/> > + </dlg:button> > + <dlg:button dlg:id="btnCancel" dlg:tab-index="2" dlg:left="102" > dlg:top="86" dlg:width="37" dlg:height="16" dlg:value="Cancel"> > + <script:event script:event-name="on-performaction" > script:macro-name="vnd.sun.star.UNO:btnCancel_Clicked" script:language="UNO"/> > + </dlg:button> > + <dlg:text dlg:id="lblURL" dlg:tab-index="3" dlg:left="5" dlg:top="25" > dlg:width="34" dlg:height="10" dlg:value="Server URL"/> > + <dlg:text dlg:id="lblUser" dlg:tab-index="4" dlg:left="5" dlg:top="43" > dlg:width="34" dlg:height="10" dlg:value="Username"/> > + <dlg:text dlg:id="lblPass" dlg:tab-index="8" dlg:left="5" dlg:top="61" > dlg:width="34" dlg:height="10" dlg:value="Password"/> > + <dlg:titledbox dlg:id="FrameControl2" dlg:tab-index="9" dlg:left="-1" > dlg:top="29" dlg:width="1" dlg:height="6"> > + <dlg:title dlg:value="FrameControl2"/> > + </dlg:titledbox> > + <dlg:titledbox dlg:id="frmSettings" dlg:tab-index="10" dlg:left="3" > dlg:top="5" dlg:width="137" dlg:height="75"> > + <dlg:title dlg:value="Server settings"/> > + </dlg:titledbox> > + <dlg:textfield dlg:id="txtServerURL" dlg:tab-index="5" dlg:left="54" > dlg:top="25" dlg:width="82" dlg:height="10" > dlg:value="http://localhost:8080"/> > + <dlg:textfield dlg:id="txtUsername" dlg:tab-index="6" dlg:left="54" > dlg:top="43" dlg:width="82" dlg:height="10"/> > + <dlg:button dlg:id="btnApply" dlg:tab-index="1" dlg:left="64" dlg:top="86" > dlg:width="37" dlg:height="16" dlg:value="Apply"> > + <script:event script:event-name="on-itemstatechange" > script:macro-name="vnd.sun.star.UNO:btnCancel_Clicked" script:language="UNO"/> > + </dlg:button> > + <dlg:textfield dlg:id="txtPassword" dlg:tab-index="7" dlg:left="54" > dlg:top="61" dlg:width="82" dlg:height="10" dlg:echochar="*"/> > + </dlg:bulletinboard> > +</dlg:window> > \ No newline at end of file > > Added: sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Module1.xba > =================================================================== > --- sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Module1.xba > (rev 0) > +++ sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/Module1.xba 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -0,0 +1,14 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument > 1.0//EN" "module.dtd"> > +<script:module xmlns:script="http://openoffice.org/2000/script" > script:name="Module1" script:language="StarBasic">REM ***** BASIC ***** > + > +Sub Main > + > + > + > + oDialog = createUnoDialog(DialogLibraries.dialogLibrary.Login) > + oDialog.execute > + > + > +End Sub > +</script:module> > \ No newline at end of file > > Added: sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/dialog.xlb > =================================================================== > --- sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/dialog.xlb > (rev 0) > +++ sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/dialog.xlb 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -0,0 +1,5 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument > 1.0//EN" "library.dtd"> > +<library:library xmlns:library="http://openoffice.org/2000/library" > library:name="dialogLibrary" library:readonly="false" > library:passwordprotected="false"> > + <library:element library:name="Login"/> > +</library:library> > \ No newline at end of file > > Added: sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/script.xlb > =================================================================== > --- sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/script.xlb > (rev 0) > +++ sandbox/gsoc/xoo/src/main/oxt/dialogLibrary/script.xlb 2009-05-31 > 07:54:20 UTC (rev 20663) > @@ -0,0 +1,5 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument > 1.0//EN" "library.dtd"> > +<library:library xmlns:library="http://openoffice.org/2000/library" > library:name="dialogLibrary" library:readonly="false" > library:passwordprotected="false"> > + <library:element library:name="Module1"/> > +</library:library> > \ No newline at end of file > > _______________________________________________ > notifications mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/notifications > > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

