Dropzone 3-Aktionen schreiben

Im Schreibziele für Dropzone, Ich habe Ihnen gezeigt, wie Sie ein einzelnes Dateiziel zum Erweitern erstellen Abwurfgebiet. Dieses Tutorial baut auf dieser Basis auf, um zu zeigen, was in Dropzone 3 neu ist und wie man es nutzen kann.

Wie zuvor ist der gesamte Code in Rubin. Wenn Sie nicht wissen, wie man programmiert Rubin, Ich schlage vor zu studieren Die Grundlagen von Ruby zuerst.

Überblick

Dropzone 3 hat die Zielkreise verloren, die für das ursprüngliche Programm eindeutig waren.

Dropzone 3

In Dropzone 3 alle Aktionen befinden sich im Dropdown-Symbolmenü in der Menüleiste. Was hieß a Ziel in der alten version ist jetzt ein Aktion. Dadurch bleibt der Gedanke erhalten, dass alles an den Dateien ausgeführt werden kann oder Text auf eine gegebene Ebene fallen kann Aktion.

Dropzone 3 hat auch die Verwendung einer einzelnen Datei eingestellt Rubin Skript für eine Aktion. Dropzone 3 verwendet jetzt einen speziellen Mac OS X-Ordner, der den Inhalt vor dem durchschnittlichen Benutzer verbirgt. Ein Aktion kann jetzt andere unterstützende Dateien enthalten, die anderen nicht im Weg stehen Aktionen.

Menü für mögliche Aktionen

Klicken Sie auf die + Das Symbol in der oberen linken Ecke zeigt alle Eingebaute Aktionen und alle Benutzeraktionen.

Dropzone 3-Einstellungen

Klicke auf das Zahnrad in der oberen rechten Ecke, um zum Zahnrad zu gelangen Einstellungen, Debug-Konsole, Aktionen zurücksetzen, und Hilfe Menüs.

Das Drop Bar Am oberen Rand des Dropdown-Menüs können Sie Dateien speichern, während Sie sie zusammenfassen, bevor Sie sie einer Aktion zuordnen. Durch Ziehen und Ablegen von Dateien werden sie nicht verschoben. Es speichert ihre Standorte.

Die zweite Ebene mit der Überschrift ORDNER / APPS ist eine Schnellstartleiste für alle dort platzierten Programme oder Ordner. Wenn eine Datei auf ein Programmsymbol gezogen wird, wird das Programm mit dieser Datei gestartet.

Die letzte Ebene ist die Aktionen die eingerichtet sind. Die Anzahl der Aktionen ist unbegrenzt. Aktionen können mehr als einmal verwendet werden, wobei jedes eine eigene Voreinstellung hat.

Eine Aktion erstellen

Erstellen Sie eine neue Aktion, indem Sie auswählen Aktion entwickeln in dem + Speisekarte.

Entwicklungsaktion aufrufen

Dies wird die Aktion entwickeln Dialog.

Aktionsdialog entwickeln

Füllen Sie den Dialog wie oben und drücken Sie Aktion erstellen. Der Editor, den das System für Ruby-Skripts konfiguriert hat, wird mit der erstellten Aktionsdatei geöffnet. Das action.rb Datei ist der Startpunkt der Aktion.

Aktionsverzeichnis

Mithilfe des Editors können Sie den Speicherort dieser Datei ermitteln. Sie finden sie im Verzeichnis ~ / Library / Anwendungsunterstützung / Dropzone 3 / Aktionen. In diesem Verzeichnis ein spezielles Verzeichnis mit dem Namen Entpacke.dzbundle das enthält die action.rb Datei und eine Standardeinstellung icon.png Datei. Alle Dateien für die Aktion müssen hier sein. Das icon.png Datei ist das Bild, das Dropzone im Dropdown-Menü anzeigt. Ersetzen Sie diese durch die im Download angegebene.

Die Standardstartdatei gibt einen grundlegenden Überblick über die Dropzone 3-API. Entfernen Sie alles außer dem Header für dieses Beispiel.

