Listen von IDs des Typs IDType

Listen von IDs des Typs IDType

static IDTypeList idtypelist::alloc(int panelID = 0, int selection_type = 0)

Erzeuge eine neue Liste von IDs. Ist eine gültige Paletten-ID angegeben, wird die Liste mit den gewünschten IDs der dieser Palette gefüllt. Die Liste muss mit idtypelist::release wieder gelöscht werden.

Bei Angabe einer Palette-ID ermittelt die Funktion lediglich die IDs der gefundenen Objekte. Wenn Sie weitere Informationen über die gefundenenn Objekte benötigen, z.B. die URL einer Publikation, müssen die Objekte mit Hilfe der Funktion list::alloc ermittelt werden. Mit der so definierten Liste können mit Hilfe der Funktionen list::gettext, list::getint und list::getint weitere objekt-spezifische Daten erfragt werden.

Name Typ Default Beschreibung
Return IDTypeList   Neue Liste für IDs des Typs IDType. Ist eine gültige Paletten-ID angegeben, wird die Liste mit den gewünschten IDs dieser Palette gefüllt.
panelID int - KlassenID der Palette

Die folgenden Paletten werden unterstützt:
  • kPanelProducts
  • kPanelPublications
  • kPanelPreviews
  • kPanelPlaceholder
  • kPanelToDoList
  • kPanelPageitems (Templates)
  • kPanelPageTemplates (seit v4.1.8 R30020)
selection_type int kAll Welche Datensätze sollen ermittelt werden?

kAll : Alle Datensätze der Palette
kEyeMarked : Nur die mit dem Auge markierten Datensätze der Palette
kSelected : Nur die selektierten Einträge der Palette
#include "internal/panels.h"

Schreibe alle ausgewählten Einträge der Publikationspalette ins Logfile.

int main ()
{
    IDTypeList 		publications = idtypelist::alloc (kPanelPublications, kSelected);
    IDType			id;
// Collect all selected documents // Loop over all selected entries of the publication panel // for (id = idtypelist::first (publications); id; id = idtypelist::next (publications)) { wlog ("", "%s", ittype::stringid (id)); }
idtypelist::alloc (publications);
return 0; }

Ein etwas ausgefeilteres Beispiel, das alle in der Auswahl enthaltenen Dokumente sammelt, finden Sie hier.

publication.2.html#dive_into>publication::dive_into

Version 1.4.1 R 416, 18. Jul 2007
Paramenter classid und selection_type seit Version 3.2.2 R2378, 01. 04. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

IDType
list::alloc
get_from_panel

static int idtypelist::release(IDTypeList li, int releaseItems = 1)

Lösche eine mit idtypelist::alloc erzeugte Liste wieder.

Name Typ Default Beschreibung
li IDTypeList - Zu löschende Liste
releaseItems int 1 Sollen die IDs der Liste ebenfalls gelöscht werden?
1 : Ja
0 : Nein, Listeneinträge nicht löschen

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::length(IDTypeList li)

Ermittle die Anzahl der Elemente einer Liste

Name Typ Default Beschreibung
Return int   Anzahl der Einträge der Liste
li IDTypeList - Liste

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static IDType idtypelist::first(IDTypeList li)

Hole den ersten Eintrag einer nichtleeren einer IDTypeListe

Name Typ Default Beschreibung
Return IDType   Erster Wert der Liste.
li IDTypeList - Liste mit mindestens einem Element
Der aktuelle Listenzeiger steht jetzt am Anfang der Liste. Mit next oder last können weitere Werte geholt werden.

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static IDType idtypelist::next(IDTypeList li)

Hole den nächsten Eintrag einer Liste.

Name Typ Default Beschreibung
Return IDType   Nächster Wert der Liste.
li IDTypeList - Liste mit mindestens einem Element nach dem aktuellen Listenzeiger
Aktueller Listenzeiger mit first, get_pos oder get gesetzt und nicht das letzte Element der Liste
Aktueller Listenzeiger wird eine Position weiter geschoben

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static IDType idtypelist::prev(IDTypeList li)

Hole den vorherigen Eintrag einer Liste.

