DSL工具:使用自定义代码创建新图
时间:2020-03-06 14:55:32 来源:igfitidea点击:
我正在使用用于Visual Studio 2005的DSL工具。
我有一个DSL,我想在某个时候使用自定义代码创建一个新的Diagram。
到目前为止,我已经能够通过覆盖当前已经打开的图来创建新的图。代码如下:
FEGeneratorDiagram diag = new FEGeneratorDiagram(ThisElem.Store); diag.Associate(ThisElem); FEGeneratorDiagram currentDiag = (FEGeneratorDiagram)ThisElem.Store.ElementDirectory.FindElements<FEGeneratorDiagram>(false)[0]; currentDiag = diag;
但是,我真正想做的是
使用新实例FEGeneratorDiagram创建新的DSL文档,然后继续执行添加元素和设置属性的逻辑。
有什么帮助吗?
解决方案
//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);

