Scrierea acțiunilor Dropzone 3

În Scrierea destinațiilor pentru Dropzone, V-am arătat cum să creați o singură destinație de fișier pentru extindere Dropzone. Acest tutorial se va baza pe acea bază pentru a arăta ce este nou în Dropzone 3 și cum să profitați de el.

Ca si inainte, tot codul va fi inchis Rubin. Dacă nu știți cum să programați Rubin, Îți sugerez să studiezi Fundamentele Ruby primul.

Prezentare generală

Dropzone 3 a pierdut cercurile de destinație care au fost unice pentru programul original.

Dropzone 3

În Dropzone 3, toate acţiuni sunt în meniul derulant din bara de meniu. Ce a fost numit a destinaţie în versiunea veche este acum un acțiune. Acest lucru păstrează ideea că orice lucru poate fi efectuat pe fișiere sau textul dat pe o dată acțiune.

Dropzone 3 a renunțat, de asemenea, la utilizarea unui singur fișier Rubin script pentru o acțiune. Dropzone 3 folosește acum un folder special pentru Mac OS X care ascunde conținutul său de utilizatorul mediu. Un acțiune pot conține acum alte fișiere de suport care nu vor fi în calea altora acţiuni.

Meniul de acțiuni posibile

Dând clic pe + simbolul din colțul din stânga sus arată toate Acțiuni încorporate și orice Acțiunile utilizatorului.

Dropzone 3 Preferințe

Faceți clic pe uneltele din colțul din dreapta sus pentru a ajunge la Preferințe, Consola de depanare, Resetați acțiunile, și Ajutor meniuri.

Drop Bar în partea de sus a drop-down este un loc la îndemână pentru a stoca fișiere în timp ce colectarea de fișiere împreună înainte de a le scăpa pe o acțiune. Draggingul și aruncarea fișierelor aici nu le mișcă. Stochează locațiile lor.

Al doilea nivel cu titlul FOLDERS / APPS este o bară de lansare rapidă pentru orice program sau dosar plasat acolo. Dacă un fișier este tras pe o pictogramă de program, programul se va lansa cu fișierul încărcat.

Ultimul nivel este acţiuni care sunt configurate pentru utilizare. Nu există o limită a numărului de acțiuni. Acțiunile pot fi utilizate de mai multe ori, fiecare având setările proprii.

Crearea unei acțiuni

Creați o nouă acțiune selectând Dezvoltați o acțiune în + meniul.

Invocând dezvoltarea acțiunii

Acest lucru va ridica Dezvoltați o acțiune dialog.

Dezvoltați dialogul de acțiune

Completați dialogul de mai sus și apăsați Creați acțiune. Editorul pe care sistemul a configurat-o pentru scripturile Ruby se va deschide cu fișierul de acțiune creat. action.rb fișierul reprezintă punctul de plecare al acțiunii.

Director de acțiune

Utilizând editorul pentru a dezvălui locația acestui fișier, îl veți găsi în director ~ / Bibliotecă / Suport pentru aplicații / Dropzone 3 / Acțiuni. În acest director, un director special numit Unpack.dzbundle care conține action.rb fișier și o valoare implicită icon.png fişier. Toate fișierele pentru acțiune trebuie să fie aici. icon.png fișierul este imaginea afișată de Dropzone în meniul drop-down. Înlocuiți acest lucru cu cel indicat în descărcare.

Fișierul de pornire implicit oferă o prezentare generală a API-ului Dropzone 3. Eliminați totul, cu excepția antetului pentru acest exemplu.

# Dropzone Informații despre acțiune # Nume: Despachetați # Descriere: Această acțiune dezarhivează fișierele zip într-un director specificat. # Handles: Fișiere # Creator: Richard Guay # URL: http://customct.com # Evenimente: Clicate, Dragged #Modificatori cheie: Comandă, Opțiune, Control, Shift #SchipConfig: No #RunsSandboxed: Yes #MonDropzoneVersion: 3.2 

Antetul este în mare parte același cu versiunea anterioară. Voi trece articolele noi și schimbate. Va rog, referiti-va la Scrierea destinațiilor pentru Dropzone pentru articolele care nu sunt acoperite.

mânerele

Această descriere nu este nouă, ci foarte simplificată. Posibilul mânerele este acum Fișiere, Text, sau ambele separate cu o virgulă. Înainte, a fost termenul mai tehnic pentru același lucru. Pentru această acțiune, puneți-o Fișiere numai.

KeyModifiers