Name Typ Default Beschreibung
Return IDType   Wert der Vorgängers in der Liste.
li IDTypeList - Liste mit mindestens einem Element nach dem aktuellen Listenzeiger
Aktueller Listenzeiger mit last, get_pos oder get gesetzt und nicht das erste Element der Liste
Aktueller Listenzeiger wird eine Position nach vorne verschoben

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static IDType idtypelist::last(IDTypeList li)

Hole den letzten Eintrag einer nichtleeren einer Liste

Name Typ Default Beschreibung
Return IDType   Letzter Wert der Liste.
li IDTypeList - Liste mit mindestens einem Element
Der aktuelle Listenzeiger steht jetzt am Ende der Liste. Mit prev oder first können weitere Werte geholt werden.

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::get_pos(
  IDTypeList li,
  IDType val,
  int setPos = 0)

Suche die Position eines gegebenen IDType-Wertes in der Liste. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.

Name Typ Default Beschreibung
Return int   >= 0 : Erstes Auftreten des Wertes in der Liste
-1 : Wert nicht gefunden
li IDTypeList - Liste, in der der Wert gesucht werden soll
val IDType - Dieser Wert wird gesucht
setPos int 0 0 : Listenposition unverändert lassen
1 : Aktuelle Listenposition auf Fundstelle setzen
Wurde der Wert in der Liste gefunden und ist setPos > 0, steht die aktuelle Listenposition auf der Fundstelle.

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::find(
  IDTypeList li,
  int val,
  int setPos = 0)

Suche nach der Position einer bestimmten ID1 in der Liste. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.

Im Gegensatz zu get_pos müssen Sie hier nicht die gesamte ID wissen sonder nur deren ersten Wert. Die Liste kann damit als einfaches Key-Value-Mapping verwendet werden.

Die id1-Werte der Liste müssen eindeutig sein!

Name Typ Default Beschreibung
Return int   >= 0 : Erstes Auftreten des Wertes in der Liste
-1 : Wert nicht gefunden
li IDTypeList - Liste, in der der Wert gesucht werden soll
val int - Dieser Wert wird gesucht
setPos int 0 0 : Listenposition unverändert lassen
1 : Aktuelle Listenposition auf Fundstelle setzen
Wurde der Wert in der Liste gefunden und ist setPos > 0, steht die aktuelle Listenposition auf der Fundstelle.

Version v4.1.6 R26001, 28. Sep 2019

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::find_id2(
  IDTypeList li,
  int val,
  int setPos = 0)

Suche nach der Position einer bestimmten ID1 in der Liste und gib das zugehörige ID2 zurück. Wird der Wert nicht gefunden, gibt die Funktion -1 zurück. Die Funktion wird also für Key-Values mit Werten gleich -1 nicht funktionieren. Verwenden Sie in diesem Fall die Funktion find!

Die id1-Werte der Liste müssen eindeutig sein!

Name Typ Default Beschreibung
Return int   >= 0 : Gefundener Wert id2 der Liste
-1 : Wert nicht gefunden
li IDTypeList - Liste, in der der Wert gesucht werden soll
val int - Dieser Wert wird gesucht
setPos int 0 0 : Listenposition unverändert lassen
1 : Aktuelle Listenposition auf Fundstelle setzen
Wurde der Wert in der Liste gefunden und ist setPos > 0, steht die aktuelle Listenposition auf der Fundstelle.

Version v4.1.6 R26001, 28. Sep 2019

priint:comet InDesign® Plug-Ins, comet_pdf

static IDType idtypelist::get(
  IDTypeList li,
  int pos,
  int setPos= 0)

Hole das i-te Element der Liste. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.

Name Typ Default Beschreibung
Return IDType   Wert der Liste an der Stelle i oder 0.
li IDTypeList - Liste, aus der das Element geholt werden soll
pos int - 0-basierte Listenposition
setPos int 0 0 : Listenposition unverändert lassen
1 : Aktuelle Listenposition auf pos setzen
Ist setPos > 0, steht die aktuelle Listenposition auf pos.

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::append(IDTypeList li, IDType ID)

Element an die Liste anfügen. In die Liste wird eine ID mit den Werten der gegebenen ID eingefügt, nicht die ID selbst. Spätere Änderungen an der übergebenen ID ändern das eigefügte Objekt nicht mehr.

