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í:
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.
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.
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 ElementGroupPrototype souboru . 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í |
Související obsah
- Jak se definuje jazyk specifický pro doménu
- Psaní kódu pro přizpůsobení jazyka specifického pro doménu
- Sada Modeling SDK pro Visual Studio – jazyky specifické pro doménu
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 .