Ich möchte in InDesign Informationen zu enthaltenen Sprachen über ein Custom XMP Panel Daten in die Metadaten schreiben.
Hierzu benötige ich einen Bereich mit Checkboxen, mit deren Hilfe ich die im Dokument enthaltenen Sprachen in das Feld "Iptc4xmpCore:IntellectualGenre" schreiben möchte. Die Übergabe von der Checkbox in ein Textinput, welches ich testweise eingebaut habe, funktioniert. Jedoch werden die Werte erst nach einer Aktion (z.B. Löschung des letzten Kommas im TextInput "langItems" in das Feld geschrieben. Außerdem werden nach Bestätigung und erneutem Öffnen der Dateieigenschaften die gesetzten Haken der Checkboxen nicht mehr angezeigt. Ich denke, es gibt sicher elegantere Möglichkeiten, die Daten in das Feld zu bekommen, da meine Kenntnisse aber soweit nicht reichen, würde ich momentan das TextInput Feld einfach auf visible="false" setzen, wenn die Werte übernommen werden würden.
Hat hier jemand einen Tipp für mich, wie ich die Werte speichern kann, sobald ich das Fenster mit OK schließe und wie ich die Checkboxen dazu bewegen kann beim nächsten Öffnen auch wieder aktiviert zu sein?
Code:
<?xml version="1.0" encoding="utf-8"?>
<fi:XMPForm
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:s="//ns.adobe.com/flex/spark"
xmlns:fi="com.adobe.xmp.components.*" width="100%" height="100%"
>
<fi:XMPNamespaces>
<fi:XMPNamespace prefix="dc" value="http://purl.org/dc/elements/1.1/"/>
<fi:XMPNamespace prefix="photoshop" value="http://ns.adobe.com/photoshop/1.0/" />
<fi:XMPNamespace prefix="Iptc4xmpCore" value="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" />
</fi:XMPNamespaces>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import com.adobe.xmp.events.XMPEvent;
import mx.controls.Text;
// Event handler adds and deletes items from Iptc4xmpCore:IntellectualGenre
private function modifyLangItems():void
{
{langItems.text = ""}
if(langDE.selected == true) {
langItems.text += "DE" + ', ' ;
}
if(langEN.selected == true) {
langItems.text += "EN" + ', ';
}
}
]]>
</mx:Script>
<fi:XMPFormItem label="Sprachauswahl" width="100%">
<fi:XMPCheckBox id="langDE" label="DE" click="modifyLangItems()" />
<fi:XMPCheckBox id="langEN" label="EN" click="modifyLangItems()" />
<fi:XMPTextInput id="langItems" width="300" height="20" xmpPath="Iptc4xmpCore:IntellectualGenre" visible="true" includeInLayout="true" />
<mx:Label text="Test sammeln und übergeben"/>
</fi:XMPFormItem>
</fi:XMPForm>