Funkcionalita Drag&Drop umožňuje presúvanie obsahu pomocou myši medzi rôznymi grafickými objektmi. Z používateľského hľadiska stačí v zdrojovom grafickom objekte označiť nejaký prvok stlačením ľavého tlačidla myši a ťahaním ho presunúť do iného (prípadne aj toho istého) grafického objektu, vďaka čomu sa môže označený obsah presunúť do cieľového grafického objektu.
Základy Drag&drop
Funkcionalita Drag&Drop sa skladá z dvoch na seba nadväzujúcich operácií:
- Drag – operácia sa vykonáva pri označení obsahu ľavým tlačidlom myši a jeho ťahaní po obrazovke. Táto operácia skončí v prípade, ak ju užívateľ preruší, napríklad stlačením tlačidla ESC, alebo v čase, keď sa začne operácia Drop.
- Drop – operácia sa vykoná, ak počas operácie Drag, užívateľ pustí ľavé tlačidlo myši. Pri tejto operácii sa nevykoná nič, ak grafický objekt, nad ktorým sa táto operácia vykonala nepodporuje Drag&Drop, alebo ak nevie spracovať presúvaný obsah. V opačnom prípade sa operácia Drop ukončí presunutím obsahu do zvoleného grafického objektu. Povolenie vykonania tejto operácie odzrkadľuje ikona kurzora myši.
V rámci funkcionality Drag&Drop môžu jednotlivé grafické objekty zastávať dve role:
- Zdrojový grafický objekt – ide o grafický objekt, ktorý umožňuje označiť časť svojho obsahu a presunúť ho na inú pozíciu. Takýto grafický objekt sa správa ako zdroj dát, ktoré poskytuje ostatným grafickým objektom.
- Cieľový grafický objekt – takýto objekt umožňuje prijať dáta, ktoré sú prenášané prostredníctvom funkcionality Drag&Drop. V rámci tejto role, môže takýto objekt určovať, či prijme prenášané dáta alebo nie a ako ich spracuje.
To, ktoré z týchto dvoch rolí grafické objekty podporujú alebo nepodporujú, závisí od implementácie ich autora. Grafický objekt nemusí podporovať žiadnu z týchto rolí, môže podporovať iba jednu z nich, alebo môže podporovať obe tak, že umožňuje poskytovanie aj prijímanie dát súčasne. Ak objekt zastáva rolu zdrojového aj cieľového objektu, je možné dynamicky meniť jeho vlastný obsah pomocou myši.
Medzi grafickými objektmi je možné prenášať rôzne formáty dát, ako je napríklad text, obrázok, ikona, zoznam súborov atď. Formát dát, ktoré sú prenášané, určuje zdrojový grafický objekt, pričom si treba uvedomiť, že tento ich môže poskytovať aj vo viacerých formátoch. V prípade, že sa tieto dáta prenášajú "ponad" niektorý cieľový objekt, ten musí rozhodnúť, či niektorý z poskytovaných formátov dát dokáže prijať alebo nie, čo sa zobrazí na ukazovateli myši. Napríklad niektoré objekty dokážu prijať dáta iba vo forme textu, iné zas iba obrázky.
V rámci operácie Drop je možné vykonať nasledujúce typy prenosu dát:
- Kopírovanie – prenášané dáta sa nakopírujú do cieľového objektu, pričom v zdrojovom objekte ostanú. Implicitná operácia v rámci Drag&Drop.
- Presunutie – prenášané dáta sa nakopírujú do cieľového objektu, pričom sa v zdrojovom objekte vymažú. Generovaná operácia pri držaní klávesy Shift počas Drag&Drop.
- Vytvorenie odkazu – v cieľovom objekte sa vytvorí odkaz na prenášané dáta zo zdrojového objektu. Generovaná operácia pri držaní klávesy Alt počas Drag&Drop. Tento typ prenosu sa najčastejšie používa pri súboroch.
Typ prenosu dát riadi užívateľ stláčaním príslušných kláves počas operácie Drag.
Drag&drop v D2000 Systéme
V Systéme D2000 sú grafické objekty umiestnené na schémach. Funkcionalitu Drag&Drop je možné využiť nielen v rámci procesov D2000 Systému, ale aj v rámci ostatných programov operačného systému, ktoré ju podporujú. Takto je možné získať z iných programov rôzne texty alebo zoznamy súborov a poskytnúť ich objektom v Systéme D2000 a naopak.
V grafických schémach D2000 Systému Drag&Drop podporujú:
- Grafické objekty:
- Formáty dát:
- Text
- Zoznam súborov
- Formát špecifický pre D2000 Systém – (Dátový kontajner)
Funkcionalita Drag&Drop na podporovaných grafických objektoch nie je implicitne zapnutá. Na to, aby tieto typy grafických objektov v schéme mohli slúžiť ako zdrojový, prípadne cieľový objekt pre Drag&Drop, musia mať v skripte schémy napísanú obsluhu Drag&Drop udalostí.
Všetky súvisiace udalosti (entry) je možné v schéme použiť v dvoch variantoch - podľa toho, či bude udalosť generovaná globálne pre všetky grafické objekty schémy podporujúce Drag&Drop, alebo pre jednotlivé objekty schémy samostatne. Pri globálnom variante je v zozname parametrov udalosti pridaný ako prvý parameter identifikátor grafického objektu, ktorého sa daná udalosť týka.
Na tomto obrázku je graficky znázornené volanie udalostí pri Drag&Drop.
Súvisiace udalosti:
Súvisiace funkcie:
Pridať komentár