diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:52:45 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:52:45 +0100 |
commit | 2e626373db2412ac22e8c5c27a60d11cd29e875b (patch) | |
tree | 9e9f67205cd5b72f1031721273e1534a3a1e5b0f /bean | |
parent | f7ee7bbd5174b084f018c2ec94d8c70c98ee04da (diff) |
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'bean')
50 files changed, 0 insertions, 7990 deletions
diff --git a/bean/com/sun/star/beans/ContainerFactory.java b/bean/com/sun/star/beans/ContainerFactory.java deleted file mode 100644 index 8d42c67ad..000000000 --- a/bean/com/sun/star/beans/ContainerFactory.java +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import java.awt.Container; - -/** - * This interface reprecents an AWT container factory. - * - * @see OfficeBean - * @deprecated - */ - -public interface ContainerFactory -{ - /** - * Creates an AWT container. - * - * @return An AWT container. - */ - Container createContainer(); -} diff --git a/bean/com/sun/star/beans/JavaWindowPeerFake.java b/bean/com/sun/star/beans/JavaWindowPeerFake.java deleted file mode 100644 index 54ca0c1d8..000000000 --- a/bean/com/sun/star/beans/JavaWindowPeerFake.java +++ /dev/null @@ -1,122 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import com.sun.star.awt.*; - -/** <p>Class to pass the system window handle to the OpenOffice.org toolkit.</p> - * @deprecated - */ -/* package */ class JavaWindowPeerFake - implements XSystemDependentWindowPeer, XWindowPeer -{ - - protected long hWindow; - protected int localSystemType; - - /** Create the faked window peer. - * @param _hWindow the system handle to the window. - * @param _systemType specifies the system type. - */ - public JavaWindowPeerFake(long _hWindow, int _systemType) - { - hWindow = _hWindow; - localSystemType = _systemType; - } - - /** <p>Implementation of XSystemDependentWindowPeer (that's all we really need)</p> - * This method is called back from the OpenOffice.org toolkit to retrieve the system data. - */ - public Object getWindowHandle(/*IN*/byte[] ProcessId, /*IN*/short SystemType) - throws com.sun.star.uno.RuntimeException - { - - if (SystemType == localSystemType) { - return new Integer((int)hWindow); - } - else return null; - } - - /** not really neaded. - */ - public XToolkit getToolkit() - throws com.sun.star.uno.RuntimeException - { - return null; - } - - /** not really neaded. - */ - public void setPointer(/*IN*/XPointer Pointer) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void setBackground(/*IN*/int Color) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void invalidate(/*IN*/short Flags) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void invalidateRect(/*IN*/com.sun.star.awt.Rectangle Rect, /*IN*/short Flags) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void dispose() - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void addEventListener(/*IN*/com.sun.star.lang.XEventListener xListener) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void removeEventListener(/*IN*/com.sun.star.lang.XEventListener aListener) - throws com.sun.star.uno.RuntimeException - { - } -} - diff --git a/bean/com/sun/star/beans/LocalOfficeConnection.java b/bean/com/sun/star/beans/LocalOfficeConnection.java deleted file mode 100644 index cb2d61f0f..000000000 --- a/bean/com/sun/star/beans/LocalOfficeConnection.java +++ /dev/null @@ -1,617 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import java.awt.Container; -import java.io.File; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.lang.XEventListener; -import com.sun.star.bridge.XUnoUrlResolver; -import com.sun.star.uno.XComponentContext; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.lib.uno.helper.UnoUrl; -import com.sun.star.lib.util.NativeLibraryLoader; - -/** - * This class reprecents a connection to the local office application. - * @deprecated - */ -public class LocalOfficeConnection - implements OfficeConnection -{ - public static final String OFFICE_APP_NAME = "soffice"; - public static final String OFFICE_LIB_NAME = "officebean"; - public static final String OFFICE_ID_SUFFIX = "_Office"; - - private Process mProcess; - private ContainerFactory mContainerFactory; - private XComponentContext mContext; - - private String mURL; - private String mProgramPath; - private String mConnType; - private String mPipe; - private String mPort; - private String mProtocol; - private String mInitialObject; - - private List mComponents = new Vector(); - - /** - * Constructor. - * Sets up paths to the office application and native libraries if - * values are available in <code>OFFICE_PROP_FILE</code> in the user - * home directory.<br /> - * "com.sun.star.beans.path" - the office application directory;<br/> - * "com.sun.star.beans.libpath" - native libraries directory. - */ - public LocalOfficeConnection() - { - // init member vars - try - { - setUnoUrl( "uno:pipe,name=" + getPipeName() + ";urp;StarOffice.ServiceManager" ); - } - catch ( java.net.MalformedURLException e ) - {} - - // load libofficebean.so/officebean.dll - String aSharedLibName = getProgramPath() + java.io.File.separator + - System.mapLibraryName(OFFICE_LIB_NAME); - System.load( aSharedLibName ); - } - - /** - * Sets a connection URL. - * This implementation accepts a UNO URL with following format:<br /> - * <pre> - * url := uno:localoffice[,<params>];urp;StarOffice.ServiceManager - * params := <path>[,<pipe>] - * path := path=<pathv> - * pipe := pipe=<pipev> - * pathv := platform_specific_path_to_the_local_office_distribution - * pipev := local_office_connection_pipe_name - * </pre> - * - * @param url This is UNO URL which discribes the type of a connection. - */ - public void setUnoUrl(String url) - throws java.net.MalformedURLException - { - mURL = null; - - String prefix = "uno:localoffice"; - if ( url.startsWith(prefix) ) - parseUnoUrlWithOfficePath( url, prefix ); - else - { - try - { - UnoUrl aURL = UnoUrl.parseUnoUrl( url ); - mProgramPath = null; - mConnType = aURL.getConnection(); - mPipe = (String) aURL.getConnectionParameters().get( "pipe" ); - mPort = (String) aURL.getConnectionParameters().get( "port" ); - mProtocol = aURL.getProtocol(); - mInitialObject = aURL.getRootOid(); - } - catch ( com.sun.star.lang.IllegalArgumentException eIll ) - { - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - } - } - mURL = url; - } - - /** - * Sets an AWT container catory. - * - * @param containerFactory This is a application provided AWT container - * factory. - */ - public void setContainerFactory(ContainerFactory containerFactory) - { - mContainerFactory = containerFactory; - } - - /** - * Retrives the UNO component context. - * Establishes a connection if necessary and initialises the - * UNO service manager if it has not already been initialised. - * This method can return <code>null</code> if it fails to connect - * to the office application. - * - * @return The office UNO component context. - */ - public XComponentContext getComponentContext() - { - if ( mContext == null ) - mContext = connect(); - return mContext; - } - - /** - * Creates an office window. - * The window is either a sub-class of java.awt.Canvas (local) or - * java.awt.Container (RVP). - * - * @param container This is an AWT container. - * @return The office window instance. - */ - public OfficeWindow createOfficeWindow(Container container) - { - return new LocalOfficeWindow(this); - } - - /** - * Closes the connection. - */ - public void dispose() - { - Iterator itr = mComponents.iterator(); - while (itr.hasNext() == true) { - // ignore runtime exceptions in dispose - try { ((XEventListener)itr.next()).disposing(null); } - catch ( RuntimeException aExc ) {} - } - mComponents.clear(); - - mContainerFactory = null; - mContext = null; - } - - /** - * Adds an event listener to the object. - * - * @param listener is a listener object. - */ - public void addEventListener(XEventListener listener) - { - mComponents.add(listener); - } - - /** - * Removes an event listener from the listener list. - * - * @param listener is a listener object. - */ - public void removeEventListener(XEventListener listener) - { - mComponents.remove(listener); - } - - /** - * Establishes the connection to the office. - */ - private XComponentContext connect() - { - try - { - // create default local component context - XComponentContext xLocalContext = - com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null); - - // initial serviceManager - XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager(); - - // create a urlresolver - Object urlResolver = xLocalServiceManager.createInstanceWithContext( - "com.sun.star.bridge.UnoUrlResolver", xLocalContext ); - - // query for the XUnoUrlResolver interface - XUnoUrlResolver xUrlResolver = - (XUnoUrlResolver) UnoRuntime.queryInterface( XUnoUrlResolver.class, urlResolver ); - - // try to connect to soffice - Object aInitialObject = null; - try - { - aInitialObject = xUrlResolver.resolve( mURL ); - } - catch( com.sun.star.connection.NoConnectException e ) - { - // launch soffice - OfficeService aSOffice = new OfficeService(); - aSOffice.startupService(); - - // wait until soffice is started - long nMaxMillis = System.currentTimeMillis() + 1000*aSOffice.getStartupTime(); - while ( aInitialObject == null ) - { - try - { - // try to connect to soffice - Thread.currentThread().sleep( 500 ); - aInitialObject = xUrlResolver.resolve( mURL ); - } - catch( com.sun.star.connection.NoConnectException aEx ) - { - // soffice did not start in time - if ( System.currentTimeMillis() > nMaxMillis ) - throw aEx; - - } - } - } - finally - { - } - - // XComponentContext - if( null != aInitialObject ) - { - XPropertySet xPropertySet = (XPropertySet) - UnoRuntime.queryInterface( XPropertySet.class, aInitialObject); - Object xContext = xPropertySet.getPropertyValue("DefaultContext"); - XComponentContext xComponentContext = (XComponentContext) UnoRuntime.queryInterface( - XComponentContext.class, xContext); - return xComponentContext; - } - } - catch( com.sun.star.connection.NoConnectException e ) - { - System.out.println( "Couldn't connect to remote server" ); - System.out.println( e.getMessage() ); - } - catch( com.sun.star.connection.ConnectionSetupException e ) - { - System.out.println( "Couldn't access necessary local resource to establish the interprocess connection" ); - System.out.println( e.getMessage() ); - } - catch( com.sun.star.lang.IllegalArgumentException e ) - { - System.out.println( "uno-url is syntactical illegal ( " + mURL + " )" ); - System.out.println( e.getMessage() ); - } - catch( com.sun.star.uno.RuntimeException e ) - { - System.out.println( "--- RuntimeException:" ); - System.out.println( e.getMessage() ); - e.printStackTrace(); - System.out.println( "--- end." ); - throw e; - } - catch( java.lang.Exception e ) - { - System.out.println( "java.lang.Exception: " ); - System.out.println( e ); - e.printStackTrace(); - System.out.println( "--- end." ); - throw new com.sun.star.uno.RuntimeException( e.toString() ); - } - - return null; - } - - /** - * Retrives a path to the office program folder. - * - * @return The path to the office program folder. - */ - private String getProgramPath() - { - if (mProgramPath == null) - { - // determine name of executable soffice - String aExec = OFFICE_APP_NAME; // default for UNIX - String aOS = System.getProperty("os.name"); - - // running on Windows? - if (aOS.startsWith("Windows")) - aExec = OFFICE_APP_NAME + ".exe"; - - // add other non-UNIX operating systems here - // ... - - // find soffice executable relative to this class's class loader: - File path = NativeLibraryLoader.getResource( - this.getClass().getClassLoader(), aExec); - if (path != null) { - mProgramPath = path.getParent(); - } - - // default is "" - if ( mProgramPath == null ) - mProgramPath = ""; - } - return mProgramPath; - } - - /** - * Parses a connection URL. - * This method accepts a UNO URL with following format:<br /> - * <pre> - * url := uno:localoffice[,<params>];urp;StarOffice.NamingService - * params := <path>[,<pipe>] - * path := path=<pathv> - * pipe := pipe=<pipev> - * pathv := platform_specific_path_to_the_local_office_distribution - * pipev := local_office_connection_pipe_name - * </pre> - * - * <h4>Examples</h4> - * <ul> - * <li>"uno:localoffice,pipe=xyz_Office,path=/opt/openoffice11/program;urp;StarOffice.ServiceManager"; - * <li>"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"; - * </ul> - * - * @param url This is UNO URL which describes the type of a connection. - * @exception java.net.MalformedURLException when inappropreate URL was - * provided. - */ - private void parseUnoUrlWithOfficePath(String url, String prefix) - throws java.net.MalformedURLException - { - // Extruct parameters. - int idx = url.indexOf(";urp;StarOffice.NamingService"); - if (idx < 0) - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - String params = url.substring(prefix.length(), idx + 1); - - // Parse parameters. - String name = null; - String path = null; - String pipe = null; - char ch; - int state = 0; - StringBuffer buffer = new StringBuffer(); - for(idx = 0; idx < params.length(); idx += 1) { - ch = params.charAt(idx); - switch (state) { - case 0: // initial state - switch(ch) { - case ',': - buffer.delete(0, buffer.length()); - state = 1; - break; - - case ';': - state = 7; - break; - - default: - buffer.delete(0, buffer.length()); - buffer.append(ch); - state = 1; - break; - } - break; - - case 1: // parameter name - switch(ch) { - case ' ': - case '=': - name = buffer.toString(); - state = (ch == ' ')? 2: 3; - break; - - case ',': - case ';': - state = -6; // error: invalid name - break; - - default: - buffer.append(ch); - break; - } - break; - - case 2: // equal between the name and the value - switch(ch) { - case '=': - state = 3; - break; - - case ' ': - break; - - default: - state = -1; // error: missing '=' - break; - } - break; - - case 3: // value leading spaces - switch(ch) { - case ' ': - break; - - default: - buffer.delete(0, buffer.length()); - buffer.append(ch); - state = 4; - break; - } - break; - - case 4: // value - switch(ch) { - case ' ': - case ',': - case ';': - idx -= 1; // put back the last read character - state = 5; - if (name.equals("path")) { - if (path == null) - path = buffer.toString(); - else - state = -3; // error: more then one 'path' - } else if (name.equals("pipe")) { - if (pipe == null) - pipe = buffer.toString(); - else - state = -4; // error: more then one 'pipe' - } else - state = -2; // error: unknown parameter - buffer.delete(0, buffer.length()); - break; - - default: - buffer.append(ch); - break; - } - break; - - case 5: // a delimeter after the value - switch(ch) { - case ' ': - break; - - case ',': - state = 6; - break; - - case ';': - state = 7; - break; - - default: - state = -5; // error: ' ' inside the value - break; - } - break; - - case 6: // leading spaces before next parameter name - switch(ch) { - case ' ': - break; - - default: - buffer.delete(0, buffer.length()); - buffer.append(ch); - state = 1; - break; - } - break; - - default: - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - } - } - if (state != 7) - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - - // Set up the connection parameters. - if (path != null) - mProgramPath = path; - if (pipe != null) - mPipe = pipe; - } - - /* replaces each substring aSearch in aString by aReplace. - - StringBuffer.replaceAll() is not avaialable in Java 1.3.x. - */ - private static String replaceAll(String aString, String aSearch, String aReplace ) - { - StringBuffer aBuffer = new StringBuffer(aString); - - int nPos = aString.length(); - int nOfs = aSearch.length(); - - while ( ( nPos = aString.lastIndexOf( aSearch, nPos - 1 ) ) > -1 ) - aBuffer.replace( nPos, nPos+nOfs, aReplace ); - - return aBuffer.toString(); - } - - - /** creates a unique pipe name. - */ - static String getPipeName() - { - // turn user name into a URL and file system safe name (% chars will not work) - String aPipeName = System.getProperty("user.name") + OFFICE_ID_SUFFIX; - aPipeName = replaceAll( aPipeName, "_", "%B7" ); - return replaceAll( replaceAll( java.net.URLEncoder.encode(aPipeName), "\\+", "%20" ), "%", "_" ); - } - - /** - * @para This is an implementation of the native office service. - * @deprecated - */ - private class OfficeService - implements NativeService - { - /** - * Retrive the office service identifier. - * - * @return The identifier of the office service. - */ - public String getIdentifier() - { - if ( mPipe == null) - return getPipeName(); - else - return mPipe; - } - - /** - * Starts the office process. - */ - public void startupService() - throws java.io.IOException - { - // create call with arguments - String[] cmdArray = new String[4]; - cmdArray[0] = (new File(getProgramPath(), OFFICE_APP_NAME)).getPath(); - cmdArray[1] = "-nologo"; - cmdArray[2] = "-nodefault"; - if ( mConnType.equals( "pipe" ) ) - cmdArray[3] = "-accept=pipe,name=" + getIdentifier() + ";" + - mProtocol + ";" + mInitialObject; - else if ( mConnType.equals( "socket" ) ) - cmdArray[3] = "-accept=socket,port=" + mPort + ";urp"; - else - throw new java.io.IOException( "not connection specified" ); - - // start process - mProcess = Runtime.getRuntime().exec(cmdArray); - if ( mProcess == null ) - throw new RuntimeException( "cannot start soffice: " + cmdArray ); - } - - /** - * Retrives the ammount of time to wait for the startup. - * - * @return The ammount of time to wait in seconds(?). - */ - public int getStartupTime() - { - return 60; - } - } -} diff --git a/bean/com/sun/star/beans/LocalOfficeWindow.java b/bean/com/sun/star/beans/LocalOfficeWindow.java deleted file mode 100644 index d66066645..000000000 --- a/bean/com/sun/star/beans/LocalOfficeWindow.java +++ /dev/null @@ -1,309 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import java.awt.Component; - -import com.sun.star.lang.EventObject; -import com.sun.star.lang.SystemDependent; -import com.sun.star.lang.XEventListener; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.awt.Rectangle; -import com.sun.star.awt.XWindow; -import com.sun.star.awt.XWindowPeer; -import com.sun.star.awt.XVclWindowPeer; -import com.sun.star.awt.XToolkit; -import com.sun.star.awt.WindowDescriptor; -import com.sun.star.awt.WindowAttribute; -import com.sun.star.awt.WindowClass; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XComponentContext; - -/** - * This class represents a local office window. - * @deprecated - */ -public class LocalOfficeWindow - extends java.awt.Canvas - implements OfficeWindow, XEventListener -{ - private transient OfficeConnection mConnection; - private transient XWindowPeer mParentProxy; - private transient XWindowPeer mWindow; - private boolean bPeer = false; - - /** - * Construnctor. - * - * @param connection The office connection object the window - * belongs to. - */ - /* package */ LocalOfficeWindow(OfficeConnection connection) - { - mConnection = connection; - mConnection.addEventListener((XEventListener)this); - } - - /** - * Retrives an AWT component object associated with the OfficeWindow. - * - * @return The AWT component object associated with the OfficeWindow. - */ - public Component getAWTComponent() - { - return this; - } - - /** - * Retrives an UNO XWindowPeer object associated with the OfficeWindow. - * - * @return The UNO XWindowPeer object associated with the OfficeWindow. - */ - public XWindowPeer getUNOWindowPeer() - { - if (mWindow == null) - createUNOWindowPeer(); - return mWindow; - } - - /** - * Receives a notification about the connection has been closed. - * This method has to set the connection to <code>null</code>. - * - * @source The event object. - */ - public void disposing(EventObject source) - { - // the window will be disposed by the framework - mWindow = null; - mConnection = null; - } - - /** - * Returns an AWT toolkit. - */ - private XToolkit queryAWTToolkit() - throws com.sun.star.uno.Exception - { - // Create a UNO toolkit. - XMultiComponentFactory compfactory; - XComponentContext xContext = mConnection.getComponentContext(); - if ( xContext != null ) - { - compfactory = mConnection.getComponentContext().getServiceManager(); - XMultiServiceFactory factory; - factory = (XMultiServiceFactory)UnoRuntime.queryInterface( - XMultiServiceFactory.class, compfactory); - Object object = factory.createInstance( "com.sun.star.awt.Toolkit"); - return (XToolkit)UnoRuntime.queryInterface(XToolkit.class, object); - } - else - return null; - } - - /// called when system parent is available, reparents the bean window - private void aquireSystemWindow() - { - if ( !bPeer ) - { - // set real parent - XVclWindowPeer xVclWindowPeer = (XVclWindowPeer)UnoRuntime.queryInterface( - XVclWindowPeer.class, mWindow); - xVclWindowPeer.setProperty( "PluginParent", new Long(getNativeWindow()) ); - bPeer = true; - - // show document window - XWindow aWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, mWindow); - aWindow.setVisible( true ); - } - } - - /// called when system parent is about to die, reparents the bean window - private void releaseSystemWindow() - { - if ( bPeer ) - { - // hide document window - XWindow aWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, mWindow); - aWindow.setVisible( false ); - - // set null parent - XVclWindowPeer xVclWindowPeer = (XVclWindowPeer)UnoRuntime.queryInterface( - XVclWindowPeer.class, mWindow); - xVclWindowPeer.setProperty( "PluginParent", new Long(0) ); - bPeer = false; - } - } - - /// callback handler to get to know when we become visible - //@deprecated - class ComponentEventHandler - extends java.awt.event.ComponentAdapter - { - public void componentHidden( java.awt.event.ComponentEvent e) - { - // only when we become invisible, we might lose our system window - CallWatchThread aCallWatchThread = new CallWatchThread( 500 ); - setVisible(false); - try { aCallWatchThread.cancel(); } - catch ( java.lang.InterruptedException aExc ) - {} // ignore - } - - public void componentShown( java.awt.event.ComponentEvent e) - { - // only when we become visible, we get a system window - aquireSystemWindow(); - } - } - - /// Overriding java.awt.Component.setVisible() due to Java bug (no showing event). - public void setVisible( boolean b ) - { - super.setVisible(b); - - // Java-Bug: componentShown() is never called :-( - // is still at least in Java 1.4.1_02 - if ( b ) - aquireSystemWindow(); - else - releaseSystemWindow(); - } - - /** Factory method for a UNO AWT toolkit window as a child of this Java window. - * - */ - private XWindowPeer createUNOWindowPeer() - { - try - { - // get this windows native window type - int type = getNativeWindowSystemType(); - - // Java AWT windows only have a system window when showing. - XWindowPeer parentPeer; - if ( isShowing() ) - { - // create direct parent relationship - //setVisible( true ); - parentPeer = new JavaWindowPeerFake( getNativeWindow(), type); - bPeer = true; - } - else - { - // no parent yet - parentPeer = null; - bPeer = false; - } - - // create native window (mWindow) - Rectangle aRect = new Rectangle( 0, 0, 20, 20 ); - WindowDescriptor desc = new WindowDescriptor(); - desc.Type = WindowClass.TOP; - desc.Parent = parentPeer; - desc.Bounds = aRect; - desc.WindowServiceName = "workwindow"; - desc.WindowAttributes = (type == SystemDependent.SYSTEM_WIN32) - ? WindowAttribute.SHOW : 0; - mWindow = queryAWTToolkit().createWindow(desc); - - // to get notified when we become visible - addComponentListener( new ComponentEventHandler() ); - - // set initial visibility - XWindow aWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, mWindow); - aWindow.setVisible( bPeer ); - } - catch (com.sun.star.uno.Exception exp) { - } - - return mWindow; - } - - /** - * Retrives a platform dependant system window identifier. - * - * @return The system window identifier. - */ - private native long getNativeWindow(); - - /** - * Retrives a platform dependant system window type. - * - * @return The system window type. - */ - private native int getNativeWindowSystemType(); - - //--------------------------------------------------------------------------- - /** Helper class to watch calls into OOo with a timeout. - * @deprecated - */ - class CallWatchThread extends Thread - { - Thread aWatchedThread; - long nTimeout; - - CallWatchThread( long nTimeout ) - { - this.aWatchedThread = Thread.currentThread(); - this.nTimeout = nTimeout; - start(); - } - - void cancel() - throws java.lang.InterruptedException - { - Thread aThread = aWatchedThread; - aWatchedThread = null; - stop(); - - if ( aThread.interrupted() ) - throw new InterruptedException(); - } - - public void run() - { - while ( aWatchedThread != null ) - { - try { sleep( nTimeout ); } - catch ( java.lang.InterruptedException aExc ) - {} - - //synchronized - { - if ( aWatchedThread != null ) - { - aWatchedThread.interrupt(); - } - } - } - } - }; - -} diff --git a/bean/com/sun/star/beans/NativeConnection.java b/bean/com/sun/star/beans/NativeConnection.java deleted file mode 100644 index 786ffce4e..000000000 --- a/bean/com/sun/star/beans/NativeConnection.java +++ /dev/null @@ -1,59 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import com.sun.star.connection.XConnection; -/* @deprecated - */ -/* package */ class NativeConnection - implements XConnection -{ - public native void connect(NativeService aNativeService) - throws com.sun.star.io.IOException; - - public native int read(/*OUT*/byte[][] aReadBytes, /*IN*/int nBytesToRead) - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public native void write(/*IN*/byte[] aData) - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public native void flush() - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public native void close() - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public synchronized String getDescription() - throws com.sun.star.uno.RuntimeException - { - return Description; - } - - private long NativeHandle; - private String Description; -} diff --git a/bean/com/sun/star/beans/NativeService.java b/bean/com/sun/star/beans/NativeService.java deleted file mode 100644 index 3a808b978..000000000 --- a/bean/com/sun/star/beans/NativeService.java +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -/* @deprecated - */ -/* package */ interface NativeService { - public String getIdentifier(); - public void startupService() throws java.io.IOException; - public int getStartupTime(); -} diff --git a/bean/com/sun/star/beans/OfficeConnection.java b/bean/com/sun/star/beans/OfficeConnection.java deleted file mode 100644 index 438f42277..000000000 --- a/bean/com/sun/star/beans/OfficeConnection.java +++ /dev/null @@ -1,79 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import java.awt.Container; - -import com.sun.star.lang.XComponent; -import com.sun.star.uno.XComponentContext; - -/** - * This abstract class reprecents a connection to the office - * application. - * @deprecated - */ -public interface OfficeConnection - extends XComponent -{ - /** - * Sets a connection URL. - * - * @param url This is UNO URL which describes the type of a connection. - */ - void setUnoUrl(String url) - throws java.net.MalformedURLException; - - /** - * Sets an AWT container catory. - * - * @param containerFactory This is a application provided AWT container - * factory. - */ - void setContainerFactory(ContainerFactory containerFactory); - - /** - * Retrives the UNO component context. - * Establishes a connection if necessary and initialises the - * UNO service manager if it has not already been initialised. - * - * @return The office UNO component context. - */ - XComponentContext getComponentContext(); - - /** - * Creates an office window. - * The window is either a sub-class of java.awt.Canvas (local) or - * java.awt.Container (RVP). - * - * This method does not add add the office window to its container. - * - * @param container This is an AWT container. - * @return The office window instance. - */ - OfficeWindow createOfficeWindow(Container container); -} diff --git a/bean/com/sun/star/beans/OfficeWindow.java b/bean/com/sun/star/beans/OfficeWindow.java deleted file mode 100644 index f3efaedad..000000000 --- a/bean/com/sun/star/beans/OfficeWindow.java +++ /dev/null @@ -1,55 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.beans; - -import java.awt.Component; - -import com.sun.star.awt.XWindowPeer; - -/** - * The concreate implementation of the OfficeWindow extends an - * approperate type of visual component (java.awt.Canvas for local - * and java.awt.Container for remote). - * @deprecated - */ -public interface OfficeWindow -{ - /** - * Retrives an AWT component object associated with the OfficeWindow. - * - * @return The AWT component object associated with the OfficeWindow. - */ - Component getAWTComponent(); - - /** - * Retrives an UNO XWindowPeer object associated with the OfficeWindow. - * - * @return The UNO XWindowPeer object associated with the OfficeWindow. - */ - XWindowPeer getUNOWindowPeer(); -} diff --git a/bean/com/sun/star/beans/makefile.mk b/bean/com/sun/star/beans/makefile.mk deleted file mode 100644 index 9fd82df51..000000000 --- a/bean/com/sun/star/beans/makefile.mk +++ /dev/null @@ -1,64 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ = ..$/..$/..$/.. -PRJNAME = beans -TARGET = com_sun_star_beans -PACKAGE = com$/sun$/star$/beans - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk -.IF "$(L10N_framework)"=="" -.IF "$(OS)"=="MACOSX" - -dummy: - @echo "Nothing to build for OS $(OS)" - -.ELSE # "$(OS)"=="MACOSX" - -JARFILES = ridl.jar unoil.jar jurt.jar juh.jar - -# --- Sources -------------------------------------------------------- - -JAVAFILES= \ - ContainerFactory.java \ - JavaWindowPeerFake.java \ - LocalOfficeConnection.java \ - LocalOfficeWindow.java \ - NativeConnection.java \ - NativeService.java \ - OfficeConnection.java \ - OfficeWindow.java - -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -.ENDIF - -# --- Targets ------------------------------------------------------ -.ENDIF # L10N_framework - -.INCLUDE : target.mk diff --git a/bean/com/sun/star/comp/beans/CallWatchThread.java b/bean/com/sun/star/comp/beans/CallWatchThread.java deleted file mode 100644 index b25868d21..000000000 --- a/bean/com/sun/star/comp/beans/CallWatchThread.java +++ /dev/null @@ -1,128 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - - -//--------------------------------------------------------------------------- -/** Helper class to watch calls into OOo with a timeout. - */ -//Do not add the thread instances to a threadgroup. When testing the bean in -//an applet it turned out the the ThreadGroup was in an inconsistent state -//after navigating off the site that contains the applet and back to it. -//That was tested with a Sun JRE 1.4.2_06 -public class CallWatchThread extends Thread -{ - private static boolean DEBUG = false; - - private Thread aWatchedThread; - private String aTag; - private boolean bAlive; - private long nTimeout; - - public CallWatchThread(long nTimeout) - { - this(nTimeout, ""); - } - - public CallWatchThread( long nTimeout, String aTag ) - { - super(aTag); - this.aWatchedThread = Thread.currentThread(); - this.nTimeout = nTimeout; - - this.aTag = aTag; - setDaemon( true ); - dbgPrint( "CallWatchThread(" + this + ").start(" + aTag + ")" ); - start(); - } - - public void cancel() - throws java.lang.InterruptedException - { - dbgPrint( "CallWatchThread(" + this + ".cancel(" + aTag + ")" ); - if ( aWatchedThread != null && aWatchedThread != Thread.currentThread() ) - throw new RuntimeException( "wrong thread" ); - aWatchedThread = null; - if ( interrupted() ) - throw new InterruptedException(); - } - - public synchronized void restart() - throws java.lang.InterruptedException - { - dbgPrint( "CallWatchThread(" + this + ".restart(" + aTag + ")" ); - if ( aWatchedThread != null && aWatchedThread != Thread.currentThread() ) - throw new RuntimeException( "wrong thread" ); - bAlive = true; - if ( interrupted() ) - throw new InterruptedException(); - notify(); - } - - public void run() - { - dbgPrint( "CallWatchThread(" + this + ".run(" + aTag + ") ***** STARTED *****" ); - long n = 0; - while ( aWatchedThread != null ) - { - dbgPrint( "CallWatchThread(" + this + ").run(" + aTag + ") running #" + ++n ); - synchronized(this) - { - bAlive = false; - try - { - wait( nTimeout ); - } - catch ( java.lang.InterruptedException aExc ) - { - bAlive = false; - } - - // watched thread seems to be dead (not answering)? - if ( !bAlive && aWatchedThread != null ) - { - dbgPrint( "CallWatchThread(" + this + ").run(" + aTag + ") interrupting" ); - aWatchedThread.interrupt(); - aWatchedThread = null; - } - } - } - - dbgPrint( "CallWatchThread(" + this + ").run(" + aTag + ") terminated" ); - } - - private void dbgPrint( String aMessage ) - { - if (DEBUG) - System.err.println( "OOoBean: " + aMessage ); - } -} - - - - diff --git a/bean/com/sun/star/comp/beans/ContainerFactory.java b/bean/com/sun/star/comp/beans/ContainerFactory.java deleted file mode 100644 index f622ee329..000000000 --- a/bean/com/sun/star/comp/beans/ContainerFactory.java +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import java.awt.Container; - -/** - * This interface reprecents an AWT container factory. - * - * @deprecated - * - */ - -public interface ContainerFactory -{ - /** - * Creates an AWT container. - * - * @return An AWT container. - */ - Container createContainer(); -} diff --git a/bean/com/sun/star/comp/beans/Controller.java b/bean/com/sun/star/comp/beans/Controller.java deleted file mode 100644 index 22e055630..000000000 --- a/bean/com/sun/star/comp/beans/Controller.java +++ /dev/null @@ -1,110 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.uno.UnoRuntime; - -/** Wrapper class for a com.sun.star.frame.XController. - * - * @since OOo 2.0.0 - */ -public class Controller - extends Wrapper - implements - com.sun.star.frame.XController -{ - private com.sun.star.frame.XController xController; - private com.sun.star.frame.XDispatchProvider xDispatchProvider; - - Controller( com.sun.star.frame.XController xController ) - { - super( xController ); - this.xController = xController; - xDispatchProvider = (com.sun.star.frame.XDispatchProvider) - UnoRuntime.queryInterface( com.sun.star.frame.XDispatchProvider.class, - xController ); - } - - //============================================================== - // com.sun.star.frame.XController - //-------------------------------------------------------------- - - public void attachFrame( /*IN*/ com.sun.star.frame.XFrame xFrame ) - { - xController.attachFrame( xFrame ); - } - - public boolean attachModel( /*IN*/ com.sun.star.frame.XModel xModel ) - { - return xController.attachModel( xModel ); - } - - public boolean suspend( /*IN*/boolean bSuspend ) - { - return xController.suspend( bSuspend ); - } - - public java.lang.Object getViewData( ) - { - return xController.getViewData(); - } - - public void restoreViewData( /*IN*/java.lang.Object aData ) - { - xController.restoreViewData( aData ); - } - - public com.sun.star.frame.XModel getModel( ) - { - return xController.getModel(); - } - - public com.sun.star.frame.XFrame getFrame( ) - { - return xController.getFrame(); - } - - //============================================================== - // com.sun.star.frame.XDispatchProvider - //-------------------------------------------------------------- - - public com.sun.star.frame.XDispatch queryDispatch( - /*IN*/ com.sun.star.util.URL aURL, - /*IN*/ String aTargetFrameName, - /*IN*/ int nSearchFlags ) - { - return xDispatchProvider.queryDispatch( aURL, aTargetFrameName, nSearchFlags ); - } - - public com.sun.star.frame.XDispatch[] queryDispatches( - /*IN*/ com.sun.star.frame.DispatchDescriptor[] aRequests ) - { - return xDispatchProvider.queryDispatches( aRequests ); - } -} - diff --git a/bean/com/sun/star/comp/beans/Frame.java b/bean/com/sun/star/comp/beans/Frame.java deleted file mode 100644 index 28f95bd80..000000000 --- a/bean/com/sun/star/comp/beans/Frame.java +++ /dev/null @@ -1,182 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.uno.UnoRuntime; - -/** Wrapper class for a com.sun.star.frame.XFrame. - * - * @since OOo 2.0.0 - */ -public class Frame - extends Wrapper - implements - com.sun.star.frame.XFrame, - com.sun.star.frame.XDispatchProvider, - com.sun.star.frame.XDispatchProviderInterception -{ - private com.sun.star.frame.XFrame xFrame; - private com.sun.star.frame.XDispatchProvider xDispatchProvider; - private com.sun.star.frame.XDispatchProviderInterception xDispatchProviderInterception; - - public Frame( com.sun.star.frame.XFrame xFrame ) - { - super( xFrame ); - this.xFrame = xFrame; - xDispatchProvider = (com.sun.star.frame.XDispatchProvider) - UnoRuntime.queryInterface( com.sun.star.frame.XDispatchProvider.class, - xFrame ); - xDispatchProviderInterception = (com.sun.star.frame.XDispatchProviderInterception) - UnoRuntime.queryInterface( com.sun.star.frame.XDispatchProviderInterception.class, - xFrame ); - } - - //============================================================== - // com.sun.star.frame.XFrame - //-------------------------------------------------------------- - - public void initialize( /*IN*/com.sun.star.awt.XWindow xWindow ) - { - xFrame.initialize( xWindow ); - } - - public com.sun.star.awt.XWindow getContainerWindow( ) - { - return xFrame.getContainerWindow(); - } - - public void setCreator( /*IN*/ com.sun.star.frame.XFramesSupplier xCreator ) - { - xFrame.setCreator( xCreator ); - } - - public com.sun.star.frame.XFramesSupplier getCreator( ) - { - return xFrame.getCreator(); - } - - public String getName( ) - { - return xFrame.getName(); - } - - public void setName( /*IN*/ String aName ) - { - xFrame.setName( aName ); - } - - public com.sun.star.frame.XFrame findFrame( /*IN*/String aTargetFrameName, /*IN*/int nSearchFlags ) - { - return xFrame.findFrame( aTargetFrameName, nSearchFlags ); - } - - public boolean isTop( ) - { - return xFrame.isTop(); - } - - public void activate( ) - { - xFrame.activate(); - } - - public void deactivate( ) - { - xFrame.deactivate(); - } - - public boolean isActive( ) - { - return xFrame.isActive(); - } - - public boolean setComponent( /*IN*/com.sun.star.awt.XWindow xComponentWindow, /*IN*/ com.sun.star.frame.XController xController ) - { - return xFrame.setComponent( xComponentWindow, xController ); - } - - public com.sun.star.awt.XWindow getComponentWindow( ) - { - return xFrame.getComponentWindow(); - } - - public com.sun.star.frame.XController getController( ) - { - return xFrame.getController(); - } - - public void contextChanged( ) - { - xFrame.contextChanged(); - } - - public void addFrameActionListener( /*IN*/ com.sun.star.frame.XFrameActionListener xListener ) - { - xFrame.addFrameActionListener( xListener ); - } - - public void removeFrameActionListener( /*IN*/ com.sun.star.frame.XFrameActionListener xListener ) - { - xFrame.removeFrameActionListener( xListener ); - } - - //============================================================== - // com.sun.star.frame.XDispatchProvider - //-------------------------------------------------------------- - - public com.sun.star.frame.XDispatch queryDispatch( - /*IN*/ com.sun.star.util.URL aURL, - /*IN*/ String aTargetFrameName, - /*IN*/ int nSearchFlags ) - { - return xDispatchProvider.queryDispatch( aURL, aTargetFrameName, nSearchFlags ); - } - - public com.sun.star.frame.XDispatch[] queryDispatches( - /*IN*/ com.sun.star.frame.DispatchDescriptor[] aRequests ) - { - return xDispatchProvider.queryDispatches( aRequests ); - } - - //============================================================== - // com.sun.star.frame.XDispatchProviderInterception - //-------------------------------------------------------------- - - public void registerDispatchProviderInterceptor( - /*IN*/ com.sun.star.frame.XDispatchProviderInterceptor xInterceptor ) - { - xDispatchProviderInterception.registerDispatchProviderInterceptor( xInterceptor ); - } - - public void releaseDispatchProviderInterceptor( - /*IN*/ com.sun.star.frame.XDispatchProviderInterceptor xInterceptor ) - { - xDispatchProviderInterception.releaseDispatchProviderInterceptor( xInterceptor ); - } -}; - diff --git a/bean/com/sun/star/comp/beans/HasConnectionException.java b/bean/com/sun/star/comp/beans/HasConnectionException.java deleted file mode 100644 index d78b23cb7..000000000 --- a/bean/com/sun/star/comp/beans/HasConnectionException.java +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -/** This exception is thrown when a method is called which - is only defined for not already having an established - connection. - - @since OOo 2.0.0 - */ -public class HasConnectionException extends Exception -{ -}; - - diff --git a/bean/com/sun/star/comp/beans/InvalidArgumentException.java b/bean/com/sun/star/comp/beans/InvalidArgumentException.java deleted file mode 100644 index 03e9eea8b..000000000 --- a/bean/com/sun/star/comp/beans/InvalidArgumentException.java +++ /dev/null @@ -1,38 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -/** indicates an invalid argument in a function call. - * - * @deprecated - */ -public class InvalidArgumentException extends Exception -{ -}; - - diff --git a/bean/com/sun/star/comp/beans/JavaWindowPeerFake.java b/bean/com/sun/star/comp/beans/JavaWindowPeerFake.java deleted file mode 100644 index 82ae588a3..000000000 --- a/bean/com/sun/star/comp/beans/JavaWindowPeerFake.java +++ /dev/null @@ -1,122 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.uno.*; -import com.sun.star.awt.*; - -/** <p>Class to pass the system window handle to the OpenOffice.org toolkit.</p> - * - * @since OOo 2.0.0 - */ -/* package */ class JavaWindowPeerFake - implements XSystemDependentWindowPeer, XWindowPeer -{ - protected int localSystemType; - protected Any wrappedHandle; - - /** Create the faked window peer. - * @param _hWindow the system handle to the window. - * @param _systemType specifies the system type. - */ - public JavaWindowPeerFake(Any _hWindow, int _systemType) - { - localSystemType = _systemType; - wrappedHandle = _hWindow; - } - - /** <p>Implementation of XSystemDependentWindowPeer (that's all we really need)</p> - * This method is called back from the OpenOffice.org toolkit to retrieve the system data. - */ - public Object getWindowHandle(/*IN*/byte[] ProcessId, /*IN*/short SystemType) - throws com.sun.star.uno.RuntimeException - { - if (SystemType == localSystemType) { - return wrappedHandle; - } - else return null; - } - - /** not really neaded. - */ - public XToolkit getToolkit() - throws com.sun.star.uno.RuntimeException - { - return null; - } - - /** not really neaded. - */ - public void setPointer(/*IN*/XPointer Pointer) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void setBackground(/*IN*/int Color) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void invalidate(/*IN*/short Flags) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void invalidateRect(/*IN*/com.sun.star.awt.Rectangle Rect, /*IN*/short Flags) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void dispose() - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void addEventListener(/*IN*/com.sun.star.lang.XEventListener xListener) - throws com.sun.star.uno.RuntimeException - { - } - - /** not really neaded. - */ - public void removeEventListener(/*IN*/com.sun.star.lang.XEventListener aListener) - throws com.sun.star.uno.RuntimeException - { - } -} - diff --git a/bean/com/sun/star/comp/beans/LocalOfficeConnection.java b/bean/com/sun/star/comp/beans/LocalOfficeConnection.java deleted file mode 100644 index d398cf7c2..000000000 --- a/bean/com/sun/star/comp/beans/LocalOfficeConnection.java +++ /dev/null @@ -1,834 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import java.awt.Container; -import java.io.File; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.lang.XComponent; -import com.sun.star.lang.XEventListener; -import com.sun.star.connection.XConnection; -import com.sun.star.connection.XConnector; -import com.sun.star.bridge.XBridge; -import com.sun.star.bridge.XBridgeFactory; -import com.sun.star.beans.XPropertySet; -import com.sun.star.uno.XComponentContext; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.Exception; -import com.sun.star.lib.uno.helper.UnoUrl; -import com.sun.star.lib.util.NativeLibraryLoader; - -/** - * This class reprecents a connection to the local office application. - * - * @since OOo 2.0.0 - */ -public class LocalOfficeConnection - implements OfficeConnection -{ - public static final String OFFICE_APP_NAME = "soffice"; - public static final String OFFICE_LIB_NAME = "officebean"; - public static final String OFFICE_ID_SUFFIX = "_Office"; - - private static String mProgramPath; - - private Process mProcess; - private ContainerFactory mContainerFactory; - private XComponentContext mContext; - private XBridge mBridge; - - private String mURL; - private String mConnType; - private String mPipe; - private String mPort; - private String mProtocol; - private String mInitialObject; - - private List mComponents = new Vector(); - - private static long m_nBridgeCounter = 0; - //------------------------------------------------------------------------- - static - { - // preload shared libraries whichs import lips are linked to officebean - if ( System.getProperty( "os.name" ).startsWith( "Windows" ) ) - { - try - { - NativeLibraryLoader.loadLibrary(LocalOfficeConnection.class.getClassLoader(), "msvcr70"); - } - catch (Throwable e) - { - // loading twice would fail - System.err.println( "cannot find msvcr70" ); - } - - try - { - NativeLibraryLoader.loadLibrary(LocalOfficeConnection.class.getClassLoader(), "msvcr71"); - } - catch (Throwable e) - { - // loading twice would fail - System.err.println( "cannot find msvcr71" ); - } - - try - { - NativeLibraryLoader.loadLibrary(LocalOfficeConnection.class.getClassLoader(), "uwinapi"); - } - catch (Throwable e) - { - // loading twice would fail - System.err.println( "cannot find uwinapi" ); - } - - try - { - NativeLibraryLoader.loadLibrary(LocalOfficeConnection.class.getClassLoader(), "jawt"); - } - catch (Throwable e) - { - // loading twice would fail - System.err.println( "cannot find jawt" ); - } - } - - // load shared library for JNI code - NativeLibraryLoader.loadLibrary( LocalOfficeConnection.class.getClassLoader(), "officebean" ); - } - - //------------------------------------------------------------------------- - // debugging method - private void dbgPrint( String aMessage ) - { - System.err.println( aMessage ); - } - - /** - * Constructor. - * Sets up paths to the office application and native libraries if - * values are available in <code>OFFICE_PROP_FILE</code> in the user - * home directory.<br /> - * "com.sun.star.beans.path" - the office application directory;<br/> - * "com.sun.star.beans.libpath" - native libraries directory. - */ - public LocalOfficeConnection() - { - // init member vars - try - { - setUnoUrl( "uno:pipe,name=" + getPipeName() + ";urp;StarOffice.ServiceManager" ); - } - catch ( java.net.MalformedURLException e ) - {} - } - - /** - * protected Constructor - * Initialise a LocalOfficeConnection with an already running office. - * This C'Tor is only used in complex tests at the moment. - * @param xContext - */ - protected LocalOfficeConnection(com.sun.star.uno.XComponentContext xContext) - { - this.mContext = xContext; - } - - /** - * Sets a connection URL. - * This implementation accepts a UNO URL with following format:<br /> - * <pre> - * url := uno:localoffice[,<params>];urp;StarOffice.ServiceManager - * params := <path>[,<pipe>] - * path := path=<pathv> - * pipe := pipe=<pipev> - * pathv := platform_specific_path_to_the_local_office_distribution - * pipev := local_office_connection_pipe_name - * </pre> - * - * @param url This is UNO URL which discribes the type of a connection. - */ - public void setUnoUrl(String url) - throws java.net.MalformedURLException - { - mURL = null; - - String prefix = "uno:localoffice"; - if ( url.startsWith(prefix) ) - parseUnoUrlWithOfficePath( url, prefix ); - else - { - try - { - UnoUrl aURL = UnoUrl.parseUnoUrl( url ); - mProgramPath = null; - mConnType = aURL.getConnection(); - mPipe = (String) aURL.getConnectionParameters().get( "pipe" ); - mPort = (String) aURL.getConnectionParameters().get( "port" ); - mProtocol = aURL.getProtocol(); - mInitialObject = aURL.getRootOid(); - } - catch ( com.sun.star.lang.IllegalArgumentException eIll ) - { - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - } - } - mURL = url; - } - - /** - * Sets an AWT container catory. - * - * @param containerFactory This is a application provided AWT container - * factory. - */ - public void setContainerFactory(ContainerFactory containerFactory) - { - mContainerFactory = containerFactory; - } - - /** - * Retrives the UNO component context. - * Establishes a connection if necessary and initialises the - * UNO service manager if it has not already been initialised. - * This method can return <code>null</code> if it fails to connect - * to the office application. - * - * @return The office UNO component context. - */ - synchronized public XComponentContext getComponentContext() - { - if ( mContext == null ) - mContext = connect(); - return mContext; - } - - /** - * Creates an office window. - * The window is either a sub-class of java.awt.Canvas (local) or - * java.awt.Container (RVP). - * - * @param container This is an AWT container. - * @return The office window instance. - */ - public OfficeWindow createOfficeWindow(Container container) - { - return new LocalOfficeWindow(this); - } - - /** - * Closes the connection. - */ - public void dispose() - { - Iterator itr = mComponents.iterator(); - while (itr.hasNext() == true) { - // ignore runtime exceptions in dispose - try { ((XEventListener)itr.next()).disposing(null); } - catch ( RuntimeException aExc ) {} - } - mComponents.clear(); - - //Terminate the bridge. It turned out that this is necessary for the bean - //to work properly when displayed in an applet within Internet Explorer. - //When navigating off the page which is showing the applet and then going - //back to it, then the Java remote bridge is damaged. That is the Java threads - //do not work properly anymore. Therefore when Applet.stop is called the connection - //to the office including the bridge needs to be terminated. - if (mBridge != null) - { - XComponent comp = (XComponent)UnoRuntime.queryInterface( - XComponent.class, mBridge); - if (comp != null) - comp.dispose(); - else - System.err.println("LocalOfficeConnection: could not dispose bridge!"); - - mBridge = null; - } - - mContainerFactory = null; - mContext = null; - } - - /** - * Adds an event listener to the object. - * - * @param listener is a listener object. - */ - public void addEventListener(XEventListener listener) - { - mComponents.add(listener); - } - - /** - * Removes an event listener from the listener list. - * - * @param listener is a listener object. - */ - public void removeEventListener(XEventListener listener) - { - mComponents.remove(listener); - } - - /** - * Establishes the connection to the office. - */ - private XComponentContext connect() - { - try - { - // create default local component context - XComponentContext xLocalContext = - com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null); - - // initial serviceManager - XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager(); - - // try to connect to soffice - Object aInitialObject = null; - try - { - aInitialObject = resolve(xLocalContext, mURL); - } - catch( com.sun.star.connection.NoConnectException e ) - { - // launch soffice - OfficeService aSOffice = new OfficeService(); - aSOffice.startupService(); - - // wait until soffice is started - long nMaxMillis = System.currentTimeMillis() + 1000*aSOffice.getStartupTime(); - while ( aInitialObject == null ) - { - try - { - // try to connect to soffice - Thread.currentThread().sleep( 500 ); - aInitialObject = resolve(xLocalContext, mURL); - } - catch( com.sun.star.connection.NoConnectException aEx ) - { - // soffice did not start in time - if ( System.currentTimeMillis() > nMaxMillis ) - throw aEx; - - } - } - } - finally - { - } - - // XComponentContext - if( null != aInitialObject ) - { - XPropertySet xPropertySet = (XPropertySet) - UnoRuntime.queryInterface( XPropertySet.class, aInitialObject); - Object xContext = xPropertySet.getPropertyValue("DefaultContext"); - XComponentContext xComponentContext = (XComponentContext) UnoRuntime.queryInterface( - XComponentContext.class, xContext); - return xComponentContext; - } - } - catch( com.sun.star.connection.NoConnectException e ) - { - System.out.println( "Couldn't connect to remote server" ); - System.out.println( e.getMessage() ); - } - catch( com.sun.star.connection.ConnectionSetupException e ) - { - System.out.println( "Couldn't access necessary local resource to establish the interprocess connection" ); - System.out.println( e.getMessage() ); - } - catch( com.sun.star.lang.IllegalArgumentException e ) - { - System.out.println( "uno-url is syntactical illegal ( " + mURL + " )" ); - System.out.println( e.getMessage() ); - } - catch( com.sun.star.uno.RuntimeException e ) - { - System.out.println( "--- RuntimeException:" ); - System.out.println( e.getMessage() ); - e.printStackTrace(); - System.out.println( "--- end." ); - throw e; - } - catch( java.lang.Exception e ) - { - System.out.println( "java.lang.Exception: " ); - System.out.println( e ); - e.printStackTrace(); - System.out.println( "--- end." ); - throw new com.sun.star.uno.RuntimeException( e.toString() ); - } - - return null; - } - - - //The function is copied and adapted from the UrlResolver.resolve. - //We cannot use the URLResolver because we need access to the bridge which has - //to be disposed when Applet.stop is called. - private Object resolve(XComponentContext xLocalContext, String dcp) - throws com.sun.star.connection.NoConnectException, - com.sun.star.connection.ConnectionSetupException, - com.sun.star.lang.IllegalArgumentException - { - String conDcp = null; - String protDcp = null; - String rootOid = null; - - if(dcp.indexOf(';') == -1) {// use old style - conDcp = dcp; - protDcp = "iiop"; - rootOid = "classic_uno"; - } - else { // new style - int index = dcp.indexOf(':'); - String url = dcp.substring(0, index).trim(); - dcp = dcp.substring(index + 1).trim(); - - index = dcp.indexOf(';'); - conDcp = dcp.substring(0, index).trim(); - dcp = dcp.substring(index + 1).trim(); - - index = dcp.indexOf(';'); - protDcp = dcp.substring(0, index).trim(); - dcp = dcp.substring(index + 1).trim(); - - rootOid = dcp.trim().trim(); - } - - Object rootObject = null; - XBridgeFactory xBridgeFactory= null; - - XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager(); - try { - xBridgeFactory = (XBridgeFactory)UnoRuntime.queryInterface( - XBridgeFactory.class, - xLocalServiceManager.createInstanceWithContext( - "com.sun.star.bridge.BridgeFactory", xLocalContext)); - } catch (com.sun.star.uno.Exception e) { - throw new com.sun.star.uno.RuntimeException(e.getMessage()); - } - synchronized(this) { - if(mBridge == null) { - Object connector= null; - try { - connector = xLocalServiceManager.createInstanceWithContext( - "com.sun.star.connection.Connector", xLocalContext); - } catch (com.sun.star.uno.Exception e) { - throw new com.sun.star.uno.RuntimeException(e.getMessage()); - } - XConnector connector_xConnector = (XConnector)UnoRuntime.queryInterface(XConnector.class, connector); - // connect to the server - XConnection xConnection = connector_xConnector.connect(conDcp); - // create the bridge name. This should not be necessary if we pass an - //empty string as bridge name into createBridge. Then we should always get - //a new bridge. This does not work because of (i51323). Therefore we - //create unique bridge names for the current process. - String sBridgeName = "OOoBean_private_bridge_" + String.valueOf(m_nBridgeCounter++); - try { - mBridge = xBridgeFactory.createBridge(sBridgeName, protDcp, xConnection, null); - } catch (com.sun.star.bridge.BridgeExistsException e) { - throw new com.sun.star.uno.RuntimeException(e.getMessage()); - } - } - rootObject = mBridge.getInstance(rootOid); - return rootObject; - } - } - - - /** - * Retrives a path to the office program folder. - * - * @return The path to the office program folder. - */ - static private String getProgramPath() - { - if (mProgramPath == null) - { - // determine name of executable soffice - String aExec = OFFICE_APP_NAME; // default for UNIX - String aOS = System.getProperty("os.name"); - - // running on Windows? - if (aOS.startsWith("Windows")) - aExec = OFFICE_APP_NAME + ".exe"; - - // add other non-UNIX operating systems here - // ... - - // find soffice executable relative to this class's class loader: - File path = NativeLibraryLoader.getResource( - LocalOfficeConnection.class.getClassLoader(), aExec); - if (path != null) - mProgramPath = path.getParent(); - - // default is "" - if ( mProgramPath == null ) - mProgramPath = ""; - } - return mProgramPath; - } - - /** - * Parses a connection URL. - * This method accepts a UNO URL with following format:<br /> - * <pre> - * url := uno:localoffice[,<params>];urp;StarOffice.NamingService - * params := <path>[,<pipe>] - * path := path=<pathv> - * pipe := pipe=<pipev> - * pathv := platform_specific_path_to_the_local_office_distribution - * pipev := local_office_connection_pipe_name - * </pre> - * - * <h4>Examples</h4> - * <ul> - * <li>"uno:localoffice,pipe=xyz_Office,path=/opt/openoffice11/program;urp;StarOffice.ServiceManager"; - * <li>"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"; - * </ul> - * - * @param url This is UNO URL which describes the type of a connection. - * @exception java.net.MalformedURLException when inappropreate URL was - * provided. - */ - private void parseUnoUrlWithOfficePath(String url, String prefix) - throws java.net.MalformedURLException - { - // Extruct parameters. - int idx = url.indexOf(";urp;StarOffice.NamingService"); - if (idx < 0) - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - String params = url.substring(prefix.length(), idx + 1); - - // Parse parameters. - String name = null; - String path = null; - String pipe = null; - char ch; - int state = 0; - StringBuffer buffer = new StringBuffer(); - for(idx = 0; idx < params.length(); idx += 1) { - ch = params.charAt(idx); - switch (state) { - case 0: // initial state - switch(ch) { - case ',': - buffer.delete(0, buffer.length()); - state = 1; - break; - - case ';': - state = 7; - break; - - default: - buffer.delete(0, buffer.length()); - buffer.append(ch); - state = 1; - break; - } - break; - - case 1: // parameter name - switch(ch) { - case ' ': - case '=': - name = buffer.toString(); - state = (ch == ' ')? 2: 3; - break; - - case ',': - case ';': - state = -6; // error: invalid name - break; - - default: - buffer.append(ch); - break; - } - break; - - case 2: // equal between the name and the value - switch(ch) { - case '=': - state = 3; - break; - - case ' ': - break; - - default: - state = -1; // error: missing '=' - break; - } - break; - - case 3: // value leading spaces - switch(ch) { - case ' ': - break; - - default: - buffer.delete(0, buffer.length()); - buffer.append(ch); - state = 4; - break; - } - break; - - case 4: // value - switch(ch) { - case ' ': - case ',': - case ';': - idx -= 1; // put back the last read character - state = 5; - if (name.equals("path")) { - if (path == null) - path = buffer.toString(); - else - state = -3; // error: more then one 'path' - } else if (name.equals("pipe")) { - if (pipe == null) - pipe = buffer.toString(); - else - state = -4; // error: more then one 'pipe' - } else - state = -2; // error: unknown parameter - buffer.delete(0, buffer.length()); - break; - - default: - buffer.append(ch); - break; - } - break; - - case 5: // a delimeter after the value - switch(ch) { - case ' ': - break; - - case ',': - state = 6; - break; - - case ';': - state = 7; - break; - - default: - state = -5; // error: ' ' inside the value - break; - } - break; - - case 6: // leading spaces before next parameter name - switch(ch) { - case ' ': - break; - - default: - buffer.delete(0, buffer.length()); - buffer.append(ch); - state = 1; - break; - } - break; - - default: - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - } - } - if (state != 7) - throw new java.net.MalformedURLException( - "Invalid UNO connection URL."); - - // Set up the connection parameters. - if (path != null) - mProgramPath = path; - if (pipe != null) - mPipe = pipe; - } - - /* replaces each substring aSearch in aString by aReplace. - - StringBuffer.replaceAll() is not avaialable in Java 1.3.x. - */ - private static String replaceAll(String aString, String aSearch, String aReplace ) - { - StringBuffer aBuffer = new StringBuffer(aString); - - int nPos = aString.length(); - int nOfs = aSearch.length(); - - while ( ( nPos = aString.lastIndexOf( aSearch, nPos - 1 ) ) > -1 ) - aBuffer.replace( nPos, nPos+nOfs, aReplace ); - - return aBuffer.toString(); - } - - - /** creates a unique pipe name. - */ - static String getPipeName() - { - // turn user name into a URL and file system safe name (% chars will not work) - String aPipeName = System.getProperty("user.name") + OFFICE_ID_SUFFIX; - aPipeName = replaceAll( aPipeName, "_", "%B7" ); - return replaceAll( replaceAll( java.net.URLEncoder.encode(aPipeName), "+", "%20" ), "%", "_" ); - } - - /** - * @para This is an implementation of the native office service. - */ - private class OfficeService - implements NativeService - { - /** - * Retrive the office service identifier. - * - * @return The identifier of the office service. - */ - public String getIdentifier() - { - if ( mPipe == null) - return getPipeName(); - else - return mPipe; - } - - /** - * Starts the office process. - */ - public void startupService() - throws java.io.IOException - { - int nSizeCmdArray = 4; - String sOption = null; - //examine if user specified command-line options in system properties. - //We may offer later a more sophisticated way of providing options if - //the need arises. Currently this is intended to ease the pain during - //development with pre-release builds of OOo where one wants to start - //OOo with the -norestore options. The value of the property is simple - //passed on to the Runtime.exec call. - try { - sOption = System.getProperty("com.sun.star.officebean.Options"); - if (sOption != null) - nSizeCmdArray ++; - } catch (java.lang.SecurityException e) - { - e.printStackTrace(); - } - // create call with arguments - String[] cmdArray = new String[nSizeCmdArray]; - - // read UNO_PATH environment variable to get path to soffice binary - String unoPath = System.getenv("UNO_PATH"); - if (unoPath == null) - throw new java.io.IOException( "UNO_PATH environment variable is not set (required system path to the office program directory)" ); - -// cmdArray[0] = (new File(getProgramPath(), OFFICE_APP_NAME)).getPath(); - cmdArray[0] = (new File(unoPath, OFFICE_APP_NAME)).getPath(); - cmdArray[1] = "-nologo"; - cmdArray[2] = "-nodefault"; - if ( mConnType.equals( "pipe" ) ) - cmdArray[3] = "-accept=pipe,name=" + getIdentifier() + ";" + - mProtocol + ";" + mInitialObject; - else if ( mConnType.equals( "socket" ) ) - cmdArray[3] = "-accept=socket,port=" + mPort + ";urp"; - else - throw new java.io.IOException( "not connection specified" ); - - if (sOption != null) - cmdArray[4] = sOption; - - // start process - mProcess = Runtime.getRuntime().exec(cmdArray); - if ( mProcess == null ) - throw new RuntimeException( "cannot start soffice: " + cmdArray ); - new StreamProcessor(mProcess.getInputStream(), System.out); - new StreamProcessor(mProcess.getErrorStream(), System.err); - } - - /** - * Retrives the ammount of time to wait for the startup. - * - * @return The ammount of time to wait in seconds(?). - */ - public int getStartupTime() - { - return 60; - } - } - - - - class StreamProcessor extends Thread - { - java.io.InputStream m_in; - java.io.PrintStream m_print; - - public StreamProcessor(final java.io.InputStream in, final java.io.PrintStream out) - { - m_in = in; - m_print = out; - start(); - } - - public void run() { - java.io.BufferedReader r = new java.io.BufferedReader( - new java.io.InputStreamReader(m_in) ); - try { - for ( ; ; ) { - String s = r.readLine(); - if ( s == null ) { - break; - } - m_print.println(s); - } - } catch ( java.io.IOException e ) { - e.printStackTrace( System.err ); - } - } - } - -} diff --git a/bean/com/sun/star/comp/beans/LocalOfficeWindow.java b/bean/com/sun/star/comp/beans/LocalOfficeWindow.java deleted file mode 100644 index b99f83c0c..000000000 --- a/bean/com/sun/star/comp/beans/LocalOfficeWindow.java +++ /dev/null @@ -1,288 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import java.awt.Component; - -import com.sun.star.lang.EventObject; -import com.sun.star.lang.SystemDependent; -import com.sun.star.lang.XEventListener; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.awt.Rectangle; -import com.sun.star.awt.XWindow; -import com.sun.star.awt.XWindowPeer; -import com.sun.star.awt.XVclWindowPeer; -import com.sun.star.awt.XToolkit; -import com.sun.star.awt.WindowDescriptor; -import com.sun.star.awt.WindowAttribute; -import com.sun.star.awt.WindowClass; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XComponentContext; -import com.sun.star.uno.Any; -import com.sun.star.uno.Type; -import com.sun.star.beans.NamedValue; - -/** - * This class represents a local office window. - * - * @since OOo 2.0.0 - */ -public class LocalOfficeWindow - extends java.awt.Canvas - implements OfficeWindow, XEventListener -{ - private transient OfficeConnection mConnection; - private transient XWindowPeer mParentProxy; - private transient XWindowPeer mWindow; - private boolean bPeer = false; - - /** - * Construnctor. - * - * @param connection The office connection object the window - * belongs to. - */ - protected LocalOfficeWindow(OfficeConnection connection) - { - mConnection = connection; - mConnection.addEventListener((XEventListener)this); - } - - /** - * Retrives an AWT component object associated with the OfficeWindow. - * - * @return The AWT component object associated with the OfficeWindow. - */ - public Component getAWTComponent() - { - return this; - } - - /** - * Retrives an UNO XWindowPeer object associated with the OfficeWindow. - * - * @return The UNO XWindowPeer object associated with the OfficeWindow. - */ - public XWindowPeer getUNOWindowPeer() - { - if (mWindow == null) - createUNOWindowPeer(); - return mWindow; - } - - /** - * Receives a notification about the connection has been closed. - * This method has to set the connection to <code>null</code>. - * - * @source The event object. - */ - public void disposing(EventObject source) - { - // the window will be disposed by the framework - mWindow = null; - mConnection = null; - } - - /** - * Returns an AWT toolkit. - */ - private XToolkit queryAWTToolkit() - throws com.sun.star.uno.Exception - { - // Create a UNO toolkit. - XMultiComponentFactory compfactory; - XComponentContext xContext = mConnection.getComponentContext(); - if ( xContext != null ) - { - compfactory = mConnection.getComponentContext().getServiceManager(); - XMultiServiceFactory factory; - factory = (XMultiServiceFactory)UnoRuntime.queryInterface( - XMultiServiceFactory.class, compfactory); - Object object = factory.createInstance( "com.sun.star.awt.Toolkit"); - return (XToolkit)UnoRuntime.queryInterface(XToolkit.class, object); - } - else - return null; - } - - /// called when system parent is available, reparents the bean window - private synchronized void aquireSystemWindow() - { - if ( !bPeer ) - { - // set real parent - XVclWindowPeer xVclWindowPeer = (XVclWindowPeer)UnoRuntime.queryInterface( - XVclWindowPeer.class, mWindow); - - xVclWindowPeer.setProperty( "PluginParent", getWrappedWindowHandle()); - bPeer = true; - // show document window - XWindow aWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, mWindow); - aWindow.setVisible( true ); - } - } - - /// called when system parent is about to die, reparents the bean window - private synchronized void releaseSystemWindow() - { - if ( bPeer ) - { - // hide document window - XWindow aWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, mWindow); - aWindow.setVisible( false ); - - // set null parent - XVclWindowPeer xVclWindowPeer = (XVclWindowPeer)UnoRuntime.queryInterface( - XVclWindowPeer.class, mWindow); - xVclWindowPeer.setProperty( "PluginParent", new Long(0) ); - bPeer = false; - } - } - - - /// Overriding java.awt.Component.setVisible() due to Java bug (no showing event). - public void setVisible( boolean b ) - { - super.setVisible(b); - - // Java-Bug: componentShown() is never called :-( - // is still at least in Java 1.4.1_02 - if ( b ) - aquireSystemWindow(); - else - releaseSystemWindow(); - } - - /** Factory method for a UNO AWT toolkit window as a child of this Java window. - * - */ - private synchronized XWindowPeer createUNOWindowPeer() - { - try - { - // get this windows native window type - int type = getNativeWindowSystemType(); - - // Java AWT windows only have a system window when showing. - XWindowPeer parentPeer; - if ( isShowing() ) - { - // create direct parent relationship - //setVisible( true ); - parentPeer = new JavaWindowPeerFake(getWrappedWindowHandle(), type); - bPeer = true; - } - else - { - // no parent yet - parentPeer = null; - bPeer = false; - } - - // create native window (mWindow) - Rectangle aRect = new Rectangle( 0, 0, 20, 20 ); - WindowDescriptor desc = new WindowDescriptor(); - desc.Type = WindowClass.TOP; - desc.Parent = parentPeer; - desc.Bounds = aRect; - desc.WindowServiceName = "workwindow"; - desc.WindowAttributes = (type == SystemDependent.SYSTEM_WIN32) - ? WindowAttribute.SHOW : 0; - mWindow = queryAWTToolkit().createWindow(desc); - - - // set initial visibility - XWindow aWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, mWindow); - aWindow.setVisible( bPeer ); - } - catch (com.sun.star.uno.Exception exp) { - } - - return mWindow; - } - /** We make sure that the office window is notified that the parent - * will be removed. - */ - public void removeNotify() - { - try { - releaseSystemWindow(); - } catch (java.lang.Exception e) { - System.err.println("LocaleOfficeWindow.removeNotify: Exception in releaseSystemWindow."); - System.err.println(e.getMessage()); - e.printStackTrace(System.err); - } - super.removeNotify(); - } - - /** - * Retrives a platform dependant system window identifier. - * - * @return The system window identifier. - */ - private native long getNativeWindow(); - - /** - * Retrives a platform dependant system window type. - * - * @return The system window type. - */ - private native int getNativeWindowSystemType(); - - /** - Returns an Any containing a sequences of com.sun.star.beans.NamedValue. One NamedValue - contains the name "WINDOW" and the value is a Long representing the window handle. - The second NamedValue has the name "XEMBED" and the value is true, when the XEmbed - protocol shall be used fore embedding the native Window. - */ - protected Any getWrappedWindowHandle() - { - - NamedValue window = new NamedValue( - "WINDOW", new Any(new Type(Long.class), new Long(getNativeWindow()))); - NamedValue xembed = new NamedValue( - "XEMBED", new Any(new Type(Boolean.class), new Boolean(false))); - - if (getNativeWindowSystemType() == SystemDependent.SYSTEM_XWINDOW ) - { - String vendor = System.getProperty("java.vendor"); - if (vendor.equals("Sun Microsystems Inc.") - && Boolean.valueOf(System.getProperty("sun.awt.xembedserver")).booleanValue()) - { - xembed = new NamedValue( - "XEMBED", - new Any(new Type(Boolean.class), new Boolean(true))); - } - } - return new Any( - new Type("[]com.sun.star.beans.NamedValue"), - new NamedValue[] {window, xembed}); - } - -} diff --git a/bean/com/sun/star/comp/beans/NativeConnection.java b/bean/com/sun/star/comp/beans/NativeConnection.java deleted file mode 100644 index d418d81f9..000000000 --- a/bean/com/sun/star/comp/beans/NativeConnection.java +++ /dev/null @@ -1,62 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.connection.XConnection; - -/* Connection to a locally running OOo instance. - * - * @deprecated. - */ -/* package */ class NativeConnection - implements XConnection -{ - public native void connect(NativeService aNativeService) - throws com.sun.star.io.IOException; - - public native int read(/*OUT*/byte[][] aReadBytes, /*IN*/int nBytesToRead) - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public native void write(/*IN*/byte[] aData) - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public native void flush() - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public native void close() - throws com.sun.star.io.IOException, com.sun.star.uno.RuntimeException; - - public synchronized String getDescription() - throws com.sun.star.uno.RuntimeException - { - return Description; - } - - private long NativeHandle; - private String Description; -} diff --git a/bean/com/sun/star/comp/beans/NativeService.java b/bean/com/sun/star/comp/beans/NativeService.java deleted file mode 100644 index b8faec55e..000000000 --- a/bean/com/sun/star/comp/beans/NativeService.java +++ /dev/null @@ -1,37 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -/* - * @deprecated - */ -/* package */ interface NativeService { - public String getIdentifier(); - public void startupService() throws java.io.IOException; - public int getStartupTime(); -} diff --git a/bean/com/sun/star/comp/beans/NoConnectionException.java b/bean/com/sun/star/comp/beans/NoConnectionException.java deleted file mode 100644 index c62c003d9..000000000 --- a/bean/com/sun/star/comp/beans/NoConnectionException.java +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -/** This exception is called when a method is called which - needs an established connection but no connection is - established yet or anymore. - - @since OOo 2.0.0 - */ -public class NoConnectionException extends Exception -{ -}; - - diff --git a/bean/com/sun/star/comp/beans/NoDocumentException.java b/bean/com/sun/star/comp/beans/NoDocumentException.java deleted file mode 100644 index cc73453bf..000000000 --- a/bean/com/sun/star/comp/beans/NoDocumentException.java +++ /dev/null @@ -1,38 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -/** indicates that an operation needed a document, but no document was loaded. - - @since OOo 2.0.0 - */ -public class NoDocumentException extends Exception -{ -}; - - diff --git a/bean/com/sun/star/comp/beans/OOoBean.java b/bean/com/sun/star/comp/beans/OOoBean.java deleted file mode 100644 index a9f79228b..000000000 --- a/bean/com/sun/star/comp/beans/OOoBean.java +++ /dev/null @@ -1,1518 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.uno.UnoRuntime; - -// @requirement FUNC.PERF.LRN/0.6 -// @requirement FUNC.PERF.LOC/0.6 -// @requirement FUNC.PERF.FIX/0.6 -/** This is the basic JavaBean for all OOo application modules. - - @requirement FUNC.RES.OTH/0.2 - No other resources are needed yet. - - @since OOo 2.0.0 - */ -public class OOoBean - - // @requirement FUNC.BEAN.VIEW/0.4 - extends java.awt.Container - - implements - // @requirement FUNC.PER/0.2 - java.io.Externalizable -{ - // timeout values (milli secs) - int nOOoStartTimeOut = 60000; - int nOOoCallTimeOut = 3000; - int nOOoCheckCycle = 1000; - - // This member contains the connection to an OOo instance if established. - private transient OfficeConnection iConnection; - private transient EventListener xConnectionListener; - - // @requirement FUNC.BEAN.VIEW/0.4 - // @requirement FUNC.BEAN.EDIT/0.4 - // This member contains the OOo window - // if a connection is established. - // It is a child of the OOoBean canvas. - private OfficeWindow xFrameWindow; - - // application environment - private transient com.sun.star.lang.XMultiServiceFactory xServiceFactory; - private transient com.sun.star.frame.XDesktop xDesktop; - - // document and frame - private transient Frame aFrame; - private transient Controller aController; - private transient OfficeDocument aDocument; - - // slot command execution environment - private transient com.sun.star.frame.XDispatchProvider xDispatcher; - private transient com.sun.star.util.XURLTransformer xURLTransformer; - - // properties - private boolean bIgnoreVisibility = false; // to show even if already visible - private boolean bMenuBarVisible = true; - private boolean bStandardBarVisible = true; - private boolean bToolBarVisible = true; - private boolean bStatusBarVisible = true; - - - // debugging method - private void dbgPrint( String aMessage ) - { - // System.err.println( "OOoBean: " + aMessage ); - } - - // @requirement FUNC.PER/0.2 - /** @internal - * @deprecated - */ - public void writeExternal( java.io.ObjectOutput aObjOut ) - { - // TBD - } - - // @requirement FUNC.PER/0.2 - /** @internal - * @deprecated - */ - public void readExternal( java.io.ObjectInput aObjIn ) - { - // TBD - } - - /** Generic constructor of the OOoBean. - - Neither a connection is established nor any document loaded. - */ - public OOoBean() - {} - - // @requirement FUNC.CON.MULT/0.3 - /** Constructor for an OOoBean which uses a specific office connection. - - The connection must be established but no document is loaded. - - @throws NoConnectionException - if the connection is not established. - - @deprecated Clients could use the getOOoConnection to obtain an OfficeConnection - and use it as argument in a constructor for another OOoBean instance. Calling - the dispose method of the OfficeConnection or the OOoBean's stopOOoConnection - method would make all instances of OOoBean stop working. - */ - public OOoBean( OfficeConnection iConnection ) - throws NoConnectionException - { - try { setOOoConnection( iConnection ); } - catch ( HasConnectionException aExc ) - { /* impossible here */ } - } - - /** Sets the timeout for methods which launch OOo in milli seconds. - - This method does not need a connection to an OOo instance. - */ - public void setOOoStartTimeOut( int nMilliSecs ) - { - nOOoStartTimeOut = nMilliSecs; - } - - /** Sets the timeout for normal OOO methods calls in milli seconds. - - This method does not need a connection to an OOo instance. - */ - public void setOOoCallTimeOut( int nMilliSecs ) - { - nOOoCallTimeOut = nMilliSecs; - } - - /** Sets the period length in milli seconds to check the OOo connection. - - This method does not need a connection to an OOo instance. - */ - public void setOOoCheckCycle( int nMilliSecs ) - { - nOOoCheckCycle = nMilliSecs; - } - - /** Sets the a connection to an OOo instance. - - @internal - */ - private synchronized void setOOoConnection( OfficeConnection iNewConnection ) - throws HasConnectionException, NoConnectionException - { - // the connection cannot be exchanged - if ( iConnection != null ) - throw new HasConnectionException(); - - // is there a real connection, not just the proxy? - com.sun.star.uno.XComponentContext xComponentContext = null; - try { xComponentContext = iNewConnection.getComponentContext(); } - catch ( java.lang.Throwable aExc ) - { throw new NoConnectionException(); } - if ( xComponentContext == null ) - throw new NoConnectionException(); - - // set the connection - iConnection = iNewConnection; - - // get notified when connection dies - if ( xConnectionListener != null ) - xConnectionListener.end(); - xConnectionListener = this.new EventListener("setOOoConnection"); - } - - // @requirement FUNC.CON.STRT/0.4 - /** Starts a connection to an OOo instance which is lauched if not running. - - @throws HasConnectionException - if a connection was already established. - - @throws NoConnectionException - if the specified connection cannot be established - */ - public void startOOoConnection( String aConnectionURL ) - throws java.net.MalformedURLException, - HasConnectionException, - NoConnectionException - { - // create a new connection from the given connection URL - LocalOfficeConnection aConnection = new LocalOfficeConnection(); - aConnection.setUnoUrl( aConnectionURL ); - setOOoConnection( aConnection ); - } - - // @requirement FUNC.CON.CHK/0.7 - /** Returns true if this OOoBean is connected to an OOo instance, - false otherwise. - - @deprecated This method is not useful in a multithreaded environment. Then - all threads accessing the instance would have to be synchronized in order to - make is method work. It is better - to call OOoBean's methods and be prepared to catch a NoConnectionException. - */ - public boolean isOOoConnected() - { - return iConnection != null; - } - - // @requirement FUNC.CON.STOP/0.4 - /** Disconnects from the connected OOo instance. - - If there was no connection yet or anymore, this method can be called - anyway. - - When the OOoBean is displayed in an applet by a web browser, then this - method must be called from within java.applet.Applet.stop. - */ - public synchronized void stopOOoConnection() - { - // clear OOo document, frame etc. - clear(); - - // cut the connection - OfficeConnection iExConnection = iConnection; - if ( iConnection != null ) - { - if ( xConnectionListener != null ) - { - xConnectionListener.end(); - } - iConnection = null; - iExConnection.dispose(); - } - - } - - // @requirement FUNC.CON.STOP/0.4 (via XComponent.dispose()) - // @requirement FUNC.CON.NTFY/0.4 (via XComponent.addEventListener()) - /** Returns the a connection to an OOo instance. - - If no connection exists, a default connection will be created. An OfficeConnection - can be used to register listeners of type com.sun.star.lang.EventListener, - which are notified when the connection to the - office dies. One should not call the dispose method, because this may result - in receiving com.sun.star.lang.DisposedExceptions when calling - {@link #stopOOoConnection stopOOoConnection} or other API methods. If other instances share the - same connection then they will stop function properly, because they loose their - connection as well. The recommended way to end the connection is - calling {@link #stopOOoConnection stopOOoConnection}. - - @throws NoConnectionException - if no connection can be established - - */ - public synchronized OfficeConnection getOOoConnection() - throws NoConnectionException - { - if ( iConnection == null ) - { - try { setOOoConnection( new LocalOfficeConnection() ); } - catch ( HasConnectionException aExc ) - { /* impossible here */ } - } - if ( iConnection.getComponentContext() == null ) - throw new NoConnectionException(); - return iConnection; - } - - /** Returns the service factory used by this OOoBean instance. - - @throws NoConnectionException - if no connection is established and no default connection can be established. - */ - public synchronized com.sun.star.lang.XMultiServiceFactory getMultiServiceFactory() - throws NoConnectionException - { - if ( xServiceFactory == null ) - { - // avoid concurrent access from multiple threads - final OfficeConnection iConn = getOOoConnection(); - - Thread aConnectorThread = new Thread() { - public void run() - { - com.sun.star.lang.XMultiComponentFactory aFactory = - iConn.getComponentContext().getServiceManager(); - xServiceFactory = (com.sun.star.lang.XMultiServiceFactory) - UnoRuntime.queryInterface( - com.sun.star.lang.XMultiServiceFactory.class, aFactory ); - } - }; - aConnectorThread.start(); - try { aConnectorThread.join(nOOoStartTimeOut); } - catch ( java.lang.InterruptedException aExc ) - { throw new NoConnectionException(); } - if ( xServiceFactory == null ) - throw new NoConnectionException(); - } - - return xServiceFactory; - } - - /** Returns the XDesktop interface of the OOo instance used by this OOoBean. - - @throws NoConnectionException - if no connection is established and no default connection can be established. - */ - public synchronized com.sun.star.frame.XDesktop getOOoDesktop() - throws NoConnectionException - { - if ( xDesktop == null ) - { - try - { - Object aObject = getMultiServiceFactory().createInstance( "com.sun.star.frame.Desktop"); - xDesktop = (com.sun.star.frame.XDesktop) UnoRuntime.queryInterface( - com.sun.star.frame.XDesktop.class, aObject ); - } - catch ( com.sun.star.uno.Exception aExc ) - {} // TBD: what if no connection exists? - } - - return xDesktop; - } - - /** Resets this bean to an empty document. - - If a document is loaded and the content modified, - the changes are dismissed. Otherwise nothing happens. - - This method is intended to be overridden in derived classes. - This implementation simply calls clear. - - @param bClearStateToo - Not only the document content but also the state of the bean, - like visibility of child components is cleared. - - @deprecated There is currently no way to dismiss changes, except for loading - of the unchanged initial document. Furthermore it is unclear how derived classes - handle this and what exactly their state is (e.g. what members make up their state). - Calling this method on a derived class requires knowledge about their implementation. - Therefore a deriving class should declare their own clearDocument if needed. Clients - should call the clearDocument of the deriving class or {@link #clear} which discards - the currently displayed document. - */ - public synchronized void clearDocument( boolean bClearStateToo ) - throws - com.sun.star.util.CloseVetoException, - NoConnectionException - { - // TBD - clear(); - } - - /** Resets the OOoBean to an empty status. - - Any loaded document is unloaded, no matter whether it is modified or not. - After calling this method, the OOoBean has no office document and no frame - anymore. The connection will stay, though. - - This method works with or without an established connection. - */ - public synchronized void clear() - { - dbgPrint( "clear()" ); - - try - { - CallWatchThread aCallWatchThread = - new CallWatchThread( nOOoCallTimeOut, "clear" ); - //By closing the frame we avoid that dialogs are displayed, for example when - //the document is modified. - com.sun.star.util.XCloseable xCloseable = (com.sun.star.util.XCloseable) - UnoRuntime.queryInterface( com.sun.star.util.XCloseable.class, aFrame ); - if ( xCloseable != null ) - { - try - { - xCloseable.close(true); - } - catch (com.sun.star.util.CloseVetoException exc) - { // a print job may be running - } - } - - aDocument = null; - xDispatcher = null; - aFrame = null; - - // clear xFrameWindow - if ( xFrameWindow != null ) - { - try { releaseSystemWindow(); } - catch ( NoConnectionException aExc ) - {} // ignore - catch ( SystemWindowException aExc ) - {} // ignore - remove( xFrameWindow.getAWTComponent() ); - xFrameWindow = null; - } - - // clear xURTTransformer - if ( xURLTransformer != null ) - { - try - { - com.sun.star.lang.XComponent xComp = (com.sun.star.lang.XComponent) - UnoRuntime.queryInterface( - com.sun.star.lang.XComponent.class, xURLTransformer ); - if ( xComp != null ) - xComp.dispose(); - } - catch ( java.lang.Throwable aExc ) - {} // ignore - xURLTransformer = null; - } - - xDesktop = null; - xServiceFactory = null; - - aCallWatchThread.cancel(); - } - catch ( java.lang.InterruptedException aExc ) - { /* can be ignored */ } - } - - // @requirement FUNC.PAR.LWP/0.4 - /** This method causes the office window to be displayed. - - If no document is loaded and the instance is added to a Java container that - is showing, then this method needs not to be called. If later one of the methods - {@link #loadFromURL loadFromURL}, {@link #loadFromStream loadFromStream1}, - or {@link #loadFromByteArray loadFromByteArray} - is called, then the document is automatically displayed. - - Should one of the load methods have been called before the Java container - was showing, then this method needs to be called after the container window - was made visible (java.lang.Component.setVisible(true)). - <p> - Another scenario is that a OOoBean contains a document and is removed - from a Java container and later added again. Then aquireSystemWindow needs - to be called after the container window is displayed. - - @throws SystemWindowException - if no system window can be aquired. - - @throws NoConnectionException - if the connection is not established. - */ - public synchronized void aquireSystemWindow() - throws - SystemWindowException, - - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException - { - if ( iConnection == null ) - throw new NoConnectionException(); - if ( !isShowing() ) - throw new SystemWindowException(); - - if ( xFrameWindow != null ) - xFrameWindow.getAWTComponent().setVisible(true); - doLayout(); - } - - // @requirement FUNC.PAR.RWL/0.4 - // @estimation 16h - /** This method must be called when the OOoBean before the - sytem window may be released by it's parent AWT/Swing component. - - This is the case when java.awt.Component.isDisplayable() returns - true. This is definitely the case when the OOoBean is removed - from it's parent container. - - @throws SystemWindowException - if system window is not aquired. - - @throws NoConnectionException - if the connection is not established. - - @deprecated When Component.removeNotify of the parent window of the actual - office window is called, then the actions are performed for which this method - needed to be called previously. - */ - public synchronized void releaseSystemWindow() - throws - SystemWindowException, - - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException - { - if ( iConnection == null ) - throw new NoConnectionException(); - - try { xFrameWindow.getAWTComponent().setVisible(false); } - catch ( com.sun.star.lang.DisposedException aExc ) - { throw new NoConnectionException(); } - } - - // @requirement FUNC.BEAN.LOAD/0.4 - // @requirement FUNC.CON.AUTO/0.3 - /** Loads the bean from the given URL. - - If a document is already loaded and the content modified, - the changes are dismissed. - - If no connection exists, a default connection is established. - - @throws IllegalArgumentException - if either of the arguments is out of the specified range. - - @throws java.io.IOException - if an IO error occurs reading the ressource specified by the URL. - - @throws com.sun.star.lang.NoConnectionException - if no connection can be established. - - @throws com.sun.star.util.CloseVetoException - if the currently displayed document cannot be closed because it is - still be used, for example it is printed. - */ - public void loadFromURL( - final String aURL, - final com.sun.star.beans.PropertyValue aArguments[] ) - throws - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException, - java.io.IOException, - com.sun.star.lang.IllegalArgumentException, - com.sun.star.util.CloseVetoException - { - dbgPrint( "loadFromURL()" ); - // try loading - try - { - boolean bLoaded = false; - while ( !bLoaded ) - { - // watch loading in a thread with a timeout (if OOo hangs) - CallWatchThread aCallWatchThread = - new CallWatchThread( nOOoStartTimeOut, "loadFromURL" ); - - try - { - // get window from OOo on demand - if ( xFrameWindow == null ) - { - // Establish the connection by request of the ServiceFactory. - getMultiServiceFactory(); - - // remove existing child windows - removeAll(); - - // Create the OfficeWindow. - xFrameWindow = getOOoConnection().createOfficeWindow(OOoBean.this); - add( xFrameWindow.getAWTComponent() ); - } - - // create the document frame from UNO window. - if ( aFrame == null ) - { - // create the frame - com.sun.star.awt.XWindow xWindow = - (com.sun.star.awt.XWindow) UnoRuntime.queryInterface( - com.sun.star.awt.XWindow.class, xFrameWindow.getUNOWindowPeer()); - Object xFrame = xServiceFactory.createInstance( "com.sun.star.frame.Frame"); - aFrame = new Frame( (com.sun.star.frame.XFrame)UnoRuntime.queryInterface( - com.sun.star.frame.XFrame.class, xFrame ) ); - aFrame.initialize( xWindow ); - aFrame.setName( aFrame.toString() ); - - // register the frame at the desktop - com.sun.star.frame.XFrames xFrames = - ( (com.sun.star.frame.XFramesSupplier)UnoRuntime.queryInterface( - com.sun.star.frame.XFramesSupplier.class, getOOoDesktop() ) ).getFrames(); - xFrames.append( aFrame ); - } - - // Initializes the slot command execution environment. - xURLTransformer = (com.sun.star.util.XURLTransformer) UnoRuntime.queryInterface( - com.sun.star.util.XURLTransformer.class, - xServiceFactory.createInstance( "com.sun.star.util.URLTransformer") ); - - try - { - xDispatcher = UnoRuntime.queryInterface(com.sun.star.frame.XDispatchProvider.class, aFrame); - } - catch (Exception e) - { - /*ignore!*/ - } - - // get XComponentLoader from frame - com.sun.star.frame.XComponentLoader xLoader = (com.sun.star.frame.XComponentLoader) - UnoRuntime.queryInterface( com.sun.star.frame.XComponentLoader.class, aFrame ); - if ( xLoader == null ) - { - throw new java.lang.RuntimeException( - "com.sun.star.frame.Frame(" + aFrame + - ") without com.sun.star.frame.XComponentLoader" ); - } - - // Avoid Dialog 'Document changed' while reloading - if ( aDocument != null ) - { - try { - aDocument.setModified(false); - } catch (com.sun.star.beans.PropertyVetoException ep) { - //it dosn't make sense to throw the exception here. The interface does not - //offer a way to add/remove respective listeners. - } catch (com.sun.star.lang.DisposedException ed) { - // can be disposed if user closed document via UI - } - - com.sun.star.frame.XController xOldController = null; - if ( aFrame != null ) - xOldController = aFrame.getController(); - - try - { - - if ( aFrame != null && xOldController != null ) - if (xOldController.suspend(true) == false) - throw new com.sun.star.util.CloseVetoException( - "Dokument is still being used and cannot be closed.", this); - - } - catch (java.lang.IllegalStateException exp) - {} - } - - // load the document. - com.sun.star.beans.PropertyValue aArgs[] = - addArgument( aArguments, new com.sun.star.beans.PropertyValue( - "MacroExecutionMode", -1, - new Short( com.sun.star.document.MacroExecMode.USE_CONFIG ), - com.sun.star.beans.PropertyState.DIRECT_VALUE ) ); - //String fn = aFRame.getName(); - - com.sun.star.lang.XComponent xComponent = xLoader.loadComponentFromURL( - aURL, /*aFrame.getName()*/"_self", 0, aArgs ); - - // nothing loaded? - if ( xComponent == null && aDocument != null ) - { - // reactivate old document - if ( aFrame != null && aFrame.getController() != null ) - aFrame.getController().suspend(false); - aDocument.setModified(true); - - // throw exception - throw new java.io.IOException( - "Can not load a document: \"" + aURL + "\""); - } - // mDocumentURL = aURL; TBD: still needed? - - // Get document's XModifiable interface if any. - aDocument = new OfficeDocument( - (com.sun.star.frame.XModel) UnoRuntime.queryInterface( - com.sun.star.frame.XModel.class, xComponent ) ); - bLoaded = true; - } - catch ( NoConnectionException aExc ) - { - // stop, clear and retry - stopOOoConnection(); - } - catch ( com.sun.star.lang.DisposedException aExc ) - { - // stop, clear and retry - stopOOoConnection(); - } - catch ( com.sun.star.uno.Exception aExc ) - { - // TDB: handling failure in createInstance - aExc.printStackTrace(); - throw new java.io.IOException(); - } - - aCallWatchThread.cancel(); - if ( xServiceFactory == null ) - throw new NoConnectionException(); - } - if ( iConnection == null ) - { - throw new NoConnectionException(); - } - - applyToolVisibilities(); - } - catch ( java.lang.InterruptedException aExc ) - { - throw new NoConnectionException(); - } - } - - /** Loads a document from a Java stream. - - See loadFromURL() for further information. - */ - public void loadFromStream( - final java.io.InputStream iInStream, - final com.sun.star.beans.PropertyValue aArguments[] ) - throws - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException, - java.io.IOException, - com.sun.star.lang.IllegalArgumentException, - com.sun.star.util.CloseVetoException - { - // wrap Java stream into UNO stream - /* - com.sun.star.io.XInputStream xStream = - new com.sun.star.lib.uno.adapter.InputStreamToXInputStreamAdapter( - iInStream ); - */ - // copy stream.... - - int s = 4096; - int r=0 ,n = 0; - byte[] buffer = new byte[s]; - byte[] newBuffer = null; - while ((r = iInStream.read(buffer, n, buffer.length-n))>0) { - n += r; - if (iInStream.available() > buffer.length - n) { - newBuffer = new byte[buffer.length*2]; - System.arraycopy(buffer, 0, newBuffer, 0, n); - buffer = newBuffer; - } - } - if (buffer.length != n) { - newBuffer = new byte[n]; - System.arraycopy(buffer, 0, newBuffer, 0, n); - buffer = newBuffer; - } - com.sun.star.io.XInputStream xStream = - new com.sun.star.lib.uno.adapter.ByteArrayToXInputStreamAdapter(buffer); - - // add stream to arguments - com.sun.star.beans.PropertyValue[] aExtendedArguments = - addArgument( aArguments, new com.sun.star.beans.PropertyValue( - "InputStream", -1, xStream, com.sun.star.beans.PropertyState.DIRECT_VALUE ) ); - - // call normal load method - loadFromURL( "private:stream", aExtendedArguments ); - } - - /** Loads a document from a byte array. - - See loadFromURL() for further information. - */ - public void loadFromByteArray( - final byte aInBuffer[], - final com.sun.star.beans.PropertyValue aArguments[] ) - throws - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException, - java.io.IOException, - com.sun.star.lang.IllegalArgumentException, - com.sun.star.util.CloseVetoException - { - // wrap byte arrray into UNO stream - com.sun.star.io.XInputStream xStream = - new com.sun.star.lib.uno.adapter.ByteArrayToXInputStreamAdapter( - aInBuffer ); - - // add stream to arguments - com.sun.star.beans.PropertyValue[] aExtendedArguments = - addArgument( aArguments, new com.sun.star.beans.PropertyValue( - "InputStream", -1, xStream, com.sun.star.beans.PropertyState.DIRECT_VALUE ) ); - - // call normal load method - loadFromURL( "private:stream", aExtendedArguments ); - } - - /** Stores a document to the given URL. - <p> - Due due a bug (50651) calling this method may cause the office to crash, - when at the same time the office writes a backup of the document. This bug - also affects {@link #storeToByteArray storeToByteArray} and - {@link #storeToStream storeToStream}. The workaround - is to start the office with the option -norestore, which disables the automatic - backup and recovery mechanism. OOoBean offers currently no supported way of providing - startup options for OOo. But it is possible to set a Java property when starting - Java, which is examined by OOoBean: - <pre> - java -Dcom.sun.star.officebean.Options=-norestore ... - </pre> - It is planned to offer a way of specifying startup options in a future version. - The property can be used until then. When using this property only one option - can be provided. - - @throws IllegalArgumentException - if either of the arguments is out of the specified range. - - @throws java.io.IOException - if an IO error occurs reading the ressource specified by the URL. - - @throws com.sun.star.lang.NoConnectionException - if no connection is established. - - @throws NoDocumentException - if no document is loaded - */ - public void storeToURL( - final String aURL, - final com.sun.star.beans.PropertyValue aArguments[] ) - throws - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException, - java.io.IOException, - com.sun.star.lang.IllegalArgumentException, - NoDocumentException - { - // no document available? - if ( aDocument == null ) - throw new NoDocumentException(); - - try - { - // start runtime timeout - CallWatchThread aCallWatchThread = - new CallWatchThread( nOOoCallTimeOut, "storeToURL" ); - - // store the document - try { aDocument.storeToURL( aURL, aArguments ); } - catch ( com.sun.star.io.IOException aExc ) - { throw new java.io.IOException(); } - - // end runtime timeout - aCallWatchThread.cancel(); - } - catch ( java.lang.InterruptedException aExc ) - { throw new NoConnectionException(); } - } - - /** Stores a document to a stream. - - See {@link #storeToURL storeToURL} for further information. - @see #storeToURL storeToURL - */ - public java.io.OutputStream storeToStream( - java.io.OutputStream aOutStream, - final com.sun.star.beans.PropertyValue aArguments[] ) - throws - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException, - NoDocumentException, - java.io.IOException, - com.sun.star.lang.IllegalArgumentException - - { - // wrap Java stream into UNO stream - com.sun.star.lib.uno.adapter.OutputStreamToXOutputStreamAdapter aStream = - new com.sun.star.lib.uno.adapter.OutputStreamToXOutputStreamAdapter( - aOutStream ); - - // add stream to arguments - com.sun.star.beans.PropertyValue[] aExtendedArguments = - addArgument( aArguments, new com.sun.star.beans.PropertyValue( - "OutputStream", -1, aStream, com.sun.star.beans.PropertyState.DIRECT_VALUE ) ); - - // call normal store method - storeToURL( "private:stream", aExtendedArguments ); - - // get byte array from document stream - try { aStream.closeOutput(); } - catch ( com.sun.star.io.NotConnectedException aExc ) - { /* TDB */ } - catch ( com.sun.star.io.BufferSizeExceededException aExc ) - { /* TDB */ } - catch ( com.sun.star.io.IOException aExc ) - { throw new java.io.IOException(); } - return aOutStream; - } - - /** Stores a document to a byte array. - - See {@link #storeToURL storeToURL} for further information. - @see #storeToURL storeToURL - */ - public byte[] storeToByteArray( - byte aOutBuffer[], - final com.sun.star.beans.PropertyValue aArguments[] ) - throws - // @requirement FUNC.CON.LOST/0.2 - NoConnectionException, - NoDocumentException, - java.io.IOException, - com.sun.star.lang.IllegalArgumentException - { - // wrap byte arrray into UNO stream - com.sun.star.lib.uno.adapter.XOutputStreamToByteArrayAdapter aStream = - new com.sun.star.lib.uno.adapter.XOutputStreamToByteArrayAdapter( - aOutBuffer ); - - // add stream to arguments - com.sun.star.beans.PropertyValue[] aExtendedArguments = - addArgument( aArguments, new com.sun.star.beans.PropertyValue( - "OutputStream", -1, aStream, com.sun.star.beans.PropertyState.DIRECT_VALUE ) ); - - // call normal store method - storeToURL( "private:stream", aExtendedArguments ); - - // get byte array from document stream - try { aStream.closeOutput(); } - catch ( com.sun.star.io.NotConnectedException aExc ) - { /* TDB */ } - catch ( com.sun.star.io.BufferSizeExceededException aExc ) - { /* TDB */ } - catch ( com.sun.star.io.IOException aExc ) - { throw new java.io.IOException(); } - return aStream.getBuffer(); - } - - // @requirement FUNC.BEAN.PROG/0.5 - // @requirement API.SIM.SEAP/0.2 - /** returns the <type scope="com::sun::star::frame">Frame</a> - of the bean. - - @returns - a Java class which implements all interfaces which the service - <type scope="com::sun::star::frame">Frame</a> implements. - Thus, methods can be called directly without queryInterface. - This feature might be implemented by UNO or explicitely coded. - - @throws NoConnectionException - if the connection is not established. - - @throws NotDocumentException - if no document is loaded an thus no frame is available. - */ - public Frame getFrame() - - throws - NoConnectionException // @requirement FUNC.CON.LOST/0.2 - { - if ( iConnection == null ) - throw new NoConnectionException(); - return aFrame; - } - - // @requirement FUNC.BEAN.PROG/0.5 - // @requirement API.SIM.SEAP/0.2 - /** returns the <type scope="com::sun::star::frame::Controller"> of the bean. - - @returns - a Java class which implements all interfaces which the service - <type scope="com::sun::star::frame">Controller</a> implements. - Thus, methods can be called directly without queryInterface. - This feature might be implemented by UNO or explicitely coded. - - @throws NoConnectionException - if the connection is not established. - */ - public Controller getController() - - // @requirement FUNC.CON.LOST/0.2 - throws NoConnectionException - { - if ( iConnection == null ) - throw new NoConnectionException(); - if ( aController == null ) - aController = new Controller( aFrame.getController() ); - return aController; - } - - // @requirement FUNC.BEAN.PROG/0.5 - // @requirement FUNC.BEAN.STOR/0.4 - // @requirement FUNC.BEAN.PRNT/0.4 - // @requirement API.SIM.SEAP/0.2 - /** returns the <type scope="com::sun::star::document::OfficeDocument"> - of the bean. - - @returns - a Java class which implements all interfaces which the service - <type scope="com::sun::star::document">OfficeDocument</a> - implements. - Thus, methods can be called directly without queryInterface. - This feature might be implemented by UNO or explicitely coded. - - @throws NoConnectionException - if the connection is not established. - */ - public OfficeDocument getDocument() - - // @requirement FUNC.CON.LOST/0.2 - throws NoConnectionException - { - if ( iConnection == null ) - throw new NoConnectionException(); - return aDocument; - } - - /** Sets visibility of all tool bars known by this OOoBean version. - - Initially all tool bars are visible. By hiding all tool bars - utilizing this method, it is possible to turn just a subset of - tool bars on afterwards, no matter whether all available tool - bars are known or not. - <p> - If an older OOoBean instance is used with a newer OOo instance, - some tool bars might not be affected by this method. - <p> - If no connection is established or no document is loaded, - the setting is memorized until a document is loaded. Same - is valid when the connection dies within this function call. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. For example: - <pre> -com.sun.star.beans.XPropertySet xPropSet = - (com.sun.star.beans.XPropertySet) UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class, aFrame ); -com.sun.star.frame.XLayoutManager xLayoutManager = - (com.sun.star.frame.XLayoutManager) UnoRuntime.queryInterface( - com.sun.star.frame.XLayoutManager.class, - xPropSet.getPropertyValue( "LayoutManager" ) ); -xLayoutManager.showElement("private:resource/menubar/menubar"); - </pre> - */ - public void setAllBarsVisible( boolean bVisible ) - { - bIgnoreVisibility = true; - setMenuBarVisible( bVisible ); - setStandardBarVisible( bVisible ); - setToolBarVisible( bVisible ); - setStatusBarVisible( bVisible ); - bIgnoreVisibility = false; - } - - //-------------------------------------------------------------------------- - /** Applies all tool visiblities to the real thing. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible setAllBarsVisible}. - */ - protected void applyToolVisibilities() - throws - java.lang.InterruptedException - { - bIgnoreVisibility = true; - setMenuBarVisible( bMenuBarVisible ); - setStandardBarVisible( bStandardBarVisible ); - setToolBarVisible( bToolBarVisible ); - setStatusBarVisible( bStatusBarVisible ); - bIgnoreVisibility = false; - } - - /** Helper method to set tool bar visibilty. - - @param bnewValue - If false, the tool bar is disabled, - If true, the tool bar is visible. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - protected boolean setToolVisible( String aProperty, String aResourceURL, - boolean bOldValue, boolean bNewValue ) - - throws - java.lang.InterruptedException - { - // start runtime timeout - CallWatchThread aCallWatchThread = - new CallWatchThread( nOOoCallTimeOut, "setToolVisible" ); - - // Does a frame exist? - if ( aFrame != null ) - { - if ( bIgnoreVisibility || bOldValue != bNewValue ) - { - try - { - com.sun.star.beans.XPropertySet xPropSet = - (com.sun.star.beans.XPropertySet) UnoRuntime.queryInterface( - com.sun.star.beans.XPropertySet.class, aFrame ); - com.sun.star.frame.XLayoutManager xLayoutManager = - (com.sun.star.frame.XLayoutManager) UnoRuntime.queryInterface( - com.sun.star.frame.XLayoutManager.class, - xPropSet.getPropertyValue( "LayoutManager" ) ); - if ( bNewValue ) - xLayoutManager.showElement( aResourceURL ); - else - xLayoutManager.hideElement( aResourceURL ); - } - catch ( com.sun.star.beans.UnknownPropertyException aExc ) - { - throw new RuntimeException( "not layout manager found" ); - } - catch ( com.sun.star.lang.WrappedTargetException aExc ) - { - throw new RuntimeException( "not layout manager found" ); - } - - // notify change - firePropertyChange( aProperty, new Boolean(bOldValue), new Boolean(bNewValue) ); - } - } - - // end runtime timeout - aCallWatchThread.cancel(); - - // the new value will be stored by caller - return bNewValue; - } - - /** Sets the visibility of the menu bar. - - Initially the menu bar is visible. - <p> - If not connected or no document loaded, the value is stored - and automatically applied to the document after it is loaded. - Same is valid when the connection dies within this function call. - - @param bVisible - If false, the menu bar is disabled, - If true, the menu bar is visible. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public void setMenuBarVisible(boolean bVisible) - { - try - { - bMenuBarVisible = setToolVisible( "MenuBarVisible", - "private:resource/menubar/menubar", bMenuBarVisible, bVisible ); - } - catch ( java.lang.InterruptedException aExc ) - { - bMenuBarVisible = bVisible; - } - } - - /** Returns the visibility of the menu bar. - - This method works independently from a connetion or loaded document. - If no connection is established or no document is loaded, - this method just returns a memorized status. - - @return - True if the menu bar is visible, - false if the menu bar is hidden. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public boolean isMenuBarVisible() - { - return bMenuBarVisible; - } - - /** Sets the main function bar visibilty. - - Initially the standard bar is visible. - - If not connected or no document loaded, the value is stored - and automatically applied to the document after it is loaded. - Same is valid when the connection dies within this function call. - - @param bVisible - If false, the main function bar is disabled, - If true, the main function bar is visible. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public void setStandardBarVisible(boolean bVisible) - { - try - { - bStandardBarVisible = setToolVisible( "StandardBarVisible", - "private:resource/toolbar/standardbar", bStandardBarVisible, bVisible ); - } - catch ( java.lang.InterruptedException aExc ) - { - bMenuBarVisible = bVisible; - } - } - - /** Returns the visibility of the main function bar. - - This method works independently from a connetion or loaded document. - If no connection is established or no document is loaded, - this method just returns a memorized status. - - @return - True if the main function bar is visible, - false if the main function bar is hidden. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public boolean isStandardBarVisible() - { - return bStandardBarVisible; - } - - /** Sets the tool function bar visibilty. - - Initially the tool bar is visible. - - If not connected or no document loaded, the value is stored - and automatically applied to the document after it is loaded. - Same is valid when the connection dies within this function call. - - @param bVisible - If false, the tool function bar is disabled, - If true, the tool function bar is visible. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public void setToolBarVisible(boolean bVisible) - { - try - { - bToolBarVisible = setToolVisible( "ToolBarVisible", - "private:resource/toolbar/toolbar", bToolBarVisible, bVisible ); - } - catch ( java.lang.InterruptedException aExc ) - { - bMenuBarVisible = bVisible; - } - } - - /** Returns the visibility of the tool function bar. - - This method works independently from a connetion or loaded document. - If no connection is established or no document is loaded, - this method just returns a memorized status. - - @return - True if the tool function bar is visible, - false if the tool function bar is hidden. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public boolean isToolBarVisible() - { - return bToolBarVisible; - } - - /** Sets the status function bar visibilty. - - Initially the status bar is visible. - - If not connected or no document loaded, the value is stored - and automatically applied to the document after it is loaded. - Same is valid when the connection dies within this function call. - - @param bVisible - If false, the status function bar is disabled, - If true, the status function bar is visible. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public void setStatusBarVisible(boolean bVisible) - { - try - { - bStatusBarVisible = setToolVisible( "StatusBarVisible", - "private:resource/statusbar/statusbar", bStatusBarVisible, bVisible ); - } - catch ( java.lang.InterruptedException aExc ) - { - bMenuBarVisible = bVisible; - } - } - - /** Returns the visibility of the status function bar. - - This method works independently from a connetion or loaded document. - If no connection is established or no document is loaded, - this method just returns a memorized status. - - @return - True if the status function bar is visible, - false if the status function bar is hidden. - - @deprecated Clients should use the service com.sun.star.frame.LayoutManager, - which can be obtained from a frame, to control toolbars. See also - {@link #setAllBarsVisible}. - */ - public boolean isStatusBarVisible() - { - return bStatusBarVisible; - } - - //=========================================================================== - // Helper Methods / Internal Methods - //--------------------------------------------------------------------------- - - // general instance intializer - { - setLayout(new java.awt.BorderLayout()); - } - - /** - @deprecated - */ - public void paint( java.awt.Graphics aGraphics ) - { - } - - /** Adds a single argument to an array of arguments. - - If the argument by its name is already in aArguments - it is exchanged and aArguments is returned. - <p> - If the argument by its name is not yet in aArguments, - a new array is created, aArgument added and the new - array returned. - */ - protected com.sun.star.beans.PropertyValue[] addArgument( - com.sun.star.beans.PropertyValue aArguments[], - final com.sun.star.beans.PropertyValue aArgument ) - { - // get number of current arguments - int nNumArgs = 0; - if ( aArguments != null ) - nNumArgs = aArguments.length; - - // is new argument already set? - for ( int n = 0; n < nNumArgs; ++n ) - { - if ( aArguments[n].Name == aArgument.Name ) - { - // substitute this argument - aArguments[n] = aArgument; - - // return current array - return aArguments; - } - } - - // create extended arguments - com.sun.star.beans.PropertyValue[] aExtendedArguments = - new com.sun.star.beans.PropertyValue[ nNumArgs + 1 ]; - - // copy current arguments - for ( int n = 0; n < nNumArgs; ++n ) - aExtendedArguments[n] = aArguments[n]; - - // add new argument - aExtendedArguments[ nNumArgs ] = aArgument; - - // return new arguments - return aExtendedArguments; - } - - //=========================================================================== - // Helper Classes - //--------------------------------------------------------------------------- - - /** Helper class to listen on the connection to learn when it dies. - - @internal - */ - private class EventListener - extends Thread - implements - com.sun.star.lang.XEventListener, - com.sun.star.frame.XTerminateListener - { - String aTag; - - EventListener( String aTag ) - throws NoConnectionException - { - // init members - this.aTag = aTag; - - // listen on a dying connection - iConnection.addEventListener( this ); - - // listen on a terminating OOo - getOOoDesktop().addTerminateListener( this ); - - // start this thread as a daemon - setDaemon( true ); - start(); - } - - public void end() - { - // do not listen on a dying connection anymore - try { - iConnection.removeEventListener( this ); - } - catch ( Throwable aExc ) {}; - - // do not listen on a terminating OOo anymore - try { - getOOoDesktop().removeTerminateListener( this ); - } - catch ( Throwable aExc ) {}; - - // stop thread - this.interrupt(); - } - - /// gets called when the connection dies - public void disposing( /*IN*/ com.sun.star.lang.EventObject Source ) - { - // empty the OOoBean and cut the connection - stopOOoConnection(); - } - - /// gets called when the user wants to terminate OOo - public void queryTermination( /*IN*/ com.sun.star.lang.EventObject Event ) - throws com.sun.star.frame.TerminationVetoException - { - // disallow termination of OOo while a OOoBean exists - throw new com.sun.star.frame.TerminationVetoException(); - } - - /// gets called when OOo terminates - public void notifyTermination( /*IN*/ com.sun.star.lang.EventObject Event ) - { - // empty the OOoBean and cut the connection - stopOOoConnection(); - } - - /// watching the connection - public void run() - { - dbgPrint( "EventListener(" + aTag + ").run()" ); - - // remote call might hang => watch try - CallWatchThread aCallWatchThread = - new CallWatchThread( nOOoCallTimeOut, "EventListener(" + aTag + ")" ); - - // continue to trying to connect the OOo instance - long n = 0; - while ( isInterrupted() == false - && iConnection != null - && iConnection.getComponentContext() != null ) - { - dbgPrint( "EventListener(" + aTag + ").running() #" + ++n ); - - // still alive? - com.sun.star.lang.XMultiComponentFactory xServiceManager = null; - try - { - // an arbitrary (but cheap) call into OOo - xServiceManager = iConnection.getComponentContext().getServiceManager(); - - // call successfully performed, restart watch for next loop - try - { - aCallWatchThread.restart(); - } - catch ( java.lang.InterruptedException aExc ) - { - // ignore late interrupt - } - } - catch ( java.lang.RuntimeException aExc ) - { - // hung - OfficeConnection iDeadConn = iConnection; - iConnection = null; - iDeadConn.dispose(); - } - - // sleep - try { - sleep(nOOoCheckCycle); - } - catch ( java.lang.InterruptedException aExc ) - { - dbgPrint("EventListener(" + aTag + ") interupted."); - //thread can be ended by EvendListener.end(); - break; - } - } - } - } - -} - - - diff --git a/bean/com/sun/star/comp/beans/OfficeConnection.java b/bean/com/sun/star/comp/beans/OfficeConnection.java deleted file mode 100644 index 85f480b9d..000000000 --- a/bean/com/sun/star/comp/beans/OfficeConnection.java +++ /dev/null @@ -1,80 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import java.awt.Container; - -import com.sun.star.lang.XComponent; -import com.sun.star.uno.XComponentContext; - -/** - * This abstract class reprecents a connection to the office - * application. - - @deprecated - */ -public interface OfficeConnection - extends XComponent -{ - /** - * Sets a connection URL. - * - * @param url This is UNO URL which describes the type of a connection. - */ - void setUnoUrl(String url) - throws java.net.MalformedURLException; - - /** - * Sets an AWT container catory. - * - * @param containerFactory This is a application provided AWT container - * factory. - */ - void setContainerFactory(ContainerFactory containerFactory); - - /** - * Retrives the UNO component context. - * Establishes a connection if necessary and initialises the - * UNO service manager if it has not already been initialised. - * - * @return The office UNO component context. - */ - XComponentContext getComponentContext(); - - /** - * Creates an office window. - * The window is either a sub-class of java.awt.Canvas (local) or - * java.awt.Container (RVP). - * - * This method does not add add the office window to its container. - * - * @param container This is an AWT container. - * @return The office window instance. - */ - OfficeWindow createOfficeWindow(Container container); -} diff --git a/bean/com/sun/star/comp/beans/OfficeDocument.java b/bean/com/sun/star/comp/beans/OfficeDocument.java deleted file mode 100644 index 41676d1fd..000000000 --- a/bean/com/sun/star/comp/beans/OfficeDocument.java +++ /dev/null @@ -1,226 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.uno.UnoRuntime; - -//========================================================================== -/** Wrapper class for service OfficeDocument which emulates the upcoming - mode of automatic runtime Java classes to get rid of the need for - queryInterface. - - See further information on the wrapping and compatibility limitations - in the base class Wrapper. - - @since OOo 2.0.0 - */ -public class OfficeDocument extends Wrapper - implements - com.sun.star.frame.XModel, - com.sun.star.util.XModifiable, - com.sun.star.frame.XStorable, - com.sun.star.view.XPrintable -{ - private com.sun.star.frame.XModel xModel; - private com.sun.star.util.XModifiable xModifiable; - private com.sun.star.view.XPrintable xPrintable; - private com.sun.star.frame.XStorable xStorable; - - public OfficeDocument( com.sun.star.frame.XModel xModel ) - { - super( xModel ); - - this.xModel = xModel; - this.xModifiable = (com.sun.star.util.XModifiable) - UnoRuntime.queryInterface( - com.sun.star.util.XModifiable.class, xModel ); - this.xPrintable = (com.sun.star.view.XPrintable) - UnoRuntime.queryInterface( - com.sun.star.view.XPrintable.class, xModel ); - this.xStorable = (com.sun.star.frame.XStorable) - UnoRuntime.queryInterface( - com.sun.star.frame.XStorable.class, xModel ); - } - - //========================================================== - // com.sun.star.frame.XModel - //---------------------------------------------------------- - - public boolean attachResource( /*IN*/String aURL, - /*IN*/com.sun.star.beans.PropertyValue[] aArguments ) - { - return xModel.attachResource( aURL, aArguments ); - } - - public String getURL( ) - { - return xModel.getURL(); - } - - public com.sun.star.beans.PropertyValue[] getArgs( ) - { - return xModel.getArgs(); - } - - public void connectController( - /*IN*/ com.sun.star.frame.XController xController ) - { - xModel.connectController( xController ); - } - - public void disconnectController( - /*IN*/ com.sun.star.frame.XController xController ) - { - xModel.disconnectController( xController ); - } - - public void lockControllers( ) - { - xModel.lockControllers(); - } - - public void unlockControllers( ) - { - xModel.unlockControllers(); - } - - public boolean hasControllersLocked( ) - { - return xModel.hasControllersLocked(); - } - - public com.sun.star.frame.XController getCurrentController( ) - { - return xModel.getCurrentController(); - } - - public void setCurrentController( - /*IN*/ com.sun.star.frame.XController xController ) - throws com.sun.star.container.NoSuchElementException - { - xModel.setCurrentController( xController ); - } - - public java.lang.Object getCurrentSelection( ) - { - return xModel.getCurrentSelection(); - } - - //========================================================== - // com.sun.star.util.XModifyBroadcaster - //---------------------------------------------------------- - - public void addModifyListener( - /*IN*/ com.sun.star.util.XModifyListener xListener ) - { - xModifiable.addModifyListener( xListener ); - } - - public void removeModifyListener( - /*IN*/ com.sun.star.util.XModifyListener xListener ) - { - xModifiable.removeModifyListener( xListener ); - } - - //========================================================== - // com.sun.star.util.XModifiable - //---------------------------------------------------------- - - public boolean isModified( ) - { - return xModifiable.isModified(); - } - - public void setModified( /*IN*/boolean bModified ) - throws com.sun.star.beans.PropertyVetoException - { - xModifiable.setModified( bModified ); - } - - //========================================================== - // com.sun.star.view.XPrintable - //---------------------------------------------------------- - - public com.sun.star.beans.PropertyValue[] getPrinter( ) - { - return xPrintable.getPrinter(); - } - - public void setPrinter( /*IN*/ com.sun.star.beans.PropertyValue[] aPrinter ) - throws com.sun.star.lang.IllegalArgumentException - { - xPrintable.setPrinter( aPrinter ); - } - - public void print( /*IN*/ com.sun.star.beans.PropertyValue[] xOptions ) - throws com.sun.star.lang.IllegalArgumentException - { - xPrintable.print( xOptions ); - } - - //========================================================== - // com.sun.star.frame.XStorable - //---------------------------------------------------------- - - public boolean hasLocation( ) - { - return xStorable.hasLocation(); - } - - public String getLocation( ) - { - return xStorable.getLocation(); - } - - public boolean isReadonly( ) - { - return xStorable.isReadonly(); - } - - public void store( ) - throws com.sun.star.io.IOException - { - xStorable.store(); - } - - public void storeAsURL( /*IN*/ String aURL, /*IN*/ com.sun.star.beans.PropertyValue[] aArguments ) - throws com.sun.star.io.IOException - { - xStorable.storeAsURL( aURL, aArguments ); - } - - public void storeToURL( /*IN*/ String aURL, /*IN*/ com.sun.star.beans.PropertyValue[] aArguments ) - throws com.sun.star.io.IOException - { - xStorable.storeToURL( aURL, aArguments ); - } - -}; - - - diff --git a/bean/com/sun/star/comp/beans/OfficeWindow.java b/bean/com/sun/star/comp/beans/OfficeWindow.java deleted file mode 100644 index 455fe66ca..000000000 --- a/bean/com/sun/star/comp/beans/OfficeWindow.java +++ /dev/null @@ -1,56 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import java.awt.Component; - -import com.sun.star.awt.XWindowPeer; - -/** - * The concreate implementation of the OfficeWindow extends an - * approperate type of visual component (java.awt.Canvas for local - * and java.awt.Container for remote). - - @deprecated - */ -public interface OfficeWindow -{ - /** - * Retrives an AWT component object associated with the OfficeWindow. - * - * @return The AWT component object associated with the OfficeWindow. - */ - Component getAWTComponent(); - - /** - * Retrives an UNO XWindowPeer object associated with the OfficeWindow. - * - * @return The UNO XWindowPeer object associated with the OfficeWindow. - */ - XWindowPeer getUNOWindowPeer(); -} diff --git a/bean/com/sun/star/comp/beans/SystemWindowException.java b/bean/com/sun/star/comp/beans/SystemWindowException.java deleted file mode 100644 index 3748418a8..000000000 --- a/bean/com/sun/star/comp/beans/SystemWindowException.java +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -/** indicates that an operation needed a system window, - but no system window was aquired yet. - - @see com.sun.star.comp.beans.OOoBean.aquireSystemWindow - - @since OOo 2.0.0 -*/ -public class SystemWindowException extends Exception -{ -}; - - diff --git a/bean/com/sun/star/comp/beans/Wrapper.java b/bean/com/sun/star/comp/beans/Wrapper.java deleted file mode 100644 index 824a81266..000000000 --- a/bean/com/sun/star/comp/beans/Wrapper.java +++ /dev/null @@ -1,108 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -package com.sun.star.comp.beans; - -import com.sun.star.uno.UnoRuntime; - -//========================================================================== -/** Wrapper base class for UNO services which emulates the upcoming - mode of automatic runtime Java classes to get rid of the need for - queryInterface. - - Because its not worth the efford to create a runtime generated wrapper - for this purpose, as it might be for OOo 2.0, you still have to use - UnoRuntime.queryInterface() for interfaces which are optional or come - from a subclass. But for non optional interfaces you can already - directly call their methods. - - This wrapper will only work for UNO objects via a bridge, not for - direct Java objects. - - @since OOo 2.0.0 - */ -class Wrapper - implements - com.sun.star.lib.uno.Proxy, - // see the comment in com.sun.star.lib.uno.bridges.java_remote - // .java_remote_bridge.mapInterfaceTo for the consequences of this - // hack - com.sun.star.uno.IQueryInterface, - com.sun.star.lang.XComponent -{ - private com.sun.star.uno.IQueryInterface xQueryInterface; - private com.sun.star.lang.XComponent xComponent; - - public Wrapper( com.sun.star.uno.XInterface xProxy ) - { - xQueryInterface = (com.sun.star.uno.IQueryInterface) xProxy; - xComponent = (com.sun.star.lang.XComponent) - UnoRuntime.queryInterface( - com.sun.star.lang.XComponent.class, xProxy ); - } - - //============================================================== - // com.sun.star.uno.IQueryInterface - //-------------------------------------------------------------- - - public String getOid() - { - return xQueryInterface.getOid(); - } - - public boolean isSame( Object aObject ) - { - return xQueryInterface.isSame( aObject ); - } - - public Object queryInterface( com.sun.star.uno.Type aType ) - { -//System.err.println( "Wrapper::queryInterface(" + aType + ")" ); - return xQueryInterface.queryInterface( aType ); - } - - //============================================================== - // com.sun.star.lang.XComponent - //-------------------------------------------------------------- - - public void dispose( ) - { - xComponent.dispose(); - } - - public void addEventListener( /*IN*/ com.sun.star.lang.XEventListener xListener ) - { - xComponent.addEventListener( xListener ); - } - - public void removeEventListener( /*IN*/ com.sun.star.lang.XEventListener xListener ) - { - xComponent.removeEventListener( xListener ); - } -}; - - diff --git a/bean/com/sun/star/comp/beans/makefile.mk b/bean/com/sun/star/comp/beans/makefile.mk deleted file mode 100644 index 31781d6f0..000000000 --- a/bean/com/sun/star/comp/beans/makefile.mk +++ /dev/null @@ -1,75 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ = ..$/..$/..$/..$/.. -PRJNAME = beans -TARGET = com_sun_star_comp_beans -PACKAGE = com$/sun$/star$/comp$/beans - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk -.IF "$(L10N_framework)"=="" -.IF "$(OS)"=="MACOSX" - -dummy: - @echo "Nothing to build for OS $(OS)" - -.ELSE # "$(OS)"=="MACOSX" - -JARFILES = ridl.jar unoil.jar jurt.jar juh.jar - -# --- Sources -------------------------------------------------------- - -JAVAFILES= \ - ContainerFactory.java \ - Controller.java \ - Frame.java \ - HasConnectionException.java \ - InvalidArgumentException.java \ - JavaWindowPeerFake.java \ - LocalOfficeConnection.java \ - LocalOfficeWindow.java \ - NativeConnection.java \ - NativeService.java \ - NoConnectionException.java \ - NoDocumentException.java \ - OfficeConnection.java \ - OfficeDocument.java \ - OfficeWindow.java \ - OOoBean.java \ - SystemWindowException.java \ - Wrapper.java \ - CallWatchThread.java - -JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -.ENDIF - -# --- Targets ------------------------------------------------------ -.ENDIF # L10N_framework - -.INCLUDE : target.mk diff --git a/bean/native/unix/com_sun_star_beans_LocalOfficeWindow.c b/bean/native/unix/com_sun_star_beans_LocalOfficeWindow.c deleted file mode 100644 index 21facbb71..000000000 --- a/bean/native/unix/com_sun_star_beans_LocalOfficeWindow.c +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Intrinsic.h> - -#include "jni.h" - -// Workaround for problematic IBM JDK 1.6.0 on ppc -#ifndef _JNI_IMPORT_OR_EXPORT_ -#define _JNI_IMPORT_OR_EXPORT_ -#endif - -#include "jawt_md.h" -#include "jawt.h" - -/*#include "../inc/com_sun_star_comp_beans_LocalOfficeWindow.h"*/ - -#if defined assert -#undef assert -#endif - -#define assert(X) if (!X) { (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/RuntimeException"), "assertion failed"); return;} - - -#define SYSTEM_WIN32 1 -#define SYSTEM_WIN16 2 -#define SYSTEM_JAVA 3 -#define SYSTEM_MAC 5 -#define SYSTEM_XWINDOW 6 - -JNIEXPORT jlong JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow - (JNIEnv * env, jobject obj_this); - -/*****************************************************************************/ -/* - * Class: com_sun_star_comp_beans_LocalOfficeWindow - * Method: getNativeWindowSystemType - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindowSystemType - (JNIEnv * env, jobject obj_this) -{ - (void) env; /* avoid warning about unused parameter */ - (void) obj_this; /* avoid warning about unused parameter */ - return (SYSTEM_XWINDOW); -} - - -/*****************************************************************************/ -/* - * Class: com_sun_star_beans_LocalOfficeWindow - * Method: getNativeWindow - * Signature: ()J - */ -JNIEXPORT jlong JNICALL Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindow - (JNIEnv * env, jobject obj_this) -{ - (void) env; /* avoid warning about unused parameter */ - (void) obj_this; /* avoid warning about unused parameter */ - return Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow(env, obj_this); -} - - - - - - - - - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c b/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c deleted file mode 100644 index 3458fcec1..000000000 --- a/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/Intrinsic.h> - -#include "jni.h" - -// Workaround for problematic IBM JDK 1.6.0 on ppc -#ifndef _JNI_IMPORT_OR_EXPORT_ -#define _JNI_IMPORT_OR_EXPORT_ -#endif - -#include "jawt_md.h" -#include "jawt.h" - - -#define SYSTEM_WIN32 1 -#define SYSTEM_WIN16 2 -#define SYSTEM_JAVA 3 -#define SYSTEM_MAC 5 -#define SYSTEM_XWINDOW 6 - - -/* type must be something like java/lang/RuntimeException - */ -static void ThrowException(JNIEnv * env, char const * type, char const * msg) { - jclass c; - (*env)->ExceptionClear(env); - c = (*env)->FindClass(env, type); - if (c == NULL) { - (*env)->ExceptionClear(env); - (*env)->FatalError( - env, "JNI FindClass failed"); - } - if ((*env)->ThrowNew(env, c, msg) != 0) { - (*env)->ExceptionClear(env); - (*env)->FatalError(env, "JNI ThrowNew failed"); - } -} - -/*****************************************************************************/ -/* - * Class: com_sun_star_comp_beans_LocalOfficeWindow - * Method: getNativeWindowSystemType - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindowSystemType - (JNIEnv * env, jobject obj_this) -{ - (void) env; /* avoid warning about unused parameter */ - (void) obj_this; /* avoid warning about unused parameter */ - return (SYSTEM_XWINDOW); -} - - -/*****************************************************************************/ -/* - * Class: com_sun_star_beans_LocalOfficeWindow - * Method: getNativeWindow - * Signature: ()J - */ -JNIEXPORT jlong JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow - (JNIEnv * env, jobject obj_this) -{ - jboolean result; - jint lock; - - JAWT awt; - JAWT_DrawingSurface* ds; - JAWT_DrawingSurfaceInfo* dsi; - JAWT_X11DrawingSurfaceInfo* dsi_x11; - - Drawable drawable; - - /* Get the AWT */ - awt.version = JAWT_VERSION_1_3; - result = JAWT_GetAWT(env, &awt); - if (result == JNI_FALSE) - ThrowException(env, "java/lang/RuntimeException", "JAWT_GetAWT failed"); - - /* Get the drawing surface */ - if ((ds = awt.GetDrawingSurface(env, obj_this)) == NULL) - return 0L; - - /* Lock the drawing surface */ - lock = ds->Lock(ds); - if ( (lock & JAWT_LOCK_ERROR) != 0) - ThrowException(env, "java/lang/RuntimeException", - "Could not get AWT drawing surface."); - - /* Get the drawing surface info */ - dsi = ds->GetDrawingSurfaceInfo(ds); - - /* Get the platform-specific drawing info */ - dsi_x11 = (JAWT_X11DrawingSurfaceInfo*)dsi->platformInfo; - - drawable = dsi_x11->drawable; - - /* Free the drawing surface info */ - ds->FreeDrawingSurfaceInfo(dsi); - /* Unlock the drawing surface */ - ds->Unlock(ds); - /* Free the drawing surface */ - awt.FreeDrawingSurface(ds); - - return ((jlong)drawable); -} - - - - - - - - - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/bean/native/unix/makefile.mk b/bean/native/unix/makefile.mk deleted file mode 100644 index e3ff996a6..000000000 --- a/bean/native/unix/makefile.mk +++ /dev/null @@ -1,40 +0,0 @@ -PRJ=..$/.. - -PRJNAME=beans -TARGET=officebean -ENABLE_EXCEPTIONS=TRUE -NO_DEFAULT_STL=TRUE -NO_BSYMBOLIC=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -# --- Files -------------------------------------------------------- - -.IF "$(SOLAR_JAVA)"=="" || "$(OS)"=="MACOSX" -nojava: - @echo "Not building odk/source/OOSupport because Java has been disabled" -.ENDIF -.IF "$(OS)"=="MACOSX" -dummy: - @echo "Nothing to build for OS $(OS)" -.ENDIF - -SLOFILES = \ - $(SLO)$/com_sun_star_comp_beans_LocalOfficeWindow.obj \ - $(SLO)$/com_sun_star_beans_LocalOfficeWindow.obj - -SHL1TARGET=$(TARGET) -SHL1LIBS= $(SLB)$/$(TARGET).lib -SOLARLIB+=$(JAVALIB) -SHL1STDLIBS=$(AWTLIB) -SHL1NOCHECK=TRUE - -.IF "$(OS)" == "LINUX" -SHL1STDLIBS+=-lstdc++ -.ENDIF - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk diff --git a/bean/native/win32/com_sun_star_beans_LocalOfficeWindow.c b/bean/native/win32/com_sun_star_beans_LocalOfficeWindow.c deleted file mode 100644 index ea3761239..000000000 --- a/bean/native/win32/com_sun_star_beans_LocalOfficeWindow.c +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#if defined _MSC_VER -#pragma warning(push, 1) -#endif -#include <windows.h> -#if defined _MSC_VER -#pragma warning(pop) -#endif - -#include "jawt.h" - -#if defined assert -#undef assert -#endif - -#define assert(X) if (!X) { (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/RuntimeException"), "assertion failed"); return 0L;} - - -#define SYSTEM_WIN32 1 -#define SYSTEM_WIN16 2 -#define SYSTEM_JAVA 3 -#define SYSTEM_MAC 5 -#define SYSTEM_XWINDOW 6 - -#define OLD_PROC_KEY "oldwindowproc" - -static LRESULT APIENTRY OpenOfficeWndProc( HWND , UINT , WPARAM , LPARAM ); - -JNIEXPORT jlong JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow - (JNIEnv * env, jobject obj_this); - -/*****************************************************************************/ -/* - * Class: com_sun_star_beans_LocalOfficeWindow - * Method: getNativeWindowSystemType - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindowSystemType - (JNIEnv * env, jobject obj_this) -{ - (void) env; // unused - (void) obj_this; // unused - return (SYSTEM_WIN32); -} - - -/*****************************************************************************/ -/* - * Class: com_sun_star_beans_LocalOfficeWindow - * Method: getNativeWindow - * Signature: ()J - */ -JNIEXPORT jlong JNICALL Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindow - (JNIEnv * env, jobject obj_this) -{ - return Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow( env, obj_this ); -} - - - - - - - - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/bean/native/win32/com_sun_star_comp_beans_LocalOfficeWindow.c b/bean/native/win32/com_sun_star_comp_beans_LocalOfficeWindow.c deleted file mode 100644 index 3707566b9..000000000 --- a/bean/native/win32/com_sun_star_comp_beans_LocalOfficeWindow.c +++ /dev/null @@ -1,230 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#if defined _MSC_VER -#pragma warning(push, 1) -#endif -#include <windows.h> -#if defined _MSC_VER -#pragma warning(pop) -#endif - -#include <windows.h> -#define JAWT_GetAWT hidden_JAWT_GetAWT -#include "jawt.h" -#undef JAWT_GetAWT - -#if defined _MSC_VER -#pragma warning(push, 1) -#endif -/* When cross-compiling to Windows we don't have any Windows JDK - * available. Copying this short snippet from win32/jawt_md.h can - * surely not be against its license. The intent is to enable - * interoperation with real Oracle Java after all. We leave out the - * informative comments that might have "artistic merit" and be more - * copyrightable. Use this also for native Windows compilation for - * simplicity. - */ -typedef struct jawt_Win32DrawingSurfaceInfo { - union { - HWND hwnd; - HBITMAP hbitmap; - void* pbits; - }; - HDC hdc; - HPALETTE hpalette; -} JAWT_Win32DrawingSurfaceInfo; - -extern __declspec(dllimport) unsigned char __stdcall JAWT_GetAWT(JNIEnv *, JAWT *); -#if defined _MSC_VER -#pragma warning(pop) -#endif - -#define SYSTEM_WIN32 1 -#define SYSTEM_WIN16 2 -#define SYSTEM_JAVA 3 -#define SYSTEM_MAC 5 -#define SYSTEM_XWINDOW 6 - -#define OLD_PROC_KEY "oldwindowproc" - -static LRESULT APIENTRY OpenOfficeWndProc( HWND , UINT , WPARAM , LPARAM ); - - - -/* type must be something like java/lang/RuntimeException - */ -static void ThrowException(JNIEnv * env, char const * type, char const * msg) { - jclass c; - (*env)->ExceptionClear(env); - c = (*env)->FindClass(env, type); - if (c == NULL) { - (*env)->ExceptionClear(env); - (*env)->FatalError( - env, "JNI FindClass failed"); - } - if ((*env)->ThrowNew(env, c, msg) != 0) { - (*env)->ExceptionClear(env); - (*env)->FatalError(env, "JNI ThrowNew failed"); - } -} - - -/*****************************************************************************/ -/* - * Class: com_sun_star_comp_beans_LocalOfficeWindow - * Method: getNativeWindowSystemType - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindowSystemType - (JNIEnv * env, jobject obj_this) -{ - (void) env; // unused - (void) obj_this; // unused - return (SYSTEM_WIN32); -} - - -/*****************************************************************************/ -/* - * Class: com_sun_star_comp_beans_LocalOfficeWindow - * Method: getNativeWindow - * Signature: ()J - */ -JNIEXPORT jlong JNICALL Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow - (JNIEnv * env, jobject obj_this) -{ - jboolean result; - jint lock; - - JAWT awt; - JAWT_DrawingSurface* ds; - JAWT_DrawingSurfaceInfo* dsi; - JAWT_Win32DrawingSurfaceInfo* dsi_win; - HDC hdc; - HWND hWnd; - LONG hFuncPtr; - - /* Get the AWT */ - awt.version = JAWT_VERSION_1_3; - result = JAWT_GetAWT(env, &awt); - if (result == JNI_FALSE) - ThrowException(env, "java/lang/RuntimeException", "JAWT_GetAWT failed"); - - /* Get the drawing surface */ - if ((ds = awt.GetDrawingSurface(env, obj_this)) == NULL) - return 0L; - - /* Lock the drawing surface */ - lock = ds->Lock(ds); - if ( (lock & JAWT_LOCK_ERROR) != 0) - ThrowException(env, "java/lang/RuntimeException", - "Could not get AWT drawing surface."); - - /* Get the drawing surface info */ - dsi = ds->GetDrawingSurfaceInfo(ds); - - /* Get the platform-specific drawing info */ - dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo; - - hdc = dsi_win->hdc; - - hWnd = dsi_win->hwnd; - - /* Free the drawing surface info */ - ds->FreeDrawingSurfaceInfo(dsi); - /* Unlock the drawing surface */ - ds->Unlock(ds); - /* Free the drawing surface */ - awt.FreeDrawingSurface(ds); - - /* Register own window procedure - Do it one times only! Otherwhise - multiple instances will be registered - and calls on such construct produce - a stack overflow. - */ - if (GetProp( hWnd, OLD_PROC_KEY )==0) - { - hFuncPtr = SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)OpenOfficeWndProc ); - SetProp( hWnd, OLD_PROC_KEY, (HANDLE)hFuncPtr ); - } - - return ((jlong)hWnd); -} - - -static LRESULT APIENTRY OpenOfficeWndProc( - HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - switch(uMsg) - { - case WM_PARENTNOTIFY: { - if (wParam == WM_CREATE) { - RECT rect; - HWND hChild = (HWND) lParam; - - GetClientRect(hWnd, &rect); - - SetWindowPos(hChild, - NULL, - rect.left, - rect.top, - rect.right - rect.left, - rect.bottom - rect.top, - SWP_NOZORDER); - } - break; - } - case WM_SIZE: { - WORD newHeight = HIWORD(lParam); - WORD newWidth = LOWORD(lParam); - HWND hChild = GetWindow(hWnd, GW_CHILD); - - if (hChild != NULL) { - SetWindowPos(hChild, NULL, 0, 0, newWidth, newHeight, SWP_NOZORDER); - } - break; - } - } - -#if defined _MSC_VER -#pragma warning(push) -#pragma warning(disable: 4152) /* function/data pointer conversion: */ -#endif - return CallWindowProc(GetProp(hWnd, OLD_PROC_KEY), - hWnd, uMsg, wParam, lParam); -#if defined _MSC_VER -#pragma warning(pop) -#endif -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/bean/native/win32/makefile.mk b/bean/native/win32/makefile.mk deleted file mode 100644 index e29cffa49..000000000 --- a/bean/native/win32/makefile.mk +++ /dev/null @@ -1,38 +0,0 @@ -PRJ=..$/.. - -PRJNAME=odk -TARGET=officebean -ENABLE_EXCEPTIONS=TRUE -NO_DEFAULT_STL=TRUE -NO_BSYMBOLIC=TRUE -USE_DEFFILE=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(SOLAR_JAVA)" != "" - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/com_sun_star_comp_beans_LocalOfficeWindow.obj \ - $(SLO)$/com_sun_star_beans_LocalOfficeWindow.obj - -SHL1TARGET=$(TARGET) -SHL1LIBS= $(SLB)$/$(TARGET).lib -SOLARLIB+=$(JAVALIB) -SHL1STDLIBS=$(AWTLIB) $(SALLIB) - -SHL1DEF= $(MISC)$/$(SHL1TARGET).def - -DEF1NAME= $(SHL1TARGET) -DEF1EXPORTFILE= $(TARGET).dxp -DEF1DES=officebean - -.ENDIF - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk - diff --git a/bean/native/win32/officebean.dxp b/bean/native/win32/officebean.dxp deleted file mode 100644 index 9a01b090f..000000000 --- a/bean/native/win32/officebean.dxp +++ /dev/null @@ -1,4 +0,0 @@ -Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindowSystemType -Java_com_sun_star_comp_beans_LocalOfficeWindow_getNativeWindow -Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindowSystemType -Java_com_sun_star_beans_LocalOfficeWindow_getNativeWindow
\ No newline at end of file diff --git a/bean/prj/build.lst b/bean/prj/build.lst deleted file mode 100644 index 91d443344..000000000 --- a/bean/prj/build.lst +++ /dev/null @@ -1,10 +0,0 @@ -ob bean : javaunohelper jurt ridljar unoil offapi udkapi NULL -ob bean\com\sun\star\comp\beans nmake - all ob_beanjava NULL -ob bean\com\sun\star\beans nmake - all ob_legacybeanjava ob_beanjava NULL -ob bean\native\win32 nmake - n ob_beanwin32 NULL -ob bean\native\unix nmake - u ob_beanunix NULL -ob bean\util nmake - all ob_util ob_beanjava ob_legacybeanjava ob_beanwin32.n ob_beanunix.u NULL - -# complex tests compileable but fail at runtime -# ob bean\qa\complex\bean nmake - all ob_qa_complex ob_util NULL - diff --git a/bean/prj/d.lst b/bean/prj/d.lst deleted file mode 100644 index f3154b68b..000000000 --- a/bean/prj/d.lst +++ /dev/null @@ -1,5 +0,0 @@ -..\%__SRC%\class\officebean.jar %_DEST%\bin\officebean.jar - -..\%__SRC%\bin\officebean.dll %_DEST%\bin\officebean.dll -..\%__SRC%\lib\libofficebean.so %_DEST%\lib\libofficebean.so -..\%__SRC%\lib\*officebean.dylib %_DEST%\lib\*officebean.dylib diff --git a/bean/qa/complex/bean/OOoBeanTest.java b/bean/qa/complex/bean/OOoBeanTest.java deleted file mode 100644 index 1a4b81cbd..000000000 --- a/bean/qa/complex/bean/OOoBeanTest.java +++ /dev/null @@ -1,737 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -package complex.bean; - - -// import complexlib.ComplexTestCase; -import com.sun.star.lang.XMultiServiceFactory; -import java.awt.event.*; -import java.awt.event.KeyEvent; -import com.sun.star.comp.beans.OOoBean; -import com.sun.star.uno.UnoRuntime; - -import java.awt.*; - -// import org.junit.After; -import org.junit.AfterClass; -// import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.openoffice.test.OfficeConnection; -import static org.junit.Assert.*; - -class PrivateLocalOfficeConnection extends com.sun.star.comp.beans.LocalOfficeConnection -{ - public PrivateLocalOfficeConnection(com.sun.star.uno.XComponentContext xContext) - { - super(xContext); - } -} - -public class OOoBeanTest -{ - -// public String[] getTestMethodNames() -// { -// // TODO think about trigger of sub-tests from outside -// return new String[] -// { -// "test1", -// "test2", -// "test3", -// "test4", -// "test5", -// "test6", -// "test6a", -// "test7", -// "test8" -// }; -// } - - /** For X-Windows we need to prolong the time between painting windows. Because - it takes longer than on Windows. - */ - private int getSleepTime(int time) - { - int ret = time; - if (isWindows() == false) - { - return time * 5; - } - return time; - } - - /** If it cannot be determined if we run on Windows then we assume - that we do not. - */ - private boolean isWindows() - { - boolean ret = false; - String os = System.getProperty("os.name"); - if (os != null) - { - os = os.trim(); - if (os.toLowerCase().indexOf("win") == 0) - { - ret = true; - } - } - return ret; - } - - private String getText(OOoBean bean) throws Exception - { - com.sun.star.frame.XModel model = (com.sun.star.frame.XModel)bean.getDocument(); - com.sun.star.text.XTextDocument myDoc = - UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class, model); - com.sun.star.text.XText xText = myDoc.getText(); - return xText.getString(); - } - - /** 1.Create a Java frame - * 2.Add OOoBean (no document loaded yet) - * 3.Show frame - * 4.Load document - * @throws Exception - */ - @Test public void test1() throws Exception - { - WriterFrame f = null; - try - { - f = new WriterFrame(100 ,100, 500 ,400, false, connection.getComponentContext()); - f.setText("OOoBean test."); - Thread.sleep(1000); - } - finally - { - if (f != null) - { - f.dispose(); - } - } - } - - /** Sizing, painting - * @throws Exception - */ - @Test public void test2() throws Exception - { - WriterFrame f = null; - ScreenComparer capturer = null; - try - { - f = new WriterFrame(100, 100, 500,500, false, connection.getComponentContext()); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Client are of Java frame does not match the UNO window."); - } - capturer = new ScreenComparer(100, 100, 500, 500); - - //Minimize Window and back - f.goToStart(); - f.pageDown(); - Thread.sleep(1000); - for (int i = 0; i < 3; i++) - { - capturer.reset(); - capturer.grabOne(f.getClientArea()); - f.setExtendedState(Frame.ICONIFIED); - Thread.sleep(getSleepTime(200)); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Frame was iconified."); - } - f.setExtendedState(Frame.NORMAL); - Thread.sleep(getSleepTime(200)); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Frame size set back to normal after it was iconified."); - } - capturer.grabTwo(f.getClientArea()); - if (capturer.compare() == false) - { - fail("Painting error: Minimize (iconify) frame and back to normal size."); - capturer.writeImages(); - } - } - - //Maximize Window and back to normal - for (int i = 0; i < 3; i++) - { - capturer.reset(); - capturer.grabOne(f.getClientArea()); - f.setExtendedState(Frame.MAXIMIZED_BOTH); - Thread.sleep(getSleepTime(200)); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Frame maximized."); - } - f.setExtendedState(Frame.NORMAL); - Thread.sleep(getSleepTime(200)); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Frame set from maximized to normal."); - } - capturer.grabTwo(f.getClientArea()); - if (capturer.compare() == false) - { - fail("Painting error: Maximize frame and back to normal size"); - capturer.writeImages(); - } - } - - //move Window top left - capturer.reset(); - capturer.grabOne(f.getClientArea()); - Rectangle oldPosition = f.getBounds(); - f.setBounds(0, 0, oldPosition.width, oldPosition.height); - Thread.sleep(getSleepTime(200)); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Frame moved."); - } - - capturer.grabTwo(f.getClientArea()); - if (capturer.compare() == false) - { - fail("Painting error: Move frame to a different position."); - capturer.writeImages(); - } - - //move Window down - Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); - int maxY = dim.height - f.getBounds().height; - - int curY = 0; - while (curY < maxY) - { - capturer.reset(); - capturer.grabOne(f.getClientArea()); - oldPosition = f.getBounds(); - f.setBounds(0, curY, oldPosition.width, oldPosition.height); - capturer.grabTwo(f.getClientArea()); - if (capturer.compare() == false) - { - fail("Painting error: Move frame to a different position."); - capturer.writeImages(); - } - curY+= 50; - Thread.sleep(getSleepTime(200)); - } - - //obscure the window and make it visible again - - oldPosition = f.getBounds(); - - Rectangle pos = new Rectangle(oldPosition.x - 50, oldPosition.y - 50, - oldPosition.width, oldPosition.height); - Frame coverFrame = new Frame(); - coverFrame.setBounds(pos); - capturer.reset(); - capturer.grabOne(f.getClientArea()); - - for (int i = 0; i < 3; i++) - { - coverFrame.setVisible(true); - Thread.sleep(getSleepTime(200)); - f.toFront(); - Thread.sleep(getSleepTime(200)); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error: Frame moved from back to front."); - } - - capturer.grabTwo(f.getClientArea()); - if (capturer.compare() == false) - { - fail("Painting error: Move frame to back and to front."); - capturer.writeImages(); - } - } - - coverFrame.dispose(); - } - finally - { - if (f != null) - { - f.dispose(); - } - } - } - - /** - 1. Create a OOoBean - 2. Load a document - 3. Create Frame (do not show yet) - 4. Add OOoBean to Frame - 5. Show Frame - * @throws Exception - */ - @Test public void test3() throws Exception - { - WriterFrame f = null; - try - { - f = new WriterFrame(100, 100, 500, 300, true, connection.getComponentContext()); - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error."); - } - - } - finally - { - if (f != null) - { - f.dispose(); - } - } - } - - /** Test repeated OOoBean.aquireSystemWindow and OOoBean.releaseSystemWindow - * calls. - * @throws Exception - */ - @Test public void test4() throws Exception - { - WriterFrame f = null; - try - { - f = new WriterFrame(100, 100, 500, 300, false, connection.getComponentContext()); - OOoBean b = f.getBean(); - for (int i = 0; i < 100; i++) - { - b.releaseSystemWindow(); - b.aquireSystemWindow(); - } - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error."); - } - } - finally - { - if (f != null) - { - f.dispose(); - } - if (isWindows() == false) - { - Thread.sleep(10000); - } - } - } - - /** Adding and removing the bean to a Java frame multiple times. - * Test painting and sizing. - * @throws Exception - */ - @Test public void test5() throws Exception - { - WriterFrame f = null; - try - { - f = new WriterFrame(100, 100, 500, 400, false, connection.getComponentContext()); - f.goToStart(); - f.pageDown(); - Thread.sleep(1000); - - ScreenComparer capturer = new ScreenComparer(100,100,500,400); - capturer.grabOne(); - for (int i = 0; i < 100; i++) - { - f.removeOOoBean(); - f.addOOoBean(); - } - - f.goToStart(); - f.pageDown(); - Thread.sleep(getSleepTime(200)); - capturer.grabTwo(); - - if (capturer.compare() == false) - { - fail("Painting error: adding and removing OOoBean " + - "repeatedly to java.lang.Frame."); - capturer.writeImages(); - } - - if (f.checkUnoFramePosition() == false) - { - fail("Sizing error."); - } - - } - finally - { - if (f != null) - { - f.dispose(); - } - if (isWindows() == false) - { - Thread.sleep(10000); - } - } - } - - - /** Test focus (i49454). After repeatedly adding and removing the bean to a window - * it should still be possible to enter text in the window. This does not - * work all the time on Windows. This is probably a timing problem. When using - * Thread.sleep (position #1) then it should work. - * @throws Exception - */ - @Test public void test6() throws Exception - { - for (int j = 0; j < 10; j++) - { - final OOoBean bean = new OOoBean(new PrivateLocalOfficeConnection(connection.getComponentContext())); - java.awt.Frame frame = null; - bean.setOOoCallTimeOut(10000); - try { - frame = new java.awt.Frame("OpenOffice.org Demo"); - frame.add(bean, BorderLayout.CENTER); - frame.pack(); - frame.setSize(600,300); - frame.show(); - bean.loadFromURL("private:factory/swriter", null); - // #1 - Thread.sleep(1000); - - StringBuffer buf = new StringBuffer(1000); - for (int i = 0; i < 1; i++) - { -// Thread.sleep(1000); - bean.releaseSystemWindow(); - frame.remove(bean); -// frame.validate(); -// Thread.sleep(1000); - frame.add(bean, BorderLayout.CENTER); - bean.aquireSystemWindow(); -// frame.validate(); - } - - if (isWindows() == false) - { - Thread.sleep(5000); - } - - Robot roby = new Robot(); - roby.keyPress(KeyEvent.VK_H); - roby.keyRelease(KeyEvent.VK_H); - buf.append("h"); - - String s = getText(bean); - if ( ! s.equals(buf.toString())) - { - fail("Focus error: After removing and adding the bean, the" + - "office window does not receive keyboard input.\n" + - "Try typing in the window, you've got 30s!!! This " + - "test may not work with Linux/Solaris"); - Thread.sleep(30000); - break; - } - else - { - Thread.sleep(2000); - } - - } finally { - bean.stopOOoConnection(); - frame.dispose(); - } - } - } - - /** Tests focus problem just like test6, but the implementation is a little - * different. The bean is added and removed from withing the event dispatch - * thread. Using Thread.sleep at various points (#1, #2, #3) seems to workaround - * the problem. - * @throws Exception - */ - @Test public void test6a() throws Exception - { - for (int j = 0; j < 50; j++) - { - final OOoBean bean = new OOoBean(new PrivateLocalOfficeConnection(connection.getComponentContext())); - final java.awt.Frame frame = new Frame("Openoffice.org"); - bean.setOOoCallTimeOut(10000); - - try { - frame.add(bean, BorderLayout.CENTER); - frame.pack(); - frame.setSize(600,400); - frame.show(); - bean.loadFromURL("private:factory/swriter", null); - frame.validate(); - // #1 - Thread.sleep(1000); - StringBuffer buf = new StringBuffer(1000); - int i = 0; - - for (; i < 1; i++) - { - EventQueue q = Toolkit.getDefaultToolkit().getSystemEventQueue(); - q.invokeAndWait( new Runnable() { - public void run() { - try { - - bean.releaseSystemWindow(); - frame.remove(bean); - frame.validate(); - - } catch (Exception e) { - e.printStackTrace(); - } - - } - }); - // #2 - Thread.sleep(1000); - q.invokeAndWait( new Runnable() { - public void run() { - try { - - frame.add(bean, BorderLayout.CENTER); - bean.aquireSystemWindow(); - frame.validate(); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - - // #3 - Thread.sleep(1000); - } - - if (isWindows() == false) - { - Thread.sleep(5000); - } - - Robot roby = new Robot(); - roby.mouseMove(300, 200); - roby.waitForIdle(); - roby.mousePress(InputEvent.BUTTON1_MASK); - roby.waitForIdle(); - roby.mouseRelease(InputEvent.BUTTON1_MASK); - roby.waitForIdle(); - roby.keyPress(KeyEvent.VK_H); - roby.waitForIdle(); - roby.keyRelease(KeyEvent.VK_H); - roby.waitForIdle(); - - buf.append("h"); - Thread.sleep(1000); - String s = getText(bean); - System.out.println(" getText: " + s); - if ( ! s.equals(buf.toString())) - { - roby.mousePress(InputEvent.BUTTON1_MASK); - roby.waitForIdle(); - roby.mouseRelease(InputEvent.BUTTON1_MASK); - roby.waitForIdle(); - roby.keyPress(KeyEvent.VK_H); - roby.waitForIdle(); - roby.keyRelease(KeyEvent.VK_H); - roby.waitForIdle(); - - String sH = "h"; - Thread.sleep(1000); - String s2 = getText(bean); - - if ( ! sH.equals(s2)) - { - fail("Focus error: After removing and adding the bean, the" + - "office window does not receive keyboard input.\n" + - "Try typing in the window, you've got 30s!!! This " + - "test may not work with Linux/Solaris"); - System.out.println("j: " + j + " i: " + i); - Thread.sleep(30000); - break; - } - } - else - { - // Thread.sleep(2000); - } - - } finally { - bean.stopOOoConnection(); - frame.dispose(); - } - } - } - - /** Repeatedly loading a document in one and the same OOoBean instance. - * @throws Exception - */ - @Test public void test7() throws Exception - { - WriterFrame f = null; - try - { - f = new WriterFrame(100 ,100, 500 ,400, false, connection.getComponentContext()); - String text = "OOoBean test."; - - for (int i = 0; i < 10; i++) - { - f.getBean().clear(); - f.getBean().loadFromURL("private:factory/swriter", null); - f.setText(text); - f.goToStart(); - f.validate(); - - if (text.equals(f.getText()) == false) - { - fail("Repeated loading of a document failed."); - } - Thread.sleep(1000); - } - } - finally - { - if (f != null) - { - f.dispose(); - } - } - } - - /** Using multiple instances of OOoBean at the same time - * @throws Exception - */ - - @Test public void test8() throws Exception - { - OOoBean bean1 = new OOoBean(new PrivateLocalOfficeConnection(connection.getComponentContext())); - BeanPanel bp1 = new BeanPanel(bean1); - OOoBean bean2 = new OOoBean(new PrivateLocalOfficeConnection(connection.getComponentContext())); - BeanPanel bp2 = new BeanPanel(bean2); - OOoBean bean3 = new OOoBean(new PrivateLocalOfficeConnection(connection.getComponentContext())); - BeanPanel bp3 = new BeanPanel(bean3); - OOoBean bean4 = new OOoBean(new PrivateLocalOfficeConnection(connection.getComponentContext())); - BeanPanel bp4 = new BeanPanel(bean4); - - try - { - Frame f = new Frame("OOoBean example with several instances"); - f.setLayout(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - c.fill = GridBagConstraints.HORIZONTAL; - c.weightx = 0.5; - - c.insets = new Insets(0, 0, 0, 10); - c.gridx = 0; - c.gridy = 0; - f.add(bp1, c); - - c.gridx = 1; - c.insets = new Insets(0, 0, 0, 0); - f.add(bp2, c); - - c.gridx = 0; - c.gridy = 1; - c.insets = new Insets(10, 0, 0, 10); - f.add(bp3, c); - - c.gridx = 1; - c.gridy = 1; - c.insets = new Insets(10, 0, 0, 0); - f.add(bp4, c); - - f.pack(); - f.setBounds(0, 0, 1000, 600); - f.setVisible(true); - try { - bean1.loadFromURL("private:factory/swriter", null); - bean2.loadFromURL("private:factory/swriter", null); - bean3.loadFromURL("private:factory/swriter", null); - bean4.loadFromURL("private:factory/swriter", null); - } catch( Exception e) - { - e.printStackTrace(); - } - f.validate(); - - Thread.sleep(10000); - } - finally - { - bean1.stopOOoConnection(); - bean2.stopOOoConnection(); - bean3.stopOOoConnection(); - bean4.stopOOoConnection(); - } - } - - class BeanPanel extends Panel - { - public BeanPanel(OOoBean b) - { - setLayout(new BorderLayout()); - add(b, BorderLayout.CENTER); - } - public Dimension getPreferredSize() - { - Container c = getParent(); - return new Dimension(200, 200); - } - } - - - - - private XMultiServiceFactory getMSF() - { - final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager()); - return xMSF1; - } - - // setup and close connections - @BeforeClass public static void setUpConnection() throws Exception { - System.out.println("setUpConnection()"); - connection.setUp(); - } - - @AfterClass public static void tearDownConnection() - throws InterruptedException, com.sun.star.uno.Exception - { - System.out.println("tearDownConnection()"); - connection.tearDown(); - } - - private static final OfficeConnection connection = new OfficeConnection(); - - -} - - diff --git a/bean/qa/complex/bean/ScreenComparer.java b/bean/qa/complex/bean/ScreenComparer.java deleted file mode 100644 index d4796b964..000000000 --- a/bean/qa/complex/bean/ScreenComparer.java +++ /dev/null @@ -1,249 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -package complex.bean; - - -// import complexlib.ComplexTestCase; -import java.io.File; -import java.awt.Rectangle; -// import java.awt.BorderLayout; -import java.awt.image.BufferedImage; -import java.awt.image.PixelGrabber; -// import java.awt.event.*; -// import java.awt.Frame; -import javax.imageio.ImageIO; -// import javax.imageio.stream.FileImageOutputStream; - - - -class ScreenComparer -{ - Rectangle m_rect; - BufferedImage m_img1; - BufferedImage m_img2; - BufferedImage m_imgDiff; - - int m_diffColor; - public ScreenComparer(int x, int y, int width, int height) - { - this(new Rectangle(x, y, width, height)); - } - - public ScreenComparer(Rectangle location) - { - m_rect = location; - int red = 0xff; - int alpha = 0xff; - m_diffColor = (alpha << 24); - m_diffColor = m_diffColor | (red << 16); - } - - public ScreenComparer() - { - this(new Rectangle(0, 0, 0, 0)); - } - - public void reset() - { - m_rect = null; - m_img1 = null; - m_img2 = null; - m_imgDiff = null; - } - - public Rectangle getLocation() - { - return m_rect; - } - public void grabOne() throws Exception - { - grabOne(m_rect); - } - - public void grabOne(Rectangle r) throws Exception - { - java.awt.Robot robot = new java.awt.Robot(); - m_img1 = robot.createScreenCapture(r); - } - - public void grabTwo() throws Exception - { - grabTwo(m_rect); - } - - public void grabTwo(Rectangle r) throws Exception - { - java.awt.Robot robot = new java.awt.Robot(); - m_img2 = robot.createScreenCapture(r); - } - - public boolean compare() throws Exception - { - if (m_img1 == null || m_img2 == null) - { - throw new Exception("Only one image captured!"); - } - boolean ret = true; - int w1 = m_img1.getWidth(); - int h1 = m_img1.getHeight(); - int w2 = m_img2.getWidth(); - int h2 = m_img2.getHeight(); - - if (w1 != w2 || h1 != h2) - { - System.out.println("### 1\n"); - //Different size. Create an image that holds both images. - int w = w1 > w2 ? w1 : w2; - int h = h1 > h2 ? h1 : h2; - m_imgDiff = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); - for (int y = 0; y < h; y ++) - { - for (int x = 0; x < w; x++) - { - boolean bOutOfRange = false; - int pixel1 = 0; - int pixel2 = 0; - //get the pixel for m_img1 - if (x < w1 && y < h1) - { - pixel1 = m_img1.getRGB(x, y); - } - else - { - bOutOfRange = true; - } - - if (x < w2 && y < h2) - { - pixel2 = m_img2.getRGB(x, y); - } - else - { - bOutOfRange = true; - } - - if (bOutOfRange || pixel1 != pixel2) - { - m_imgDiff.setRGB(x, y, m_diffColor); - } - else - { - m_imgDiff.setRGB(x, y, pixel1); - } - - } - } - return false; - } - - //Images have same dimension - int[] pixels1 = new int[w1 * h1]; - PixelGrabber pg = new PixelGrabber( - m_img1.getSource(), 0, 0, w1, h1, pixels1, 0, w1); - pg.grabPixels(); - - int[] pixels2 = new int[w2 * h2]; - PixelGrabber pg2 = new PixelGrabber( - m_img2.getSource(), 0, 0, w2, h2, pixels2, 0, w2); - pg2.grabPixels(); - - m_imgDiff = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_ARGB); - - //First check if the the images differ. - int lenAr = pixels1.length; - int index = 0; - for (index = 0; index < lenAr; index++) - { - if (pixels1[index] != pixels2[index]) - { - break; - } - } - - //If the images are different, then create the diff image - if (index < lenAr) - { - for (int y = 0; y < h1; y++) - { - for (int x = 0; x < w1; x++) - { - int offset = y * w1 + x; - if (pixels1[offset] != pixels2[offset]) - { - ret = ret && false; - m_imgDiff.setRGB(x, y, m_diffColor); - } - else - { - m_imgDiff.setRGB(x, y, pixels1[offset]); - } - } - } - } - return ret; - } - - /** Writes Images to a location. The - * directory is determined by the java property OOoBean.Images - * - */ - public void writeImages() throws Exception - { - String imgLocation = System.getProperty("OOoBean.Images", ""); - File file_tmp = File.createTempFile("OOoBean", "", new File(imgLocation)); - File file1 = new File(file_tmp.getPath()+".png"); - file_tmp.delete(); - if (m_img1 != null) - { - ImageIO.write(m_img1, "png", file1); - System.out.println("\nCompared images:"); - System.out.println("1. " + file1.getPath()); - } - file1= null; - file_tmp= null; - file_tmp = File.createTempFile("OOoBean", "", new File(imgLocation)); - file1 = new File(file_tmp.getPath()+".png"); - file_tmp.delete(); - if (m_img2 != null) - { - ImageIO.write(m_img2, "png", file1); - System.out.println("2. " + file1.getPath()); - } - file1= null; - file_tmp= null; - file_tmp = File.createTempFile("OOoBean", "_diff", new File(imgLocation)); - file1 = new File(file_tmp.getPath()+".png"); - file_tmp.delete(); - if (m_imgDiff != null) - { - ImageIO.write(m_imgDiff, "png", file1); - System.out.println("Diff image: " + file1.getPath() + "\n"); - } - } - -} - diff --git a/bean/qa/complex/bean/WriterFrame.java b/bean/qa/complex/bean/WriterFrame.java deleted file mode 100644 index 711e74bf0..000000000 --- a/bean/qa/complex/bean/WriterFrame.java +++ /dev/null @@ -1,210 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -package complex.bean; - - -// import com.sun.star.comp.beans.LocalOfficeConnection; -import com.sun.star.uno.XComponentContext; -import java.awt.Rectangle; -import java.awt.Insets; -import java.awt.BorderLayout; -import com.sun.star.comp.beans.OOoBean; -import com.sun.star.uno.UnoRuntime; - - - -class WriterFrame extends java.awt.Frame -{ - com.sun.star.comp.beans.OOoBean m_bean; - final static String m_sDocURL = "private:factory/swriter"; - - /** - @param loadBeforeVisible - the OOoBean is added to the frame before it is displayable. Then the Java Frame does - not have a native window peer yet. - */ - public WriterFrame(int x, int y, int width, int height, boolean loadBeforeVisible, XComponentContext _xConn) throws Exception - { - - try - { - if (loadBeforeVisible == false) - { - m_bean = new com.sun.star.comp.beans.OOoBean(new PrivateLocalOfficeConnection(_xConn)); - add(m_bean, BorderLayout.CENTER); - pack(); - setBounds(x, y, width, height); - setVisible(true); - m_bean.loadFromURL(m_sDocURL, null); - validate(); - } - else - { - m_bean = new com.sun.star.comp.beans.OOoBean(new PrivateLocalOfficeConnection(_xConn)); - m_bean.loadFromURL(m_sDocURL, null); - add(m_bean, BorderLayout.CENTER); - pack(); - setBounds(x, y, width, height); - setVisible(true); - m_bean.aquireSystemWindow(); - } - } - catch (Exception e) - { - System.out.println("Exception caught: " + e.getMessage()); - } - } - - public WriterFrame() throws Exception - { - this(0, 0, 800, 400, false, null); - } - - public void setText(String s) throws Exception - { - com.sun.star.frame.XModel model = (com.sun.star.frame.XModel)m_bean.getDocument(); - com.sun.star.text.XTextDocument myDoc = - UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class, model); - com.sun.star.text.XText xText = myDoc.getText(); - com.sun.star.text.XTextCursor xTCursor = xText.createTextCursor(); - //inserting some Text - xText.insertString( xTCursor, s, false ); - } - - public String getText() throws Exception - { - com.sun.star.frame.XModel model = (com.sun.star.frame.XModel)m_bean.getDocument(); - com.sun.star.text.XTextDocument myDoc = - UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class, model); - com.sun.star.text.XText xText = myDoc.getText(); - return xText.getString(); - } - - @Override - public void dispose() { - m_bean.stopOOoConnection(); - setVisible(false); - super.dispose(); - } - - OOoBean getBean() - { - return m_bean; - } - - /** Makes sure the document is displayed at the beginning. - * This is important for comparing screenshots. - */ - public void goToStart() throws Exception - { - com.sun.star.frame.XModel xModel = (com.sun.star.frame.XModel)m_bean.getDocument(); - com.sun.star.frame.XController xController = xModel.getCurrentController(); - - com.sun.star.text.XTextViewCursorSupplier xVCSupplier = - UnoRuntime.queryInterface(com.sun.star.text.XTextViewCursorSupplier.class, xController); - - com.sun.star.text.XTextViewCursor xTViewCursor = xVCSupplier.getViewCursor ( ); - xTViewCursor.gotoStart(false); - } - - - public void pageDown() throws Exception - { - com.sun.star.frame.XModel xModel = (com.sun.star.frame.XModel)m_bean.getDocument(); - com.sun.star.frame.XController xController = xModel.getCurrentController(); - - com.sun.star.text.XTextViewCursorSupplier xVCSupplier = - UnoRuntime.queryInterface(com.sun.star.text.XTextViewCursorSupplier.class, xController); - com.sun.star.text.XTextViewCursor xTViewCursor = xVCSupplier.getViewCursor ( ); - com.sun.star.view.XScreenCursor xScreenCursor = - UnoRuntime.queryInterface(com.sun.star.view.XScreenCursor.class, xTViewCursor); - xScreenCursor.screenDown(); - } - - public Rectangle getClientArea() - { - - Insets i = getInsets(); - Rectangle r = getBounds(); - Rectangle rc = new Rectangle(r.x + i.left, r.y + i.top, - r.width - i.left - i.right, - r.height - i.top - i.bottom); - return rc; - } - - public Rectangle getUnoFramePosition() throws Exception - { - com.sun.star.awt.XWindow win = m_bean.getFrame().getContainerWindow(); - com.sun.star.awt.Rectangle rect = win.getPosSize(); - return new Rectangle(rect.X, rect.Y, rect.Width, rect.Height); - } - - /** After resizing the Java frame, the UNO window shall be resized - * as well, which is checked by this method. - */ - public boolean checkUnoFramePosition() throws Exception - { - Rectangle client = getClientArea(); - Rectangle unoWin = getUnoFramePosition(); - - if (client.x != unoWin.x - || client.y != unoWin.y - || client.width != unoWin.width - || client.height != unoWin.height) - { - System.out.println("\nPosition of client are of Java frame does not match the postion" + - "of the UNO window. These are the values of Java frame, followed by" + - "the UNO window: "); - System.out.println(client); - System.out.println(unoWin); - System.out.println(""); - return false; - } - - return true; - } - - public void removeOOoBean() throws Exception - { - //OOoBean.releaseSystemWindow need not be called because - //LocalOfficeWindow overrides removeNotify. - //However because of bt4745222 which was fixed in 1.4.2_04, - //this is very very slow. The workaround is use releaseSystemWindow - //beforehand. - m_bean.releaseSystemWindow(); - remove(m_bean); - } - - public void addOOoBean() throws Exception - { - add(m_bean, BorderLayout.CENTER); - m_bean.aquireSystemWindow(); - validate(); - } - -} - diff --git a/bean/qa/complex/bean/makefile.mk b/bean/qa/complex/bean/makefile.mk deleted file mode 100644 index 9a21e52ac..000000000 --- a/bean/qa/complex/bean/makefile.mk +++ /dev/null @@ -1,134 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -.IF "$(OOO_SUBSEQUENT_TESTS)" == "" -nothing .PHONY: -.ELSE - -PRJ = ../../.. -PRJNAME = bean -TARGET = qa_complex_bean - -.IF "$(OOO_JUNIT_JAR)" != "" -PACKAGE = complex/bean - -# here store only Files which contain a @Test -JAVATESTFILES = \ - OOoBeanTest.java - -# put here all other files -JAVAFILES = $(JAVATESTFILES) \ - ScreenComparer.java \ - WriterFrame.java - -JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar officebean.jar -EXTRAJARFILES = $(OOO_JUNIT_JAR) - -# Sample how to debug -# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y - -.END - -.INCLUDE: settings.mk -.INCLUDE: target.mk -.INCLUDE: installationtest.mk - -ALLTAR : javatest - -.END - -# -# -# -# -# PRJ := ..$/.. -# PRJNAME := bean -# TARGET := test_bean -# PACKAGE = complex -# -# .INCLUDE: settings.mk -# -# #----- compile .java files ----------------------------------------- -# -# JARFILES = officebean.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar -# JAVAFILES = OOoBeanTest.java ScreenComparer.java WriterFrame.java -# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) -# -# #----- make a jar from compiled files ------------------------------ -# -# MAXLINELENGTH = 100000 -# -# JARCLASSDIRS = $(PACKAGE) -# JARTARGET = $(TARGET).jar -# JARCOMPRESS = TRUE -# -# # --- Parameters for the test -------------------------------------- -# -# # test base is java complex -# CT_TESTBASE = -TestBase java_complex -# -# # test looks something like the.full.package.TestName -# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b) -# -# # start the runner application -# CT_APP = org.openoffice.Runner -# -# CT_NOOFFICE = -NoOffice -# -# -# OFFICE_CLASSPATH_TMP:=$(foreach,i,$(JARFILES) $(office)$/program$/classes$/$(i)$(PATH_SEPERATOR)) -# -# OFFICE_CLASSPATH=$(OFFICE_CLASSPATH_TMP:t"")$(SOLARBINDIR)$/OOoRunner.jar$(PATH_SEPERATOR)$(CLASSDIR) -# -# OOOBEAN_OPTIONS=-Dcom.sun.star.officebean.Options=-norestore -DOOoBean.Images=$(MISC) -# -# -# .INCLUDE: target.mk -# -# ALLTAR : RUNINSTRUCTIONS -# -# # --- Targets ------------------------------------------------------ -# -# #The OOoBean uses the classpath to find the office installation. -# #Therefore we must use the jar files from the office. -# RUN: -# java -cp $(OFFICE_CLASSPATH) $(OOOBEAN_OPTIONS) $(CT_APP) $(CT_NOOFFICE) $(CT_TESTBASE) $(CT_TEST) -# run: RUN -# -# rund: -# java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8100 -cp $(OFFICE_CLASSPATH) $(OOOBEAN_OPTIONS) $(CT_APP) $(CT_NOOFFICE) $(CT_TESTBASE) $(CT_TEST) -# -# -# -# RUNINSTRUCTIONS : -# @echo . -# @echo ########################### N O T E ###################################### -# @echo . -# @echo "To run the test you have to provide the office location." -# @echo Example: -# @echo dmake run office="d:/myOffice" -# @echo . -# diff --git a/bean/test/Test.java b/bean/test/Test.java deleted file mode 100644 index 84578f9f7..000000000 --- a/bean/test/Test.java +++ /dev/null @@ -1,68 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -package test; - - -import java.io.*; -import java.awt.*; -import java.awt.event.*; -import com.sun.star.comp.beans.OOoBean; -import com.sun.star.uno.UnoRuntime; - - -import java.awt.*; - -public class Test -{ - - public static void main(String [] args) - { - try { - Frame f = new Frame(); - final OOoBean b = new OOoBean(); - f.add(b, BorderLayout.CENTER); - f.pack(); - f.setSize(500, 400); - f.setVisible(true); - b.loadFromURL("private:factory/swriter", null); - f.validate(); - - f.addWindowListener(new WindowAdapter() { - public void windowClosing( java.awt.event.WindowEvent e){ - b.stopOOoConnection(); - System.exit(0); - - }}); - } - catch (Exception e) - { - e.printStackTrace(); - } - } -} - - diff --git a/bean/test/applet/oooapplet/OOoViewer.java b/bean/test/applet/oooapplet/OOoViewer.java deleted file mode 100644 index ba516c78b..000000000 --- a/bean/test/applet/oooapplet/OOoViewer.java +++ /dev/null @@ -1,208 +0,0 @@ -//************************************************************************* -// - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -//************************************************************************* -package oooapplet; - -import java.lang.reflect.Method; -import java.lang.reflect.Array; -import java.net.*; -import java.io.*; -import java.awt.*; -import java.awt.event.*; -import com.sun.star.comp.beans.*; -import java.applet.Applet; -import java.awt.Graphics; -import java.util.*; - -public class OOoViewer extends Applet { - - private OOoBean oBean; - - static private CustomURLClassLoader m_loader; - - Object m_objBean; - - public void init() { - try { - if (m_loader == null) { - String s = getParameter("office"); - System.out.println("sun.awt.noxembed: " + System.getProperty("sun.awt.noxembed")); - System.setProperty("sun.awt.xembedserver", "true"); - - File f = new File(s); - URL url = f.toURI().toURL(); - String officeURL = url.toString(); - URL[] arURL = new URL[] { - new URL(officeURL + "/program/classes/officebean.jar"), - new URL(officeURL + "/program/classes/jurt.jar"), - new URL(officeURL + "/program/classes/ridl.jar"), - new URL(officeURL + "/program/classes/unoil.jar"), - new URL(officeURL + "/program/classes/java_uno.jar"), - new URL(officeURL + "/program/classes/juh.jar") - }; - m_loader = new CustomURLClassLoader(arURL); - File fileProg = new File(s + "/program"); - m_loader.addResourcePath(fileProg.toURI().toURL()); - } - } catch (MalformedURLException e) { - e.printStackTrace(); - } - } - - public void start() { - try { - Class beanClass = m_loader.loadClass("com.sun.star.comp.beans.OOoBean"); - m_objBean = beanClass.newInstance(); - setLayout(new BorderLayout()); - add((java.awt.Container)m_objBean, BorderLayout.CENTER); - setVisible(true); - //this does not work here. Why? -// Class arPropValClass = m_loader.loadClass("[Lcom.sun.star.beans.PropertyValue;"); - Object arProp = Array.newInstance( - m_loader.loadClass("com.sun.star.beans.PropertyValue"), 1); - Class clazz = arProp.getClass(); - - Method methLoad = beanClass.getMethod( - "loadFromURL", new Class[] { - String.class, arProp.getClass() }); - - methLoad.invoke(m_objBean, new Object[] {"private:factory/swriter", null}); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (ClassCastException e) { - e.printStackTrace(); - } catch (java.lang.reflect.InvocationTargetException e) { - e.printStackTrace(); - } catch (java.lang.NoSuchMethodException e) { - e.printStackTrace(); } - - - - validate(); - } - - public void stop() { - try { - Method methStop = m_objBean.getClass().getMethod( - "stopOOoConnection", new Class[0]); - methStop.invoke(m_objBean, null); - } catch (java.lang.NoSuchMethodException e) { - e.printStackTrace(); - } catch (java.lang.IllegalAccessException e) { - e.printStackTrace(); - } - catch (java.lang.reflect.InvocationTargetException e) { - e.printStackTrace(); - } - - } - - public void destroy() { - } - - public void paint(Graphics g) { - } -} - - -final class CustomURLClassLoader extends URLClassLoader { - - private Vector resourcePaths; - - public CustomURLClassLoader( URL[] urls ) { - super( urls ); - } - - protected Class findClass( String name ) throws ClassNotFoundException { - // This is only called via this.loadClass -> super.loadClass -> - // this.findClass, after this.loadClass has already called - // super.findClass, so no need to call super.findClass again: - throw new ClassNotFoundException( name ); -// return super.findClass(name); - } - - - - protected Class loadClass( String name, boolean resolve ) - throws ClassNotFoundException - { - Class c = findLoadedClass( name ); - if ( c == null ) { - try { - c = super.findClass( name ); - } catch ( ClassNotFoundException e ) { - return super.loadClass( name, resolve ); - } catch ( SecurityException e ) { - // A SecurityException "Prohibited package name: java.lang" - // may occur when the user added the JVM's rt.jar to the - // java.class.path: - return super.loadClass( name, resolve ); - } - } - if ( resolve ) { - resolveClass( c ); - } - return c; - } - - public void addResourcePath(URL rurl) { - if (resourcePaths == null) resourcePaths = new Vector(); - resourcePaths.add(rurl); - } - - public URL getResource(String name) { - if (resourcePaths == null) return null; - - URL result = super.getResource(name); - if (result != null) { - return result; - } - - URL u = null; - URI uri = null; - for (Enumeration e = resourcePaths.elements(); e.hasMoreElements();) { - u = (URL)e.nextElement(); - if (u.getProtocol().startsWith("file")){ - try { - File f1 = new File(u.getPath()); - File f2 = new File(f1, name); - if (f2.exists()) { - return new URL(f2.toURI().toASCIIString()); - } - } catch (MalformedURLException e1) { - System.err.println("malformed url: "+e1.getMessage()); - continue; - } - } - } - return null; - } - -} diff --git a/bean/test/applet/oooapplet/bean.policy b/bean/test/applet/oooapplet/bean.policy deleted file mode 100644 index 5eb633d12..000000000 --- a/bean/test/applet/oooapplet/bean.policy +++ /dev/null @@ -1,16 +0,0 @@ -/* AUTOMATICALLY GENERATED ON Fri Aug 04 13:38:37 CEST 2006*/ -/* DO NOT EDIT */ -/*We could also use more accurate permissions here, but then we would need */ -/*to generate this file because of the paths here. */ -/*grant { */ -/* permission java.lang.RuntimePermission "loadLibrary.*"; */ -/* permission java.io.FilePermission "C:\\Program Files\\OpenOffice.org 2.0\\program\\*", "read"; */ -/* permission java.io.FilePermission "C:\\Program Files\\OpenOffice.org 2.0\\program\\classes\\*", "read"; */ -/* permission java.util.PropertyPermission "*", "read"; */ -/*}; */ - -grant { - permission java.security.AllPermission; - permission java.lang.RuntimePermission "queuePrintJob"; -}; - diff --git a/bean/test/applet/oooapplet/example.html b/bean/test/applet/oooapplet/example.html deleted file mode 100644 index 036684e24..000000000 --- a/bean/test/applet/oooapplet/example.html +++ /dev/null @@ -1,22 +0,0 @@ -<html> - <head> - <title></title> - </head> - <body> - <h1>OOoBean used by applet</h1> - <hr> -<script type="text/javascript"> -function writeApplet() { - var office = window.location.search.substring(1); - document.write("<applet code=\"oooapplet/OOoViewer.class\" archive=\"oooapplet.jar\" width=800 height=600>"); - document.write("<param name=\"office\" value=\"" + office + "\" >" ); - document.write("</applet>"); -} -writeApplet(); -</script> - <hr> - - </body> -</html> - -
\ No newline at end of file diff --git a/bean/test/applet/oooapplet/makefile.mk b/bean/test/applet/oooapplet/makefile.mk deleted file mode 100644 index 79a58cd3a..000000000 --- a/bean/test/applet/oooapplet/makefile.mk +++ /dev/null @@ -1,88 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/..$/.. -PRJNAME := bean -TARGET := oooapplet -PACKAGE = oooapplet - -.INCLUDE: settings.mk - -#----- compile .java files ----------------------------------------- - -JARFILES = officebean.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar -JAVAFILES = OOoViewer.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - - -JARCLASSDIRS = \ - oooapplet - -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE - -#----- make a jar from compiled files ------------------------------ - - -.INCLUDE: target.mk - - -ALLTAR : \ - COPY_FILES \ - RUNINSTRUCTIONS - - -COPY_FILES: example.html - $(GNUCOPY) -p $< $(CLASSDIR) -# --- Targets ------------------------------------------------------ - - -.IF "$(GUI)"=="WNT" -RUN: - firefox "$(CLASSDIR)$/example.html?$(office)" -.ELSE -TESTURL="file:///$(PWD)$/$(CLASSDIR)$/example.html?$(office)" -RUN: - firefox ${TESTURL:s/\///} -.ENDIF - -run: RUN - - - -RUNINSTRUCTIONS : - @echo . - @echo ########################### N O T E ###################################### - @echo . - @echo "Add to the java runtime settings for applets in the control panel these lines:" - @echo "-Djava.security.policy=$(PWD)$/bean.policy" - @echo "To run the test you have to provide the office location." - @echo Example: - @echo dmake run office="d:\\myOffice" - @echo . - - diff --git a/bean/test/makefile.mk b/bean/test/makefile.mk deleted file mode 100644 index afc553c49..000000000 --- a/bean/test/makefile.mk +++ /dev/null @@ -1,76 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := .. -PRJNAME := bean -TARGET := test -PACKAGE = test - -.INCLUDE: settings.mk - -#----- compile .java files ----------------------------------------- - -JARFILES = officebean.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar -JAVAFILES = Test.java -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ - -MAXLINELENGTH = 100000 - -OFFICE_CLASSPATH_TMP:=$(foreach,i,$(JARFILES) $(office)$/program$/classes$/$(i)$(PATH_SEPERATOR)) -OFFICE_CLASSPATH=$(OFFICE_CLASSPATH_TMP:t"")$(PATH_SEPERATOR)$(CLASSDIR) - -OOOBEAN_OPTIONS=-Dcom.sun.star.officebean.Options=-norestore - - -.INCLUDE: target.mk - -ALLTAR : RUNINSTRUCTIONS - -# --- Targets ------------------------------------------------------ - -#The OOoBean uses the classpath to find the office installation. -#Therefore we must use the jar files from the office. -RUN: - java -cp $(OFFICE_CLASSPATH) $(OOOBEAN_OPTIONS) $(PACKAGE).Test -run: RUN - -rund: - java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8100 -cp $(OFFICE_CLASSPATH) $(OOOBEAN_OPTIONS) $(PACKAGE).Test - - - -RUNINSTRUCTIONS : - @echo . - @echo ########################### N O T E ###################################### - @echo . - @echo "To run the test you have to provide the office location." - @echo Example: - @echo dmake run office="d:/myOffice" - @echo . - diff --git a/bean/util/delzip b/bean/util/delzip deleted file mode 100644 index e69de29bb..000000000 --- a/bean/util/delzip +++ /dev/null diff --git a/bean/util/makefile.mk b/bean/util/makefile.mk deleted file mode 100644 index b463b3461..000000000 --- a/bean/util/makefile.mk +++ /dev/null @@ -1,56 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ = .. -PRJNAME = bean -TARGET = officebean - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.IF "$(L10N_framework)"=="" -JARCLASSDIRS = \ - com$/sun$/star$/comp$/beans \ - com$/sun$/star$/beans - -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE - -# Special work necessary for building java reference with javadoc. -# The source of puplic APIs must be delivered and used later in the -# odk module. -ZIP1TARGET=$(TARGET)_src -ZIP1FLAGS=-u -r -ZIP1DIR=$(PRJ) -ZIP1LIST=com -x "*makefile.mk" - -# --- Targets ------------------------------------------------------ -.ENDIF # L10N_framework - -.INCLUDE : target.mk - - |