Skrive Dropzone 3 Handlinger

I Skrive destinasjoner for Dropzone, Jeg viste deg hvordan du lager en enkelt fildestinasjon for å utvide Droppsone. Denne opplæringen vil bygge på den basen for å vise hva som er nytt i Dropzone 3 og hvordan du kan dra nytte av det.

Som før vil all kode være i Rubin. Hvis du ikke vet hvordan du skal programmere Rubin, Jeg foreslår å studere Fundamentals of Ruby først.

Oversikt

Dropzone 3 har mistet målkretsene som var unike for det opprinnelige programmet.

Dropzone 3

I Dropzone 3, alle handlinger er i rullegardinmenyen fra menylinjen. Hva ble kalt a mål i den gamle versjonen er nå en handling. Dette bevare ideen om at alt kan utføres på filene eller teksten falt på en gitt handling.

Dropzone 3 droppet også bruken av en enkelt fil Rubin Skript for en handling. Dropzone 3 bruker nå en spesiell mappe i Mac OS X som skjuler innholdet fra den gjennomsnittlige brukeren. en handling kan nå inneholde andre støttende filer som ikke kommer i veien for andre handlinger.

Mulig handlingsmeny

Klikk på + symbolet i øvre venstre hjørne avslører alle Innebygde handlinger og noen Brukerhandlinger.

Dropzone 3 Preferanser

Klikk på giret øverst til høyre for å komme til Preferanser, Feilsøkingskonsoll, Tilbakestill handlinger, og Hjelp menyer.

De Drop Bar øverst i rullegardinmenyen er et praktisk sted å lagre filer mens du samler filer sammen før du slipper dem videre til en handling. Hvis du drar og slipper filer her, flyttes de ikke. Det lagrer sine steder.

Det andre nivået med overskriften FOLDERS / APPS er en rask startbar for et hvilket som helst program eller mappe som er plassert der. Hvis en fil blir slått på et programikon, starter programmet med den filen lastet.

Det siste nivået er handlinger som er satt opp til bruk. Det er ingen grense for antall handlinger. Handlinger kan brukes mer enn en gang med hver en som har sine egne forhåndsinnstillinger.

Opprette en handling

Opprett en ny handling ved å velge Utvikle handling i + Meny.

Oppfordre til å utvikle handling

Dette vil hente opp Utvikle handling dialog.

Utvikle handlingsdialog

Fyll inn dialogboksen som ovenfor og trykk Opprett handling. Redaktøren som systemet har konfigurert for Ruby-skript, åpnes med den opprettede handlingsfilen. De action.rb filen er utgangspunktet for handlingen.

Handlingskatalog

Ved å bruke redigeringsprogrammet for å avsløre plasseringen av denne filen, finner du den i katalogen ~ / Bibliotek / Application Support / Dropzone 3 / Actions. I denne katalogen, en spesiell katalog som heter Unpack.dzbundle som inneholder action.rb fil og standard icon.png fil. Alle filene til handlingen må være her. De icon.png fil er bildet som Dropzone vises i rullegardinmenyen. Erstatt dette med det som er oppgitt i nedlastingen.

Standard startfil gir en grunnleggende oversikt over Dropzone 3 API. Fjern alt, men overskriften for dette eksemplet.

# Dropzone Action Info # Navn: Pakke ut # Beskrivelse: Denne handlingen pakker ut zip-filer i en spesifisert katalog. # Håndtak: Filer # Skaper: Richard Guay # URL: http://customct.com # Hendelser: Klikk, Draget # KeyModifiers: Kommando, Alternativ, Kontroll, Skift # SkipConfig: Nei # RunsSandboxed: Yes # Version: 1.0 # MinDropzoneVersion: 3.2 

Overskriften er stort sett den samme som forrige versjon. Jeg skal gå over de nye og forandrede elementene. Vennligst se Skrive destinasjoner for Dropzone for gjenstander som ikke er dekket.

håndtak

Denne beskrivelsen er ikke ny, men sterkt forenklet. Den mulige håndtak er nå filer, Tekst, eller begge deler skilt med komma. Før det var det mer teknisk begrep for det samme. For denne handlingen, sett filer bare.

KeyModifiers

Når satt, vil Dropzone angi miljøvariabelen for nøkkelmodifikatorer som holdes nede under dra og slipp, eller klikk på handlinger. Siden denne handlingen ikke trenger modifikatorer, slett den linjen.

