Exemplo n.º 1
0
Interaction::CommandResult* CCreateField::create(Visualization::Item* /*source*/, Visualization::Item* target,
	const QString& name, const QStringList& attributes)
{
	auto cl = dynamic_cast<OOModel::Class*> (target->node());
	Q_ASSERT(cl);

	auto f = new OOModel::Field();
	f->setTypeExpression(new OOModel::EmptyExpression());
	if (!name.isEmpty()) f->setName(name);

	// Set visibility
	if (attributes.first() == "private" ) f->setVisibility(OOModel::Visibility::PRIVATE);
	else if (attributes.first() == "protected" ) f->setVisibility(OOModel::Visibility::PROTECTED);
	else if (attributes.first() == "public" ) f->setVisibility(OOModel::Visibility::PUBLIC);
	else f->setVisibility(OOModel::Visibility::DEFAULT);

	// Set scope
	if (attributes.last() == "static") f->setStorageSpecifier(OOModel::StorageSpecifier::CLASS_VARIABLE);
	else f->setStorageSpecifier(OOModel::StorageSpecifier::INSTANCE_VARIABLE);

	cl->fields()->beginModification("create field");
	cl->fields()->append(f);
	cl->fields()->endModification();

	target->setUpdateNeeded(Visualization::Item::StandardUpdate);
	target->scene()->addPostEventAction(new Interaction::SetCursorEvent(target,
			(name.isEmpty() ? static_cast<Model::Node*>(f->nameNode()) : f->typeExpression()),
			Interaction::SetCursorEvent::CursorDefault, false));

	return new Interaction::CommandResult();
}
Exemplo n.º 2
0
Method::Method(const QString& name, Visibility::VisibilityType vis, StorageSpecifier::StorageSpecifierTypes storage)
    : Model::ExtendableNode (nullptr, Method::getMetaData())
{
    setName(name);
    setVisibility(vis);
    setStorageSpecifier(storage);
}