# Dropzone Aktionsinfo # Name: Unpack # Beschreibung: Diese Aktion entpackt die ZIP-Dateien in ein angegebenes Verzeichnis. # Handles: Dateien # Ersteller: Richard Guay # URL: http://customct.com # Ereignisse: Geklickt, gezogen # KeyModifiers: Befehl, Option, Steuerelement, Shift # SkipConfig: Nein # RunsSandboxed: Ja # Version: 1.0 # MinDropzoneVersion: 3.2 

Die Kopfzeile stimmt größtenteils mit der vorherigen Version überein. Ich werde die neuen und geänderten Elemente durchgehen. Bitte beziehen Sie sich auf Schreibziele für Dropzone für nicht abgedeckte Artikel.

Griffe

Diese Beschreibung ist nicht neu, aber stark vereinfacht. Das Mögliche Griffe ist jetzt Dateien, Text, oder beide getrennt durch ein Komma. Früher war es der technischere Ausdruck für dasselbe. Für diese Aktion setzen Dateien nur.

KeyModifiers

Wenn festgelegt, setzt Dropzone die Umgebungsvariable für die Schlüsselmodifizierer, die während der Drag & Drop- oder Klick-Aktionen gedrückt gehalten werden. Da diese Aktion keine Modifikatoren benötigt, löschen Sie diese Zeile.

SkipConfig

Dieser Header teilt Dropzone mit, ob die Aktion konfiguriert werden muss oder nicht. Für diese Aktion muss diese Einstellung auf gesetzt sein falsch.

Ausführung

Dieser Header soll Dropzone mitteilen, um welche Version es sich handelt. Dies ist für eine einfachere Aktualisierung.

MinDropzoneVersion

Dieser Header gibt die niedrigste Dropzone-Version an, die die Aktion benötigt.

Nach dem MinDropzoneVersion, hinzufügen:

# OptionsNIB: ChooseFolder # UniqueID: 234985238238452835 

Das OptionsNIB teilt Dropzone ein vorkonfiguriertes Optionsfeld mit. Die möglichen Werte sind:

  • Anmeldung
  • ExtendedLogin
  • API-Schlüssel
  • UsernameAPIKey
  • Wähle einen Ordner
  • Wählen Sie Anwendung

Diese Aktion verwendet die Wähle einen Ordner Möglichkeit. Der Benutzer wird aufgefordert, einen Zielordner für das Entpacken der Dateien anzugeben. Die Aktion erhält den Wert in Pfad Umgebungsvariable.

Das Eindeutige ID Es muss eine Zufallszahl sein, die das Aktionspaket eindeutig identifiziert. Wenn die Aktion auf der Hauptsite aufgelistet ist, können Sie Informationen zur Versionierung ermitteln. Wenn die Aktion geändert wird, informiert Dropzone andere, dass die neue Version verfügbar ist, und kann sie direkt von Dropzone aus aktualisieren.

Gezogene Aktion

Das gezogen () Die Funktion wird ausgeführt, wenn der Benutzer Dateien zu der Aktion im Dropdown-Menü zieht. Das gezogen () Funktion für das Entpacken ist:

def dragged # # Bestimmten Modus einschalten. # $ dz.determinate (true) # # Liefert die Datenwerte. # if ((ENV ['Pfad']! = Null) && (Dateiverzeichnis? (ENV ['Pfad']))) # # Die Standardwerte erhalten. # dir = ENV ['Pfad'] # # Jede Bilddatei verarbeiten. # total = $ items.count # # Sagen Sie der Dropzone, dass wir starten ... # $ dz.begin ("Entpacken von # total -Dateien ...") # # Index für alle angegebenen Bilder. # für den Index in 0… total # # Konvertiert die Bilddatei. # '/ usr / bin / unzip -n "# $ itemsindex]" -d "# dir"' # # Löscht die Originaldatei. # File.delete ($ items [index]) # # Teilen Sie Dropzone mit, wie viel Prozent erreicht wurden. # $ dz.percent ((((index + 1) * 100) total) .to_i) end else # # Der Benutzer hat die Aktion nicht konfiguriert. Erzähl es ihnen. # $ dz.error ("Aktion entpacken", "Sie haben kein Zielverzeichnis angegeben!") end # # Sagen Sie dem Benutzer, dass dies erledigt ist. # $ dz.finish ("Auspacken abgeschlossen".) # # Beenden Sie das dropzone-Protokoll. Wenn Sie eine URL in der Zwischenablage haben möchten, geben Sie hier # ein. Wenn Sie nur Text in die Zwischenablage kopieren möchten, verwenden Sie stattdessen $ dz.text (). # Entweder $ dz.url () oder $ dz.text () muss das Letzte in der gezogenen Methode sein. # $ dz.url (falsch) Ende 

Das gezogen () Funktion erzählt Abwurfgebiet ob es bestimmt ist oder nicht mit der $ dz.determinate () Funktion. Diese Aktion ist also bestimmt wahr muss bestanden werden. Wenn sich eine Internetanforderung in der Aktion befindet, muss sie auf festgelegt werden falsch.

Die Aktion bestimmt, ob eine korrekte Konfiguration vorhanden ist. Das ob Die Anweisung bestimmt dies, indem sie prüft, ob die für die Angabe der Voreinstellungen verwendete Variable existiert und ein gültiges Verzeichnis ist. Wenn es nicht konfiguriert ist, verwendet es die $ dz.error () Funktion, um eine Fehlermeldung an den Benutzer zu übergeben und das Programm zu beenden. Da ist auch ein $ dz.warning () Funktion, die dem Benutzer den gleichen Typ des Dialogs gibt, die Aktion jedoch nicht anhält. Da ist auch ein $ dz.fail () Funktion, die genauso funktioniert wie $ dz.error (), aber lässt a X auf dem Symbol, um anzuzeigen, dass der Vorgang vollständig fehlgeschlagen ist.

Wenn die Pfad Informationen sind da und gut, es geht weiter mit der Aktion. Es sagt Abwurfgebiet dass es mit anfängt $ ds.begin () Funktion. Dies erfordert eine Zeichenfolge, die auch an den Benutzer übergeben wird. Alle Dateien, die der Aktion zugeordnet wurden, haben ihre Verzeichnisadressen im Verzeichnis $ Artikel Array.

Die Aktion wird jedes Mal wiederholt $ Artikel übergeben und ruft das Standard-ZIP-Programm auf, um die Datei in das angegebene Verzeichnis zu entpacken. Nachdem jede Datei verarbeitet wurde, löscht sie die Originaldatei und erhöht den Prozentsatz mit $ dz.percent () Funktion.

Sobald alle Dateien fertig sind, ruft die Aktion das auf $ dz.finish () Funktion mit einer richtigen Nachricht. Der letzte Funktionsaufruf einer Aktion muss der sein $ dz.url () oder der $ dz.text () Funktion. Eine URL oder ein Text, der in die Zwischenablage kopiert werden soll, kann übergeben werden. Ansonsten pass falsch.

Klicken Sie auf Aktion

Das angeklickt () Funktion wird aufgerufen, wenn der Benutzer auf die Aktion klickt. Durch diese Aktion wird ein neues Verzeichnis zum Entpacken der Archive erhalten. Dies ist nicht erforderlich, zeigt jedoch die Verwendung einiger neuer Funktionen von Dropzone 3. Das angeklickt () Funktion ist unten:

