Přizpůsobení a rozšíření jazyka specifického pro doménu

Sada Visual Studio Modeling and Visualization SDK (VMSDK) poskytuje několik úrovní, na kterých můžete definovat nástroje modelování:

  1. Definujte jazyk specifický pro doménu (DSL) pomocí diagramu definice DSL. Můžete rychle vytvořit DSL s diagramovým zápisem, čitelným formulářem XML a základními nástroji, které jsou potřebné k vygenerování kódu a dalších artefaktů. Další informace naleznete v tématu Definování jazyka specifického pro doménu.

  2. Dolaďte DSL pomocí pokročilejších funkcí definice DSL. Můžete například vytvořit další odkazy, když uživatel vytvoří prvek. Tyto techniky se většinou dosahuje v definici DSL a některé vyžadují několik řádků kódu programu.

  3. Rozšiřte své nástroje modelování pomocí kódu programu. Sada VMSDK je navržená speciálně tak, aby usnadnila integraci rozšíření s kódem vygenerovaným z definice DSL. Další informace naleznete v tématu Psaní kódu pro přizpůsobení jazyka specifického pro doménu.

Poznámka:

Po aktualizaci souboru DEFINIC DSL nezapomeňte kliknout na transformovat všechny šablony na panelu nástrojů Průzkumník řešení před opětovně sestavením řešení.

Referenční informace k článku

Chcete-li dosáhnout tohoto efektu Projděte si toto téma.
Umožňuje uživateli nastavit vlastnosti barvy a stylu obrazce. Klikněte pravým tlačítkem myši na třídu obrazce nebo spojnice, přejděte na příkaz Přidat zveřejnění a klikněte na položku.
Různé třídy prvku modelu vypadají podobně v diagramu, sdílejí vlastnosti, jako je počáteční výška a šířka, barva, popisy. Použití dědičnosti mezi obrazci nebo třídami spojnice Mapování mezi odvozené obrazce a odvozené třídy domény dědí podrobnosti mapování nadřazených objektů.

Nebo namapujte různé třídy domény na stejnou třídu obrazce.
Třída prvku modelu je zobrazena různými kontexty obrazců. Namapujte více než jednu třídu obrazce na stejnou třídu domény. Při sestavování řešení postupujte podle zprávy o chybě a zadejte požadovaný kód, abyste se rozhodli, jaký obrazec se má použít.
Barva obrazce nebo jiné funkce, jako je například písmo označující aktuální stav Viz Aktualizace obrazců a Připojení orů pro Reflexe modelu.

Vytvořte pravidlo, které aktualizuje vystavené vlastnosti. Viz pravidla šíření změn v rámci modelu.

Nebo použijte OnAssociatedPropertyChanged() k aktualizaci nekrytých funkcí, jako jsou šipky odkazu nebo písmo.
Ikona na obrazci se změní tak, aby označí stav. Nastavte viditelnost mapování dekorátoru v okně podrobností DSL. Na stejné pozici vyhledejte několik dekorátorů obrázků. Viz Aktualizace obrazců a Připojení orů pro Reflexe modelu.

Nebo přepsat ImageField.GetDisplayImage(). Viz příklad v .ImageField
Nastavení obrázku pozadí na libovolném obrazci Přepište InitializeInstanceResources() a přidejte ukotvené ImageField.
Vnoření obrazců do jakékoli hloubky Nastavte rekurzivní vložený strom. Definujte boundsRules, které mají obsahovat obrazce.
Připojte spojnice v pevných bodech na hranici prvku. Definujte vložené prvky terminálu reprezentované malými porty v diagramu. K opravě portů použijte rozhraní BoundsRules. Podívejte se na ukázku diagramu okruhu ve vizualizační a modelovací sadě SDK.
Textové pole zobrazuje hodnotu odvozenou z jiných hodnot. Namapujte textový dekorátor na vlastnost počítané nebo vlastní domény úložiště. Další informace naleznete v tématu Počítané a vlastní vlastnosti úložiště.
Šíření změn mezi prvky modelu nebo mezi obrazci Viz Ověření v jazyce specifickém pro doménu.
Rozšíření změn do prostředků, jako jsou další rozšíření sady Visual Studio mimo úložiště Viz obslužné rutiny událostí šíření změn mimo model.
Okno vlastnosti zobrazuje vlastnosti souvisejícího prvku. Nastavte předávání vlastností. Viz Přizpůsobení okna Vlastnosti.
Kategorie vlastností Okno vlastností je rozděleno do oddílů nazývaných kategorie. Nastavte kategorii vlastností domény. Vlastnosti se stejným názvem kategorie se zobrazí ve stejném oddílu. Můžete také nastavit kategorii role relace.
Řízení přístupu uživatelů k vlastnostem domény Nastavte hodnotu Is Browsable false, abyste zabránili zobrazení vlastnosti domény v okno Vlastnosti za běhu. Pořád ho můžete namapovat na dekorátory textu.

Je uživatelské rozhraní jen pro čtení brání uživatelům ve změně vlastnosti domény.

