summaryrefslogtreecommitdiff
path: root/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java
diff options
context:
space:
mode:
Diffstat (limited to 'odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java')
-rw-r--r--odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java228
1 files changed, 0 insertions, 228 deletions
diff --git a/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java b/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java
deleted file mode 100644
index 9b572bf0..00000000
--- a/odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java
+++ /dev/null
@@ -1,228 +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.
- *
- ************************************************************************/
-import com.sun.star.bridge.XUnoUrlResolver;
-import com.sun.star.lang.XMultiComponentFactory;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.util.XCloseable;
-
-public abstract class DocumentBasedExample implements com.sun.star.lang.XEventListener
-{
- /// the intial remote context from the office
- protected XComponentContext m_xCtx;
- /// our current test document
- protected DocumentHelper m_document;
- protected FormLayer m_formLayer;
- protected DocumentType m_documentType;
-
- /** Creates a new instance of DocumentBasedExample */
- public DocumentBasedExample( DocumentType documentType )
- {
- bootstrapUNO();
- m_documentType = documentType;
- }
-
- /* ------------------------------------------------------------------ */
- private void bootstrapUNO()
- {
- try
- {
- /*
- final XComponentContext componentContext = com.sun.star.comp.helper.Bootstrap.
- createInitialComponentContext( null );
- final XMultiComponentFactory localServiceManager = componentContext.getServiceManager();
-
- final XUnoUrlResolver urlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface(
- XUnoUrlResolver.class, localServiceManager.createInstanceWithContext(
- "com.sun.star.bridge.UnoUrlResolver", componentContext) );
-
- final String connectStr = "uno:pipe,name=<pipename>;urp;StarOffice.ComponentContext";
- final Object initialObject = urlResolver.resolve( connectStr );
-
- m_xCtx = (XComponentContext)UnoRuntime.queryInterface( XComponentContext.class,
- initialObject );
- */
-
- // get the remote office component context
- m_xCtx = com.sun.star.comp.helper.Bootstrap.bootstrap();
- System.out.println("Connected to a running office ...");
- }
- catch (java.lang.Exception e)
- {
- e.printStackTrace( System.err );
- System.exit(1);
- }
- }
-
- /* ------------------------------------------------------------------ */
- /** main method for running the sample
- */
- public void run( String argv[] )
- {
- try
- {
- // collect whatever parameters were given
- collectParameters( argv );
-
- // prepare our sample document
- prepareDocument();
-
- // switch the document view's form layer to alive mode
- m_document.getCurrentView().toggleFormDesignMode();
- onFormsAlive();
-
- // grab the focus to the first control
- m_document.getCurrentView().grabControlFocus();
-
- // ----------------------------------------------
- // wait for the user to confirm that we can exit
- if ( waitForUserInput() )
- {
- // clean up
- cleanUp();
- }
-
- // if waitForUserInput returns false, the user closed the document manually - no need to do a clean up
- // then
- }
- catch(com.sun.star.uno.Exception e)
- {
- System.out.println(e);
- e.printStackTrace();
- }
- catch(java.lang.Exception e)
- {
- System.out.println(e);
- e.printStackTrace();
- }
-
- System.exit(0);
- }
-
- /* ------------------------------------------------------------------ */
- /** collect the RuntimeArguments
- */
- protected void collectParameters(String argv[])
- {
- // not interested in. Derived classes may want to use it.
- }
-
- /* ------------------------------------------------------------------ */
- /** prepares a new document to work with
- */
- protected void prepareDocument() throws com.sun.star.uno.Exception, java.lang.Exception
- {
- m_document = DocumentHelper.blankDocument(m_xCtx, m_documentType);
- m_document.getDocument( ).addEventListener( this );
- m_formLayer = new FormLayer( m_document );
- }
-
- /* ------------------------------------------------------------------ */
- /** called when the form layer has been switched to alive mode
- */
- protected void onFormsAlive()
- {
- }
-
- /* ------------------------------------------------------------------ */
- /** performs any cleanup before exiting the program
- */
- protected void cleanUp( ) throws java.lang.Exception
- {
- // do not listen at the document any longer
- m_document.getDocument().removeEventListener( this );
-
- // close the document
- closeDocument();
- }
-
- /* ------------------------------------------------------------------ */
- /** closes our document, if we have an open one
- */
- private void closeDocument()
- {
- try
- {
- // close our document
- if ( m_document != null )
- {
- XCloseable closeDoc = (XCloseable)
- UnoRuntime.queryInterface( XCloseable.class,
- m_document.getDocument() );
- if (closeDoc != null)
- closeDoc.close( true );
- else
- m_document.getDocument().dispose();
- }
- }
- catch ( com.sun.star.uno.Exception e )
- {
- e.printStackTrace( System.out );
- }
- }
-
- /* ------------------------------------------------------------------ */
- /* internal methods */
- /* ------------------------------------------------------------------ */
- /** waits for the user to press a key (on the console where she started
- the java program) or the document to be closed by the user.
-
- @return <TRUE/> if the user pressed a key on the console,
- <FALSE/> if she closed the document
- */
- protected boolean waitForUserInput() throws java.lang.Exception
- {
- synchronized (this)
- {
- WaitForInput aWait = new WaitForInput( this );
- aWait.start();
- wait();
-
- // if the waiter thread is done, the user pressed enter
- boolean bKeyPressed = aWait.isDone();
- if ( !bKeyPressed )
- aWait.interrupt();
-
- return bKeyPressed;
- }
- }
-
- /* ------------------------------------------------------------------ */
- /* XEventListener overridables */
- /* ------------------------------------------------------------------ */
- public void disposing( com.sun.star.lang.EventObject eventObject )
- {
- if ( m_document.getDocument().equals( eventObject.Source ) )
- {
- // notify ourself that we can stop waiting for user input
- synchronized (this)
- {
- notify();
- }
- }
- }
-}