Name Typ Default Beschreibung
Return IDType   angefügtes neu erzeugtes Objekt oder 0
li IDTypeList - Liste, an die angefügt werden soll
⇨ Werte aus einem IDType-Objekt übernehmen
ID IDType - ID mit den Werten für das anzufügendene Objekt
⇨ Werte direkt übergeben
id1 int - Erste Zahl der neuen ID
id2 int - Zweite Zahl der neuen ID
id3 int - Dritte Zahl der neuen ID
strid String oder char* - StringID der neuen ID

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::insert(
  IDTypeList li,
  int pos,
  IDType val)

Element in die Liste einfügen. In die Liste wird eine ID mit den Werten der gegebenen ID eingefügt, nicht die ID selbst. Spätere Änderungen an der übergebenen ID ändern das eigefügte Objekt nicht mehr.

Name Typ Default Beschreibung
Return int   eingefügtes neu erzeugtes Objekt oder 0
li IDTypeList - Liste, in dieeingefügt werden soll
pos int - 0-basierte Einfügestelle
Werte < 0 oder >= length : Anfügen
sonst : An dieser Listenposition einfügen
⇨ Werte aus einem IDType-Objekt übernehmen
ID IDType - ID mit den Werten für das einzufügendene Objekt
⇨ Werte direkt übergeben
id1 int - Erste Zahl der neuen ID
id2 int - Zweite Zahl der neuen ID
id3 int - Dritte Zahl der neuen ID
strid String oder char* - StringID der neuen ID

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::remove(IDTypeList li, IDType val)

Entferne dieses Objekt aus der Liste .Der Eintrag wird nicht gelöscht. Es wird nur der erste gefundene Eintrag aus der Liste entfernt.

Name Typ Default Beschreibung
Return int   1 : Aktion erfolgreich
0 : sonst
li IDTypeList - Liste, aus der gelöscht werden soll
val IDType - Wert, der aus der Liste entfernt werden soll

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static IDType idtypelist::remove_pos(IDTypeList li, int pos)

Entferne eine Position aus der Liste. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1. Der aus der Liste entfernte Eintrag wird nicht automatisch gelöscht.

Name Typ Default Beschreibung
Return IDType   Aus der Liste entfernter Eintrag oder 0
li IDTypeList - Liste
pos int - 0-basierte Löschposition

Ein aus einer idtypelist mit idtypelist::remove_pos entfernter Eintrag wird nicht automatisch selbst gelöscht. Mit idtype::release kann der Eintrag gelöscht werden. ACHTUNG: Umgekehrt führt das Löschen einer IDTypes-Variable, die in einer Liste verwendet wird, zu einem nicht definierten Listenobjekt!

id	= idtypelist::remove_pos (0);
if (id) idtype::release (id);

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::clear(IDTypeList li, int releaseItems = 1)

Entferne alle Elemente der Liste

Name Typ Default Beschreibung
Return int   1 : Aktion erfolgreich
0 : sonst
li IDTypeList - Liste
releaseItems int 1 Sollen die aus der Liste entfernten Objekte gleich gelöscht werden?
1 : Ja
0 : Nein, Listeneinträge nicht löschen

Version 1.4.1 R 416, 18. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

int idtypelist::sort(
  IDTypeList li,
  int sortBy = 1,
  int direction = 0)

Sortiere die Liste.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
li IDTypeList - Liste, die sortiert werden soll
sortBy int 1 Nach welchen Werten soll sortiert werden?

1 : ID 2 : ID2 3 : ID3 4 : StringID
direction int 0 Sortierreihenfolge

0 : aufsteigend 2 : absteigend

Anlegen einer Liste mit drei Einträgen. Die Einträge werden danach sortiert.