SkipConfig

Denne overskriften forteller Dropzone om handlingen må konfigureres eller ikke. Denne handlingen krever at denne innstillingen blir satt til falsk.

Versjon

Denne overskriften er å fortelle Dropzone hvilken versjon den er. Dette er for enklere oppdatering.

MinDropzoneVersion

Denne overskriften spesifiserer den laveste Dropzone-versjonen handlingen trenger.

Etter MinDropzoneVersion, Legg til:

# OptionsNIB: ChooseFolder # UniqueID: 234985238238452835 

De OptionsNIB forteller Dropzone et forhåndsdefinert alternativpanel som skal brukes. De mulige verdiene er:

  • Logg Inn
  • ExtendedLogin
  • apikey
  • UsernameAPIKey
  • ChooseFolder
  • ChooseApplication

Denne handlingen vil bruke ChooseFolder alternativ. Dette vil be brukeren å spesifisere en målmappe for å pakke ut filene. Handlingen vil motta verdien i sti miljøvariabel.

De Unik ID må være noe tilfeldig nummer som unikt identifiserer handlingspakken. Hvis handlingen er oppført på hovedstedet, vil dette bidra til å avgjøre versjonsinformasjon. Når handlingen er endret, vil Dropzone informere andre om at den nye versjonen er tilgjengelig og kan oppdatere den direkte fra Dropzone.

Dratt handling

De dro() funksjonen går når brukeren drar filer til handlingen i rullegardinmenyen. De dro() funksjon for utpakning handlingen er:

def dratt # # Slå på bestemt modus. # $ dz.determinate (true) # # Få dataverdiene. # hvis ((ENV ['path']! = null) && (Filedirectory? (ENV ['path'])))) # # få standardinnstillingene. # dir = ENV ['path'] # # Behandle hver bildefil. # total = $ items.count # # Fortell dropzone vi starter ... # $ dz.begin ("Pakke ut # total filer ...") # # Indeks over alle givne bilder. # for indeks i 0 ... totalt # # Konverter bildefilen. # '/ usr / bin / unzip -n "# $ itemsindex]" -d "# dir"' # # Slett den opprinnelige filen. # File.delete ($ items [index]) # # Fortell Dropzone hvilken prosentandel gjort. # $ dz.percent ((((indeks + 1) * 100) totalt) .til_i) slutten annet # # Brukeren har ikke konfigurert handlingen. Fortelle dem. # $ dz.error ("Pakke ut handling", "Du gjorde ikke gi en målkatalog!") slutt # # Fortell brukeren at den er ferdig. # $ dz.finish ("Ferdig utpakking.") # # Fullfør dropzone-protokollen. Hvis du vil ha en URL i utklippstavlen, send den # her. Hvis du bare vil kopiere tekst til utklippstavlen, bruk $ dz.text () i stedet. # Enten $ dz.url () eller $ dz.text () må være den siste i den slepte metoden. # $ dz.url (falsk) slutt 

De dro() funksjon forteller Droppsone hvis det er bestemt eller ikke ved å bruke $ Dz.determinate () funksjon. Denne handlingen er avgjørende, så ekte må bestås. Hvis en Internettforespørsel er i handlingen, må den settes til falsk.

Handlingen bestemmer om det finnes en riktig konfigurasjon. De hvis setningen bestemmer at ved å se om variabelen som brukes til å gi forhåndsinnstillingene eksisterer og er en gyldig katalog. Hvis den ikke er konfigurert, bruker den $ Dz.error () funksjon for å sende en feilmelding til brukeren og avslutte programmet. Det er også en $ Dz.warning () funksjon som gir samme type dialog til brukeren, men stopper ikke handlingen. Det er også en $ Dz.fail () funksjon som fungerer det samme som $ Dz.error (), men forlater a X på ikonet for å vise at prosessen helt mislyktes.

Hvis sti informasjon er der og bra, det fortsetter med handlingen. Det forteller Droppsone at det begynner med $ Ds.begin () funksjon. Det tar en streng som også sendes til brukeren. Alle filene droppet til handlingen har sine katalogadresser i $ elementer matrise.

