Sdílet prostřednictvím


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 Domain-Specific.

  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 Domain-Specific.

Poznámka:

Po aktualizaci souboru definic DSL nezapomeňte před opětovným sestavením řešení kliknout na Transformovat všechny šablony v panelu nástrojů Průzkumníka ř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 prvků modelu vypadají na diagramu podobně, sdílejí vlastnosti, jako je počáteční výška a šířka, barva, vyskakovací popisky. Použijte dědičnost mezi obrazci nebo třídami spojnice. Mapování mezi odvozenými obrazci a odvozenými třídami domén dědí podrobnosti mapování nadřazených objektů.

Nebo mapujte různé třídy domén na stejnou třídu tvarů.
Třída prvku modelu je zobrazena různými kontexty obrazců. Namapujte více než jednu třídu tvarů 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é prvky, jako je například písmo, indikují aktuální stav. Viz Aktualizace obrazců a spojnic tak, aby odrážely model.

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. Vyhledejte na stejné pozici několik dekorátorů obrázků. Viz Aktualizace obrazců a spojnic tak, aby odrážely model.

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 pro obsahování obrazců.
Připojte spojnice v pevných bodech na hranici prvku. Definujte vložené prvky terminálu reprezentované malými porty v diagramu. Použijte BoundsRules k upevnění portů na místě. 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 domény úložiště, která je vypočítaná nebo vlastní. 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 Domain-Specific.
Šíření změn do zdrojů, jako například další rozšíření sady Visual Studio, mimo obchod. Viz Obslužné rutiny událostí: Šíření změn mimo model.
Okno vlastností 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. Také můžete nastavit kategorii role relace.
Řízení přístupu uživatelů k vlastnostem domény Nastavte hodnotu Is Browsable false, aby se zabránilo zobrazení vlastnosti domény v okně Vlastnosti za běhu. Pořád to můžete přiřadit k dekorátorům textu.

Režim 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 referenční odkazy a jejich cíle, když se kopíruje prvek. 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 Propagace Odstranění pro roli relace. Pro složitější efekty, přepište metody ShouldVisitRelationship a ShouldVisitRolePlayer ve třídě MyDslDeleteClosure, definované v DomainModel.cs.
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 ElementGroupPrototype. 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řepsat ClipboardCommandSet.ProcessOnCopy() pro použití verze specifické pro umístění ElementOperations.Merge().. Viz Přizpůsobení chování kopírování.
Vytvořte další odkazy při vložení textu Přepsání metody clipboardCommandSet.processOnPasteCommand()
Povolte přetažení z tohoto diagramu, dalších doménově specifických jazyků (DSL) a prvků 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 směrnici Sloučení prvků pro cílovou třídu objektu, která předá umístěný objekt nadřazenému objektu. 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 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 Connect (LCD) do Builderu připojení, který nástroj vyvolává. 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ů.
Přilnavé nástroje – uživatel může poklikáním na libovolný nástroj následně vytvořit mnoho obrazců nebo spojnic. V Průzkumníku DSL vyberte Editor uzel. V okně Vlastnosti nastavte používání trvalých položek panelu nástrojů.
Definujte příkazy nabídky Viz Jak na to: Modifikace standardního příkazu nabídky
Omezení modelu pomocí ověřovacích pravidel Zobrazení ověření v doménově specifickém jazyce
Vygenerujte kód, konfigurační soubory nebo dokumenty z DSL. Generování kódu z jazyka Domain-Specific
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 DSL, aby fungovaly jako součást jedné aplikace. Viz Integrace modelů pomocí sady Visual Studio Modelbus.
Umožněte, aby vaše DSL mohly rozšiřovat třetí strany a mít kontrolu nad rozšířením. Rozšíření DSL pomocí MEF

Sdílení tříd mezi DSLs pomocí knihovny DSL

Definování zásad uzamčení pro vytvoření segmentů Read-Only

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ího programu sady Visual Studio v kategorii Sady SDK, knihovny a architektury . Nainstalujte komponentu Modeling SDK z karty Jednotlivé komponenty .