diff -r abc41079b313 -r 59b3b4473dc8 javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/Platform.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/Platform.java Fri Jul 23 12:27:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ -/** - * \file - * \brief Target platform dependent Java module for Symbian. - * - */ - -package com.nokia.microedition.m2g; -import javax.microedition.lcdui.Graphics; -import javax.microedition.lcdui.Image; -import org.eclipse.swt.widgets.Display; - -import com.nokia.mj.impl.nokialcdui.LCDUIInvoker; -import org.eclipse.swt.internal.extension.DisplayExtension; - -/** - * Implements platform-dependent functionality. At the moment, this - * includes native finalization and some helper methods for - * synchronizing 2D and 3D rendering. - */ -class Platform -{ - /** - * eSWT display for ui thread access - */ - private static Display display = null; - private static boolean libraryLoaded = false; - - //------------------------------------------------------------------ - // Package private methods - //------------------------------------------------------------------ - - /** - * Executes given runnable in UI thread if caller thread is not UI thread - */ - static void executeInUIThread(M2GRunnableQt obj) - { - if (display == null) - { - if (!uiThreadAvailable()) - { - throw new Error("Ui thread not available"); - } - } - if (display.isDisposed()) - { - throw new Error("Display already disposed"); - } - - if (obj != null) - { - // If we are not in UI thread use display - if (Thread.currentThread() != display.getThread()) - { - display.syncExec(obj); - } - else - { - // In this case we are in UI thread so just execute directly - obj.run(); - } - // Check if any exceptions occured in execution - // and throw forward in caller thread - obj.checkAndThrow(); - } - } - - /** - * Check the UI thread / toolkit init status and store display if it is available - * @return true if either lcdui or eswt toolkit is initialized and ui thread is accessible - * otherwise false - */ - static boolean uiThreadAvailable() - { - if (display != null) - { - return true; - } - else - { - display = DisplayExtension.getDisplayInstance(); - System.out.println("P-UI Thread not available Case" ); - if (display == null) - { - return false; - } - else - { - System.out.println("P-UI Thread available Case" ); - // UI thread is available, so load native library if not already loaded - if (!libraryLoaded) - { - System.out.println("P-UI Thread not available Case Javam2g loaded" ); - com.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javam2g"); - libraryLoaded = true; - } - return true; - } - } - } - - /** - * Registers an Object3D in the global handle-to-object map. The - * handle of the object must already be set at this point! - */ -// static final void registerFinalizer(Object3D obj) -// { -// //heuristicGC(); -// } -// -// /** -// * Registers a Graphics3D object (not derived from Object3D) for -// * finalization. -// */ -// static final void registerFinalizer(Graphics3D g3d) -// { -// //heuristicGC(); -// } -// -// /** -// * Registers an Interface object for finalization -// */ -// static final void registerFinalizer(Interface m2G) -// { -// } -// -// /** -// * Registers a Loader object for finalization -// */ -// static final void registerFinalizer(Loader loader) -// { -// } -// -// /** -// * Flushes all pending rendering to a Graphics context and blocks -// * until finished -// */ -// static final void sync(Graphics g) -// { -// //ToolkitInvoker invoker = ToolkitInvoker.getToolkitInvoker(); -// //invoker.toolkitSync(invoker.getToolkit()); -// } -// -// /** -// * Flushes all pending rendering to an Image object -// */ -// static final void sync(Image img) -// { -// //ToolkitInvoker invoker = ToolkitInvoker.getToolkitInvoker(); -// //invoker.toolkitSync(invoker.getToolkit()); -// } -// -// /** -// * Finalizes the native peer of an interface -// */ -// static final native void finalizeInterface(int handle); -// -// /** -// * Finalizes the native peer of an object -// * JCF: added this wrapper method so we could pass the toolkit handle to the native method. -// */ - static final void finalizeObject(int handle) - { - try - { - final int finalHandle = handle; - executeInUIThread( - new M2GRunnableQt() - { - void doRun() - { - _finalizeObject(finalHandle); - } - }); - } - catch (Exception e) - { - // do nothing - } - } - - /** - * Finalizes the native peer of an object associated with - * given Interface instance - */ -// static final void finalizeObject(int handle, Interface aInterface) -// { -// try -// { -// final int finalHandle = handle; -// executeInUIThread( -// new M2GRunnable() -// { -// public void doRun() -// { -// _finalizeObject(finalHandle); -// } -// }); -// } -// catch (Exception e) -// { -// // do nothing -// } -// } - - - //------------------------------------------------------------------ - // Private methods - //------------------------------------------------------------------ - - /** - * Trigger GC if minimum free memory limit has been exceeded in the native side - */ - static final void heuristicGC() - { - } - private static final native void _finalizeObject(int handle); -} -