2008-09-30 2 views
0

Я использую DSL Tools для Visual Studio 2005.DSL Tools: Создание новой диаграммы в пользовательском коде

У меня есть 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^