-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfiguration_file_wollmux.conf.mediawiki
2595 lines (2042 loc) · 223 KB
/
Configuration_file_wollmux.conf.mediawiki
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[[:Kategorie:Eierlegender_WollMux|WollMux]] has, at least in concept, a single configuration file, referred to throughout as ''wollmux.conf''. In practice, however, the configuration is spread out over multiple files by using the [[Format_von_WollMux-Config-Dateien#.25include|%include mechanism]]. (See [[Format_von_WollMux-Config-Dateien|WollMux configuration file format]]). WollMux looks for ''wollmux.conf'' in the following locations and in the following order:
'''Under Windows:'''
# using the enviroment variable %WOLLMUX_CONF_PATH% (path including filename, for example: ''C:\Program Files\WollMux\wollmux.conf'')
# via the path (incl. filename) set in the registry key "ConfigPath" under ''HKEY_CURRENT_USER\Software\WollMux''
# ''<code><Profile_Folder></code>/.wollmux/wollmux.conf'', where <code><Profile_Folder></code> under Windows 7 is the folder "C:\Users\<code><UserName></code>".
# via the path (incl. filename) set in the registry key "ConfigPath" under ''HKEY_LOCAL_MACHINE\Software\WollMux''
# ''C:\Program Files\WollMux\wollmux.conf'' (This is the default installation directory. WollMux will also find ''wollmux.conf'' if you use the EXE configuration installer to install to a different directory, for example "C:\WollMux".)
'''Under Linux:'''
# using the enviroment variable %WOLLMUX_CONF_PATH% (path including filename, for example: ''/etc/wollmux/wollmux.conf'')
# ''<code>$HOME</code>/.wollmux/wollmux.conf''
# ''/etc/wollmux/wollmux.conf''
Once WollMux finds a configuration file, it stops looking in the remaining locations. So if (under Linux) a file ''<code>$HOME</code>/.wollmux/wollmux.conf'' exists, the existence of another configuration file ''/etc/wollmux/wollmux.conf'' is irrelevant and ignored by WollMux.
When editing wollmux.conf, '''use the correct upper/lower case'''! In particular, please use all keys (and attributes) exactly as they're written here.
= The DEFAULT_CONTEXT variable=
The variable DEFAULT_CONTEXT describes the path to the folder in [[Format_von_WollMux-Config-Dateien#URLs|URL notation]], in which central WollMux data (i.e. text fragments, user data) is stored. In different places throughout the wollmux.conf structure, DEFAULT_CONTEXT is used as the basis for resolving relative URLs. This is noted in the corresponding places. The syntax for setting DEFAULT_CONTEXT is as follows:
DEFAULT_CONTEXT "<url>"
Examples:
DEFAULT_CONTEXT "file:///L:/WollMuxData" # WollMux data is stored in the central location L:/WollMuxData.
Under Windows 7, the first line may be something like 'DEFAULT_CONTEXT "file:/C:/WollMux"'
or 'DEFAULT_CONTEXT "file:/C:/Program Files/WollMux"' if you use the EXE installer.
DEFAULT_CONTEXT can be defined anywhere on the top level of the configuration file outside of all sections. DEFAULT_CONTEXT can be redefined later elsewhere in the configuration file. The final definition applies to the ''entire'' wollmux.conf structure.
If there is no DEFAULT_CONTEXT entry, WollMux uses the folder where wollmux.conf [[#top|was found]] to determine DEFAULT_CONTEXT.
If a relative path is entered for DEFAULT_CONTEXT (i.e. ../networkdrive/fileserver/wollmux), this is interpreted as being relative to the folder where wollmux.conf [[#top|was found]] by WollMux.
= Integrating plugins to suit your workplace/CLASSPATH =
WollMux lets you integrate custom plugins suitable for your department. For example, you might transform values from a data source, or make it easier for users to print. Integrating external functions like these is done via [[Konfigurationsdatei_wollmux.conf#EXTERN_.28URL_.3Curl.3E_PARAMS.28.3Cparam1.3E_..._.3CparamN.3E.29.29|EXTERN basic functions]] . This can be determined globally in the sections [[Konfigurationsdatei_wollmux.conf#Druckfunktionen|Print functions]] und [[Konfigurationsdatei_wollmux.conf#Funktionen|Functions]], or as part of a template itself. See the [[FormularMax_4000#Referatsspezifische_Plugins|corresponding documentation for FormularMax 4000]] for more information.
The actual program code for an external function must be realized as a static method in a class of your choice. In order for WollMux to find your plugin's class, either the path to the folder containing it or the path to the JAR file itself must appear in the CLASSPATH directive. The following are permissible CLASSPATH entries (under Linux):
<nowiki>CLASSPATH( "file:///usr/share/wollmux/" "http://foo.bar.muenchen.de/functions.jar")</nowiki>
<nowiki>CLASSPATH "file:///usr/share/wollmux/"</nowiki>
Please note:
* CLASSPATH entries must appear at the uppermost nesting level of wollmux.conf.
* The values entered must be URLs.
* Do ''not'' enter the name of the folder containing the .class file, but rather the topmost folder of the package hierarchy. The .class file itself must be located in the sub-folder belonging to your package. Example: The function de.muenchen.sozref.Druck.comfortPrint() is located in the .class file Print.class. This file is in the folder /usr/share/wollmux/de/muenchen/sozref/. This means the proper CLASSPATH entry for your function is "file:///usr/share/wollmux/".
* Relative URLs are resolved relative to DEFAULT_CONTEXT.
= Logging and Debugging =
WollMux appends its messages to ''$HOME/.wollmux/wollmux.log''. This file is automatically generated the first time WollMux issues a message. In some situations WollMux may issue messages that don't need to be logged. Using LOGGING_MODE you can control the level of detail that WollMux gives in its log messages. The log file is never deleted automatically. In standard mode, WollMux only logs messages involving critical failure or informative messages. This reduces the tendency of the log file to grow unnecessarily.
== LOGGING_MODE ==
;Syntax
LOGGING_MODE "<modes>"
;Example
LOGGING_MODE "ERROR"
or
LOGGING_MODE "DEBUG"
;Description: Controls the level of detail of '''output from WollMux (and the WollMuxBar) appended to wollmux.log'''.
WollMux recognizes the following modes:
{|{{Prettytable}}
! <mode>
! Description
! Debug mode
|-
! NONE
|
In Logging Mode NONE no output is logged.
| No
|-
! ERROR
|
The Logging Mode ERROR only logs errors encountered while running WollMux. These include messages about
* errors in the configuration file,
* errors in templates,
* errors in accessing configured databases,
* WollMux internal failures.
| No
|-
! LOG
|
In Logging Mode LOG WollMux records all messages that might be interesting or useful for daily use of Wollmux, while avoiding pointless metastasizing of the logfile. These include all error messages (as in Logging Mode ERROR) and additional important warnings and information about the running process. '''Logging Mode LOG is the standard setting''', unless modified in wollmux.conf.
| No
|-
! DEBUG
|
Logging Mode DEBUG is used to augment the information given by LOG Mode, providing information about the status of program flow. These messages can ease the task of rooting out errors related to development and maintenance of configuration files, text fragments and templates, and to internal program development. Logging Mode DEBUG generates lots of messages, not all of which are necessary for daily use of WollMux. Overuse of Logging Mode DEBUG can cause the size of wollmux.log to explode unnecessarily, requiring manual deletion of the logfile. If Logging Mode DEBUG is set, you will definitely experience a reduction in WollMux's responsiveness!
Worth mentioning are the first three messages WollMux issues when starting in DEBUG mode, as in this example:
2006-07-13 11:14 DEBUG2(Logger:162): =========== Logger::init(): LoggingMode = 7 ==========
2006-07-13 11:14 DEBUG(WollMuxSingleton:146): StartupWollMux
2006-07-13 11:14 DEBUG(WollMuxSingleton:147): '''Build-Info: Paketversion: 1.2.1, Revision: 986'''
They contain information about the current WollMux version, which you should always include in further inquiry about WollMux or when reporting problems.
| Yes
|-
! ALL
|
Logging Mode ALL records each and every message WollMux generates. This mode records internal status information not generated by DEBUG, too detailed for normal debugging purposes and in general only suitable for use by developers. If you're simply looking for errors purely related to maintenance of configuration files, text fragments and templates, use of this mode is not recommended.
| Yes
|}
== Debug Mode ==
Besides the logging mode, which determines what messages are written to wollmux.log, there exists also a mode of operation for WollMux that makes it easier for template creators, sysadmins and developers to find errors: Debug Mode. Debug Mode is automatically started if LOGGING_MODE "DEBUG" or "ALL" is set (see the table above).
In Debug Mode, WollMux behaves differently in the following regard than when Debug Mode is not set:
* When opening a template, WollMux carries out every command the template contains. In normal use, once all commands in a template have been carried out, the bookmarks are removed from the generated document. In Debug Mode, these bookmarks remain intact. This makes it easier to find errors in document commands, obviating the need to open the corresponding template for editing.
= The SENDER_DISPLAYTEMPLATE =
;Syntax
SENDER_DISPLAYTEMPLATE "<DisplayElements>"
;Example
SENDER_DISPLAYTEMPLATE "%{Nachname}, %{Vorname} (%{Rolle})"
or
SENDER_DISPLAYTEMPLATE "%{Vorname} %{Nachname} (Mailadresse: %{Mail})"
''Note: the values above are for the German version of WollMux.''
Setting SENDER_DISPLAYTEMPLATE values controls which entries from the Personal Sender List (or PAL, from the German "persönliche Absenderliste") are to be displayed (internally as well, via the XPALProvider-Interface, see [[Schnittstellen_des_WollMux_für_Experten#Einbinden_einer_SenderBox|WollMux Interface Programming for Experts: Embedding a SenderBox (German)]]). Along with static text, the display template can contain placeholders of the form <code>%{ColumnName}</code>, which will be replaced by the respective data record in that column of the corresponding database.
Adjustments to SENDER_DISPLAYTEMPLATE have notable effects on the display of the Sender List in [[#Menue-Elemente|Menu Elements]] of type "senderbox" in the WollMuxBar. Such adjustments, however, have no effect at all on the dialog "[[#Pers.C3.B6nliche_Absenderliste_Verwalten|Manage Personal Sender List]]" or the dialog "[[Konfigurationsdatei_wollmux.conf#Absender_Ausw.C3.A4hlen|Select Sender]]". Display of those elements, i.e. of type "listbox" with ID "suchergebnis" (search result) or "pal" (personal sender list), is controlled via the DISPLAY attribute. Please see DISPLAY section for more information.
= Der PERSISTENT_DATA_MODE =
Ab WollMux 11.9 wird das globale Attribut PERSISTENT_DATA_MODE ausgewertet.
;Syntax
PERSISTENT_DATA_MODE "<modus>"
;Beispiel
PERSISTENT_DATA_MODE "transition"
oder
PERSISTENT_DATA_MODE "rdfReadLegacy"
Für mehrere Zwecke speichert der WollMux bestimmte Informationen über interne Zustände (sog. Metadaten) im Dokument ab. Über das Setzen von PERSISTENT_DATA_MODE kann gesteuert werden wie und wo der WollMux diese Daten hinterlegt. Folgende Werte stehen zur Auswahl:
{|{{Prettytable}}
! <modus>
! Beschreibung
|-
! annotation<br>''(deprecated)''
| Im Modus "annotation" werden Metadaten wie standardmäßig in allen Vorgängerversionen von WollMux 11.9 in versteckten Notizen im Dokument hinterlegt. Dieser Mechanismus hat sich in der Vergangenheit als Fehleranfällig erwiesen, da Notizen (oder "Kommentare", wie sie ab OpenOffice.org 3.2.1 heißen) nicht für die Speicherung von Metadaten vorgesehen sind. Seit OpenOffice.org 3.0 wurde das Benutzerkonzept für Notizen/Kommentare komplett überarbeitet und vereinfacht, so dass sich die Speicherung von WollMux-Metdaten in Notizen für Anwenderinnen und Anwender zunehmend störend auswirkt. So kam es z.B. vor, dass Metadaten ungewollt für Anwenderinnen und Anwender sichtbar wurden.
'''Von einer Verwendung dieses Modus wird ausdrücklich abgeraten'''. Der Modus kann in Einzelfällen eingesetzt werden, um im Fehlerfall das Verhalten von WollMux-Versionen älter als 11.9 nachzubilden.
|-
! rdf
| Im Modus "rdf" werden Metadaten in einer eigenen XML-Datei namens "wollmux.rdf" im ODF-Paket des Dokuments abgelegt. Dieser Modus sorgt dafür, dass WollMux-Metadaten und das eigentliche Dokument sauber getrennt sind und keine störenden Effekte möglich sind. Da der RDF-Modus explizit eine [http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/RDF_metadata UNO-Schnittstelle für Metadaten] verwendet, ist davon auszugehen, dass der Modus "rdf" dauerhaft stabil und zuverlässig bleiben wird.
Der Modus "rdf" ist aus konzeptioneller Sicht der sauberste Weg zur Speicherung von WollMux-Metadaten. In diesem Modus werden Metadaten ausschließlich in die XML-Datei geschrieben und ausschließlich von dort gelesen. Das macht den Modus in der Praxis ungeeignet, wenn bereits WollMux-Dokumente im Modus "annotation" (also mit älteren WollMux-Versionen) erzeugt wurden und diese sich noch im Umlauf befinden.
'''Von einer Verwendung dieses Modus wird abgeraten, wenn Ihr Dokumentenbestand Dokumente enthält, die mit WollMux-Versionen älter als 11.9 erzeugt wurden, oder Austausch mit solchen Dokumenten besteht.''' Der Modus ist empfohlen und geeignet für alle Unternehmen/Kommunen, die ab WollMux 11.9 eine Neueinführung des WollMux planen und bisher noch keine WollMux-Dokumente im Einsatz haben.
|-
! transition
| Im Modus "transition" werden Metadaten sowohl im Modus "annotation" als auch im Modus "rdf" geschrieben. Beim Lesen von Metadaten haben immer die in den Notizen verfügbaren Werte den Vorrang, so dass die Abwärtskompatibilität in der Phase eines Mischbetriebs von WollMux 11.9 und älter problemfrei sichergestellt ist.
'''Dieser Modus ermöglicht mittelfristig die Überführung des Dokumentenbestands in die XML-Metadaten (siehe Modus "rdf"), ohne den Mischbetrieb mit alten WollMux-Versionen (im Modus "annotation") zu gefährden.'''
|-
! rdfReadLegacy
| Im Modus "rdfReadLegacy" werden Metadaten ausschließlich wie in Modus "rdf" gespeichert. Befinden sich im Dokument noch mit "annotation" geschriebene Notizen, so werden sie aus Gründen der Abwärtskompatibilität vorrangig gelesen, jedoch anschließend sofort gelöscht und durch entsprechende Einträge in den RDF-Daten ersetzt.
'''Dieser Modus ist für den langfristigen Einsatz''' in allen Unternehmen/Kommunen '''vorgesehen''', die bereits WollMux-Dokumente mit in Notizen hinterlegten Metadaten im Einsatz haben und flächendeckend ältere WollMux-Versionen (im Modus "annotation") abgelöst haben.'''
|-
|}
Ist die Einstellung PERSISTENT_DATA_MODE nicht angegeben, so gilt:
* Für Alle WollMux-Versionen < Version 11.9 ist implizit der Modus "annotation" gesetzt.
* Ab WollMux-Version 11.9 ist der Modus "transition" voreingestellt.
Desweiteren gilt, dass die Einstellungen '''"rdf", "transition" und "rdfReadLegacy" erst ab OpenOffice.org 3.2.1 unterstützt''' werden. Beim Einsatz des WollMux mit älteren Versionen von OpenOffice.org wird automatisch auf den Modus "annotation" gewechselt.
Weitere Informationen zu WollMux-Metadaten sind auf der Seite [[Dokumentkommandos_des_WollMux#WollMux-Metadaten_im_Dokument|Dokumentkommanndos des WollMux]] beschrieben.
= Der Abschnitt OOoEinstellungen =
Für die korrekte Funktionsfähigkeit des WollMux ist es notwendig, dass bestimmte Konfigurationsoptionen in OpenOffice eingestellt sind. Um das zu erreichen, können im Abschnitt "OOoEinstellungen" Werte für Konfigurationseinstellungen vorgegeben werden, die bei jedem Start des WollMux neu gesetzt werden.
Hier ein Beispiel eines solchen Abschnitts:
OOoEinstellungen (
(NODE "/org.openoffice.Office.Writer/AutoFunction/Format/ByInput/ApplyNumbering"
PROP "Enable" TYPE "boolean"
VALUE "false")
(NODE "/org.openoffice.Office.Writer/Content/NonprintingCharacter"
PROP "HiddenCharacter" TYPE "boolean"
VALUE "false")
(NODE "/org.openoffice.Inet/Settings"
PROP "ooInetProxyType" TYPE "integer"
VALUE "0")
)
Wie im Beispiel gezeigt enthält der Abschnitt eine Liste mit Konfigurationsoptionen und den zugehörigen Werten. Jedes Element der Liste hat den Aufbau
(NODE "<Pfad/Knotenname>" PROP "<NameDerProperty>" TYPE "<DatentypDerProperty>" VALUE "<zuSetzenderWert>")
;NODE: Beschreibt den Pfad und den Knotennamen unter dem die Konfigurationseinstellung im OOo-Konfigurationsbaum liegt. (Anmerkung: Technisch gesehen ist dies der HierarchicalName)
;PROP: Beschreibt den Namen der Property und damit die zu verändernde Einstellung selbst.
;TYPE: Beschreibt den Datentyp, in dem der Wert VALUE in die Property übertragen werden soll. Folgende Typen stehen zur Auswahl: "string", "boolean", "integer" und "float".
;VALUE: Enthält den zu setzenden Wert, der vom Typ TYPE sein muss. Entspricht der Wert nicht dem angegebenen Typ, so erscheint eine Fehlermeldung in der wollmux.log und die Einstellung wird nicht gesetzt.
Innerhalb der Konfigurationsdatei wollmux.conf können mehrere Abschnitte OOoEinstellungen definiert werden, wobei alle darin enthalten Einstellungen der Reihe nach gesetzt werden. So ist es z.B. möglich zentrale Vorgaben über die WollMux-Standard-Config zu machen, die dann in der Datei referat.conf bei Bedarf erweitert werden können.
== Bestimmung von NODE, PROP und TYPE ==
Wenn bereits eine Konfigurationsdatei (*.xcu) vorliegt, so können die Namen aus dem Inhalt dieser Datei abgeleitet werden. Z.B.
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="<nowiki>http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema"</nowiki>
oor:name="Inet" oor:package="org.openoffice">
<node oor:name="Settings">
<prop oor:name="ooInetProxyType" oor:type="xs:int">
<value>0</value>
</prop>
</node>
</oor:component-data>
* NODE = /org.openoffice.Inet/Settings
* PROP = ooInetProxyType
* TYPE = integer
Also in etwa nach der Regel:
* NODE = "/" + <oor:component-data/oor:package> + "." + <oor:component-data/oor:name> + "/" + <node/oor:name> [ + "/" + <node/oor:name> ](für jeden Unterknoten)
* PROP = <prop/oor:name>
* TYPE = Abgeleitet aus <prop/oor:type> (z.B. xs:int --> integer)
= Look And Feel Konfiguration =
Ab WollMux 11.9 wird das globale Attribut LAF_CLASS_NAME ausgewertet.
;Syntax
LAF_CLASS_NAME "<package.class>"
;Beispiel
LAF_CLASS_NAME "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
Über das Setzen des LAF_CLASS_NAME wird somit die Oberfläche aller WollMux-Dialoge an das vorgegebene LookAndFeel angepasst. Diese Option ist besonders für Anwendungen interessant, die den WollMux einbetten möchten. Bei unterschiedlichen LookAndFeels des WollMux und der Anwendung kommt es ansonsten sehr wahrscheinlich zu Problemen.
Wird diese Option nicht verwendet, bleibt das Metal-LAF (javax.swing.plaf.metal.MetalLookAndFeel) die Standardeinstellung.
= Dialoge =
Der WollMux hat verschiedene Dialoge, die sich konfigurativ beeinflussen und auf die Bedürfnisse der Referate maßschneidern lassen.
== FONT_ZOOM ==
Durch die Direktive FONT_ZOOM auf der obersten Verschachtelungsebene des Dialoge-Abschnitts kann für alle WollMux-Eingabemasken die Schriftgröße verändert werden. Hinter FONT_ZOOM wird eine Gleitkommazahl angegeben, mit der alle Schriftgrößen multipliziert werden. Beispiel
Dialoge(
FONT_ZOOM "2.0" # alle Schriften doppelt so groß wie normal.
)
== Absenderdaten Bearbeiten ==
Dieser Dialog dient dazu, den Benutzer die Daten für Einträge aus seiner persönlichen Absenderliste (und damit insbesondere seine eigenen Benutzerdaten) überprüfen und bei Bedarf ändern zu lassen. Die Beschreibung dieses Dialogs befindet sich innerhalb der Konfigurationsdatei in einem Abschnitt ''Dialoge/AbsenderdatenBearbeiten'' und hat folgende Struktur:
Dialoge(
AbsenderdatenBearbeiten(
MODIFY_MARKER_COLOR "<Farbangabe>"
Fenster(
Person(
TITLE "<Titel>"
CLOSEACTION "<Aktion>"
Eingabefelder(
(<Beschreibung Eingabefeld 1>)
(<Beschreibung Eingabefeld 2>)
...
)
Buttons(
(<Beschreibung von Button 1>)
(<Beschreibung von Button 2>)
...
)
)
Orga(
TITLE "<Titel>"
CLOSEACTION "<Aktion>"
Eingabefelder(
...
)
Buttons(
...
)
)
Fusszeile(
TITLE "<Titel>"
CLOSEACTION "<Aktion>"
Eingabefelder(
...
)
Buttons(
...
)
)
)
)
)
Die 3 Unterabschnitte Person, Orga und Fusszeile beschreiben jeweils ein Dialogfenster. Im jeweiligen Unterabschnitt Eingabefelder werden die Benutzerlemente (z.B. Textfelder oder ComboBoxen) beschrieben, die der Anzeige und Bearbeitung der Absenderdaten dienen. Im dazugehörigen Unterabschnitt Buttons werden die Buttons der Dialogseite mit ihrer Beschriftung und Funktion spezifiziert. Im Folgenden werden die einzelnen Spezifikationselemente erläutert:
=== MODIFY_MARKER_COLOR "<Farbangabe>" ===
Wenn der Benutzer einen Wert der Absenderdaten ändert, so wird diese Änderung aus offensichtlichen Gründen nicht in die zugrundeliegende Datenbank (z.B. LDAP) zurückgeschrieben. Stattdessen wird für den geänderten Wert benutzerspezifischer Override angelegt. Der Wert ist ab diesem Zeitpunkt von der Datenbank abgekoppelt. Damit solchermaßen abgekoppelte Felder deutlich erkennbar sind, werden sie farblich markiert. Die Farbe, die dafür verwendet wird, wird durch MODIFY_MARKER_COLOR angegeben. Die <Farbangabe> ist eine wie in CSS übliche hexadezimale Beschreibung der Farbe im Format "#RRGGBB", wobei RR, GG und BB die Rot, Grün und Blau-Komponenten angeben (hexadezimal, 00-FF).
=== TITLE "<Titel>" ===
Der Titel ist der im Rahmen des Fensters angezeigte Titel, wenn die entsprechende Dialogseite angezeigt wird. Im Titel eingebettet können Direktiven der Form "%{Spalte}" sein, die durch den Wert der entsprechenden Spalte des bearbeiteten Datensatzes ersetzt werden. Typischerweise wird hier in den Titel "%{Name} %{Vorname} (%{Rolle})" eingebaut.
=== CLOSEACTION "<Aktion>" ===
Gibt an, welche Aktion ausgeführt werden soll, wenn der Benutzer das Fenster über die Mechanismen des Betriebssystems (z.B. den Schließen-Knopf in der Titelleiste des Fensters) schließt. Erlaubte Aktionen sind [[Konfigurationsdatei_wollmux.conf#ACTION_.22Aktion.22|weiter unten]] beschrieben.
=== (<Beschreibung Eingabefeld 1>) ===
Die Beschreibung eines Eingabefeldes besteht aus Schlüssel-Wert-Paaren. Die möglichen Paare werden in den folgenden Abschnitten beschrieben. Dabei ist zu beachten, dass nicht alle für jede Art von Eingabefeld Anwendung finden.
==== LABEL "Label" ====
Der Label-Text wird links neben dem Eingabeelement angezeigt.
==== TYPE "Feldtyp" ====
Der Feldtyp spezifiziert die Art des GUI-Elements. Die folgenden Feldtypen werden unterstützt:
* textfield: Ein einzeiliges Feld zur Eingabe einer Zeichenkette
* textarea: Ein mehrzeiliges Feld zur Einhabe eines Textes
* combobox: Ein kombiniertes Text/Drop-Down-Feld, das mehrere vordefinierte Werte zur Auswahl anbietet
* label: kein Eingabefeld. Wird verwendet, um nur den LABEL-Text anzuzeigen.
* separator: eine horizontale Linie zur Gruppierung ohne weitere Funktion
==== DB_SPALTE "Spalte" ====
Dies gibt die Spalte an, deren Daten in den Eingabefeldern angezeigt und damit bearbeitet werden. Die Spaltennamen beziehen sich dabei auf die mittels [[Konfigurationsdatei_wollmux.conf#SENDER_SOURCE|SENDER_SOURCE]] festgelegte [[Konfigurationsdatei_wollmux.conf#Datenquellen|Datenquelle]]. Der bearbeitete Datensatz ist der im Dialog [[Konfigurationsdatei_wollmux.conf#Pers.C3.B6nliche_Absenderliste_Verwalten|Persönliche Absenderliste Verwalten]] ausgewählte.
==== VALUES (<Liste>) ====
Diese Liste von Strings spezifiziert die Werte, die ein Eingabefeld des Typs "combobox" dem Benutzer zur Auswahl anbietet.
==== LINES "Anzahl" ====
Legt die Anzahl der angezeigten Zeilen für ein Element des Typs "textarea" fest. Die Eingabe wird dadurch nicht begrenzt. Es können beliebig viele Zeilen eingegeben werden.
==== WRAP "false" ====
Die Angabe WRAP "false" unterbindet bei Elementen des Typs "textarea" den Umbruch der Zeilen in der Anzeige. Standardeinstellung ist WRAP "true", d.h. lange Zeilen werden am Rand des Feldes umgebrochen. Man beachte, dass dies nur die Anzeige im Dialogfenster betrifft. Es werden keine harten Zeilenumbrüche eingefügt.
==== READONLY "true" ====
Wird dies angegeben, so kann der Benutzer den Wert des Eingabefeldes nicht ändern.
==== EDIT "true" ====
Wird dies bei einem Feld vom Type "combobox" angegeben, so kann der Benutzer nicht nur aus der Liste auswählen, sondern auch freien Text eingeben.
=== (<Beschreibung von Button 1>) ===
Die Beschreibung eines Buttons besteht aus einer Liste von Schlüssel-Wert-Paaren. Die möglichen Paare werden in den folgenden Abschnitten beschrieben. Dabei ist zu beachten, dass nicht alle für jedes Element der Button-Leiste Anwendung finden.
==== LABEL "Label" ====
Die Beschriftung des Buttons.
==== TYPE "Typ" ====
Der Typ des Eingabeelements. Folgende Typen werden unterstützt:
* button: ein normaler Button
* glue: ein unsichtbares Element, das dazu dient, Abstände zwischen 2 Buttons einzufügen
==== MINSIZE "Pixelzahl" ====
Diese Angabe wird nur bei Elementen vom Typ "glue" ausgewertet und gibt die minimale Breite des einzufügenden Leerraumes in Pixeln an. Wird diese Angabe weggelassen wird 0 angenommen.
==== MAXSIZE "Pixelzahl" ====
Diese Angabe wird nur bei Elementen vom Typ "glue" ausgewertet und gibt die maximale Breite des einzufügenden Leerraumes in Pixeln an. Wird diese Angabe weggelassen wird unendlich angenommen.
==== PREFSIZE "Pixelzahl" ====
Diese Angabe wird nur bei Elementen vom Typ "glue" ausgewertet und gibt die bevorzugte Breite des einzufügenden Leerraumes in Pixeln an. Wird diese Angabe weggelassen wird 0 angenommen.
==== HOTKEY "Buchstabe" ====
Wird dies angegeben, so kann die mit dem Button verknüpfte Aktion über die Tastatur mit der Kombination Alt-Buchstabe aufgerufen werden. Für Buchstaben sind keine Umlaute oder Sonderzeichen erlaubt. ACHTUNG: Mit Windows 2000 wurde in "Eigenschaften von Anzeige" (Rechts-Click auf Desktop -> Eigenschaften) auf dem Reiter "Effekte" die Option hinzugefügt "Tastaturnavigationsanzeiger ausblenden (mit ALT-Taste einblenden)". Wenn diese Option aktiviert ist, dann werden die Hotkey-Buchstaben im Button-Text nur unterstrichen, wenn die Alt-Taste gedrückt wird. Dieses Verhalten weicht vom gewohnten Standardverhalten der meisten Applikationen ab, da diese die entsprechende Windows-Funktion nicht unterstützen.
==== ACTION "Aktion" ====
Die Aktion spezifiziert, was passieren soll, wenn der Benutzer den entsprechenden Button aktiviert. Die folgenden Aktionen werden unterstützt:
* ''abort'': Der Dialog wird abgebrochen. Änderungen werden ''nicht'' gespeichert.
* ''back'': Kehrt zum vorherigen Dialog zurück. Änderungen werden ''nicht'' gespeichert.
* ''restoreStandard'': Nach Bestätigung einer Sicherheitsabfrage werden alle vom Benutzer geänderten Felder auf der angezeigten Dialogseite (und nur auf dieser) wieder an die Werte aus der entsprechenden Datenbank (z.B. LDAP) gekoppelt.
* ''switchWindow'': bringt die durch WINDOW angegebene Dialogseite in den Vordergrund
* ''save'': die durch den Benutzer geänderten Werte werden als lokale Overrides gespeichert und überdecken von da an die Werte der Ursprungsdatenbank. Durch restoreStandard kann dies wieder aufgehoben werden.
* ''saveAndExit'': wie "save", jedoch wird der Dialog danach automatisch geschlossen.
* ''saveAndBack'': wie "save", jedoch wird danach zum vorherigen Dialog zurückgekehrt.
Wird die ACTION gar nicht angegeben oder wird ein leerer String als Aktion spezifiziert, so wird der Button ausgegraut und hat keine Funktion.
==== WINDOW "Fenster" ====
Gibt für die "switchWindow" Aktion das zu aktivierende Dialogfenster an. Der Name entspricht dem Schlüssel des Unterabschnitts von Fenster(...), also "Person", "Orga" oder "Fusszeile".
== Persönliche Absenderliste Verwalten ==
Dieser Dialog erlaubt dem Benutzer, Einträge zu seiner persönlichen Absenderliste hinzuzufügen oder von ihr zu entfernen. Der Dialog bietet ein Suchfeld, über das der Benutzer bequem auf die Absenderdaten aus vorhandenen Verzeichnissen (insbes. LDAP) zugreifen kann, um diese in seine Absenderliste zu übernehmen. Die Beschreibung dieses Dialogs befindet sich innerhalb der Konfigurationsdatei in einem Abschnitt ''Dialoge/PersoenlicheAbsenderliste'', der im Auslieferungszustand folgenden Inhalt hat:
Dialoge(
PersoenlicheAbsenderliste(
Fenster(
Verwalten(
TITLE "Absenderliste Verwalten (WollMux)"
Intro(
(LABEL "Sie können nach Vorname, Nachname, Email und Orga-Einheit suchen" TYPE "label" )
(TYPE "glue")
)
Suche(
(TYPE "textfield" ID "suchanfrage" ACTION "search")
(LABEL "Suchen" TYPE "button" HOTKEY "S" ACTION "search")
)
Suchergebnis(
(LABEL "Suchergebnis" TYPE "label")
(TYPE "listbox" ID "suchergebnis" LINES "10" ACTION "addToPAL" DISPLAY "%{Nachname}, %{Vorname} (%{Rolle})")
)
HinUndHer(
(LABEL "-->" TYPE "button" ACTION "addToPAL")
(LABEL "<--" TYPE "button" ACTION "removeFromPAL")
)
Absenderliste(
(LABEL "Persönliche Absenderliste" TYPE "label")
(TYPE "listbox" ID "pal" LINES "10" ACTION "editEntry" DISPLAY "%{Nachname}, %{Vorname} (%{Rolle})")
)
Fussbereich(
(LABEL "Löschen" TYPE "button" HOTKEY "L" ACTION "removeFromPAL")
(LABEL "Bearbeiten..." TYPE "button" HOTKEY "B" ACTION "editEntry")
(LABEL "Kopieren" TYPE "button" HOTKEY "K" ACTION "copyEntry")
(LABEL "Neu" TYPE "button" HOTKEY "N" ACTION "editNewPALEntry")
(LABEL "Schließen" TYPE "button" HOTKEY "C" ACTION "abort")
)
)
)
Suchstrategie(
personal(Mail "${suchanfrage1}")
personal(Mail "${suchanfrage1}@muenchen.de")
personal(Nachname "${suchanfrage1}*")
personal(OrgaKurz "${suchanfrage1}")
personal(OrgaKurz "*${suchanfrage1}")
personal(Vorname "${suchanfrage1}")
personal(Vorname "${suchanfrage1}*")
personal(Vorname "${suchanfrage1}" Nachname "${suchanfrage2}")
personal(Nachname "${suchanfrage1}" Vorname "${suchanfrage2}")
personal(Vorname "${suchanfrage1}" Nachname "${suchanfrage2}*")
personal(Nachname "${suchanfrage1}" Vorname "${suchanfrage2}*")
personal(OrgaKurz "${suchanfrage1}-${suchanfrage2}")
personal(OrgaKurz "${suchanfrage1}/${suchanfrage2}")
personal(OrgaKurz "${suchanfrage1} ${suchanfrage2}")
personal(OrgaKurz "${suchanfrage1}_${suchanfrage2}")
personal(OrgaKurz "*${suchanfrage1}-${suchanfrage2}")
personal(OrgaKurz "*${suchanfrage1}/${suchanfrage2}")
personal(OrgaKurz "*${suchanfrage1} ${suchanfrage2}")
personal(OrgaKurz "*${suchanfrage1}_${suchanfrage2}")
personal(Vorname "${suchanfrage1}*" Nachname "${suchanfrage2}*")
personal(Nachname "${suchanfrage1}*" Vorname "${suchanfrage2}*")
personal(OrgaKurz "${suchanfrage1} ${suchanfrage2} ${suchanfrage3}")
personal(OrgaKurz "${suchanfrage1} ${suchanfrage2} ${suchanfrage3} ${suchanfrage4}")
personal(OrgaKurz "${suchanfrage1} ${suchanfrage2} ${suchanfrage3} ${suchanfrage4} ${suchanfrage5}")
)
)
)
Im Normalfall sollten an diesem Dialog keine Änderungen seitens der Referate erforderlich sein. In Ausnahmefällen kann es jedoch notwendig sein, bestimmte Funktionen zu deaktivieren. Da die Struktur sowie die Spezifikationselemente dieses Dialogs vollkommen analog zu denen des [[Konfigurationsdatei_wollmux.conf#Absenderdaten_Bearbeiten|Absenderdaten Bearbeiten]] Dialogs sind, werden im Folgenden nur einige Elemente herausgegriffen, die dort nicht erwähnt oder die von besonderem Interesse sind.
;Hinweis: Die ähnliche Struktur der Konfigurationsabschnitte für den [[Konfigurationsdatei_wollmux.conf#Absenderdaten_Bearbeiten|Absenderdaten Bearbeiten]] Dialog und den [[Konfigurationsdatei_wollmux.conf#Pers.C3.B6nliche_Absenderliste_Verwalten|Persönliche Absenderliste Verwalten]] Dialog dient dazu, den Lernaufwand für die Administratoren zu reduzieren. Die real verfügbaren Möglichkeiten der Anpassung beschränken sich jedoch auf die für den jeweiligen Dialog vorgesehenen Funktionalitäten. Zum Beispiel ist es ''nicht'' möglich, dem Persönliche Absenderliste Verwalten Dialog neue Fenster hinzuzufügen, indem weitere Unterabschnitte im Abschnitt ''Fenster'' und Buttons mit ''ACTION "switchWindow"'' erstellt werden.
=== (<Beschreibung GUI-Element>) ===
==== ID "Identifikator" ====
Da der Dialog mehrere gleichartige GUI-Elemente haben kann dient der Identifikator dazu, festzulegen, welches Element welche Aufgabe erfüllt. Es ist jeweils nur ein einziges Element mit dem entsprechenden Identifikator erlaubt. Die folgenden Identifikatoren gibt es:
* ''suchanfrage'': identifiziert das Textfeld, in das der Benutzer seine Suchanfrage eingibt
* ''suchergebnis'': identifiziert die Listbox, in der die Suchergebnisse angezeigt werden
* ''pal'': identifiziert die Listbox, in der die Persönliche Absenderliste des Benutzers angezeigt wird
==== TYPE "Feldtyp" ====
Der Feldtyp spezifiziert die Art des GUI-Elements. Die folgenden Feldtypen werden unterstützt:
* ''textfield'': Ein einzeiliges Feld zur Eingabe einer Zeichenkette
* ''label'': kein Eingabefeld. Wird verwendet, um nur den LABEL-Text anzuzeigen.
* ''glue'': ein unsichtbares Element, das dazu dient, Leerraum einzufügen (und dadurch Links- bzw. Rechtsbündigkeit zu erreichen)
* ''listbox'': eine Liste von Möglichkeiten, aus denen der Benutzer einen oder mehrere auswählen kann
* ''button'': ein normaler Button
==== LINES "Anzahl" ====
Legt die bevorzugte Anzahl anzuzeigender Einträge für ein Element des Typs "listbox" fest.
==== ACTION "Aktion" ====
Die Aktion spezifiziert, was passieren soll, wenn der Benutzer den entsprechenden Button aktiviert. Bei Listboxen wird die Aktion ausgeführt, wenn auf einen Eintrag der Listbox ein Doppelklick erfolgt. Bei Textfeldern wird die Aktion ausgeführt, wenn der Benutzer im Feld die ENTER-Taste drückt. Die folgenden Aktionen werden unterstützt:
* ''abort'': Der Dialog wird geschlossen. Änderungen an der Absenderliste bleiben erhalten.
* ''search'': Die im Suchfeld eingegebene Suchanfrage wird bearbeitet.
* ''addToPAL'': fügt die in der Suchergebnisliste markierten Einträge der Absenderliste hinzu.
* ''removeFromPAL'': entfernt die in der Absenderliste markierten Einträge aus der Absenderliste.
* ''editEntry'': Bearbeitet den ersten in einer der Listboxen selektierten Eintrag. Ist der gewählte Eintrag in der Suchergebnisliste, wird er in die Absenderliste kopiert und die Kopie bearbeitet.
* ''copyEntry'': Von allen selektierten Einträgen wird eine Kopie in der Absenderliste erstellt.
* ''newPALEntry'': Legt einen neuen Datensatz in der Absenderliste an, der nicht mit einer Datenbank verknüpft ist.
* ''editNewPALEntry'': Legt einen neuen Datensatz in der Absenderliste an, der nicht mit einer Datenbank verknüpft ist und öffnet ihn gleich zum Bearbeiten.
Wird bei einem Button die Aktion gar nicht angegeben oder wird ein leerer String als Aktion spezifiziert, so wird der Button ausgegraut und hat keine Funktion.
==== DISPLAY "Anzeigeschema" ====
Nur möglich für Elemente vom Typ "listbox" mit ID "suchergebnis" oder "pal" (siehe oben). Über das DISPLAY-Attribut kann gesteuert werden, wie die Suchergebnisse bzw. die Einträge der Absenderliste dargestellt werden. Neben statischen Textteilen kann das Anzeigemuster Platzhalter der Form <tt>%{Spaltenname}</tt> enthalten, die für den jeweiligen Datensatz durch den entsprechenden Datenbankspaltenwert ersetzt werden.
''Beispiel:'' Es wird eine [[#TYPE_.22ldap.22|LDAP-Datenquelle]] verwendet, in deren [[#Spalten-Beschreibung|Spalten-Beschreibung]] mit dem DB_SPALTE-Attribut die Spaltennamen "Nachname", "Vorname" und "Rolle" definiert sind. Dann führt die Angabe von "<code>DISPLAY %{Nachname}, %{Vorname} (%{Rolle})</code>" z.B. zu einer Anzeige der Form "<code>Meier, Hans (Abteilungsleiter)</code>".
=== Suchstrategie ===
Der Abschnitt ''Dialoge/PersoenlicheAbsenderliste/Suchstrategie'' legt fest, wie die vom Benutzer im mit der ID "suchanfrage" ausgezeichneten Textfeld eingegebenen Suchworte in Abfragen an die Datenquelle, die als [[#SENDER_SOURCE|SENDER_SOURCE]] festgelegt wurde, umgesetzt werden. Der Abschnitt besteht aus einer beliebigen Anzahl von Suchanfragen nach folgendem Schema:
datenquellenname(Spaltenname1 "<Suchmuster1>" Spaltenname2 "<Suchmuster2>" ... )
Im Folgenden einige Praxisbeispiele:
personal(Mail "${suchanfrage1}")
personal(Mail "${suchanfrage1}@muenchen.de")
personal(Nachname "${suchanfrage1}*")
personal(Vorname "${suchanfrage1}" Nachname "${suchanfrage2}")
personal(OrgaKurz "${suchanfrage1}-${suchanfrage2}")
;Bemerkungen:
* '''Für die Suche in der Persönlichen Absenderliste wird IMMER die als [[#SENDER_SOURCE|SENDER_SOURCE]] festgelegte Datenquelle verwendet, unabhängig davon, welcher Datenquellenname hier angegeben wird!''' Die Zeilen <code>personal(Mail "${suchanfrage1}")</code> und <code>gugelhupf(Mail "${suchanfrage1}")</code> sind also völlig gleichbedeutend! Wir empfehlen trotzdem an dieser Stelle immer den Namen der als [[#SENDER_SOURCE|SENDER_SOURCE]] festgelegte Datenquelle zu verwenden, da die Funktionalität des WollMux in Zukunft eventuell so verändert werden könnte, dass der Name der Datenquelle an dieser Stelle doch ausgewertet wird.
* Als Platzhalter sind ${suchanfrage1} bis ${suchanfrage2} erlaubt und werden durch entsprechende Wörter der vom Benutzer eingegebenen Suchanfrage ersetzt.
* Sternchen sind als Jokerzeichen erlaubt und stehen für einen beliebigen Teilstring
* Die Suchmuster für die eingegebene Anzahl von Wörtern werden in der Reihenfolge ihres Auftretens versucht und die Ergebnisse der ersten Anfrage zurückgeliefert, die mindestens ein Ergebnis liefert.
* Suchmuster, die mehr Wörter erfordern als der Benutzer eingegeben hat, werden ignoriert.
* Gibt es für die Anzahl vom Benutzer eingegebener Wörter keine Regel, so wird die Eingabe so lange von hinten beginnend gekürzt bis sie entweder leer ist oder eine Wortzahl erreicht wurde, für die es eine Regel gibt.
* Die Angabe eines Suchmusters ohne Spalten (d.h. nur der Datenquellenname) ist möglich und bedeutet, dass leere Suchanfragen und die Suchanfrage "*" erlaubt sind und alle Datensätze der Datenquelle zurückliefern sollen. '''ACHTUNG!''' Dieses Feature wird derzeit nicht von allen Datenquellentypen unterstützt und nur nach Bedarf weiterentwickelt.
== Absender Auswählen ==
Dieser Dialog dient dem Benutzer dazu, den Absender für seine Briefköpfe auszuwählen. Er stellt die persönliche Absenderliste dar und erlaubt es, darin einen Eintrag zu selektieren. Die Beschreibung dieses Dialogs befindet sich innerhalb der Konfigurationsdatei in einem Abschnitt ''Dialoge/AbsenderAuswaehlen'', der im Auslieferungszustand folgenden Inhalt hat:
Dialoge(
AbsenderAuswaehlen(
Fenster(
Auswaehlen(
TITLE "Absender Auswählen"
Absenderliste(
(LABEL "Welchen Absender möchten Sie für Ihre Briefköpfe verwenden ?" TYPE "label" )
(TYPE "listbox" ID "pal" LINES "10" ACTION "abort" DISPLAY "%{Nachname}, %{Vorname} (%{Rolle})")
)
Buttons(
(LABEL "Bearbeiten..." TYPE "button" HOTKEY "B" ACTION "editList")
(TYPE "glue")
(LABEL "Schließen" TYPE "button" HOTKEY "C" ACTION "abort")
)
)
)
)
)
Im Normalfall sollten an diesem Dialog keine Änderungen seitens der Referate erforderlich sein. In Ausnahmefällen kann es jedoch notwendig sein, bestimmte Funktionen zu deaktivieren. Da die Struktur sowie die Spezifikationselemente dieses Dialogs vollkommen analog zu denen des [[Konfigurationsdatei_wollmux.conf#Absenderdaten_Bearbeiten|Absenderdaten Bearbeiten]] Dialogs sind, werden im Folgenden nur einige Elemente herausgegriffen, die dort nicht erwähnt oder die von besonderem Interesse sind.
;Hinweis: Die ähnliche Struktur der Konfigurationsabschnitte für den [[Konfigurationsdatei_wollmux.conf#Absenderdaten_Bearbeiten|Absenderdaten Bearbeiten]] Dialog und den [[Konfigurationsdatei_wollmux.conf#Absender_Ausw.C3.A4hlen|Absender Auswählen]] Dialog dient dazu, den Lernaufwand für die Administratoren zu reduzieren. Die real verfügbaren Möglichkeiten der Anpassung beschränken sich jedoch auf die für den jeweiligen Dialog vorgesehenen Funktionalitäten. Zum Beispiel ist es ''nicht'' möglich, dem Absender Auswählen Dialog neue Fenster hinzuzufügen, indem weitere Unterabschnitte im Abschnitt ''Fenster'' und Buttons mit ''ACTION "switchWindow"'' erstellt werden.
=== (<Beschreibung GUI-Element>) ===
==== ID "Identifikator" ====
Für diesen Dialog ist nur der Identifikator ''pal'' von Interesse. Er muss für das Listbox-Element angegeben werden, das die Persönliche Absenderliste darstellt.
==== ACTION "Aktion" ====
Der Dialog unterstützt die folgenden Aktionen:
* ''abort'': Der Dialog wird geschlossen. Wurde die Auswahl geändert, so bleibt die neue Auswahl gültig.
* ''editList'': Ruft den Dialog zum Bearbeiten der Persönlichen Absenderliste auf.
Wird bei einem Button die Aktion gar nicht angegeben oder wird ein leerer String als Aktion spezifiziert, so wird der Button ausgegraut und hat keine Funktion.
==== DISPLAY "Anzeigeschema" ====
Kann beim Listbox-Element mit ID "pal" angegeben werden. Über das DISPLAY-Attribut kann gesteuert werden, wie die Einträge der Absenderliste dargestellt werden. Neben statischen Textteilen kann das Anzeigemuster Platzhalter der Form <tt>%{Spaltenname}</tt> enthalten, die für den jeweiligen Datensatz durch den entsprechenden Datenbankspaltenwert ersetzt werden.
''Beispiel:'' Es wird eine [[#TYPE_.22ldap.22|LDAP-Datenquelle]] verwendet, in deren [[#Spalten-Beschreibung|Spalten-Beschreibung]] mit dem DB_SPALTE-Attribut die Spaltennamen "Nachname", "Vorname" und "Rolle" definiert sind. Dann führt die Angabe von <code>DISPLAY "%{Nachname}, %{Vorname} (%{Rolle})"</code> z.B. zu einer Anzeige der Form "<code>Meier, Hans (Abteilungsleiter)</code>".
== Sachleitende Verfügungen Druckdialog ==
Über diesen Dialog wird die Komfortdruckfunktion zu den Sachleitenden Verfügungen angesteuert. Die Beschreibung dieses Dialogs befindet sich innerhalb der Konfigurationsdatei in einem Abschnitt ''Dialoge/SachleitendeVerfuegungenDruckdialog'', der im Auslieferungszustand folgenden Inhalt hat:
Dialoge(
SachleitendeVerfuegungenDruckdialog(
Fenster(
Drucken(
TITLE "Wollmux Komfortdruck"
CLOSEACTION "abort"
Headers(
(LABEL "Ausfertigung" TYPE "label")
(LABEL "Kopien" TYPE "label")
(TYPE "glue")
)
Verfuegungspunkt( # werden pro Verfügungspunkt in einer Zeile angezeigt
(TYPE "combobox" ID "element")
(TYPE "spinner" ID "elementCount")
(TYPE "glue")
(TYPE "button" LABEL "Drucken" ACTION "printElement")
)
AllElements( # wird als weitere Zeile nach einem Trennstrich angezeigt
(LABEL "Summe aller Ausfertigungen" TYPE "label")
(TYPE "textfield" ID "allElementCount")
(TYPE "glue")
)
Buttons(
(LABEL "Abbrechen" TYPE "button" HOTKEY "A" ACTION "back")
(TYPE "glue")
(LABEL "Alle Ausfertigungen drucken" TYPE "button" HOTKEY "D" ACTION "printAll")
)
)
)
)
)
Im Normalfall sollten an diesem Dialog keine Änderungen seitens der Referate erforderlich sein. In Ausnahmefällen kann es jedoch notwendig sein, bestimmte Funktionen zu deaktivieren. Da die Struktur sowie die Spezifikationselemente dieses Dialogs vollkommen analog zu denen des [[Konfigurationsdatei_wollmux.conf#Absenderdaten_Bearbeiten|Absenderdaten Bearbeiten]] Dialogs sind, werden im Folgenden nur einige Elemente herausgegriffen, die dort nicht erwähnt oder die von besonderem Interesse sind.
;Hinweis: Die ähnliche Struktur der Konfigurationsabschnitte für diesen Dialog und den [[Konfigurationsdatei_wollmux.conf#Absenderdaten_Bearbeiten|Absenderdaten Bearbeiten]] Dialog dient dazu, den Lernaufwand für die Administratoren zu reduzieren. Die real verfügbaren Möglichkeiten der Anpassung beschränken sich jedoch auf die für den jeweiligen Dialog vorgesehenen Funktionalitäten.
=== Beschreibung der Unterabschnitte von Fenster/Drucken ===
Der Dialog besitzt genau ein Fensterbereich in dem alle Elemente des Dialogs wie in einer Tabelle in Spaltenform angezeigt werden. Dazu werden vier getrennte Bereiche/Unterabschnitte definiert:
* ''Headers'': Der Abschnitt "Headers" enthält die Spaltenüberschriften für diesen Dialog.
* ''Verfuegungspunkt'': Für jeden Verfügungspunkt wird beim Aufbauen des Dialogs ein eigener Eintrag erzeugt, der die in diesem Abschnitt enthaltenen Elemente als Vorlage nimmt.
* ''AllElements'': Enthält die Zusammenfassung mit dem Zähler aller Ausfertigungen.
* ''Buttons'': Enthält die Schaltflächen, die in diesem Dialog verfügbar sind.
=== (<Beschreibung GUI-Element>) ===
==== ID "Identifikator" ====
Dieser Dialog unterstützt die folgenden Identifikatoren:
* ''element'': Dieser Identifikator wird in Zusammenhang mit dem Combobox-Element angegeben, in dem die Überschrift des Verfügungspunktes und ggf. die Zuleitungszeilen aufgeführt sind.
* ''elementCount'': Dieser Identifikator wird in Zusammenhang mit dem Spinner-Element angegeben, über das die Anzahl der Kopien eines Verfügungspunktes festgelegt werden kann.
* ''allElementCount'': Dieser Identifikator wird in Zusammenhang mit dem Textfeld angegeben, in dem die Gesamtkopienzahl aller Ausfertigungen angezeigt wird.
==== ACTION "Aktion" ====
Der Dialog unterstützt die folgenden Aktionen:
* ''printElement'': Erstellt alle Kopien des ''einen'', zugehörigen Verfügungspunktes.
* ''printAll'': Druckt alle Ausfertigungen aller Verfügungspunkte aus.
== Warndialog bei mehrfacher Installation des WollMux ==
Eine häufige Quelle für Ärger und zeitaufendige Fehlersuchen sind sog. Mehrfachinstallationen des WollMux. Sie entstehen üblicherweise dann, wenn ein WollMux-Paket installiert wird, während noch ein offener soffice-Prozess läuft. Dadurch kann die alte Version des WollMux-Pakets u.U. nicht fehlerfrei deinstalliert werden und es bleibt eine alte, nicht funktionierende WollMux-Installation übrig. Eine Mehrfachinstallation kann auch dann auftreten, wenn eine systemweite Installation und eine benutzerspezifische Installation des WollMux gleichzeitig vorliegen. Als Folge kann es sein, dass der WollMux nicht fehlerfrei arbeitet und unverhersehbare Fehler produziert.
Um die Ursache derartiger Fehler frühzeitig erkennen zu können, wurde folgender Warndialog eingeführt. Beim Starten von OpenOffice.org oder beim Öffnen der WollMux-Leiste erfolgt eine Prüfung, ob der WollMux mehrfach installiert ist. Dabei werden sowohl die systemweiten als auch die benutzerspezifischen Installationsziele von OpenOffice.org untersucht. Wird mehr als eine WollMux-Installation erkannt oder ändert sich das Datum der jüngsten Installation, so wird der Warndialog und eine entsprechende Fehlermeldung in der Datei wollmux.log ausgegeben.
Der angezeigte Text des Warndialogs kann wie im folgenden Beispiel über den Konfigurationsabschnitt Dialoge/MehrfachinstallationWarndialog frei konfiguriert werden:
Dialoge(
MehrfachinstallationWarndialog(
TITLE "Mehrfachinstallation des WollMux"
MSG(
"Der WollMux ist mehrfach auf Ihrem System installiert.%n"
"Dieser Zustand kann zu unerklärbaren Effekten führen%n"
"und sollte daher dringend bereinigt werden.%n"
"%n"
"Die jüngste Installation liegt unter:%n"
"- ${RECENT_INST_PATH}%n"
"%n"
"Außerdem wurden folgende Installationen gefunden:%n"
"${OTHER_INSTS_LIST}"
)
)
)
Der gesamte Abschnitt MehrfachinstallationWarndialog ist optional. Fehlt er, so wird im Fehlerfall ein Warndialog mit den voreingestellten Inhalten des WollMux angezeigt. Ist der Abschnitt definiert, so können folgende Werte gesetzt werden:
;Das Attribut 'TITLE': Das Attribut enthält die Kopfzeile des Warndialogs. Die Angabe von TITLE ist optional. Wenn TITLE nicht angebeben ist, wird die entsprechende Voreinstellungen des WollMux verwendet.
;Das Attribut 'MSG': Das Attribut enthält den eigentlichen Textinhalt des Warndialogs. Innerhalb des Abschnitts MehrfachinstallationWarndialog ist die Angabe von MSG immer notwendig. Fehlt MSG, so wird die Anzeige des Dialogs dadurch deaktiviert.
:Innerhalb von MSG können folgende Variablen verwendet werden, die mit den zur Laufzeit bestimmten Werten des WollMux gefüllt werden:
:* '''${RECENT_INST_PATH}''': Enthält den Pfad der jüngsten WollMux-Installation, die auf dem System gefunden wurde.
:* '''${RECENT_INST_LAST_MODIFIED}''': Enthält das Datum der letzten Änderung der jüngsten WollMux-Installation, die auf dem System gefunden wurde.
:* '''${OTHER_INSTS_LIST}''': Enthält eine Liste mit den Pfaden aller anderen konkurrierenden WollMux-Installation, die auf dem System gefunden wurden.
=== Warndialog deaktivieren ===
Zum Deaktivieren des Warndialogs genügt es, einen leeren Dialoge/MehrfachinstallationWarndialog-Abschnitt in der wollmux.conf zu definieren:
Dialoge(
MehrfachinstallationWarndialog(
)
)
Der Warndialog wird damit nicht mehr angezeigt. Die entsprechende Fehlermeldung in der Datei wollmux.log erscheint aber trotzdem.
== Seriendruckdialog ==
Über den Abschnitt Dialoge/Seriendruckdialog kann der Seriendruckdialog spezifiziert und konfiguriert werden, der beim Klicken auf den Button "Drucken" in der Seriendruckleiste des WollMux erscheint. Die Seriendruckdialogkonfiguration teilt sich auf in zwei Unterabschnitte "Fenster" und "Regeln". Im Unterabschnitt "Fenster" sind die Elemente spezifiziert, die abhängig von Sichtbarkeitsregeln im Dialog angezeigt oder ausgeblendet werden. Im Unterabschnitt "Regeln" sind die Regeln aufgeführt die die Sichtbarkeiten steuern und festlegen, welche Druckfunktionen in einem bestimmten Druckszenario verwendet werden.
Dialoge(
Seriendruckdialog(
TITLE "Seriendruck"
Fenster(
Aktionen(TITLE "Aktionen"
(LABEL "Gesamtdokument erstellen" TYPE "radio" ACTION "setActionType" VALUE "gesamtdok")
(LABEL "Direkt Drucken" TYPE "radio" ACTION "setActionType" VALUE "drucken")
(LABEL "E-Mails verschicken" TYPE "radio" ACTION "setActionType" VALUE "emails")
(LABEL "Einzeldateien erzeugen" TYPE "radio" ACTION "setActionType" VALUE "einzel")
)
Druckbereich(TITLE "Folgende Datensätze verwenden"
(LABEL "Alle" TYPE "radio" ACTION "selectAll")
(LABEL_FROM "Von" LABEL_TO "Bis" TYPE "fromtoradio" ACTION "selectRange")
)
Output(TITLE "Ausgabeformat"
(LABEL "ODT-Datei" TYPE "radio" GROUP "odt" ACTION "setOutput" VALUE "odt")
(LABEL "ODT-Datei / WollMux-Formular" TYPE "radio" GROUP "odtwm" ACTION "setOutput" VALUE "odt")
(LABEL "PDF-Datei" TYPE "radio" GROUP "pdf" ACTION "setOutput" VALUE "pdf")
)
EMailOptionen1(
(LABEL "Absenderadresse" TYPE "emailfrom" GROUP "emails")
(LABEL "Feld für Empfängeradresse" TYPE "emailtofieldname" GROUP "emails")
(LABEL "Betreff" TYPE "emailsubject" GROUP "emails")
)
EMailOptionen2(TITLE "E-Mail Nachricht"
(TYPE "emailtext" GROUP "emails")
)
Zielverzeichnis(TITLE "Zielverzeichnis"
(LABEL "Suchen..." TYPE "targetdirpicker" GROUP "einzel")
)
Dateinamensmuster(TITLE "Dateinamensmuster"
(TYPE "filenametemplatechooser" GROUP "einzel")
)
DateinamensmusterMail(TITLE "Dateinamensmuster für den Anhang"
(TYPE "filenametemplatechooser" GROUP "emails")
)
Druckereinstellungen(
(LABEL "Drucker:" TYPE "printersettings" GROUP "drucken")
)
Description(
(TYPE "glue")
(TYPE "description")
)
Buttons(ORIENTATION "horizontal"
(LABEL "Abbrechen" TYPE "button" ACTION "abort")
(TYPE "glue")
(LABEL "Los geht's!" TYPE "button" ACTION "submit")
)
) # Fenster
Regeln(
(ON_ACTION_TYPE "gesamtdok" SHOW_GROUPS("odt" "pdf" "gesamtdok"))
(ON_ACTION_TYPE "gesamtdok" ON_OUTPUT "odt"
USE_PRINTFUNCTIONS ("OOoMailMergeToOdtFile")
SET_DESCRIPTION("Erzeugt das Gesamtdokument als eine ODT-Datei ...")
)
(ON_ACTION_TYPE "gesamtdok" ON_OUTPUT "pdf"
USE_PRINTFUNCTIONS ("MailMergeNewSetFormValue" "PDFGesamtdokument" "PDFGesamtdokumentOutput")
SET_DESCRIPTION("Erzeugt das Gesamtdokument als eine PDF-Datei ...")
)
(ON_ACTION_TYPE "drucken" SHOW_GROUPS("drucken")
USE_PRINTFUNCTIONS ("OOoMailMergeToPrinter")
SET_DESCRIPTION("Druckt den Serienbrief direkt auf einem Drucker aus ...")
)
(ON_ACTION_TYPE "emails" SHOW_GROUPS("emails")
USE_PRINTFUNCTIONS ("MailMergeNewSetFormValue" "MailMergeNewToEMail") IGNORE_DOC_PRINTFUNCTIONS "true"
SET_DESCRIPTION ("Verschickt E-Mails mit einzelnen ODT-Dateien als Anhang ...")
)
(ON_ACTION_TYPE "einzel" SHOW_GROUPS("einzel")
USE_PRINTFUNCTIONS ("MailMergeNewSetFormValue" "MailMergeNewToSingleODT") IGNORE_DOC_PRINTFUNCTIONS "true"
SET_DESCRIPTION("Erzeugt einzelne ODT-Dateien mit konfigurierbaren Namen in einem ...")
)
) # Regeln
) # Seriendruckdialog
) # Dialoge
Im Normalfall sollten an diesem Dialog keine Änderungen seitens der Referate erforderlich sein. In Ausnahmefällen kann es jedoch notwendig sein, bestimmte Voreinstellungen von häufig benötigten Druckszenarion zu ändern.
;Hinweis: Die ähnliche Struktur des Konfigurationsabschnitts für diesen Dialog und anderen Dialog-Abschnitten dient dazu, den Lernaufwand für die Administratoren zu reduzieren. Die real verfügbaren Möglichkeiten der Anpassung beschränken sich jedoch auf die für den jeweiligen Dialog vorgesehenen Funktionalitäten.
=== Der Unterabschnitt Fenster ===
Der Dialog besitzt genau ein Fensterbereich in dem alle Elemente des Dialogs in sog. ''Sections'' aufgeführt werden (wie z.B. die Section mit dem Schlüsselnamen EMailOptionen2). Der Schlüsselname einer Section kann frei vergeben werden und hat auf die Darstellung durch den WollMux keine Auswirkung - er dient nur der besseren Lesbarkeit. Jede Section verwaltet die in ihr enthaltenen Radio-Button-Elemente und ist nur dann sichtbar, wenn mindestens ein Element innerhalb der Section sichtbar ist. Folgende Attribute können direkt auf Sections angewandt werden:
* ''TITLE'': Ist ein Titel gesetzt, so wird die Section mit einem Rahmen versehen und dem Text TITLE als Überschrift. Fehlt TITLE, so entfällt auch der Rahmen und die Überschrift.
* ''ORIENTATION'': Kann "horizontal" oder "vertical" sein und ordnet die Elemente horizontal oder vertikal an (Default ist vertical)
Innerhalb einer Section können folgende Elemente enthalten sein, die über das obligatorische TYPE-Attribut unterschieden werden:
* '''TYPE "radio":''' erzeugt ein Radio-Button mit der Beschriftung von LABEL, der bei Aktivierung die in ACTION beschriebene Aktion ausführt
* '''TYPE "label":''' erzeugt ein Label mit der Beschriftung von LABEL
* '''TYPE "description":''' erzeugt das Beschreibungsfeld, das die entsprechenden Infos über die ausgewählten Druckoptionen anzeigt
* '''TYPE "fromToRadio":''' erzeugt das Radio-Element zur Auswahl des Druckbereichs mit den Beschriftungen LABEL_FROM und LABEL_TO. Wertet bei Aktivierung die Angabe von ACTION aus
* '''TYPE "targetDirPicker":''' erzeugt ein Element zur Auswahl eines Zielverzeichnisses für den Einzeldokumentdruck
* '''TYPE "filenameTemplateChooser":''' erzeugt ein Eingabefeld zur Angabe des Musters für den Ausgabedateinamen mit DB-Feldreferenzen
* '''TYPE "emailFrom":''' erzeugt ein Textfeld zur Eingabe der E-Mail-Absenderadresse mit der Beschriftung LABEL
* '''TYPE "emailToFieldname":''' erzeugt eine Combobox mit der Beschriftung LABEL zur Auswahl des Datenbankfeldes, das den Empfänger beschreibt.
* '''TYPE "emailText":''' erzeugt ein Eingabefeld für E-Mail-Text mit Felder-Referenzen
* '''TYPE "emailSubject":''' erzeugt ein Textfeld zur Auswahl des E-Mail Betreffs
* '''TYPE "printerSettings":''' erzeugt einen Button zur Auswahl / Eigenschaftenbearbeitung von Druckern
* '''TYPE "glue":''' erzeugt einen vertikalen oder horizontalen Abstand (abhängig von der ORIENTATION-Einstellung der Section)
* '''TYPE "button":''' erzeugt einen Button mit der Beschriftung LABEL, der die in ACTION angegebene Aktion ausführt bei Betätigung
Desweitere wertet jedes Element die Angabe von GROUP aus in der eine Sichtbarkeitsgruppe angegeben werden kann. Ist diese Sichtbarkeitsgruppe sichtbar, so wird das Element angezeigt, ansonsten nicht. Enthält ein Element keine GROUP-Angabe so wird es immer angezeigt.
Als Actions für ACTION-Attribute können folgende Werte angegeben werden:
* ''setActionType'': Veranlasst eine Neuauswertung der ON_ACTION-Regeln mit der in VALUE angegebenen Aktion
* ''setOutput'': Veranlasst eine Neuauswertung der ON_OUTPUT-Regeln mit der in VALUE angegebenen Output-Option
* ''selectAll'': setzt den Status "Alle Datensätze sollen ausgedruckt werden"
* ''selectRange'': setzt den Status zum Druck von über einen Bereich angegebenen Datensätzen
* ''abort'': Schließt den Seriendruckdialog (bzw. macht ihn unsichtbar)
* ''submit'': Startet den Seriendruck
=== Der Unterabschnitt Regeln ===
Über die Regeln kann gesteuert werden, welche Elemente des Fensterabschnitts sichtbar sind und welche Druckfunktionen im Falle einer submit-Aktion ausgeführt werden sollen.
Folgende Schlüsselwörter können innerhalb von Regeln verwendet und kombiniert werden:
* ''ON_ACTION "<aktion>"'': Regel trifft zu, wenn zuletzt eine ACTION setActionType mit VALUE gleich <aktion> ausgeführt wurde
* ''ON_OUTPUT "<output>"'': Regel trifft zu, wenn zuletzt eine ACTION setOutput mit VALUE gleich <output> ausgeführt wurde
* ''SHOW_GROUPS (<liste>)'': Setzt alle Sichtbarkeitsgruppen auf unsichtbar ausßer die in <liste> angegebenen, die sichtbar werden
* ''USE_PRINTFUNCTIONS(<liste>)'': Im Fall einer submit-Aktion werden die in <liste> angegebenen Druckfunktionen verwendet. Alle hier angegebenen Druckfunktionen müssen in einem [[#Druckfunktionen|Druckfunktionen]]-Abschnitt definiert sein (ansonsten bleiben die zugehörigen Radio-Buttons ausgegraut)
* ''IGNORE_DOC_PRINTFUNCTIONS "true|false"'': Gibt an, ob Bereits im Dokument gesetzte Druckfunktionen (wie z.B. SachleitendeVerfuegung) beim Seriendruck ignoriert werden oder ausgeführt werden sollen
* ''SET_DESCRIPTION "<text>"'': Zeigt im Feld vom Type description den in <text> angegebenen Inhalt an
= Textfragmente =
Der WollMux unterstützt sog. "Textfragmente". Ein Textfragment ist ein Teil des Inhalts eines Gesamtdokuments. Textfragmente können in eigene Dokumentdateien ausgelagert und über den WollMux zu einem Gesamtdokument zusammengefügt werden. So können Sie Ihre Vorlagen beliebig strukturieren und in flexibel zusammensetzbare Module unterteilen. Das Konzept ist im Artikel [[Textfragmente im WollMux]] detailliert beschrieben.
== Der Abschnitt Textfragmente ==
Die Liste der im WollMux verfügbaren Textfragmente kann in der Konfigurationsdatei durch die Referate gepflegt werden. Dazu gibt es die Abschnitte ''Textfragmente'' mit folgendem Aufbau:
Textfragmente(
(<Fragmentbeschreibung1>)
...
(<FragmentbeschreibungN>)
)
Der Abschnitt Textfragmente darf innerhalb der Konfigurationsdatei mehrfach auftreten. In jedem Textfragmente-Abschnitt können Sie Textfragmente definieren. Der WollMux erkennt die Textfragmente, die in der Gesamtheit aller Textfragment-Abschnitte definiert wurden. Dabei haben Textfragmente die in späteren Textfragment-Abschnitten definiert sind Vorrang vor Textfragmenten, die in früheren Abschnitten definiert sind. Die entsprechende Beschreibung sieht wie folgt aus:
=== <FragmentbeschreibungN> ===
Eine Fragmentbeschreibung besteht aus Schlüssel-Wert-Paaren. Sie hat folgenden Aufbau:
(FRAG_ID "<regEx>" URL "<URL_der_Textfragment-Datei>")
(FRAG_ID "<regEx>" URL ("<url1>" "<url2>" "<urlN>"))
Folgende Werte müssen dabei in jeder Fragmentbeschreibung angegeben werden:
==== FRAG_ID "<regex>" ====
Die FRAG_ID enthält einen Kurzbezeichner, der das Textfragment für die interne Verarbeitung durch den WollMux auszeichnet. Der Bezeichner muss den [[Format_von_WollMux-Config-Dateien#Schl.C3.BCssel|Syntax-Regeln für Schlüssel]] folgen und eindeutig sein. Das bedeutet, dass zwei verschiedene Textfragmente nicht die selbe FRAG_ID besitzen dürfen. Es ist jedoch erlaubt, ein bereits definiertes Textfragment neu zu definieren. Wurde ein Textfragment mehrfach definiert, so gewinnt stets die zuletzt in der Konfigurationsdatei aufgeführte Definition. FRAG_ID unterstützt auch [http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html Reguläre Ausdrücke].
==== URL "<URL_der_Textfragment-Datei>" ====
Die URL beschreibt die Datei des entsprechenden Textfragment-Dokuments. Der Aufbau von URLs ist unter [[Format_von_WollMux-Config-Dateien#URLs|Format_von_WollMux-Config-Dateien]] beschrieben. Relative URLs gelten relativ zu dem Pfad der in [[Konfigurationsdatei_wollmux.conf#Der_DEFAULT_CONTEXT|DEFAULT_CONTEXT]] festgelegt wurde. Sie können aber auch einen absoluten Pfad angeben ohne den DEFAULT_CONTEXT zu verwenden. Werden mehrere URLs angegeben, wird die erste URL verwendet, die sich fehlerfrei auflösen lässt.
Wenn innerhalb des regulären Ausdrucks in der FRAG_ID eine sog. [http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html#cg Capturing-Group] definiert wurde, dann kann diese Gruppe in der URL mit der Notation "$n" referenziert werden, wobei n die Nummer der Gruppe ist. Die Gruppe $0 ist dabei standardmäßig definiert und enthält immer den Inhalt der vollständigen FRAG_ID. So können abhängig von der FRAG_ID verschiedene URLs angesprochen werden.
Beispiel:
Textfragmente(
(FRAG_ID "Abt.*" URL "./vorlagen/fragmente/beispiele/$0.ott")
)
Dieser Ausdruck definiert alle Textfragmente, die mit "Abt" anfangen und leitet sie auf die jeweils entsprechende Datei im Verzeichnis ./vorlagen/fragmente/beispiele/*.ott um. Ein gültiges Textfragment ist daher z.B. "AbtKopf", und die zugehörige Datei wird unter ./vorlagen/fragmente/beispiele/AbtKopf.ott gesucht.
=== Variablen ===
Durch die Verwendung von Variablen lässt sich die Konfigurationsdatei leichter pflegen. Sie können Variablen z.B. verwenden, um häufig verwendete Pfade in den obigen URL-Werten nicht mehrfach pflegen zu müssen.
==== Variablen-Definition mit VAR ====
Eine Variable wird wie folgt definiert:
VAR(NAME "Variablenname" VALUE "Inhalt")
Eine Variable kann an verschiedenen Stellen der Konfigurationsdatei definiert werden. Dazu folgendes Beispiel:
VAR(NAME "Variable1" VALUE "Inhalt") # im Hauptabschnitt am Anfang der Konfigurationsdatei.
Textfragmente(
VAR(NAME "Variable2" VALUE "Inhalt") # innerhalb eines Textfragmente-Abschnitts.
...
)
VAR(NAME "Variable3" VALUE "Inhalt") # oder im Hauptabschnitt irgendwo anders in der Konfigurationsdatei.
Textfragmente(
...
VAR(NAME "Variable4" VALUE "noch ein Inhalt") # oder irgendwo in einem weiteren Textfragmente-Abschnitt
...
)
VAR(NAME "Variable5" VALUE "noch ein Inhalt") # oder im Hauptabschnitt am Ende der Konfigurationsdatei.
Kurzbeschreibung der Elemente:
;NAME: Mit dem Schlüssel "NAME" wird der Name der Variable festgelegt. Die Syntax für den Namen folgt den üblichen Regeln für Bezeichner, d.h. erlaubte Zeichen sind Buchstaben, Ziffern und der Unterstrich, wobei das erste Zeichen keine Ziffer sein darf.
;VALUE: Mit dem Schlüssel "VALUE" wird der Variable ein Inhalt gegeben.
Variablen können an einer späteren Stelle in der Konfigurationsdatei redefiniert werden. Prinzipiell hat immer die letzte Definition Gültigkeit. Beispiel:
VAR(NAME "Foo" VALUE "Inhalt") # Ursprüngliche Definition der Variable Foo
Irgendwelche_Abschnitte(
...
)
Irgendwelche_Abschnitte2(
...
)
VAR(NAME "Foo" VALUE "neuer Inhalt") # Eine spätere Redefinition überschreibt die alte Definition
Variablen können in zwei verschiedenen Verschachtelungsebenen definiert werden: Im Hauptabschnitt der Konfigurationsdatei und in einem Textfragmente-Abschnitt. Eine Definition in einer höheren Ebene überschreibt eine Definition aus einer tieferen Ebene.
VAR(NAME "Foo" VALUE "Inhalt") # Definition irgendwo im Hauptabschnitt der Konfigurationsdatei
# (Verschachtelungsebene 0)
Textfragmente(
VAR(NAME "Foo" VALUE "neuer Inhalt") # Die Redefinition in einem Textfragmente-Abschnitt
# (Verschachtelungsebene 1)
...
)
Variablen selbst können auf andere Variablen verweisen (siehe [[Konfigurationsdatei_wollmux.conf#Variablen_referenzieren|Variablen referenzieren]]). Dazu ein kleines Beispiel:
VAR(NAME "Variable_A" VALUE "Mein Inhalt A")
VAR(NAME "Variable_B" VALUE "${Variable_A} und mein zusätzlicher Inhalt B")
==== Variablen referenzieren ====
Variablen werden innerhalb eines Wertes wie folgt referenziert:
${Variablenname}
Jede Variablen-Referenz beginnt mit einem "$"-Zeichen und ist zwingend in geschweifte Klammern einzuschließen.
Folgendes Beispiel veranschaulicht die Verwendung von Variablen in URL-Werten:
VAR(NAME "Abteilungslaufwerk" VALUE "file:/L:/unsereVorlagen")
Textfragmente(
(FRAG_ID "fragment_a" URL "${Abteilungslaufwerk}/Fragment_a.odt")
(FRAG_ID "fragment_b" URL "${Abteilungslaufwerk}/Fragment_b.odt")
)
Da Variablen in verschiedenen Verschachtelungsebenen (Ebene 0 und Ebene 1) definiert werden können, wird jeweils die nächste aus der Ebene der Referenz sichtbaren Variablen-Definition verwendet. Dazu ein Beispiel:
VAR(NAME "Variable A" VALUE "nieSichtbar") # Erste Definition der "Variable A" (in Ebene 0)
Textfragmente(
VAR(NAME "Variable A" VALUE "bar") # redefiniert "Variable A" in einer höheren Ebene 1
(FRAG_ID "frag1" URL "${Variable A}") # URL --> "bar"
)
Textfragmente(
(FRAG_ID "frag1" URL "${Variable A}") # URL --> "foo"
)
VAR(NAME "Variable A" VALUE "foo") # Letzte gültige (Re)Definition von "Variable A" in Ebene 0
Die Variablenersetzung findet erst bei der Verwendung der Variable statt, nicht bereits zum Zeitpunkt der Variablendefinition.
= Textbausteine =
Das Textbausteinsystem ermöglicht es, in einem aktuell bearbeiteten Dokument Textfragmente interaktiv nach zu laden. Jedes Textfragment kann wiederum weitere Textfragmente automatisch hinzuladen. Ein Textbaustein wird geladen, in dem im Dokument ein Textbausteinbezeichner und evtl. Argumente angegeben werden. Durch eine konfigurierbare Tastenkombination wird ein Ereignis ausgelöst, welches den zuvor eingegebenen Textbausteinbezeichner (+Argumente) erkennt und das damit verknüpfte Textfragment lädt.
Über den Abschnitt "Textbausteine" kann das Textbausteinsystem konfiguriert werden. Es können mehrere Abschnitte dieser Form in der Konfigurationsdatei wollmux.conf vorkommen, wobei die Festlegungen in späteren Textbaustein-Abschnitten immer Vorrang haben vor Festlegungen, die in früheren Textbaustein-Abschnitten getroffen wurden.
Hier ein Beispiel eines Textbausteine-Abschnittes:
Textbausteine(
SEPARATOR "#"
Warnungen(
MSG_TOO_MANY_ARGS "true" #oder ''on'' oder ''1''
)
Kuerzel(
(MATCH(<listeMitRegExStrings>) FRAG_ID '<replacementString>')
(MATCH("NOST", "NSOT") FRAG_ID "TBS_nostalgie")
(MATCH("UNT") FRAG_ID "Unterschrift")
(MATCH("IB") FRAG_ID "internerBriefkopf" )
(MATCH "(NOST)|(NSOT)" FRAG_ID "TBS_nostalgie2")
(MATCH "\$(.+)" FRAG_ID "$1") # Eingabe $Test1 --> FRAG_ID "Test1"
(MATCH "SF(\d{4})" FRAG_ID "SF$1") # Eingabe SF2400 --> FRAG_ID "SF2400"
(MATCH "(BS\d+)" FRAG_ID "TBS_$1") # Eingabe BS10 --> FRAG_ID "TBS_BS10"
(MATCH (...) FRAG_ID "TBS_$1")
)
)
== SEPARATOR <Separator> ==
Über das optionale Attribut SEPARATOR kann ein Separator spezifiziert werden, der für die Abgrenzung der einzelnen Parameter beim Einfügen von Textbausteinen verwendet wird. Die übergebenen Parameter werden automatisch in freie Platzhalter des eingefügten Textbausteins eingetragen. Ist kein SEPARATOR angegeben, so wird "#" als Standardeinstellung verwendet. Beispiel $BB0815#eins#zwei.
Soll ein Platzhalter beim Einfügen nicht ausgefüllt werden, so ist der Bereich zwischen zwei Separatoren an dieser Stelle leer zu lassen (z.B. "$BB0815#eins##drei"). Der zweite Platzhalter würde in diesem Fall nicht ausgefüllt werden und unverändert bleiben.
Soll ein Platzhalter beim Einfügen entfernt werden (also ohne Inhalt), so muss ein Leerzeichen zwischen den beiden Separatoren angegeben werden (z.B. $BB0815#eins# #drei). Der zweite Platzhalter würde in diesem Fall gelöscht werden.
== Warnungen ==
In diesem optionalen Abschnitt kann definiert werden, welche Warnungen des Textbausteinsystems dem Benutzer als Dialoge angezeigt werden sollen.
===MSG_TOO_MANY_ARGS <Argument>===
Mit dem Attribut MSG_TOO_MANY_ARGS kann die Fehlermeldung "Es sind mehr Parameter als Einfügestellen vorhanden" über ''true'', ''on'' oder ''1'' eingeschalten werden. Die Fehlermeldung erscheint dann, wenn mehr Parameter beim Aufruf eines Textbausteins übergeben wurde, als Platzhalter im eingefügten Textbaustein vorhanden sind. Ist das Attribut nicht angegeben oder enthält es nicht true, on oder 1, so wird der Warndialog nicht angezeigt.
== Kuerzel ==
Im Abschnitt Kuerzel kann definiert werden, welche Textbausteinbezeichner der WollMux erkennen soll. Hier findet eine Zuordnung von MATCH auf FRAG_ID statt, die beschreibt, welches Textfragment eingefügt werden soll, wenn ausgehend vom Cursor rückwärts gesucht wird ein MATCH greift. Wird z.B in OOo-Writer $BB0815 eingegeben und mit einem Button/Tastenkombination ''Textbaustein einfügen'' gestartet, dann wird der eingegebene Textbausteinbezeichner mit dem Textbausteinbezeichner im MATCH verglichen. Falls er übereinstimmt wird die dazugehörige FRAG_ID mit der FRAG_ID aus dem Abschnitt Textfragmente verknüpft. In Abschnitt Textfragmente wird die FRAG_ID dann in URLs aufgelöst und der erste Textbaustein der aufgelöst werden kann eingefügt.
=== MATCH(<listeMitRegExStrings> )===
Syntax:
MATCH "<regex>"
MATCH ("<regex1>" "<regex2>" ...)
Mit MATCH wird der Textbausteinbezeichner festgelegt. Über [http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html Reguläre Ausdrücke] können mehrere Textbausteinbezeichner auf einmal behandelt werden.
=== FRAG_ID '<replacementString>' ===
Mit der FRAG_ID wird die [[Konfigurationsdatei_wollmux.conf#FRAG_ID_.22.3Cregex.3E.22|FRAG_ID]] aus dem [[Konfigurationsdatei_wollmux.conf#Der_Abschnitt_Textfragmente|Abschnitt Textfragmente]] verknüpft in der wiederum die [[Konfigurationsdatei_wollmux.conf#URL_.22.3CURL_der_Textfragment-Datei.3E.22|URLs]] aufgeführt werden.
Wenn innerhalb des regulären Ausdrucks von MATCH eine sog. [http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html#cg Capturing-Group] definiert wurde, dann kann diese Gruppe in der FRAG_ID mit der Notation "$n" referenziert werden, wobei n die Nummer der Gruppe ist. Die Gruppe $0 ist dabei standardmäßig definiert und enthält immer den Inhalt des vollständigen MATCH-Ausdrucks. So können abhängig von MATCH verschiedene FRAG_IDs angesprochen werden.
Beispiel:
Textbausteine(
Kuerzel(
(MATCH "Abt.*" FRAG_ID "$0")
)
)
Dieser Ausdruck sorgt dafür, dass alle Strings, die mit "Abt" anfangen als Textbausteinbezeichner betrachtet werden. Um die entsprechenden Textbausteine aufzulösen, wird nach Textfragmenten mit gleichnamigen FRAG_IDs gesucht. Ein gültiger Textbausteinbezeichner ist daher z.B. "AbtKopf", für den nach dem gleichnamigen Textfragment "AbtKopf" gesucht wird.