Pergunta

Eu estou usando DSL Tools para Visual Studio 2005.

Eu tenho um DSL, onde em um certo ponto eu gostaria de criar um novo diagrama com código personalizado.

Até agora, eu era capaz de criar um novo diagrama, substituindo o, diagrama atual já aberto. Código a seguir:

FEGeneratorDiagram diag = new FEGeneratorDiagram(ThisElem.Store);
diag.Associate(ThisElem);
FEGeneratorDiagram currentDiag = (FEGeneratorDiagram)ThisElem.Store.ElementDirectory.FindElements<FEGeneratorDiagram>(false)[0];
currentDiag = diag;

Mas, o que eu realmente gostaria de fazer seria,

para criar um novo documento DSL com uma nova instância FEGeneratorDiagram e, em seguida, continuar a minha lógica de adicionar elementos e definição de propriedades.

Qualquer ajuda?

Foi útil?

Solução

//Create a Store
Type[] modelTypes = new Type[] { typeof(CoreDesignSurfaceDomainModel), typeof(FEGeneratorDomainModel) };
Store store = new Store(modelTypes);
RootElement root;
using (Transaction t =
store.TransactionManager.BeginTransaction("Create Elements"))
{
    root = FEGeneratorSerializationHelper.Instance.LoadModel(store, diagramPath, null, null);
    t.Commit();
}
//Do whatever custom things you want!

SerializationResult result = new SerializationResult();
//Save the file
FEGeneratorSerializationHelper.Instance.SaveModel(result, root, diagramPath);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top