2008-09-30 47 views
0

一个新的图表,我使用的DSL工具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; 

但是,我真的很想做的是,

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

任何帮助?

回答

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); 
相关问题