Atunci când este setat, Dropzone va seta variabila de mediu pentru modificatorii de cheie deținute în jos în timpul acțiunilor de tragere și plasare sau de clic. Deoarece această acțiune nu are nevoie de modificatori, ștergeți acea linie.

SkipConfig

Acest antet îi spune lui Dropzone dacă acțiunea are nevoie de configurare sau nu. Această acțiune are nevoie ca această setare să fie setată la fals.

Versiune

Acest antet este de a spune Dropzone ce versiune este. Aceasta este pentru o actualizare mai ușoară.

MinDropzoneVersion

Acest antet specifică cea mai mică versiune Dropzone necesară acțiunii.

După MinDropzoneVersion, adăuga:

# OptionsNIB: ChooseFolder # UniqueID: 234985238238452835 

OptionsNIB spune Dropzone un panou cu opțiuni preconfigurate de folosit. Valorile posibile sunt:

  • Logare
  • ExtendedLogin
  • APIKey
  • UsernameAPIKey
  • ChooseFolder
  • ChooseApplication

Această acțiune va utiliza funcția ChooseFolder opțiune. Aceasta va cere utilizatorului să specifice un dosar destinație pentru dezarhivarea fișierelor. Acțiunea va primi valoarea în cale variabilă de mediu.

ID unic trebuie să fie un număr aleatoriu care va identifica în mod unic pachetul de acțiuni. Dacă acțiunea este listată pe site-ul principal, aceasta va ajuta la determinarea informațiilor de versiune. Când acțiunea este modificată, Dropzone îi va informa pe ceilalți că noua versiune este disponibilă și o poate actualiza direct de la Dropzone.

Acțiune împrăștiată

târât () funcția este rulată atunci când utilizatorul trage fișierele pe acțiunea din meniul derulant. târât () funcția pentru acțiunea de despachetare este:

def dragged # # Activați modul determinat. # $ dz.determinate (true) # # Obțineți valorile datelor. # if ((ENV ['path']! = nil) && (Filedirectory? (ENV ['path']))) # # obțineți valorile implicite. # dir = ENV ['path'] # # Procesează fiecare fișier imagine. # total = $ items.count # # Spuneți dropzone pe care o pornim ... # $ dz.begin ("Descărcarea fișierelor ... total") ...) # # Index peste toate imaginile date. # pentru indexul în 0 ... total # # Conversia fișierului imagine. # '/ usr / bin / unzip -n "# $ itemsindex]" -d "# dir"' # # Șterge fișierul original. # File.delete ($ items [index]) # # Spuneți Dropzone ce procent a făcut. # $ dz.percent ((((index + 1) * 100) total) .to_i) se termină altceva # # Utilizatorul nu a configuratacțiunea. Spune-le. # $ dz.error ("Despachetați acțiunea", "Nu ați dat un director țintă!") Sfârșit # # Spuneți utilizatorului că sa terminat. # $ dz.finish ("Finalizat despachetarea.") # # Finalizați protocolul dropzone. Dacă doriți o url în clipboard, treceți-l aici. Dacă doriți doar să copiați textul în clipboard, utilizați în schimb $ dz.text (). # Fie $ dz.url (), fie $ dz.text () trebuie să fie ultimul lucru din metoda trasată. # $ dz.url (false) final 

târât () spune povestea Dropzone dacă este determinată sau nu prin utilizarea $ Dz.determinate () funcţie. Această acțiune este determinată, deci Adevărat trebuie să fie trecut. Dacă o acțiune de Internet este în acțiune, trebuie să fie setată la fals.

Acțiunea determină dacă există o configurație adecvată. dacă instrucțiunea determină faptul că, dacă văd dacă variabila folosită pentru a da presetările există și este un director valid. Dacă nu este configurat, acesta utilizează $ Dz.error () funcția de a transmite un mesaj de eroare utilizatorului și iese din program. Este deasemenea o $ Dz.warning () funcția care oferă același tip de dialog utilizatorului, dar nu oprește acțiunea. Este deasemenea o $ Dz.fail () funcția care funcționează la fel ca $ Dz.error (), dar lasă a X pe pictogramă pentru a arăta că procesul a eșuat total.

În cazul în care cale informațiile sunt acolo și bine, continuă cu acțiunea. Se spune Dropzone că începe cu $ Ds.begin () funcţie. Acest lucru necesită un șir care este, de asemenea, transmis utilizatorului. Toate fișierele adăugate la acțiune au adresele lor de adresă în articole $ mulțime.