def clicked # # Der angeklickte Handler sollte das zu verwendende Zielverzeichnis erhalten und # speichern. # # # Fordert die Breite der Grafik an. # dir = $ dz.cocoa_dialog ("fileselect --select-Directories - -select-only-verzeichnisse - titel" In Verzeichnis entpacken "") .split ("\ n") # # Prüfen Sie, ob der Benutzer abgebrochen hat. Fahren Sie nicht fort, wenn sie abbrechen. # if ((dir [0]! = nil) && (File.directory?(dir[0]))) # # Speichern Sie das Verzeichnis. # $ dz.save_value ("path", dir [0]) else # # Der Benutzer hat die Aktion nicht konfiguriert. Erzähl es ihnen. # $ dz.error ("Aktion auspacken", "Sie haben den Vorgang abgebrochen! Sie haben kein Zielverzeichnis angegeben!") end # # Sagen Sie dem Benutzer, dass dies erledigt ist. # $ dz.finish ("Verzeichnis entpacken: # dir [0]") # # Beenden Sie das Protokoll der Dropzone. Wenn Sie eine URL in der Zwischenablage haben möchten, geben Sie hier # ein. Wenn Sie nur Text in die Zwischenablage kopieren möchten, verwenden Sie stattdessen $ dz.text (). # Entweder $ dz.url () oder $ dz.text () muss das letzte in der angeklickten Methode sein. # $ dz.url (falsch) Ende 

Das angeklickt () Die Funktion fordert ein neues Verzeichnis vom Benutzer an $ dz.cocoa_dialog () Funktion. Diese Funktion übernimmt die Befehlszeile für Kakao-Dialog Programm als Parameter der Funktion, gibt es an Kakao-Dialog Programm und gibt die Ergebnisse des Aufrufs von zurück Kakao-Dialog Programm.

Die Ergebnisse werden am geteilt Eingeben Zeichen in ein Array von Strings. Es wird geprüft, ob ein gültiges Verzeichnis vorhanden ist und der Benutzer die Abbruchtaste nicht gedrückt hat. Wenn dies fehlschlägt, verwendet es $ dz.error () Funktion, um den Benutzer zu informieren und zu beenden. Andernfalls wird das Verzeichnis in gespeichert Abwurfgebiet Verwendung der $ dz.save_value () Funktion. Alles, was mit dieser Funktion in einer Aktion gespeichert wurde, kann bei der erneuten Ausführung in den Umgebungsvariablen abgerufen werden.

Die Funktion endet als gezogen () Funktion hat.

Andere Funktionen

Dropzone 3 hat auch eine temporäre Dateiordnerfunktion $ dz.temp_folder (). Es gibt das Verzeichnis zurück, in dem temporäre Dateien erstellt werden.

Wenn Sie Dateien kopieren oder verschieben müssen, Rsync.do_copy () Funktion muss verwendet werden.

Irgendein Schlüsselmodifikatoren im Header angegeben sind in der ENV ['KEY_MODIFIERS'] Umgebungsvariable.

Debugging

Die neue Debug-Konsole ist eine großartige Ergänzung. Um die Konsole zu öffnen, wählen Sie sie im Menü aus:

Debug-Konsole öffnen

Die Konsole zeigt bereits alle Ausgaben der zuletzt verwendeten Aktion an.

Die Debug-Konsole

Die Konsole zeigt alle VARIABLEs in der Umwelt übergeben, die VERANSTALTUNG (in diesem Beispiel angeklickt), any Save_Values und die abschließende Nachricht an den Benutzer.

Wenn diese Zeile nach dem hinzugefügt wird $ dz.Save_Value () Funktion,

'setzt "die angegebenen Informationen:" + dir [0] " 

Diese Debugging-Informationen werden in der Konsole angezeigt:

Debug-Informationen anzeigen

Die zusätzlichen Informationen sind in rot dargestellt. So können Sie Aktionsskripte bequem debuggen.

Fazit

In diesem Tutorial habe ich Ihnen die Unterschiede in der neuen Version von gezeigt Abwurfgebiet und wie Sie eine eigene Aktion erstellen, um Dateien in ein vom Benutzer angegebenes Verzeichnis zu entpacken. Nun, da Sie wissen, wie Sie Aktionen erstellen, machen Sie einige und teilen Sie sie mit allen.