質問
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ドキュメントを作成し、要素の追加とプロパティの設定のロジックを保持します。
サポートが必要ですか
解決
//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);
所属していません StackOverflow