DSL工具:在自定义代码中创建新图表

时间:2008-09-30 14:29:21

标签: dsl dsl-tools

我正在使用Visual Studio 2005的DSL工具。

我有一个DSL,在某个时刻我想用自定义代码创建一个新的图表。

到目前为止,我能够通过覆盖当前已经打开的图表来创建一个新的图表。代码如下:

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

但是,我真正想做的是,

使用新实例FEGeneratorDiagram创建一个新的DSL文档,然后继续我添加元素和设置属性的逻辑。

任何帮助?

1 个答案:

答案 0 :(得分:0)

//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);