Révision 3212

tmp/org.txm.groovy.core/src/groovy/org/txm/macro/table/Table2XMLMacro.groovy (revision 3212)
9 9
import java.net.URL
10 10
import org.txm.libs.msoffice.ReadExcel
11 11

  
12
@Field @Option(name="inputFile", usage="CSV File", widget="File", required=false, def="file.xlsx")
12
@Field @Option(name="inputFile", usage="CSV File", widget="File", required=false, def="")
13 13
		File inputFile;
14 14

  
15
@Field @Option(name="outputDirectory", usage="output directory", widget="Folder", required=false, def="directory")
15
@Field @Option(name="outputDirectory", usage="output directory", widget="Folder", required=false, def="")
16 16
		File outputDirectory;
17 17

  
18 18
@Field @Option(name="textsSeparator", usage="Texts", widget="Separator", required=false, def="Texts")
......
23 23

  
24 24
@Field @Option(name="textSelector", usage="<text> lines selector format is column=value", widget="String", required=false, def="Type de notice=Notice sommaire")
25 25
		def textSelector;
26
		
27
@Field @Option(name="textOrderColumn", usage="The column used to fill the 'text-order' text metadata", widget="String", required=false, def="")
28
		def textOrderColumn
26 29

  
27
@Field @Option(name="textMetadataColumnList", usage="<text> metadata columns", widget="String", required=false, def="Identifiant de la notice,Date de diffusion,Durée,Genre,Identifiant Matériels (info.)")
30
@Field @Option(name="textMetadataColumnList", usage="<text> metadata columns", widget="String", required=false, def="Identifiant de la notice,Nom fichier segmenté (info),Lien notice principale,Date de diffusion,Type de date,Notes du titre ,Genre,Durée,Langue VO / VE ,Nature de production ,Producteurs (Aff.),Thématique")
28 31
		def textMetadataColumnList;
29 32

  
30
@Field @Option(name="textContentColumnList", usage="<text> textual content columns", widget="String", required=false, def="Titre propre,Résumé,Descripteurs (Aff. Lig.),Descripteurs (Aff. Col.),Séquences")
33
@Field @Option(name="textContentColumnList", usage="<text> textual content columns", widget="String", required=false, def="")
31 34
		def textContentColumnList;
32

  
35
		
33 36
@Field @Option(name="structuresSeparator", usage="Structures", widget="Separator", required=false, def="Structures")
34 37
		def structuresSeparator
35 38

  
......
45 48
@Field @Option(name="structureMetadataColumnList", usage="structure metadata columns", widget="String", required=false, def="Identifiant de la notice,Date de diffusion,Durée,Genre,Identifiant Matériels (info.)")
46 49
		def structureMetadataColumnList;
47 50

  
48
@Field @Option(name="structureContentColumnList", usage="structure textual content columns", widget="String", required=false, def="Titre propre,Résumé,Descripteurs (Aff. Lig.),Descripteurs (Aff. Col.),Séquences")
51
@Field @Option(name="structureContentColumnList", usage="structure textual content columns", widget="String", required=false, def="Titre propre,Résumé,Descripteurs (Aff. Lig.),Générique (Aff. Lig.) ,Séquences")
49 52
		def structureContentColumnList;
50 53

  
51 54
@Field @Option(name="typesSeparator", usage="Columns types", widget="Separator", required=false, def="Columns types")
52 55
		def typesSeparator
53 56

  
54
@Field @Option(name="dateColumnTypeList", usage="metadata columns of type=Date", widget="String", required=false, def="")
57
@Field @Option(name="dateColumnTypeList", usage="metadata columns of type=Date", widget="String", required=false, def="Date de diffusion")
55 58
		def dateColumnTypeList
56 59

  
57
@Field @Option(name="prefixesColumnTypeList", usage="metadata columns of type=Prefixes", widget="String", required=false, def="")
60
@Field @Option(name="prefixesColumnTypeList", usage="metadata columns of type=Prefixes", widget="String", required=false, def="Descripteurs (Aff. Lig.),Générique (Aff. Lig.) ")
58 61
		def prefixesColumnTypeList
