Add ISymbianManagerLoadedHook - currently used to notify com.nokia.qt plugins that need to ensure that Qt SDKs have been scanned and added to the Qt preferences and that ICarbideBuildConfiguration listeners are added so the proper Qt-SDK can be set with build config changes. Scanned Qt SDKs are wrapped in a Job and added SDKs are reported to the Error log as Info.
/*
* 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 the License "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:
*
*/
include("containerLibrary.js")
/**
* Get the layout data.
*
* If Layout Data is different than "Inherit", then the layout data is returned,
* if not, iterate over all parent relationship.
*
* @param instance the instance where look in the layout data.
* @param propertyPath the name of the property to analize.
* @param propertyDefaultValue the default value of propertyPath which will
* determine if the parent layout data should be reviewed or not.
* @return the layout data.
*/
function getLayoutData ( instance, propertyPath, propertyDefaultValue ) {
var container = "com.nokia.carbide.uiq.CQikContainer";
var sbb = "com.nokia.carbide.uiq.SystemBuildingBlock";
var slot = "com.nokia.carbide.uiq.ItemSlot";
var viewPage = "com.nokia.carbide.uiq.ViewPage";
var containersGroup = "com.nokia.carbide.uiq.ContainersGroup";
var parentInstance = instance.parent;
var parentID = instance.parent.component.id;
var properties = instance.properties;
var layoutManagerInstance = null;
var layoutData = null;
while ((parentInstance != null) && (parentID != viewPage) && (parentID != containersGroup)) {
if (parentID == container) {
//println("**************** parent: container");
layoutManagerInstance = findImmediateChildByAttributeValue( parentInstance.children, "is-layout-manager", "true");
if ( layoutManagerInstance == null ) {
return propertyDefaultValue;
}
layoutData = instance.properties.layoutData[propertyPath];
if ( layoutData != propertyDefaultValue ) {
return layoutData
}
return getLayoutData ( parentInstance, propertyPath, propertyDefaultValue );
}
if (parentID == slot) {
//println("**************** parent: slot");
return getLayoutData ( parentInstance, propertyPath, propertyDefaultValue );
}
if (parentID == sbb) {
//println("**************** parent: SBB");
layoutManagerInstance = findImmediateChildByAttributeValue( parentInstance.parent.children, "is-layout-manager", "true");
if ( layoutManagerInstance == null ) {
return propertyDefaultValue;
}
layoutData = parentInstance.properties.layoutData[propertyPath];
if ( layoutData != propertyDefaultValue ) {
return layoutData
}
return getLayoutData ( parentInstance, propertyPath, propertyDefaultValue );
}
return propertyDefaultValue;
}
return getLayoutManagerLayoutData( instance.children, propertyPath, propertyDefaultValue );
}
/**
* Get the layout data of LayoutManager.
*
* If Layout Manager is null, then the default value of the property will be
* returned.
*
* @param children the children where look in the layout data.
* @param propertyPath the name of the property to analize.
* @param propertyDefaultValue the default value of propertyPath.
* @return the layout data of LayoutManager or propertyDefaultValue if
* LayoutManager is null .
*/
function getLayoutManagerLayoutData( children, propertyPath, propertyDefaultValue ) {
var layoutManager = findImmediateChildByAttributeValue( children, "is-layout-manager", "true");
if (layoutManager != null) {
//println("**************** sister: layout Manager");
return layoutManager.properties.defaultLayoutData[propertyPath];
}
return propertyDefaultValue;
}