Programový přístup k vlastnosti domény není ovlivněn.
Změňte název, ikonu a viditelnost uzlů v Průzkumníku modelů DSL. Viz Přizpůsobení Průzkumníka modelů.
Povolení kopírování, vyjmutí a vložení Nastavte vlastnost Enable Copy Paste uzlu Editoru v Průzkumníku DSL.
Kopírovat odkazy a jejich cíle při každé zkopírování elementu Například zkopírujte komentáře připojené k položce. Nastavte vlastnost Šíření kopírování zdrojové role (reprezentovaná řádkem na jedné straně vztahu domény v diagramu definice DSL).

Napište kód, který přepíše ProcessOnCopy, aby se dosáhlo složitějších efektů.

Viz Přizpůsobení chování kopírování.
Odstraňte, znovu načtete nebo znovu propojte související prvky, když je prvek odstraněn. Nastavte hodnotu Rozšířit odstranění role relace. Pro složitější efekty, přepsání ShouldVisitRelationship a metody ve MyDslDeleteClosure třídě definované v DomainModel.csShouldVisitRolePlayer.
Zachovat rozložení a vzhled obrazce při kopírování a přetažení myší Přidejte obrazce a spojnice do zkopírovaného ElementGroupPrototypesouboru . Nejpohodlnější metodou přepsání je ElementOperations.CreateElementGroupPrototype()

Viz Přizpůsobení chování kopírování.
Vložte obrazce do zvoleného umístění, například aktuální pozici kurzoru. Přepsání ClipboardCommandSet.ProcessOnCopy() pro použití verze specifické pro umístění viz ElementOperations.Merge().Přizpůsobení chování kopírování.
Vytvoření dalších odkazů při vložení Přepsání schránkyCommandSet.ProcessOnPasteCommand()
Povolení přetažení z tohoto diagramu, dalších seznamů DSL a prvků Systému Windows Viz Postupy: Přidání obslužné rutiny přetažení myší
Umožňuje přetažení obrazce nebo nástroje na podřízený obrazec, například port, jako by byl přetažen na nadřazený objekt. Definujte direktivu Sloučení elementů pro cílovou třídu objektu, která přeposílaný objekt nadřazený objekt. Viz Přizpůsobení vytváření a přesouvání elementů.
Umožňuje přetažení obrazce nebo nástroje na obrazec a vytvoření dalších propojení nebo objektů. Pokud chcete například povolit, aby se komentář přehodil na položku, na kterou má být propojený. Definujte direktivu sloučení elementů pro cílovou třídu domény a definujte odkazy, které se mají vygenerovat. Ve složitých případech můžete přidat vlastní kód. Viz Přizpůsobení vytváření a přesouvání elementů.
Vytvořte skupinu prvků pomocí jednoho nástroje. Například komponenta s pevnou sadou portů. Přepište metodu inicializace sady nástrojů v souboru ToolboxHelper.cs. Vytvoření prototypu skupiny elementů (EGP) obsahující prvky a jejich propojení vztahů Viz Přizpůsobení nástrojů a panel nástrojů.

Buď zahrnout obrazce objektu zabezpečení a portu v protokolu EGP, nebo definovat boundsRules pro umístění obrazců portu při vytvoření instance protokolu EGP.
Pomocí jednoho nástroje pro připojení vytvořte instanci několika typů relací. Přidejte direktivy link Připojení (LCD) do Připojení ion Builderu, který je vyvolán nástrojem. LCD určují typ relace z typů těchto dvou prvků. Aby to záviselo na stavech prvků, můžete přidat vlastní kód. Viz Přizpůsobení nástrojů a panel nástrojů.
Rychlé nástroje – uživatel může poklikáním na libovolný nástroj vytvořit mnoho obrazců nebo spojnic po sobě. V Průzkumníku Editor DSL vyberte uzel. V okno Vlastnosti nastavte použití rychlých položek panelu nástrojů.
Definování příkazů nabídky Viz Postupy: Úprava standardního příkazu nabídky
Omezení modelu pomocí ověřovacích pravidel Viz Ověření v jazyce specifickém pro doménu
Vygenerujte kód, konfigurační soubory nebo dokumenty z DSL. Vytváření kódu z jazyka specifického pro doménu
Přizpůsobte si, jak se modely ukládají do souboru. Viz Přizpůsobení úložiště souborů a serializace XML
Uložte modely do databází nebo jiných médií. Přepsání Souboru DocData v jazyce YourLanguage

Viz Přizpůsobení úložiště souborů a serializace XML
Integrujte několik seznamů DSL, aby fungovaly jako součást jedné aplikace. Viz Integrace modelů pomocí sady Visual Studio Modelbus.
Umožňuje rozšíření DSL rozšířit třetími stranami a řídit rozšíření. Rozšíření vašeho DSL pomocí MEF

Sdílení tříd mezi jazyky specifickými pro doménu (DSL) pomocí knihovny DSL

Definování zásady zamykání pro vytváření segmentů jen pro čtení

Poznámka:

Komponenta Transformace textové šablony se automaticky nainstaluje jako součást sady funkcí vývoje rozšíření sady Visual Studio. Můžete ho také nainstalovat z karty Jednotlivé komponenty Instalační program pro Visual Studio v kategorii sad SDK, knihoven a architektur. Nainstalujte komponentu Modeling SDK z karty Jednotlivé komponenty .