Frage

Ich bin mit DSL Tools für Visual Studio 2005.

Ich habe einen DSL wo an einem bestimmten Punkt Ich mag würde ein neues Diagramm mit benutzerdefinierten Code erstellen.

Bisher konnte ich ein neues Diagramm erstellen, indem Sie die aktuellen, bereits geöffneten Diagramm überschrieben werden. Code folgt:

FEGeneratorDiagram diag = new FEGeneratorDiagram(ThisElem.Store);
diag.Associate(ThisElem);
FEGeneratorDiagram currentDiag = (FEGeneratorDiagram)ThisElem.Store.ElementDirectory.FindElements<FEGeneratorDiagram>(false)[0];
currentDiag = diag;

Aber was würde Ich mag zu tun wäre,

ein neues DSL-Dokument mit einer neuen Instanz FEGeneratorDiagram erstellen und dann hält auf meiner Logik Elemente hinzufügen und Festlegen von Eigenschaften.

Jede Hilfe?

War es hilfreich?

Lösung

//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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top