Acțiunea va trece peste fiecare articole $ a trecut și apelează programul standard zip pentru a dezarhiva fișierul în directorul desemnat. După procesarea fiecărui fișier, acesta șterge fișierul original și mărește procentajul realizat utilizând $ Dz.percent () funcţie.

După ce ați terminat cu toate fișierele, acțiunea a sunat $ Dz.finish () funcția cu un mesaj adecvat. Ultima chemare de funcție a unei acțiuni trebuie să fie $ Dz.url () sau $ Dz.text () funcţie. Un URL sau un text pentru a copia în clipboard poate fi trecut. În caz contrar, treceți fals.

Ați făcut clic pe Acțiune

clic pe () funcția devine apelată ori de câte ori utilizatorul face clic pe acțiune. Această acțiune va primi un nou director pentru dezarhivarea arhivelor. Acest lucru nu este necesar, dar arată modul de utilizare a unor noi funcții ale Dropzone 3. clic pe () funcția este mai jos:

def clicked # # Handlerul trebuie să primească directorul de destinație pe care îl folosește și # să-l salveze. # # # Solicitați lățimea graficului. # dir = $ dz.cocoa_dialog ("fileselect - selectarea directoarelor - selectarea directoarelor - titlu" Despachetarea în director ") .split (" \ n ") # # A se vedea dacă utilizatorul a fost anulat. Nu continuați dacă anulați. # if ((dir [0]! = nil) && (File.directory?(dir[0)))) # # Salvați locația directorului. # $ dz.save_value ("cale", dir [0]) altceva # # Utilizatorul nu a configurat acțiunea. Spune-le. # $ dz.error ("Despachetați acțiunea", "Ați anulat! Nu ați dat un director țintă!") Sfârșit # # Spuneți utilizatorului că a fost terminat. # $ dz.finish ("Despachetarea directorului: # dir [0]") # # Finalizați protocolul dropzone. Dacă doriți o url în clipboard, treceți-l aici. Dacă doriți doar să copiați textul în clipboard, utilizați în schimb $ dz.text (). # Fie $ dz.url (), fie $ dz.text () trebuie să fie ultimul lucru din metoda clicked. # $ dz.url (false) final 

clic pe () funcția solicită un nou director de la utilizatorul care utilizează $ Dz.cocoa_dialog () funcţie. Această funcție ia linia de comandă pentru Dieta cu cacao programul ca parametru al funcției, îl trece la Dieta cu cacao program, și returnează rezultatele apelării Dieta cu cacao program.

Rezultatele sunt împărțite la introduce caracter într-o serie de șiruri de caractere. Verifică un director valid și că utilizatorul nu a apăsat butonul de anulare. Dacă aceasta nu reușește, folosește $ Dz.error () funcția de a spune utilizatorului și de ieșire. În caz contrar, salvează directorul în Dropzone folosind $ Dz.save_value () funcţie. Orice lucru salvat cu această funcție într-o acțiune este recuperabil în variabilele de mediu la re-execuție.

Funcția iese ca târât () funcția a făcut.

Alte funcții

Dropzone 3 are, de asemenea, o funcție de folder temporar numit $ Dz.temp_folder (). Acesta returnează directorul care va fi utilizat pentru a crea fișiere temporare.

Dacă aveți nevoie să copiați sau să mutați fișiere, Rsync.do_copy () trebuie să fie utilizat.

Orice Modificatori cheie specificate în antet sunt în ENV [ 'KEY_MODIFIERS'] variabilă de mediu.

Debugging

Noua consolă de depanare este un plus extraordinar. Pentru a deschide consola, selectați-o din meniu:

Deschiderea Consolei de depanare

Consola va afișa deja toate rezultatele din ultima acțiune utilizată.

Consola de depanare

Consola arată toate VARIABILa trecut în mediul înconjurător, EVENIMENT (clic în acest exemplu), orice Save_Values, și mesajul final dat utilizatorului.

Când această linie este adăugată după $ Dz.Save_Value () funcţie,

"pune" Informațiile furnizate: "+ dir [0]" 

aceste informații de depanare vor fi vizibile în consola:

Afișarea informațiilor de depanare

Informațiile suplimentare se găsesc în roșu. Aceasta oferă o modalitate convenabilă de depanare a scripturilor de acțiune.

Concluzie

În acest tutorial, v-am arătat diferențele în noua versiune de Dropzone și cum să creați o acțiune proprie pentru dezarhivarea fișierelor într-un director specificat de utilizator. Acum, că știți cum să creați acțiuni, mergeți la unii și le împărtășiți cu toată lumea.