Handlingen vil gå over hver $ elementer passerte og kaller standard zip-programmet for å pakke ut filen til den angitte katalogen. Etter at hver fil blir behandlet, slettes den opprinnelige filen og øker prosentandelen som er gjort ved hjelp av $ Dz.percent () funksjon.

Når en gang er ferdig med alle filene, kalles handlingen $ Dz.finish () Fungerer med en riktig melding. Det siste funksjonskallet til en handling må være $ Dz.url () eller $ Dz.text () funksjon. En url eller tekst for å kopiere til utklippstavlen kan bestås. Ellers passere falsk.

Klikket handling

De klikket () funksjon blir kalt når brukeren klikker på handlingen. Denne handlingen vil få en ny katalog for å pakke ut arkivene. Dette er ikke nødvendig, men viser hvordan du bruker noen av Dropzone 3s nye funksjoner. De klikket () funksjonen er under:

def klikket # # Den klikkte håndtereren skal få målkatalogen til å bruke og # lagre den. # # # Be om bredden på grafikken. # dir = $ dz.cocoa_dialog ("fileselect --select-directories --select-only-directories --title 'Pakke ut til katalog' ') .split (" \ n ") # # Se om brukeren har kansellert. Ikke fortsett hvis de avbryter. # if ((dir [0]! = null) && (File.directory?(dir[0]))) # # Lagre katalogplasseringen. # $ dz.save_value ("path", dir [0]) else # # Brukeren har ikke konfigurert handlingen. Fortelle dem. # $ dz.error ("Pakke ut handling", "Du avbrutt! Du har ikke gitt en målkatalog!") End # # Fortell brukeren at den er ferdig. # $ dz.finish ("Pakke ut katalog: # dir [0]") # # Fullfør dropzone-protokollen. Hvis du vil ha en URL i utklippstavlen, send den # her. Hvis du bare vil kopiere tekst til utklippstavlen, bruk $ dz.text () i stedet. # Enten $ dz.url () eller $ dz.text () må være den siste i klikkmetoden. # $ dz.url (falsk) slutt 

De klikket () funksjon ber om en ny katalog fra brukeren ved hjelp av $ Dz.cocoa_dialog () funksjon. Denne funksjonen tar kommandolinjen for Kakao Dialog program som funksjonens parameter, sender den til Kakao Dialog program, og returnerer resultatene av å ringe Kakao Dialog program.

Resultatene deles opp på Tast inn tegn inn i en rekke strenger. Den sjekker om en gyldig katalog og at brukeren ikke trykker på Avbryt-knappen. Hvis dette mislykkes, bruker det $ Dz.error () funksjon for å fortelle brukeren og avslutte. Ellers lagrer den katalogen i Droppsone bruker $ Dz.save_value () funksjon. Alt som er lagret med denne funksjonen i en handling, kan hentes i miljøvariablene ved re-execution.

Funksjonen utgår som dro() funksjonen gjorde.

Andre funksjoner

Dropzone 3 har også en midlertidig filmappefunksjon kalt $ Dz.temp_folder (). Den returnerer katalogen som skal brukes til å opprette midlertidige filer.

Hvis du trenger å kopiere eller flytte filer, vil Rsync.do_copy () funksjonen må brukes.

Noen Viktige modifikatorer spesifisert i toppteksten er i ENV [ ''] KEY_MODIFIERS miljøvariabel.

debugging

Den nye debugkonsollen er et flott tillegg. For å åpne konsollen, velg den fra menyen:

Åpner Debug Console

Konsollen viser allerede alle utgangene fra den siste handlingen som ble brukt.

Feilsøkingskonsollen

Konsollen viser alle VARIABELs passert i miljøet, BEGIVENHET (klikket i dette eksemplet), noen Save_Values, og den endelige meldingen som er gitt til brukeren.

Når denne linjen legges til etter $ Dz.Save_Value () funksjon,

"setter" Informasjonen gitt: "+ dir [0] ' 

Denne feilsøkingsinformasjonen kan vises i konsollen:

Viser feilsøkingsinformasjon

Den ekstra informasjonen er der i rødt. Dette gir en enkel måte å feilsøke handlingsskript på.

Konklusjon

I denne veiledningen viste jeg deg forskjellene i den nye versjonen av Droppsone og hvordan du lager din egen handling for å pakke ut filer til en brukerdefinert katalog. Nå som du vet hvordan du lager handlinger, må du gjøre noe og dele dem med alle.