/*
* Copyright (c) 2008 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:
*
*/
package com.nokia.mj.impl.rt.ui;
import com.nokia.mj.impl.rt.support.ApplicationInfo;
/**
* Factory for RuntimeUI interfaces.
*/
public class RuntimeUiFactory
{
/**
* Get instance of Runtime UI.
*
* @return Runtime UI instance
*/
public static RuntimeUi getRuntimeUi()
{
boolean identified = false;
String protectionDomain =
ApplicationInfo.getInstance().getProtectionDomain();
if (protectionDomain != null &&
!protectionDomain.equals
(ApplicationInfo.UNIDENTIFIED_THIRD_PARTY_DOMAIN))
{
identified = true;
}
return getRuntimeUi(identified);
}
/**
* Get instance of Runtime UI.
*
* @param aIdentified true if the UI instance corresponds to an identified
* application, false otherwise
* @return Runtime UI instance
*/
public static RuntimeUi getRuntimeUi(boolean aIdentified)
{
String className = "com.nokia.mj.impl.rt.ui.RuntimeUi";
String uiProperty = System.getProperty("com.nokia.mj.impl.rt.ui");
if (uiProperty != null)
{
className = uiProperty;
}
RuntimeUi runtimeUi = null;
try
{
Class clazz = Class.forName(className);
runtimeUi = (RuntimeUi)clazz.newInstance();
runtimeUi.setIdentified(aIdentified);
}
catch (Exception ex)
{
RuntimeUi.logError("Instantiating " + className + " failed", ex);
}
return runtimeUi;
}
}