summaryrefslogtreecommitdiff
path: root/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java
diff options
context:
space:
mode:
Diffstat (limited to 'swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java')
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java176
1 files changed, 0 insertions, 176 deletions
diff --git a/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java b/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java
deleted file mode 100644
index ddc7602..0000000
--- a/swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java
+++ /dev/null
@@ -1,176 +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.wiki;
-
-import com.sun.star.uno.Any;
-import com.sun.star.awt.XDialog;
-import com.sun.star.awt.XCallback;
-import com.sun.star.awt.XMessageBox;
-import com.sun.star.awt.XRequestCallback;
-import com.sun.star.lang.XMultiComponentFactory;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-
-public class MainThreadDialogExecutor implements XCallback
-{
- private WikiDialog m_aWikiDialog;
- private XDialog m_xDialog;
- private XMessageBox m_xMessageBox;
- private boolean m_bResult = false;
- private boolean m_bCalled = false;
- private boolean m_bClose = false;
-
- static public boolean Show( XComponentContext xContext, WikiDialog aWikiDialog )
- {
- MainThreadDialogExecutor aExecutor = new MainThreadDialogExecutor( aWikiDialog );
- return GetCallback( xContext, aExecutor );
- }
-
- static public boolean Execute( XComponentContext xContext, XDialog xDialog )
- {
- MainThreadDialogExecutor aExecutor = new MainThreadDialogExecutor( xDialog );
- return GetCallback( xContext, aExecutor );
- }
-
- static public boolean Execute( XComponentContext xContext, XMessageBox xMessageBox )
- {
- MainThreadDialogExecutor aExecutor = new MainThreadDialogExecutor( xMessageBox );
- return GetCallback( xContext, aExecutor );
- }
-
- static public boolean Close( XComponentContext xContext, XDialog xDialog )
- {
- MainThreadDialogExecutor aExecutor = new MainThreadDialogExecutor( xDialog, true );
- return GetCallback( xContext, aExecutor );
- }
-
- static private boolean GetCallback( XComponentContext xContext, MainThreadDialogExecutor aExecutor )
- {
- try
- {
- if ( aExecutor != null )
- {
- String aThreadName = null;
- Thread aCurThread = Thread.currentThread();
- if ( aCurThread != null )
- aThreadName = aCurThread.getName();
-
- if ( aThreadName != null && aThreadName.equals( "com.sun.star.thread.WikiEditorSendingThread" ) )
- {
- // the main thread should be accessed asynchronously
- XMultiComponentFactory xFactory = xContext.getServiceManager();
- if ( xFactory == null )
- throw new com.sun.star.uno.RuntimeException();
-
- XRequestCallback xRequest = (XRequestCallback)UnoRuntime.queryInterface(
- XRequestCallback.class,
- xFactory.createInstanceWithContext( "com.sun.star.awt.AsyncCallback", xContext ) );
- if ( xRequest != null )
- {
- xRequest.addCallback( aExecutor, Any.VOID );
- do
- {
- Thread.yield();
- }
- while( !aExecutor.m_bCalled );
- }
- }
- else
- {
- // handle it as a main thread
- aExecutor.notify( Any.VOID );
- }
- }
- }
- catch( Exception e )
- {
- e.printStackTrace();
- }
-
- return aExecutor.GetResult();
- }
-
- private MainThreadDialogExecutor( WikiDialog aWikiDialog )
- {
- m_aWikiDialog = aWikiDialog;
- }
-
- private MainThreadDialogExecutor( XDialog xDialog )
- {
- m_xDialog = xDialog;
- }
-
- private MainThreadDialogExecutor( XDialog xDialog, boolean bClose )
- {
- m_xDialog = xDialog;
- m_bClose = true;
- m_bCalled = true; // no yielding, asynchronous closing
- }
-
- private MainThreadDialogExecutor( XMessageBox xMessageBox )
- {
- m_xMessageBox = xMessageBox;
- }
-
- private boolean GetResult()
- {
- return m_bResult;
- }
-
- public void notify( Object aData )
- {
- if ( m_aWikiDialog != null )
- m_bResult = m_aWikiDialog.show();
- else if ( m_xDialog != null )
- {
- if ( !m_bClose )
- m_bResult = ( m_xDialog.execute() == 1 );
- else
- {
- try
- {
- m_xDialog.endExecute();
- }
- catch( Exception e )
- {
- e.printStackTrace();
- }
- m_bResult = true;
- }
- }
- else if ( m_xMessageBox != null )
- {
- int nRes = m_xMessageBox.execute();
- m_bResult = ( nRes == com.sun.star.awt.MessageBoxCommand.OK
- || nRes == com.sun.star.awt.MessageBoxCommand.YES );
- }
-
- m_bCalled = true;
- }
-};
-