2008-09-30 55 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); 
相關問題