úterý 10. prosince 2013

LiveBindings I - Designer



Co jsou LiveBindings

Strategie multiplatformního vývoje si v nástrojích Delphi a C++ Builder vynutila mnohé inovace. Především je to nový aplikační rámec FireMonkey, který zajišťuje podporu různých operačních systémů. Aktuálně lze vyvíjet pro Windows 32 a 64 bit, MacOS X, iOS a Android. S přenositelností aplikací je spjata i technologie "LiveBindings". Jedná se o mechanismus,
který umožňuje vzájemně propojovat libovolné zdroje dat, prvky uživatelského rozhraní nebo grafické objekty. Nahrazuje tak zasílání zpráv mezi objekty, které bylo dosud řešeno prostředky operačního systému a tudíž platformně specifické. To je zvláště důležité z pohledu databázových aplikací, protože LiveBindings umožňují, aby libovolná FireMonkey komponenta mohla pracovat jako specializované "Data-Aware" komponenty ve VCL. Zároveň přináší mnohem obecnější a otevřenější řešení, které umožňuje ošetřit komunikaci mezi objekty i v situacích, kdy předem neznáme typ či rozsah předávaných hodnot. Díky podpoře vizuálního návrhu se rovněž jedná o velmi efektivní způsob vývoje.



Přesto, že LiveBindings byly představeny v souvislosti s uvedením knihovny FireMonkey, je jejich použití možné i v rámci VCL.

Díky LiveBindings může každý objekt vystavit (publikovat) své vlastnosti ve formě textového výrazu. Zároveň se stejným způsobem může přihlásit k odběru vlastností publikovaných jinými objekty. LiveBindings udržují seznam všech definovaných výrazů (komponenta "BindingsList"), zajišťují jejich vyhodnocování a zpracování. LiveBindings rovněž sledují změny vlastností u registrovaných objektů a upozorňují na ně objekty, které si je vyžádaly.


QuickBindings

Ve většině případů lze komunikaci mezi objekty navrhovat vizuálně za pomoci vestavěného návrháře "LiveBindings Designer". Okno návrháře můžeme otevřít z hlavní nabídky (View => LiveBindings Designer), nebo kliknutím pravým tlačítkem myši na objekt, jehož vlastnost chceme pro definici vazby použít a volbou "Bind Visually...".




LiveBindings Designer

V prostředí LiveBindings Designeru jsou objekty a vazby mezi nimi znázorněny ve formě diagramu. Používány jsou následující symboly a terminologie:



Source - Objekt (zdrojový), který informaci poskytuje
Control - Objekt (řízený), který informaci přijímá a zpracovává
Link - Vazba mezi objekty, její definice. Link je orientovaný a určuje směr komunikace, tedy, který objekt informaci publikuje (je "source") a který je jejím příjemcem ("control"):

  • DataToControl - Vazba "Source -> Control" (např. zobrazení dat v Editu)
  • ControlToData - Vazba "Control -> Source" (např. odeslání dat z Editu)
  • Bidirectional - Obousměrná vazba, která reaguje na změnu kteréhokoliv ze vzájemně provázaných prvků (např. TrackBar a Edit) 
QuickBindings až na výjimky nevyžadují žádné kódování. Na základě diagramu jsou vygenerovány patřičné vazby a jejich ošetření. Po startu aplikace "Control" objekt automaticky přebírá a zpracovává vlastnost publikovanou "Source" objektem.


Jeden objekt může samozřejmě předávat informaci více objektům, nebo naopak jeden objekt může být příjemcem informací od více objektů.


Návrh vazeb mezi objekty provádíme tažením myši od zvolené vlastnosti jednoho objektu ke zvolené vlastnosti objektu druhého. Z důvodu přehlednosti jsou u jednotlivých objektů zobrazeny pouze nejčastěji používané vlastnosti. Pokud však klikneme myší na pravý spodní roh označený třemi tečkami, otevře se dialog pro přidání dalších dostupných vlastností. V dialogu lze vyhledávat podle názvu vlastnosti. U komplikovanějších objektů, kde nemusí být seznam vlastností úplný, můžeme chybějící vlastnost jednoduše doplnit do políčka u spodního okraje dialogu a přidat jej do seznamu za pomoci tlačítka "Add".



Objekty jsou zpravidla v LiveBindings Designeru zobrazovány automaticky. Existují však i výjimky. V takovém případě si lze jejich zobrazení vynutit v okně "Inspektor Objektů" nastavením vlastnosti "Visible Element" na True.



Použití LiveBindings přináší kromě zrychlení návrhu aplikace také její lepší "čitelnost". Běžná propojení se obejdou zcela bez kódování a navíc jsou přehledně zdokumentována ve formě diagramu.


LiveBindings diagramy lze ukládat ve zvoleném grafickém formátu. Stačí kliknout pravým tlačítkem myši kdekoliv na pracovní plochu LiveBindings Designeru a vybrat "Save to Image".