Pregunta

Estoy usando herramientas DSL para Visual Studio 2005.

Tengo un DSL en el que, en un momento determinado, me gustaría crear un nuevo Diagrama utilizando un código personalizado.

Hasta ahora, pude crear un nuevo Diagrama al sobrescribir el diagrama actual, ya abierto. El código sigue:

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

Pero, lo que realmente me gustaría hacer sería,

para crear un nuevo documento DSL con una nueva instancia FEGeneratorDiagram y luego seguir mi lógica de agregar elementos y establecer propiedades.

¿Alguna ayuda?

¿Fue útil?

Solución

//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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top