int wid (IDType id) { if (id) { wlog ("", " %d, %d, %d, '%s'\n",   idtype::id (id),   idtype::id2 (id),   idtype::id3 (id),   idtype::stringid (id)); }
return 0; }
int main () { IDTypeList li = idtypelist::alloc (); IDType id;
id = idtype::alloc (18, 3, 1962, "Tilly"); idtypelist::append (li, id); id = idtype::alloc (9, 4, 1963, "Bastel"); idtypelist::append (li, id); id = idtype::alloc (14, 1, 1961, "Matth"); idtypelist::append (li, id);
wlog ("", "Unsortiert\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 1, 0); wlog ("", "Sortiert nach id1\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 2, 0); wlog ("", "Sortiert nach id2\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 4, 0); wlog ("", "Sortiert nach stringid\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 1, 1); wlog ("", "Absteigend sortiert nach id1\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 2, 1); wlog ("", "Absteigend sortiert nach id2\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
idtypelist::sort (li, 4, 1); wlog ("", "Absteigend sortiert nach stringid\n"); for (id = idtypelist::first (li); id; id = idtypelist::next (li)) wid (id);
return 0; }

Version 2.1, R 1580, 1. Okt. 2009

priint:comet InDesign® Plug-Ins, comet_pdf

stringlist::sort

static IDTypeList idtypelist::get_from_panel(
  IDTypeList li,
  int panelID,
  int selection_type = 0)

Fülle die Liste mit den gewünschten IDs der angegebenen Palette.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
li IDTypeList - allokierte IDTypeList
panelID int - KlassenID der Palette

Die folgenden Paletten werden unterstützt:
  • kPanelProducts
  • kPanelPublications
  • kPanelPreviews
  • kPanelPlaceholder
  • kPanelToDoList
  • kPanelPageitems (Templates)
  • kPanelPageTemplates (seit v4.1.8 R30020)
selection_type int kAll Welche Datensätze sollen ermittelt werden?

kAll : Alle Datensätze der Palette
kEyeMarked : Nur die mit dem Auge markierten Datensätze der Palette
kSelected : Nur die selektierten Einträge der Palette
#include "internal/panels.h"

Version 3.2.2 R2378, 01. 04. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

IDType
list::alloc
alloc

static IDTypeList idtypelist::mark_in_panel(
  int panelID,
  IDTypeList li = 0,
  int state = 1,
  int type = -1L,
  int isText = -1L,
  int plid = -1L,
  int pnum = -1L,
  ItemRef frameRef = 0,
  int inOverset = -1L,
  int start = -1L,
  int len = -1L)

Ändern der Markierung von Paletteneinträgen (Auge, Startflagge).

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
panelID int - KlassenID der Palette

Die folgenden Paletten werden unterstützt:
  • kPanelPublications
  • kPanelPlaceholder
  • kPanelProducts
  • kPanelToDoList
li IDTypeList 0 Liste der Einträge, deren Status geändert werden soll

0 oder leer : alle Einträge der Palette
state int 1 0 : Markierung entfernen
1 : Markierung setzen
⇨ Die folgenden Parameter werden nur in der Aufgabenpalette (kPanelToDoList) ausgewertet. Die Eigenschaften werden auf UND geprüft.
type int -1 Objekttyp

-1 beliebig
1 : Datenbank
2 : Platzhalter
isText int -1 Text oder Rahmen?

-1 beliebig
0 : Rahmen
1 : Text
plid int -1 Platzhalter-ID. Es kann immer nur ein Platzhalter angegeben werden. Wollen Sie die Einträge mehrerer Platzhalter markieren, muss die Funktion mehrfach aufgerufen werden.

-1 : beliebig
pnum int -1 Seitennummer (1-basiert). Es kann immer nur eine Seitennummer angegeben werden. Wollen Sie die Einträge mehrerer Seiten markieren, muss die Funktion mehrfach aufgerufen werden.

-1 : beliebig
frameRef int 0 Rahmenreferenz. Es kann immer nur ein Rahmen angegeben werden. Wollen Sie die Einträge mehrerer Rahmen markieren, muss die Funktion mehrfach aufgerufen werden.

0 : beliebig
start, len int, int -1,0 Textbereich. Es kann immer nur ein Textbereich angegeben werden. Wollen Sie die Einträge mehrerer Bereiche markieren, muss die Funktion mehrfach aufgerufen werden.

-1, 0 : beliebig
#include "internal/panels.h"

Markiere alle Einträge der Publikationspalette.

#include "internal/panels.h"
int main () { idtypelist::mark_in_panel (kPanelPublications, 0, 1);
return 0; }

Markiere alle Produkte mit einer bestimmten ID.

#include "internal/panels.h"
int main () { IDTypeList li = idtypelist::alloc ();
idtypelist::append (li, 120, 1401, 1702, "abc'120");
idtypelist::mark_in_panel (kPanelProducts, 0, 0); idtypelist::mark_in_panel (kPanelProducts, li, 1);
return 0; }

Markiere alle geänderten Textplatzhalter, die den Bereich [17, 36] des aktuellen Rahmen schneiden.

#include "internal/panels.h"
int main ()
{
    IDTypeList			li	= idtypelist::alloc ();
idtypelist::mark_in_panel (kPanelToDoList, 0, 0); idtypelist::mark_in_panel (kPanelToDoList, 0, 1,   2, // type   -1, // istext   -1, // plid   -1, // pnum   gFrame, // frame   -1, // isOverset   17, // start   29 // len );
return 0; }

Version 3.2.2 R2378, 01. 04. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

IDType
list::alloc
alloc
get_from_panel

static char* idtypelist::to_xml(IDTypeList list, char* rootElementName = "recordids")

Generiere die XML Struktur eines IDTypeList-Objekts.

Wenn Sie über die Verwendung dieser Funktion nachdenken, sind Sie möglicherweise an näheren Informationen zur Interaktion von cscript mit auf dem PubServer als PlugIn bereitgestellten Java-Methoden interessiert. Mehr Informationen dazu finden Sie hier.

Name Typ Default Beschreibung
Return char *   xml string oder 0 bei Fehlern. Der Ergebnisstring ist nur bis zum nächsten Aufruf einer to_xml-Funktion gültig und darf nicht verändert oder freigegeben werden.
list IDTypeList - Object
rootElementName String oder char* recordids Name des Root-Elements

4.0.5 R9650

priint:comet InDesign® Plug-Ins, comet_pdf

comet.publication.toXMLIDTypeList

static IDTypeList idtypelist::from_xml(char* xml)

Generiere eine IDTypeList-Objekt aus einer XML Struktur.

Wenn Sie über die Verwendung dieser Funktion nachdenken, sind Sie möglicherweise an näheren Informationen zur Interaktion von cscript mit auf dem PubServer als PlugIn bereitgestellten Java-Methoden interessiert. Mehr Informationen dazu finden Sie hier.

Name Typ Default Beschreibung
Return IDTypeList   Objekt vom Typ IDTypeList. Dieses Objekt muss mit idtypelist::release wieder freigegeben werden.
xml String oder char* - xml string

4.0.5 R9650

priint:comet InDesign® Plug-Ins, comet_pdf

comet.publication.fromXMLIDTypeList

static int idtypelist::add_all(
  IDTypeList target,
  IDTypeList src,
  int deleteFromSource)

Füge alle Elemente der Liste src in die Liste target ein. Bei deleteFromSource != 0 werden die Elemente aus der Quellliste entfernt (aber nicht freigegeben)

Name Typ Default Beschreibung
Return int   0 oder Fehlercode.
target IDTypeList - Zielliste  
src IDTypeList - Quellliste  
deleteFromSource 0 Elemente aus der Quelliste entfernen  

4.0.5 R9700

priint:comet InDesign® Plug-Ins, comet_pdf

static int idtypelist::get_responsibles()

Hole die Liste, in der die Namen der Personen enthalten sind, die als Zuständige einer Comet-Notiz eingetragen werden können. Die Liste wird durch diesen Aufruf nicht automatisch gefüllt!

Tragen Sie in diese Liste alle Namen von Zuständigen für Comet-Notizen ein. Informationen zu Zuständigkeiten für Comet-Notizen finden Sie hier. Für die Einträge der Liste gilt:

Die Liste darf nicht gelöscht werden! Beim Trennen der aktuellen Datenverbindung wird die Liste automatisch geleert.

Name Typ Default Beschreibung
Return IDTypeList   Gültige Liste für die Namen für Zuständigkeiten von Comet-Notizen
    
idtypelist::append (idtypelist::get_responsibles (), 1, 0, 0, "aaa");
idtypelist::append (idtypelist::get_responsibles (), 2, 0, 0, "bbb");
idtypelist::append (idtypelist::get_responsibles (), 3, 0, 0, "ccc");
idtypelist::append (idtypelist::get_responsibles (), 4, 1, 0, "Geneviève");

4.1.6 R25778, 9. Sep 2019

priint:comet InDesign® Plug-Ins, comet_pdf

Seit
Version 1.4.1 R 416, 18. Jul 2007
Siehe auch
idtype

Alphabetic index HTML hierarchy of classes or Java