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.
Dropzone 3 hat die Zielkreise verloren, die für das ursprüngliche Programm eindeutig waren.
Dropzone 3In 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 AktionenKlicken Sie auf die + Das Symbol in der oberen linken Ecke zeigt alle Eingebaute Aktionen und alle Benutzeraktionen.
Dropzone 3-EinstellungenKlicke 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.
Erstellen Sie eine neue Aktion, indem Sie auswählen Aktion entwickeln in dem + Speisekarte.
Entwicklungsaktion aufrufenDies wird die Aktion entwickeln Dialog.
Aktionsdialog entwickelnFü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.
AktionsverzeichnisMithilfe 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.
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.
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.
Dieser Header teilt Dropzone mit, ob die Aktion konfiguriert werden muss oder nicht. Für diese Aktion muss diese Einstellung auf gesetzt sein falsch.
Dieser Header soll Dropzone mitteilen, um welche Version es sich handelt. Dies ist für eine einfachere Aktualisierung.
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:
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.
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
.
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.
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.
Die neue Debug-Konsole ist eine großartige Ergänzung. Um die Konsole zu öffnen, wählen Sie sie im Menü aus:
Debug-Konsole öffnenDie Konsole zeigt bereits alle Ausgaben der zuletzt verwendeten Aktion an.
Die Debug-KonsoleDie 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 anzeigenDie zusätzlichen Informationen sind in rot dargestellt. So können Sie Aktionsskripte bequem debuggen.
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.