59 62

  
60
@Field @Option(name="listColumnTypeList", usage="metadata columns of type=List semi-colon separated", widget="String", required=false, def="")
63
@Field @Option(name="listColumnTypeList", usage="metadata columns of type=List semi-colon separated", widget="String", required=false, def="Résumé,Séquences")
61 64
		def listColumnTypeList
62

  
65
		
63 66
@Field @Option(name="debug", usage="Show devug messages", widget="Boolean", required=false, def="false")
64 67
		def debug
65 68
//@Field @Option(name="structureOrderColumn", usage="structure column coding structure order", widget="String", required=false, def="Titre propre,Résumé,Descripteurs (Aff. Lig.),Descripteurs (Aff. Col.),Séquences")
......
219 222
		writer.writeStartElement("text")
220 223
		writer.writeAttribute("id", id)
221 224
		
225
		textOrderWritten = false
226
		if (textOrderColumn != null && textOrderColumn.length() > 0 && textMetadataColumnList.contains(textOrderColumn)) {
227
			writer.writeAttribute("text-order", text.get(textOrderColumn))
228
			textOrderWritten = true
229
		}
230
		
222 231
		for (String att : textMetadataColumnList) {
223 232
			if (att in dateColumnTypeList) {
224
				writeMetadataDate(text, att, writer)
233
				String tri = writeMetadataDate(text, att, writer)
234
				if (!textOrderWritten) {
235
					writer.writeAttribute("text-order", tri)
236
					textOrderWritten = true;
237
				}
225 238
			} else {
226 239
				writer.writeAttribute(AsciiUtils.buildAttributeId(att), text.get(att)) // struct
227 240
			}
......
320 333

  
321 334
def writeListTextContent(def record, def att, def writer) {
322 335
	
336
	writer.writeStartElement("head")
337
	writer.writeStartElement("hi")
338
	writer.writeCharacters(att)
339
	writer.writeEndElement() // hi
340
	writer.writeEndElement() // head
341
	
323 342
	def value = record.get(att).replaceAll(" ++", " ")
324 343
	if (value.length() <= 1) return
325 344
	
......
353 372

  
354 373
def writeTextContent(def record, def att, def writer) {
355 374
	
356
	def value = record.get(att).replaceAll(" ++", " ")
357
	if (value.length() == 0) return
358
	
359 375
	writer.writeStartElement("head")
360 376
	writer.writeStartElement("hi")
361 377
	writer.writeCharacters(att)
362 378
	writer.writeEndElement() // hi
363 379
	writer.writeEndElement() // head
364 380
	
381
	def value = record.get(att).replaceAll(" ++", " ")
382
	if (value.length() == 0) return
383
	
365 384
	writer.writeStartElement(AsciiUtils.buildAttributeId(att));
366 385
	writer.writeAttribute("type", att.trim())
367 386
	if (record.get(textIDColumn) != null) {
......
375 394
}
376 395

  
377 396
def writePrefixTextContent(def record, def att, def writer) {
397
	
398
	writer.writeStartElement("head")
399
	writer.writeStartElement("hi")
400
	writer.writeCharacters(att)
401
	writer.writeEndElement() // hi
402
	writer.writeEndElement() // head
403
	
378 404
	def value = record.get(att).replaceAll(" ++", " ")
379 405
	if (value.length() <= 1) return
380 406
	
......
416 442
	writer.writeAttribute(att_normalized+"-joursemaine", new java.text.SimpleDateFormat('EEEE').format(Date.parse("dd/MM/yyyy", value)))
417 443
	writer.writeAttribute(att_normalized+"-mois", matches[0][2])
418 444
	writer.writeAttribute(att_normalized+"-annee", matches[0][3])
419
	writer.writeAttribute(att_normalized+"-tri", matches[0][3]+"-"+matches[0][2]+"-"+matches[0][1])
445
	String tri = matches[0][3]+"-"+matches[0][2]+"-"+matches[0][1]
446
	writer.writeAttribute(att_normalized+"-tri", tri)
447
	
448
	return tri
420 449
}
421 450

  
422 451
/*

Formats disponibles : Unified diff