本文整理汇总了C++中iconfigurationelement::Pointer::GetChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::GetChildren方法的具体用法?C++ Pointer::GetChildren怎么用?C++ Pointer::GetChildren使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类iconfigurationelement::Pointer
的用法示例。
在下文中一共展示了Pointer::GetChildren方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadElement
bool PerspectiveRegistryReader::ReadElement(const IConfigurationElement::Pointer &element)
{
if (element->GetName() == WorkbenchRegistryConstants::TAG_PERSPECTIVE)
{
try
{
QString id = element->GetAttribute(WorkbenchRegistryConstants::ATT_ID);
PerspectiveDescriptor::Pointer desc(
new PerspectiveDescriptor(id, element));
QList<berry::IConfigurationElement::Pointer> childs = element->GetChildren("description");
if (!childs.isEmpty())
{
desc->SetDescription(childs[0]->GetValue());
}
registry->AddPerspective(desc);
}
catch (const CoreException& e)
{
// log an error since its not safe to open a dialog here
WorkbenchPlugin::Log("Unable to create layout descriptor.", e);//$NON-NLS-1$
}
return true;
}
return false;
}
示例2: GetDescription
std::string RegistryReader::GetDescription(IConfigurationElement::Pointer configElement)
{
IConfigurationElement::vector children(configElement->GetChildren(WorkbenchRegistryConstants::TAG_DESCRIPTION));
if (children.size() >= 1)
{
return children[0]->GetValue();
}
return "";//$NON-NLS-1$
}
示例3: result
Expression::Pointer
StandardElementHandler::Create(ExpressionConverter* converter, IConfigurationElement::Pointer element)
{
std::string name = element->GetName();
if (ExpressionTagNames::INSTANCEOF == name) {
Expression::Pointer result(new InstanceofExpression(element));
return result;
} else if (ExpressionTagNames::TEST == name) {
Expression::Pointer result(new TestExpression(element));
return result;
} else if (ExpressionTagNames::OR == name) {
CompositeExpression::Pointer result(new OrExpression());
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::AND == name) {
CompositeExpression::Pointer result(new AndExpression());
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::NOT == name) {
IConfigurationElement::vector children(element->GetChildren());
Expression::Pointer result(new NotExpression(converter->Perform(children[0])));
return result;
} else if (ExpressionTagNames::WITH == name) {
CompositeExpression::Pointer result(new WithExpression(element));
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::ADAPT == name) {
CompositeExpression::Pointer result(new AdaptExpression(element));
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::ITERATE == name) {
CompositeExpression::Pointer result(new IterateExpression(element));
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::COUNT == name) {
Expression::Pointer result(new CountExpression(element));
return result;
} else if (ExpressionTagNames::SYSTEM_TEST == name) {
Expression::Pointer result(new SystemTestExpression(element));
return result;
} else if (ExpressionTagNames::RESOLVE == name) {
CompositeExpression::Pointer result(new ResolveExpression(element));
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::ENABLEMENT == name) {
CompositeExpression::Pointer result(new EnablementExpression(element));
this->ProcessChildren(converter, element, result);
return result;
} else if (ExpressionTagNames::EQUALS == name) {
Expression::Pointer result(new EqualsExpression(element));
return result;
} else if (ExpressionTagNames::REFERENCE == name) {
Expression::Pointer result(new ReferenceExpression(element));
return result;
}
return Expression::Pointer();
}
示例4: AddWarning
SmartPointer<Expression> RegistryPersistence::ReadWhenElement(
const SmartPointer<IConfigurationElement>& parentElement,
const QString& whenElementName, const QString& id,
QList<SmartPointer<IStatus> >& warningsToLog)
{
// Check to see if we have an when expression.
const QList<IConfigurationElement::Pointer> whenElements = parentElement
->GetChildren(whenElementName);
Expression::Pointer whenExpression;
if (!whenElements.isEmpty())
{
// Check if we have too many when elements.
if (whenElements.size() > 1)
{
// There should only be one when element
AddWarning(warningsToLog,
"There should only be one when element", parentElement,
id, "whenElementName", whenElementName);
return ERROR_EXPRESSION;
}
const IConfigurationElement::Pointer whenElement = whenElements.front();
const QList<IConfigurationElement::Pointer> expressionElements = whenElement->GetChildren();
if (!expressionElements.isEmpty())
{
// Check if we have too many expression elements
if (expressionElements.size() > 1)
{
// There should only be one expression element
AddWarning(warningsToLog, "There should only be one expression element", parentElement,
id, "whenElementName", whenElementName);
return ERROR_EXPRESSION;
}
// Convert the activeWhen element into an expression.
const ElementHandler::Pointer elementHandler = ElementHandler::GetDefault();
ExpressionConverter* const converter = ExpressionConverter::GetDefault();
const IConfigurationElement::Pointer expressionElement = expressionElements.front();
try
{
whenExpression = elementHandler->Create(converter, expressionElement);
}
catch (const CoreException& /*e*/)
{
// There when expression could not be created.
AddWarning(warningsToLog, "Problem creating when element",
parentElement, id, "whenElementName", whenElementName);
return ERROR_EXPRESSION;
}
}
}
return whenExpression;
}
示例5: GetPlugin
QSharedPointer<ctkPlugin> WorkbenchPlugin::GetBundleForExecutableExtension(
const IConfigurationElement::Pointer& element, const QString& extensionName)
{
// this code is derived heavily from
// ConfigurationElement.createExecutableExtension.
QString prop;
QString executable;
QString contributorName;
int i = 0;
if (!extensionName.isNull())
prop = element->GetAttribute(extensionName);
else
{
// property not specified, try as element value
prop = element->GetValue();
if (!prop.isNull())
{
prop = prop.trimmed();
if (prop.isEmpty())
prop = QString();
}
}
if (prop.isNull())
{
// property not defined, try as a child element
QList<IConfigurationElement::Pointer> exec(element->GetChildren(extensionName));
if (!exec.isEmpty())
contributorName = exec[0]->GetAttribute("plugin");
}
else
{
// simple property or element value, parse it into its components
i = prop.indexOf(':');
if (i != -1)
executable = prop.left(i).trimmed();
else
executable = prop;
i = executable.indexOf('/');
if (i != -1)
contributorName = executable.left(i).trimmed();
}
if (contributorName.isNull())
contributorName = element->GetContributor()->GetName();
return Platform::GetPlugin(contributorName);
}
示例6: GetBundleForExecutableExtension
IBundle::Pointer WorkbenchPlugin::GetBundleForExecutableExtension(
IConfigurationElement::Pointer element, const std::string& extensionName)
{
// this code is derived heavily from
// ConfigurationElement.createExecutableExtension.
std::string prop;
std::string executable;
std::string contributorName;
std::string::size_type i;
if (extensionName != "")
element->GetAttribute(extensionName, prop);
else
{
// property not specified, try as element value
prop = element->GetValue();
if (prop != "")
{
Poco::trimInPlace(prop);
}
}
if (prop == "")
{
// property not defined, try as a child element
IConfigurationElement::vector exec(element->GetChildren(extensionName));
if (exec.size() != 0)
exec[0]->GetAttribute("plugin", contributorName); //$NON-NLS-1$
}
else
{
// simple property or element value, parse it into its components
i = prop.find_first_of(':');
if (i != std::string::npos)
executable = Poco::trim(prop.substr(0, i));
else
executable = prop;
i = executable.find_first_of('/');
if (i != std::string::npos)
contributorName = Poco::trim(executable.substr(0, i));
}
if (contributorName == "")
contributorName = element->GetContributor();
return Platform::GetBundle(contributorName);
}
示例7: HasExecutableExtension
bool WorkbenchPlugin::HasExecutableExtension(
const IConfigurationElement::Pointer& element, const QString& extensionName)
{
if (!element->GetAttribute(extensionName).isNull()) return true;
QString elementText = element->GetValue();
if (!elementText.isEmpty()) return true;
QList<IConfigurationElement::Pointer> children(element->GetChildren(extensionName));
if (children.size() == 1)
{
if (!(children[0]->GetAttribute(WorkbenchRegistryConstants::ATT_CLASS).isNull()))
return true;
}
return false;
}
示例8: ProcessExtension
bool PerspectiveExtensionReader::ProcessExtension(
IConfigurationElement::Pointer element)
{
IConfigurationElement::vector children = element->GetChildren();
for (unsigned int nX = 0; nX < children.size(); nX++)
{
IConfigurationElement::Pointer child = children[nX];
std::string type = child->GetName();
if (this->IncludeTag(type))
{
bool result = false;
if (type == WorkbenchRegistryConstants::TAG_ACTION_SET)
{
result = this->ProcessActionSet(child);
}
else if (type == WorkbenchRegistryConstants::TAG_VIEW)
{
result = this->ProcessView(child);
}
else if (type == WorkbenchRegistryConstants::TAG_VIEW_SHORTCUT)
{
result = this->ProcessViewShortcut(child);
}
// else if (type == IorkbenchRegistryConstants::TAG_NEW_WIZARD_SHORTCUT)
// {
// result = processWizardShortcut(child);
// }
else if (type == WorkbenchRegistryConstants::TAG_PERSP_SHORTCUT)
{
result = this->ProcessPerspectiveShortcut(child);
}
else if (type == WorkbenchRegistryConstants::TAG_SHOW_IN_PART)
{
result = this->ProcessShowInPart(child);
}
if (!result)
{
WorkbenchPlugin::Log("Unable to process element: " + //$NON-NLS-1$
type + " in perspective extension: " + //$NON-NLS-1$
element->GetDeclaringExtension()->GetUniqueIdentifier());
}
}
}
return true;
}
示例9: GetClassValue
std::string RegistryReader::GetClassValue(
IConfigurationElement::Pointer configElement,
const std::string& classAttributeName)
{
std::string className;
if (configElement->GetAttribute(classAttributeName, className))
{
return className;
}
IConfigurationElement::vector candidateChildren(configElement->GetChildren(classAttributeName));
if (candidateChildren.size() == 0)
{
return "";
}
candidateChildren[0]->GetAttribute(WorkbenchRegistryConstants::ATT_CLASS, className);
return className;
}
示例10: ReadElementChildren
void RegistryReader::ReadElementChildren(
IConfigurationElement::Pointer element)
{
this->ReadElements(element->GetChildren());
}