Révision 1110

tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/xmlLoader.groovy (revision 1110)
51 51
String userDir = System.getProperty("user.home");
52 52

  
53 53
def MONITOR;
54
boolean debug = org.txm.utils.logger.Log.isPrintingErrors();
55
BaseParameters params;
56
try {params = paramsBinding;MONITOR=monitor} catch (Exception)
57
{	println "DEV MODE";//exception means we debug
58
	debug = true
59
	params = new BaseParameters(new File(userDir, "xml/bvh/bugnames/import.xml"))
60
	params.load()
61
	if (!org.txm.Toolbox.isInitialized()) {
54
Project project;
62 55

  
63
		TokenizerClasses.loadFromNode(params.getTokenizerElement(params.getCorpusElement()));
64
		Toolbox.setParam(Toolbox.INSTALL_DIR,new File("/usr/lib/TXM"));
65
		//Toolbox.setParam(Toolbox.INSTALL_DIR,new File("C:\\Program Files\\TXM"));//For Windows
66
		Toolbox.setParam(Toolbox.METADATA_ENCODING, "UTF-8");
67
		Toolbox.setParam(Toolbox.METADATA_COLSEPARATOR, ",");
68
		Toolbox.setParam(Toolbox.METADATA_TXTSEPARATOR, "\"");
69
		//Toolbox.setParam(Toolbox.TREETAGGER_MODELS_PATH,new File("C:\\Program Files\\treetagger\\models"));//for Windows
70
		Toolbox.setParam(Toolbox.USER_TXM_HOME, new File(System.getProperty("user.home"), "TXM"));
71
	}
72
}
73
if (params == null) { println "no parameters. Aborting"; return; }
56
try {project=projectBinding;MONITOR=monitor} catch (Exception)
57
{	}
58
if (project == null) { println "no project set. Aborting"; return; }
74 59

  
75
String corpusname = params.getCorpusName();
76
Element corpusElem = params.corpora.get(corpusname);
77
String basename = params.name;
78
String rootDir = params.rootDir;
79
String lang = corpusElem.getAttribute("lang");
60
String corpusname = project.getName();
61
String basename = corpusname
62
String rootDir = project.getSrcdir();
63
String lang = project.getLang()
80 64
String model = lang
81
String encoding = corpusElem.getAttribute("encoding");
82
boolean annotate = "true" == corpusElem.getAttribute("annotate");
83
String xsl = params.getXsltElement(corpusElem).getAttribute("xsl")
84
def xslParams = params.getXsltParams(corpusElem);
85
int wordsPerPage = params.getWordsPerPage("default")
86
String page_element = params.getPageElement("default")
87
boolean build_edition = params.getDoEdition("default")
65
String encoding = project.getEncoding()
66
boolean annotate = project.getAnnotate()
67
String xsl = project.getFrontXSL();
68
def xslParams = project.getXsltParameters();
69
int wordsPerPage = project.getEditionDefinition("default").getWordsPerPage()
70
String page_element = project.getEditionDefinition("default").getPageElement()
71
boolean build_edition = project.getEditionDefinition("default").getBuildEdition()
72
boolean skipDoTokenizeStep = project.getDoTokenizerStep()
88 73

  
89 74
File srcDir = new File(rootDir);
90
File binDir = new File(Toolbox.getTxmHomePath(), "corpora/"+basename);
91
binDir.deleteDir();
75
File binDir = project.getProjectDirectory()
92 76
binDir.mkdirs();
93 77
if (!binDir.exists()) {
94 78
	println "Could not create binDir "+binDir
......
200 184
println "-- IMPORTER - Reading source files"
201 185
def imp = new importer();
202 186
imp.doValidation(true) // change this to not validate xml
203
boolean skipDoTokenizeStep = params.getSkipTokenization()
187

  
204 188
imp.doTokenize(!skipDoTokenizeStep) // change this, to not tokenize xml
205 189
imp.setStopIfMalformed(stopIfMalformed);
206 190
if (!imp.run( srcDir, binDir, txmDir, basename, ignoredElements, lang)) {
......
252 236
c.setOptions(textSortAttribute, normalizeMetadata);
253 237
c.setAnnotationSuccess(annotationSuccess)
254 238
c.setLang(lang);
255
if (!c.run(binDir, txmDir, corpusname, null, srcfiles, metadatas)) {
239
if (!c.run(project, binDir, txmDir, corpusname, null, srcfiles, metadatas)) {
256 240
	println "import process stopped";
257 241
	return;
258 242
}
......
283 267
		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang);
284 268
		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang);
285 269

  
286
		Element text = params.addText(corpusElem, txtname, txmFile);
270
		Text t = new Text(project);
271
		t.setName(txtname);
272
		t.setSourceFile(txmFile)
273
		t.setTXMFile(txmFile)
287 274

  
288 275
		def ed = new pager(txmFile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, wordsPerPage, basename, page_element);
289
		Element edition = params.addEdition(text, "default", outdir.getAbsolutePath(), "html");
276
		Edition edition = new Edition(t);
277
		edition.setName("default");
278
		edition.setIndex(outdir.getAbsolutePath());
290 279

  
291 280
		for (i = 0 ; i < ed.getPageFiles().size();) {
292 281
			File f = ed.getPageFiles().get(i);
293 282
			String wordid = ed.getIdx().get(i);
294
			params.addPage(edition, ""+(++i), wordid);
283
			edition.addPage(""+(++i), wordid);
295 284
		}
296 285
	}
297 286
}
298 287

  
299 288
if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
300 289
if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
301
File paramFile = new File(binDir, "import.xml");
302
DomUtils.save(params.root.getOwnerDocument(), paramFile);readyToLoad = true;
290

  
291
readyToLoad = project.save();
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xml/compiler.groovy (revision 1110)
40 40
import org.txm.scripts.*
41 41
import org.txm.importer.scripts.xmltxm.*
42 42
import org.txm.utils.treetagger.TreeTagger
43

  
43
import org.txm.objects.*
44 44
import javax.xml.stream.*
45 45

  
46 46
import java.net.URL
......
51 51
import java.util.HashSet
52 52
import org.txm.metadatas.*
53 53
import org.txm.utils.io.FileCopy
54
import org.txm.searchengine.cqp.corpus.*
54 55

  
55 56
/**
56 57
 * The "compiler" Class of the XML/w import module.
......
95 96
	/** The base. */
96 97
	String base="";
97 98

  
98
	/** The project. */
99
	String project="";
100

  
101 99
	/** The text attributes. */
102 100
	String[] textAttributes = null;
103 101

  
......
127 125
	 * @param base the base
128 126
	 * @param project the project
129 127
	 */
130
	public compiler(URL url, String text, String base, String project)
128
	public compiler(URL url, String text, String base, String projectName)
131 129
	{
132 130
		this.text = text
133 131
		this.base = base;
134
		this.project = project;
135 132
		this.textAttributes = textAttributes;
136 133
		try {
137 134
			this.url = url;
......
212 209
	 * @param fileName the file name
213 210
	 * @return true, if successful
214 211
	 */
215
	public boolean transfomFileCqp(File cqpFile, HashMap<String, String> textmetadata)
212
	public boolean transfomFileCqp(Project project, File cqpFile, HashMap<String, String> textmetadata)
216 213
	{
217 214
		if (!createOutput(cqpFile))
218 215
			return false;
......
251 248
							case "text":
252 249
								sattrsListener.startElement(localname);
253 250
								foundtext = true;
254
								output.write("<text id=\""+text+"\" base=\""+base+"\"" + " project=\""+project+"\"");
251
								output.write("<text id=\""+text+"\" base=\""+base+"\"" + " project=\""+project.getName()+"\"");
255 252
							//							for (String name : textmetadata.keySet())
256 253
							//								output.write(" "+name+"=\""+textmetadata.get(name)+"\"")
257 254
								for (int i = 0 ; i < parser.getAttributeCount() ; i++) {
......
439 436
	 * @param srcfiles the srcfiles
440 437
	 * @return true, if successful
441 438
	 */
442
	public boolean run(File binDir, File txmDir, String corpusname, String[] textAttributes, def srcfiles, Metadatas metadatas)
439
	public boolean run(Project project, File binDir, File txmDir, String corpusname, String[] textAttributes, def srcfiles, Metadatas metadatas)
443 440
	{
444 441
		sattrsListener = null; // reset SAttribute Listener for each new import
445 442
		String rootDir = binDir.getAbsolutePath();
......
447 444
		anavalues = [:] // reset
448 445
		
449 446
		if (!(CwbEncode.isExecutableAvailable() && CwbMakeAll.isExecutableAvailable())) {
450
			println ("Error: CWB executables not well set.")
447
			println ("Error: CWB executables rights are not well setted.")
451 448
			return false;
452 449
		}
453
		if (!binDir.exists()) {
454
			println ("binary directory does not exists: "+binDir)
455
			return false;
450
		
451
		CorpusBuild corpus = project.getCorpusBuild(project.getName());
452
		if (corpus != null) {
453
			//println "CLEAN PREVIOUS CORPUS"
454
			corpus.delete(); // remove old files
456 455
		}
456
		
457
		// make new one
458
		corpus = new MainCorpus(project);
459
		corpus.setID(project.getName());
460
		corpus.setName(project.getName());
461
		corpus.setDescription("Built with the XML/w import module");
462
		
463
		File cqpFile = new File(binDir,"cqp/"+corpusname+".cqp");
464
		new File(binDir,"cqp").mkdirs()
465
		new File(binDir,"data").mkdirs()
466
		new File(binDir,"registry").mkdirs()
457 467

  
458
		File cqpFile = new File(binDir, "cqp/"+corpusname+".cqp")
459
		new File(binDir, "cqp").deleteDir()
460
		new File(binDir, "cqp").mkdir()
461
		new File(binDir, "data").deleteDir()
462
		new File(binDir, "data").mkdir()
463
		new File(binDir, "registry").mkdir()
464

  
465 468
		String textid = ""
466 469
		int counttext = 0
467
		List<File> files = txmDir.listFiles()
470
		List<File> files = txmDir.listFiles(new FileFilter() {
471
			public boolean accept(File f) {
472
				return !f.isDirectory() && !f.isHidden() && f.getName().endsWith(".xml");
473
			}
474
		});
468 475
		//1- Transform into CQP file
469 476
		def builder = null
470 477

  
......
522 529
				String txtname = f.getName().substring(0,f.getName().length()-4)
523 530
				builder = new compiler(f.toURI().toURL(), txtname, corpusname, "default")
524 531
				builder.setLang(lang);
525
				if (!builder.transfomFileCqp(cqpFile, textmetadata)) {
532
				if (!builder.transfomFileCqp(project, cqpFile, textmetadata)) {
526 533
					println("Failed to compile "+f)
527 534
				}
528 535
			}
......
689 696
			cwbMa.run(corpusname, outDir + "/registry");
690 697
		} catch (Exception ex) {System.out.println(ex); return false;}
691 698

  
699
		println "CORPUS="+corpus
700
		
692 701
		return true;
693 702
	}
694 703

  
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/doc/docLoader.groovy (revision 1110)
52 52
String userDir = System.getProperty("user.home");
53 53

  
54 54
def MONITOR;
55
boolean debug = org.txm.utils.logger.Log.isPrintingErrors();
56
BaseParameters params;
57
try {params = paramsBinding;MONITOR=monitor} catch (Exception)
58
{	println "DEV MODE";//exception means we debug
59
	debug = true
60
	params = new BaseParameters(new File(userDir, "xml/doc/import.xml"))
61
	params.load()
62
	if (!org.txm.Toolbox.isInitialized()) {
63
		TokenizerClasses.loadFromNode(params.getTokenizerElement(params.getCorpusElement()));
64
		Toolbox.setParam(Toolbox.INSTALL_DIR,new File("/usr/lib/TXM"));
65
		//Toolbox.setParam(Toolbox.INSTALL_DIR,new File("C:\\Program Files\\TXM"));//For Windows
66
		Toolbox.setParam(Toolbox.METADATA_ENCODING, "UTF-8");
67
		Toolbox.setParam(Toolbox.METADATA_COLSEPARATOR, ",");
68
		Toolbox.setParam(Toolbox.METADATA_TXTSEPARATOR, "\"");
69
		//Toolbox.setParam(Toolbox.TREETAGGER_MODELS_PATH,new File("C:\\Program Files\\treetagger\\models"));//for Windows
70
		Toolbox.setParam(Toolbox.USER_TXM_HOME, new File(System.getProperty("user.home"), "TXM"));
71
	}
72
}
73
if (params == null) { println "no parameters. Aborting"; return; }
55
Project project;
74 56

  
75
String corpusname = params.getCorpusName();
76
Element corpusElem = params.corpora.get(corpusname);
77
String basename = params.name;
78
String rootDir = params.rootDir;
79
String lang = corpusElem.getAttribute("lang");
57
try {project=projectBinding;MONITOR=monitor} catch (Exception)
58
{	}
59
if (project == null) { println "no project set. Aborting"; return; }
60

  
61
String corpusname = project.getName();
62
String basename = corpusname
63
String rootDir = project.getSrcdir();
64
String lang = project.getLang()
80 65
String model = lang
81
boolean annotate = "true" == corpusElem.getAttribute("annotate");
82
int wordsPerPage = params.getWordsPerPage("default")
83
boolean build_edition = params.getDoEdition("default")
66
String encoding = project.getEncoding()
67
boolean annotate = project.getAnnotate()
68
String xsl = project.getFrontXSL();
69
def xslParams = project.getXsltParameters();
70
int wordsPerPage = project.getEditionDefinition("default").getWordsPerPage()
71
String page_element = project.getEditionDefinition("default").getPageElement()
72
boolean build_edition = project.getEditionDefinition("default").getBuildEdition()
84 73

  
85 74
File srcDir = new File(rootDir);
86
File binDir = new File(Toolbox.getTxmHomePath(), "corpora/"+basename);
87
binDir.deleteDir();
75
File binDir = project.getProjectDirectory();
88 76
binDir.mkdirs();
89 77
if (!binDir.exists()) {
90 78
	println "Could not create binDir "+binDir
......
128 116
if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
129 117
if (MONITOR != null) MONITOR.worked(20, "CREATING TEI FILES")
130 118
println "-- CONVERTER - Converting source files"
131
File xsldir = new File(Toolbox.getPreference(TBXPreferences.INSTALL_DIR), "redist/xsl")
119
File xsldir = new File(Toolbox.getTxmHomePath(), "xsl")
132 120
if (!DocumentToTei.processFiles(srcfiles, txmDir, xsldir)) {
133 121
	println "Abord import"
134 122
	return;
......
185 173

  
186 174
// filtering
187 175
println "Filtering XML files with xpaths: [//tei:term]"
188
def xpaths = params.getExcludeXpaths()
189
if (xpaths == null) xpaths = ["//tei:term"]
190
else xpaths << "//tei:term"
176
def xpaths = ["//tei:term"]
191 177

  
192 178
if (xpaths != null) {
193 179
	println "Filtering XML files with xpaths: $xpaths"
......
285 271
c.setOptions(textSortAttribute, normalizeMetadata);
286 272
c.setAnnotationSuccess(annotationSuccess)
287 273
c.setLang(lang);
288
if (!c.run(binDir, txmDir, corpusname, null, srcfiles, metadatas)) {
274
if (!c.run(project, binDir, txmDir, corpusname, null, srcfiles, metadatas)) {
289 275
	println "import process stopped";
290 276
	return;
291 277
}
......
318 304
		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang);
319 305
		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang);
320 306

  
321
		Element text = params.addText(corpusElem, txtname, txmFile);
307
		Text t = new Text(project);
308
		t.setName(txtname);
309
		t.setSourceFile(txmFile)
310
		t.setTXMFile(txmFile)
322 311

  
323 312
		def ed = new pager(txmFile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, wordsPerPage, basename, "pb");
324
		Element edition = params.addEdition(text, "default", outdir.getAbsolutePath(), "html");
325

  
313
		Edition edition = new Edition(t);
314
		edition.setName("default");
315
		edition.setIndex(outdir.getAbsolutePath());
326 316
		for (i = 0 ; i < ed.getPageFiles().size();) {
327 317
			File f = ed.getPageFiles().get(i);
328 318
			String wordid = ed.getIdx().get(i);
329
			params.addPage(edition, ""+(++i), wordid);
319
			edition.addPage(""+(++i), wordid);
330 320
		}
331 321
	}
332 322

  
......
362 352

  
363 353
if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
364 354
if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
365
File paramFile = new File(binDir, "import.xml");
366
DomUtils.save(params.root.getOwnerDocument(), paramFile);readyToLoad = true;
355

  
356
readyToLoad = project.save();
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/doc/pager.groovy (revision 1110)
2 2
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
3 3
// Lyon 2, University of Franche-Comté, University of Nice
4 4
// Sophia Antipolis, University of Paris 3.
5
// 
5
//
6 6
// The TXM platform is free software: you can redistribute it
7 7
// and/or modify it under the terms of the GNU General Public
8 8
// License as published by the Free Software Foundation,
9 9
// either version 2 of the License, or (at your option) any
10 10
// later version.
11
// 
11
//
12 12
// The TXM platform is distributed in the hope that it will be
13 13
// useful, but WITHOUT ANY WARRANTY; without even the implied
14 14
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 15
// PURPOSE. See the GNU General Public License for more
16 16
// details.
17
// 
17
//
18 18
// You should have received a copy of the GNU General
19 19
// Public License along with the TXM platform. If not, see
20 20
// http://www.gnu.org/licenses.
......
108 108

  
109 109
	/** The multiwriter. */
110 110
	OutputStreamWriter multiwriter = null;
111
	
111

  
112 112
	/** The pagedWriter. */
113 113
	StaxStackWriter pagedWriter = null;
114 114

  
......
264 264
	 */
265 265
	void process() {
266 266
		try {
267
		String localname = "";
268
		String figurerend = ""
269
		boolean unordered = false;
270
		createNextOutput();
271
		
272
		gotoText();
273
		for (int event = parser.next(); event != XMLStreamConstants.END_DOCUMENT; event = parser.next()) {
274
			switch (event) {
275
				case XMLStreamConstants.START_ELEMENT:
276
					localname = parser.getLocalName();
277
					
278
					if (localname == editionPage) {
279
						createNextOutput();
280
						wordcount=0;
281
						if (parser.getAttributeValue(null,"n") != null) {
282
							pagedWriter.writeStartElement("p", ["style":"color:red", "align":"center"])
283
							pagedWriter.writeCharacters("- "+parser.getAttributeValue(null,"n")+" -")
284
							pagedWriter.writeEndElement() // p
267
			String localname = "";
268
			String figurerend = ""
269
			boolean unordered = false;
270
			createNextOutput();
271

  
272
			gotoText();
273
			for (int event = parser.next(); event != XMLStreamConstants.END_DOCUMENT; event = parser.next()) {
274
				switch (event) {
275
					case XMLStreamConstants.START_ELEMENT:
276
						localname = parser.getLocalName();
277

  
278
						if (localname == editionPage) {
279
							createNextOutput();
280
							wordcount=0;
281
							if (parser.getAttributeValue(null,"n") != null) {
282
								pagedWriter.writeStartElement("p", ["style":"color:red", "align":"center"])
283
								pagedWriter.writeCharacters("- "+parser.getAttributeValue(null,"n")+" -")
284
								pagedWriter.writeEndElement() // p
285
							}
285 286
						}
286
					}
287
					
288
					switch (localname) {
289
						case "textunit":
290
							if (parser.getAttributeValue(null,"id") != null) {
291
								pagedWriter.writeStartElement("h3")
292
								pagedWriter.writeCharacters(parser.getAttributeValue(null,"id"))
293
								pagedWriter.writeEndElement() // h3
294
							}
295
							pagedWriter.writeStartElement("table")
296
							for (int i = 0 ; i < parser.getAttributeCount() ; i++) {
287

  
288
						switch (localname) {
289
							case "textunit":
290
								if (parser.getAttributeValue(null,"id") != null) {
291
									pagedWriter.writeStartElement("h3")
292
									pagedWriter.writeCharacters(parser.getAttributeValue(null,"id"))
293
									pagedWriter.writeEndElement() // h3
294
								}
295
								pagedWriter.writeStartElement("table")
296
								for (int i = 0 ; i < parser.getAttributeCount() ; i++) {
297
									pagedWriter.writeStartElement("tr")
298
									pagedWriter.writeStartElement("td")
299
									pagedWriter.writeCharacters(parser.getAttributeLocalName(i))
300
									pagedWriter.writeEndElement() // td
301
									pagedWriter.writeStartElement("td")
302
									pagedWriter.writeCharacters(parser.getAttributeValue(i))
303
									pagedWriter.writeEndElement() // td
304
									pagedWriter.writeEndElement() // tr
305
								}
306
								pagedWriter.writeEndElement() // table
307
								pagedWriter.writeEmptyElement("br")
308
								break;
309
							case "head":
310
								String rend = parser.getAttributeValue(null, "rend")
311
								if (rend == null) rend = "normal"
312
								pagedWriter.writeStartElement("h2", ["class":rend])
313
								break;
314
							case "figure":
315
								figurerend = parser.getAttributeValue(null, "rend")
316
								break;
317
							case "graphic":
318
								String url = parser.getAttributeValue(null, "url")
319
								if (url.startsWith("..//")) url = url.substring(4);
320
								else if (url.startsWith("../")) url = url.substring(3);
321

  
322
								if (url != null) {
323
									pagedWriter.writeStartElement("div")
324
									pagedWriter.writeEmptyElement("img", ["class":figurerend, "src":url])
325
									pagedWriter.writeEndElement() // div
326
								}
327
								figurerend = "";
328
								break;
329
							case "lg":
330
							case "p":
331
							case "q":
332
								String rend = parser.getAttributeValue(null, "rend")
333
								if (rend == null) rend = "normal"
334
								pagedWriter.writeStartElement("p", ["class":rend])
335
								break;
336
							//case "pb":
337
							case "table":
338
								pagedWriter.writeStartElement("table", ["class":parser.getAttributeValue(null, "rend")])
339
								break;
340
							case "row":
297 341
								pagedWriter.writeStartElement("tr")
342
								break;
343
							case "cell":
298 344
								pagedWriter.writeStartElement("td")
299
								pagedWriter.writeCharacters(parser.getAttributeLocalName(i))
300
								pagedWriter.writeEndElement() // td
301
								pagedWriter.writeStartElement("td")
302
								pagedWriter.writeCharacters(parser.getAttributeValue(i))
303
								pagedWriter.writeEndElement() // td
304
								pagedWriter.writeEndElement() // tr
305
							}
306
							pagedWriter.writeEndElement() // table
307
							pagedWriter.writeEmptyElement("br")
308
							break;
309
						case "head":
310
							String rend = parser.getAttributeValue(null, "rend")
311
							if (rend == null) rend = "normal"
312
							pagedWriter.writeStartElement("h2", ["class":rend])
313
							break;
314
						case "figure":
315
							figurerend = parser.getAttributeValue(null, "rend")
316
							break;
317
						case "graphic":
318
							String url = parser.getAttributeValue(null, "url")
319
							if (url.startsWith("..//")) url = url.substring(4);
320
							else if (url.startsWith("../")) url = url.substring(3);
345
								break;
346
							case "lb":
347
							case "br":
348
								pagedWriter.writeEmptyElement("br")
349
								break;
350
							case "list":
351
								String type = parser.getAttributeValue(null,"type");
352
								if ("unordered" == type) {
353
									unordered = true;
354
									pagedWriter.writeStartElement("ul")
355
								} else {
356
									unordered = false
357
									pagedWriter.writeStartElement("ol")
358
								}
359
								break
360
							case "item":
361
								pagedWriter.writeStartElement("li")
362
								break;
363
							case "hi":
364
								pagedWriter.writeStartElement("b")
365
								break;
366
							case "emph":
367
								pagedWriter.writeStartElement("i")
368
								break;
369
							case "w":
370
								wordid = parser.getAttributeValue(null,"id");
321 371

  
322
							if (url != null) { 
323
								pagedWriter.writeStartElement("div")
324
								pagedWriter.writeEmptyElement("img", ["class":figurerend, "src":url])
325
								pagedWriter.writeEndElement() // div
326
							}
327
							figurerend = "";
328
							break;
329
						case "lg":
330
						case "p":
331
						case "q":
332
							String rend = parser.getAttributeValue(null, "rend")
333
							if (rend == null) rend = "normal"
334
							pagedWriter.writeStartElement("p", ["class":rend])
335
							break;
336
						//case "pb":
337
						case "table":
338
							pagedWriter.writeStartElement("table", ["class":parser.getAttributeValue(null, "rend")])
339
							break;
340
						case "row":
341
							pagedWriter.writeStartElement("tr")
342
							break;
343
						case "cell":
344
							pagedWriter.writeStartElement("td")
345
							break;
346
						case "lb":
347
						case "br":
348
							pagedWriter.writeEmptyElement("br")
349
							break;
350
						case "w":
351
							wordid = parser.getAttributeValue(null,"id");
372
								if (firstWord) {
373
									firstWord = false;
374
									this.idxstart.add(wordid);
375
								}
376
								wordcount++;
352 377

  
353
							if (firstWord) {
354
								firstWord = false;
355
								this.idxstart.add(wordid);
356
							}
357
							wordcount++;
378
								break;
379
							case "ana":
380
								flaginterp=true;
381
								interpvalue+=" "+parser.getAttributeValue(null,"type").substring(1)+":"
382
								break;
358 383

  
359
							break;
360
						case "list":
361
							String type = parser.getAttributeValue(null,"type");
362
							if ("unordered" == type) {
363
								unordered = true;
364
								pagedWriter.writeStartElement("ul")
365
							} else {
366
								unordered = false
367
								pagedWriter.writeStartElement("ol")
368
							}
369
							break
370
						case "item":
371
							pagedWriter.writeStartElement("li")
372
							break;
373
						case "hi":
374
							pagedWriter.writeStartElement("b")
375
							break;
376
						case "emph":
377
							pagedWriter.writeStartElement("i")
378
							break;
379
						case "ana":
380
							flaginterp=true;
381
							interpvalue+=" "+parser.getAttributeValue(null,"type").substring(1)+":"
382
							break;
384
							case "form":
385
								wordvalue="";
386
								interpvalue ="";
387
								flagform=true;
388
						}
389
						break;
390
					case XMLStreamConstants.END_ELEMENT:
391
						localname = parser.getLocalName();
392
						switch(localname)
393
						{
394
							case "head":
395
								pagedWriter.writeEndElement(); // h2
396
								pagedWriter.writeCharacters("\t")
397
								break;
398
							case "lg":
399
							case "p":
400
							case "q":
401
								pagedWriter.writeEndElement(); // p
402
								pagedWriter.writeCharacters("\t")
403
								if (wordcount >= wordmax) {
404
									createNextOutput();
405
								}
406
								break;
407
							case "list":
408
								pagedWriter.writeEndElement(); // ul or ol
409
								pagedWriter.writeCharacters("\t")
410
								break
411
							case "item":
412
								pagedWriter.writeEndElement(); // li
413
								pagedWriter.writeCharacters("\t")
414
								break;
415
							case "hi":
416
								pagedWriter.writeEndElement(); // b
417
								break;
418
							case "emph":
419
								pagedWriter.writeEndElement(); // i
420
								break;
421
							case "table":
422
								pagedWriter.writeEndElement(); // table
423
								pagedWriter.writeCharacters("\t")
424
								break;
425
							case "row":
426
								pagedWriter.writeEndElement(); // tr
427
								pagedWriter.writeCharacters("\t")
428
								break;
429
							case "cell":
430
								pagedWriter.writeEndElement(); // td
431
								break;
432
							case "form":
433
								flagform = false
434
								break;
435
							case "ana":
436
								flaginterp = false
437
								break;
438
							case "w":
439
								int l = lastword.length();
440
								String endOfLastWord = "";
441
								if (l > 0)
442
									endOfLastWord = lastword.subSequence(l-1, l);
383 443

  
384
						case "form":
385
							wordvalue="";
386
							interpvalue ="";
387
							flagform=true;
388
					}
389
					break;
390
				case XMLStreamConstants.END_ELEMENT:
391
					localname = parser.getLocalName();
392
					switch(localname)
393
					{
394
						case "head":
395
							pagedWriter.writeEndElement(); // h2
396
							break;
397
						case "lg":
398
						case "p":
399
						case "q":
400
							pagedWriter.writeEndElement(); // p
401
							if (wordcount >= wordmax) {
402
								createNextOutput();
403
							}
404
							break;
405
						case "list":
406
							pagedWriter.writeEndElement(); // ul or ol
407
							break
408
						case "item":
409
							pagedWriter.writeEndElement(); // li
410
							break;
411
						case "hi":
412
							pagedWriter.writeEndElement(); // b
413
							break;
414
						case "emph":
415
							pagedWriter.writeEndElement(); // i
416
							break;
417
						case "table":
418
							pagedWriter.writeEndElement(); // table
419
							break;
420
						case "row":
421
							pagedWriter.writeEndElement(); // tr
422
							break;
423
						case "cell":
424
							pagedWriter.writeEndElement(); // td
425
							break;
426
						case "form":
427
							flagform = false
428
							break;
429
						case "ana":
430
							flaginterp = false
431
							break;
432
						case "w":
433
							int l = lastword.length();
434
							String endOfLastWord = "";
435
							if (l > 0)
436
								endOfLastWord = lastword.subSequence(l-1, l);
444
								if (interpvalue != null)
445
									interpvalue = interpvalue;
437 446

  
438
							if (interpvalue != null)
439
								interpvalue = interpvalue;
440

  
441
							if (NoSpaceBefore.contains(wordvalue) ||
447
								if (NoSpaceBefore.contains(wordvalue) ||
442 448
								NoSpaceAfter.contains(lastword) ||
443 449
								wordvalue.startsWith("-") ||
444 450
								NoSpaceAfter.contains(endOfLastWord))
445
							{
446
								// multiwriter.write("<span title=\""+interpvalue+"\" id=\""+wordid+"\">");
447
							} else {
448
								// multiwriter.write(" <span title=\""+interpvalue+"\" id=\""+wordid+"\">");
449
								pagedWriter.writeCharacters(" ");
450
							}
451
							pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid]);
452
							pagedWriter.writeCharacters(wordvalue);
453
							pagedWriter.writeEndElement() // span
454
							lastword=wordvalue;
455
							break;
456
					}
457
					break;
458
				case XMLStreamConstants.CHARACTERS:
459
					if (flagform)
460
						if (parser.getText().length() > 0)
461
							wordvalue+=(parser.getText());
462
					if (flaginterp)
463
						if (parser.getText().length() > 0)
464
							interpvalue+=(parser.getText());
465
					break;
451
								{
452
									// multiwriter.write("<span title=\""+interpvalue+"\" id=\""+wordid+"\">");
453
								} else {
454
									// multiwriter.write(" <span title=\""+interpvalue+"\" id=\""+wordid+"\">");
455
									pagedWriter.writeCharacters(" ");
456
								}
457
								pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid]);
458
								pagedWriter.writeCharacters(wordvalue);
459
								pagedWriter.writeEndElement() // span
460
								lastword=wordvalue;
461
								break;
462
						}
463
						break;
464
					case XMLStreamConstants.CHARACTERS:
465
						if (flagform)
466
							if (parser.getText().length() > 0)
467
								wordvalue+=(parser.getText());
468
						if (flaginterp)
469
							if (parser.getText().length() > 0)
470
								interpvalue+=(parser.getText());
471
						break;
472
				}
466 473
			}
467
		}
468
		//writer.write("</body>");
469
		//writer.write("</html>");
470
		//writer.close();
471
		closeMultiWriter();
472
	} catch(Exception e) { org.txm.utils.logger.Log.printStackTrace(e); pagedWriter.close(); }
474
			//writer.write("</body>");
475
			//writer.write("</html>");
476
			//writer.close();
477
			closeMultiWriter();
478
		} catch(Exception e) { 
479
			println "Error while processing ${infile} at "+parser.getLocation().getLineNumber()+": "+e
480
			org.txm.utils.logger.Log.printStackTrace(e); 
481
			pagedWriter.close(); }
473 482
	}
474 483
}
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy (revision 1110)
43 43
import org.txm.importer.*
44 44

  
45 45
String userDir = System.getProperty("user.home");
46
boolean debug = org.txm.utils.logger.Log.isPrintingErrors();
46

  
47 47
def MONITOR;
48 48
Project project;
49
boolean debug = org.txm.utils.logger.Log.isPrintingErrors();
50 49

  
51 50
try {project=projectBinding;MONITOR=monitor} catch (Exception)
52 51
{	}
......
146 145
c.setLang(lang);
147 146
c.setAnnotationSuccess(annotationSuccess)
148 147
if (debug) c.setDebug();
149
if (!c.run(binDir, txmDir, corpusname)) {
148
if (!c.run(project)) {
150 149
	println "Import process stopped";
151 150
	return;
152 151
}
......
165 164
	Collections.sort(filelist);
166 165
	def second = 0
167 166

  
168

  
167
	println "Paginating texts: "
168
	
169 169
	for (File srcfile : filelist) {
170 170
		print "."
171 171
		String txtname = srcfile.getName();
......
191 191
		}
192 192
	}
193 193
}
194

  
194 195
if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
195 196
if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
196 197

  
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/compiler.groovy (revision 1110)
34 34
import org.txm.scripts.importer.*;
35 35
import org.txm.scripts.*;
36 36
import org.txm.importer.scripts.xmltxm.*;
37
import org.txm.objects.Project
37
import org.txm.objects.*
38 38
import org.txm.utils.treetagger.TreeTagger;
39

  
39
import org.txm.searchengine.cqp.corpus.*
40 40
import javax.xml.stream.*;
41 41

  
42 42
import java.net.URL;
......
176 176
		File txmDir = new File(binDir, "txm/"+corpusname)
177 177
		
178 178
		if (!(CwbEncode.isExecutableAvailable() && CwbMakeAll.isExecutableAvailable())) {
179
			println ("Error: CWB executables not well set.")
179
			println ("Error: CWB executables rights are not well setted.")
180 180
			return false;
181 181
		}
182 182
		
183 183
		CorpusBuild corpus = project.getCorpusBuild(project.getName());
184 184
		if (corpus != null) {
185
			println "CLEAN PREVIOUS CORPUS"
185
			//println "CLEAN PREVIOUS CORPUS"
186 186
			corpus.delete(); // remove old files
187 187
		}
188 188
			
......
190 190
		corpus = new MainCorpus(project);
191 191
		corpus.setID(project.getName());
192 192
		corpus.setName(project.getName());
193
		corpus.setDescription("Build the alceste import module");
193
		corpus.setDescription("Built with the TXT+CSV import module");
194 194
		
195 195
		File cqpFile = new File(binDir,"cqp/"+corpusname+".cqp");
196 196
		new File(binDir,"cqp").mkdirs()
......
215 215
			print "."
216 216
			cqpbuilder = new XMLTXM2CQP(txmfile.toURI().toURL());
217 217
			String txtname = txmfile.getName().substring(0,txmfile.getName().length()-4);
218
			cqpbuilder.setTextInfo(txtname, this.base, this.project);
218
			cqpbuilder.setTextInfo(txtname, this.base, project.getName());
219 219

  
220 220
			cqpbuilder.setBalisesToKeep(["text","s"]);
221 221
			cqpbuilder.setSendToPAttributes(["lb":["n"]]);
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/alceste/alcesteLoader.groovy (revision 1110)
113 113
new File(binDir,"HTML/$corpusname").mkdirs();
114 114
if (build_edition) {
115 115
	
116
	if (MONITOR != null) MONITOR.worked(20, "EDITION")
117

  
118 116
	println "-- EDITION - Building edition"
117
	if (MONITOR != null) MONITOR.worked(20, "EDITION")
118
	
119 119
	File outdir = new File(binDir,"/HTML/$corpusname/default/");
120 120
	outdir.mkdirs();
121 121
	List<File> filelist = txmDir.listFiles();
......
128 128
		print "."
129 129
		String txtname = srcfile.getName();
130 130
		int i = txtname.lastIndexOf(".");
131
		if(i > 0) txtname = txtname.substring(0, i);
131
		if (i > 0) txtname = txtname.substring(0, i);
132 132

  
133 133
		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang);
134 134
		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang);
135 135

  
136
		//Element text = params.addText(params.corpora.get(corpusname), txtname, srcfile);
137 136
		Text t = new Text(project);
138 137
		t.setName(txtname);
139 138
		t.setSourceFile(srcfile)
140 139
		t.setTXMFile(srcfile)
140
		
141 141
		def ed = new pager_old(srcfile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, wordsPerPage, basename, "pb");
142
		//Element edition = params.addEdition(text, "default", outdir.getAbsolutePath(), "html");
143 142
		Edition edition = new Edition(t);
144 143
		edition.setName("default");
145 144
		edition.setIndex(outdir.getAbsolutePath());
......
153 152

  
154 153
if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
155 154
if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
156
//File paramFile = new File(binDir, "import.xml");
157
//DomUtils.save(params.root.getOwnerDocument(), paramFile);readyToLoad = true;
155

  
158 156
readyToLoad = project.save();
tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java (revision 1110)
78 78
		if (selection.getFirstElement() instanceof CQPCorpus) {
79 79
			try {
80 80
				CQPCorpus c = (CQPCorpus) selection.getFirstElement();
81
//				Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
81
				//				Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
82 82

  
83 83
				//EditionSelectorDialog d = new EditionSelectorDialog(shell, c, null);
84 84
				SynopticEditionEditor editor = null;
......
107 107

  
108 108
				editor = openEdition(c, editionsToOpen);
109 109

  
110
//				if (editor != null)
111
//					editor.firstPage();
110
				//				if (editor != null)
111
				//					editor.firstPage();
112 112
			} catch (Exception e) {
113 113
				System.out.println(EditionUIMessages.OpenEdition_4+e);
114 114
				org.txm.rcp.utils.Logger.printStackTrace(e);
......
118 118
		}
119 119
		return null;
120 120
	}
121
	
121

  
122 122
	public static String[] getDefaultEditions(Project p) {
123 123
		return p.getDefaultEdition().split(","); //$NON-NLS-1$ //$NON-NLS-2$
124 124
	}
125
	
125

  
126 126
	public static String[] getDefaultEditions(CQPCorpus c) {
127 127
		return getDefaultEditions(c.getProject());
128 128
	}
......
173 173
			//String[] editions = {maincorpus.getDefaultEdition()};
174 174
			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
175 175
			IWorkbenchPage page = window.getActivePage();
176
			
176

  
177 177
			SynopticEditorInput editorInput = new SynopticEditorInput(corpus, text.getName(), editions);
178 178
			SynopticEditionEditor editor = (SynopticEditionEditor) page.openEditor(editorInput,
179 179
					SynopticEditionEditor.ID, true);
180
			
180

  
181 181
			return editor;
182 182

  
183 183
		} catch (Exception e) {
tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java (revision 1110)
1521 1521
		}
1522 1522
	}
1523 1523

  
1524

  
1525
	public void flush() {
1526
		TXMPreferences.flush(preferencesNode);
1527
	}
1528

  
1524 1529
	//FIXME: this code is dedicated to dynamically retrieve the static field PREFERENCES_NODE of the runtime subclass and use it super class to avoid to pass it to all methods.
1525 1530
	// eg. to use ProgressionPreferences.getBoolean("test") instead of TXMPreferences.getBoolean(ProgressionPreferences.PREFERENCES_NODE, "test")
1526 1531
	// but it doesn"t work, need to continue the tests...
tmp/org.txm.core/src/java/org/txm/objects/Edition.java (revision 1110)
351 351
		String names = this.getStringParameterValue(TBXPreferences.NAMES);
352 352
		if (names != null && names.length() > 0) {
353 353
			pPageNames = new ArrayList<>(Arrays.asList(names.split("\t")));
354
		} else {
355
			pPageNames = new ArrayList<>();
354 356
		}
355 357

  
356 358
		String wordids = this.getStringParameterValue("pages_wordids");
357 359
		if (wordids != null && wordids.length() > 0) {
358 360
			pPageFirstWordIds = new ArrayList<>(Arrays.asList(wordids.split("\t")));
361
		} else {
362
			pPageFirstWordIds = new ArrayList<>();
359 363
		}
360 364
		
361 365
		if (pages == null) {
......
363 367
		} else {
364 368
			pages.clear();
365 369
		}
366
		
370

  
367 371
		for (int i = 0 ; i < pPageNames.size() && i < pPageFirstWordIds.size() ; i++) {
368 372
			pages.add(new Page(this, pPageNames.get(i), pPageFirstWordIds.get(i)));
369 373
		}
tmp/org.txm.core/src/java/org/txm/objects/Project.java (revision 1110)
142 142
		}
143 143

  
144 144
		if (!rcpProject.exists()) {
145
			rcpProject.create(monitor);
146
			rcpProject.open(monitor);
147
			rcpProject.getDescription().setNatureIds(new String[] {"org.txm.core.CorpusNature"});
148
			
149
			IFolder srcFolder = rcpProject.getFolder("src");
150
			IPath path = new Path(pSrcDirectory.getAbsolutePath());
151
			if (!srcFolder.exists()) {
152
				srcFolder.createLink(path, IResource.ALLOW_MISSING_LOCAL, monitor);
153
			}
145
			createRCPProject();
154 146
		}
155 147

  
156 148
		if (!rcpProject.isOpen()) {
157
			rcpProject.open(monitor);
149
			try {
150
				rcpProject.open(monitor);
151
			} catch (Exception e) {
152
				System.out.println("Warning: restoring corpus project files...");
153
				rcpProject.delete(true, monitor);
154
				createRCPProject();
155
			}
158 156
		}
159 157

  
160 158
		this.preferenceScope = new ProjectScope(rcpProject);
161 159
	}
162 160

  
161
	private void createRCPProject() throws CoreException {
162
		rcpProject.create(monitor);
163
		rcpProject.open(monitor);
164
		rcpProject.getDescription().setNatureIds(new String[] {"org.txm.core.CorpusNature"});
165
		
166
		IFolder srcFolder = rcpProject.getFolder("src");
167
		IPath path = new Path(pSrcDirectory.getAbsolutePath());
168
		if (!srcFolder.exists()) {
169
			srcFolder.createLink(path, IResource.ALLOW_MISSING_LOCAL, monitor);
170
		}
171
	}
172

  
163 173
	public Project(String uuid) throws CoreException {
164 174
		super(uuid);
165 175
		initRCPStuffs();
......
840 850
		IEclipsePreferences params = this.getPreferences().getNode("Tokenizer");
841 851
		params.put(name, value);
842 852
	}
853
	
854
	public String getTokenizerParameter(String name, String defaultvalue) {
855
		IEclipsePreferences params = this.getPreferences().getNode("Tokenizer");
856
		return params.get(name, defaultvalue);
857
	}
858
	
859
	public boolean getDoTokenizerStep() {
860
		IEclipsePreferences params = this.getPreferences().getNode("Tokenizer");
861
		return params.getBoolean("doTokenizeStep", true);
862
	}
843 863

  
844 864
	public EditionDefinition getEditionDefinition(String name) {
845 865
		return new EditionDefinition(this, name);
tmp/org.txm.core/src/java/org/txm/objects/Text.java (revision 1110)
274 274

  
275 275
	@Override
276 276
	public void clean() {
277
		if (pTXMFile.exists()) {
277
		if (pTXMFile != null && pTXMFile.exists()) {
278 278
			pTXMFile.delete();
279 279
		}
280 280
	}
tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Line.java (revision 1110)
214 214
	 * @return the left context size
215 215
	 */
216 216
	public int getLeftContextSize() {
217
//		if (leftCtxViewPropertiesValues.values().size() == 0) return 0;
217 218
		return leftCtxViewPropertiesValues.values().iterator().next().size();
218 219
	}
219 220

  
......
223 224
	 * @return the keywords size
224 225
	 */
225 226
	public int getKeywordsSize() {
227
//		if (keywordsViewValues.values().size() == 0) return 0;
226 228
		return keywordsViewValues.values().iterator().next().size();
227 229
	}
228 230

  
......
232 234
	 * @return the right context size
233 235
	 */
234 236
	public int getRightContextSize() {
237
//		if (rightCtxViewValues.values().size() == 0) return 0;
235 238
		return rightCtxViewValues.values().iterator().next().size();
236 239
	}
237 240

  
......
472 475
		int start = this.getLeftContextSize() - max;
473 476
		for (int i = start; i < this.getLeftContextSize(); i++) {
474 477
			List<String> word = new ArrayList<String>();
475
			for (Property property : concordance.getLeftViewProperties())
476
			{
478
			for (Property property : concordance.getLeftViewProperties()) {
477 479
//				if(propertiesToProcess.contains(property.getName()))
478 480
//					word.add(TxmRenderer.jseshrenderer.render(values.get(property).get(i)));
479 481
//				else
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/FrontXSLSection.java (revision 1110)
1 1
package org.txm.rcp.editors.imports.sections;
2 2

  
3 3
import java.io.File;
4
import java.util.Arrays;
5 4
import java.util.LinkedHashMap;
6 5

  
7 6
import org.eclipse.jface.viewers.ISelection;
......
26 25
import org.eclipse.ui.forms.widgets.TableWrapData;
27 26
import org.eclipse.ui.forms.widgets.TableWrapLayout;
28 27
import org.txm.Toolbox;
29
import org.txm.core.preferences.TBXPreferences;
30 28
import org.txm.objects.Project;
31 29
import org.txm.rcp.editors.TableKeyListener;
32 30
import org.txm.rcp.handlers.files.EditFile;
33 31
import org.txm.rcp.messages.TXMUIMessages;
34 32
import org.txm.rcp.swt.dialog.LastOpened;
35 33
import org.txm.rcp.swt.dialog.MultipleValueDialog;
36
import org.txm.rcp.swt.provider.ElementColumnLabelProvider;
34
import org.txm.rcp.swt.provider.HashMapContentProvider;
37 35
import org.txm.rcp.swt.provider.HashMapLabelProvider;
38
import org.txm.rcp.swt.provider.NodeListContentProvider;
39
import org.w3c.dom.Element;
40 36

  
41 37
public class FrontXSLSection extends ImportEditorSection {
42 38
	
......
176 172
		gd.colspan = 4;
177 173
		gd.heightHint = 100;
178 174
		xsltParamsViewer.getTable().setLayoutData(gd);
179
		xsltParamsViewer.setContentProvider(new NodeListContentProvider());
175
		xsltParamsViewer.setContentProvider(new HashMapContentProvider());
180 176
		xsltParamsViewer.getTable().setHeaderVisible(true);
181 177
		xsltParamsViewer.getTable().setLinesVisible(true);
182 178

  
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/sections/TokenizerSection.java (revision 1110)
19 19
import org.txm.objects.Project;
20 20
import org.txm.rcp.editors.imports.ImportModuleCustomization;
21 21
import org.txm.rcp.messages.TXMUIMessages;
22
import org.txm.tokenizer.TTest;
22 23
import org.txm.tokenizer.TokenizerClasses;
23 24
import org.w3c.dom.Element;
24 25
import org.w3c.dom.NodeList;
......
58 59
		slayout.numColumns = 3;
59 60
		sectionClient.setLayout(slayout);
60 61
		this.section.setClient(sectionClient);
61
		
62

  
62 63
		Label tmpLabel3 = toolkit.createLabel(sectionClient, "Word tag");
63 64
		TableWrapData gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
64 65
		gdata.colspan = 2;
65 66
		tmpLabel3.setLayoutData(gdata);
66 67
		tmpLabel3.setToolTipText("XML tag name that encodes words");
67 68
		tmpLabel3.setVisible(moduleParams.get(ImportModuleCustomization.ADVANCEDTOKENIZER));
68
		
69

  
69 70
		wordElementText = toolkit.createText(sectionClient, "w", SWT.BORDER); //$NON-NLS-1$
70 71
		gdata = getTextGridData();
71 72
		wordElementText.setLayoutData(gdata);
......
81 82
			public void widgetSelected(SelectionEvent e) {
82 83
				updateFieldsEnableState();
83 84
			}
84
			
85

  
85 86
			@Override
86 87
			public void widgetDefaultSelected(SelectionEvent e) { }
87 88
		});
88
		
89

  
89 90
		Label l0 = toolkit.createLabel(sectionClient, TXMUIMessages.CorpusPage_16a, SWT.WRAP);
90 91
		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
91 92
		gdata.colspan = 3;
92 93
		gdata.indent = 10;
93 94
		l0.setLayoutData(gdata);
94
		
95

  
95 96
		Label l1 = toolkit.createLabel(sectionClient, TXMUIMessages.CorpusPage_5, SWT.WRAP);
96 97
		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
97 98
		gdata.colspan = 2;
......
101 102
		textWhiteSpaces = toolkit.createText(sectionClient, TokenizerClasses.whitespaces, SWT.BORDER);
102 103
		gdata = getLongTextGridData();
103 104
		textWhiteSpaces.setLayoutData(gdata);
104
		
105

  
105 106
		Label l2 = toolkit.createLabel(sectionClient, TXMUIMessages.CorpusPage_16, SWT.WRAP);
106 107
		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
107 108
		gdata.colspan = 2;
......
293 294

  
294 295
	@Override
295 296
	public void update(Project project) {
296
//		if (this.section.isDisposed()) return;
297
//		if (params == null) return;
298
//
299
//		textWhiteSpaces.setText(TokenizerClasses.whitespaces);
300
//		textPuncts.setText(TokenizerClasses.regPunct);
301
//		textPunctsStrong.setText(TokenizerClasses.punct_strong);
302
//		textElisions.setText(TokenizerClasses.regElision);
303
//
304
//		Element tokenizerElem = params.getTokenizerElement(params.getCorpusElement());
305
//		NodeList paramList = tokenizerElem.getElementsByTagName("param"); //$NON-NLS-1$
306
//		for (int i = 0 ; i < paramList.getLength() ; i++) {
307
//			Element paramElem = (Element) paramList.item(i);
308
//			String name = paramElem.getAttribute("name"); //$NON-NLS-1$
309
//			String value = paramElem.getTextContent();
310
//			if ("whitepaces".equals(name)) { //$NON-NLS-1$
311
//				textWhiteSpaces.setText(value);
312
//			} else if ("regPunct".equals(name)) { //$NON-NLS-1$
313
//				textPuncts.setText(value);
314
//			} else if ("punct_strong".equals(name)) { //$NON-NLS-1$
315
//				textPunctsStrong.setText(value);
316
//			} else if ("regElision".equals(name)) { //$NON-NLS-1$
317
//				textElisions.setText(value);
318
//			}
319
//		}
320
//		
321
//		Element wtagElement = params.getWordElement();
322
//		if (wtagElement != null)
323
//			wordElementText.setText(wtagElement.getTextContent());
324
//		
325
//		boolean skip = params.getSkipTokenization();
326
//		//System.out.println("set do tokenizer button value to "+!skip);
327
//		doTokenizeStepButton.setSelection(!skip);
328
//		updateFieldsEnableState();
329
//		
330
////		Object value = tokenizerElem.getAttribute(Messages.CorpusPage_51);
331
////		try {
332
////			setAddSetTestsButton.setSelection(Boolean.parseBoolean(value.toString()));
333
////		} catch (Exception e) { };
297
		if (this.section.isDisposed()) return;
298
		if (project == null) return;
299

  
300

  
301
		textWhiteSpaces.setText(project.getTokenizerParameter("whitepaces", TokenizerClasses.whitespaces));
302
		textPuncts.setText(project.getTokenizerParameter("regPunct", TokenizerClasses.regPunct));
303
		textPunctsStrong.setText(project.getTokenizerParameter("punct_strong", TokenizerClasses.punct_strong));
304
		textElisions.setText(project.getTokenizerParameter("regElision", TokenizerClasses.regElision));
305

  
306
		String wtagElement = project.getTokenizerParameter("wordelement", "w");
307
		wordElementText.setText(wtagElement);
308

  
309
		boolean doTokenizeStep = project.getDoTokenizerStep();
310
		doTokenizeStepButton.setSelection(doTokenizeStep);
311
		updateFieldsEnableState();
312

  
313
//		HashMap<String, TTest> additionalTests = project.getTokenizerAdditionalTests();
314
//		try {
315
//			setAddSetTestsButton.setSelection(Boolean.parseBoolean(value.toString()));
316
//		} catch (Exception e) { };
334 317
	}
335 318

  
336 319
	@Override
337 320
	public boolean save(Project project) {
338
		
321

  
339 322
		if (textWhiteSpaces.getText().length() == 0 && textPuncts.getText().length() == 0) {
340 323
			System.out.println("Error while saving tokenizer parameters: whitespace and punctuation regular expressions are both empty.");
341 324
			return false;
......
347 330
		project.addTokenizerParameter("wordelement", wordElementText.getText()); //$NON-NLS-1$
348 331
		project.addTokenizerParameter("doTokenizeStep", ""+!doTokenizeStepButton.getSelection()); //$NON-NLS-1$
349 332
		project.addTokenizerParameter("onlyThoseTests", "false"); //$NON-NLS-1$
333
		//project.setTokenizerAdditionalTests(additionalTokenizerTests); //$NON-NLS-1$
350 334

  
351 335
		return true;
352 336
	}
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java (revision 1110)
997 997
		wdialog.open();
998 998

  
999 999
		project = wiz.getProject();
1000
		//TODO currently the script directory is the same as the import name
1001
		project.setImportModuleName(editor.getGroovyScript().getParentFile().getName());
1002 1000
		if (project == null) {
1001
			System.out.println("Error: no project created");
1003 1002
			return;
1004 1003
		}
1005

  
1004
		//TODO currently the script directory is the same as the import name
1005
		project.setImportModuleName(editor.getGroovyScript().getParentFile().getName());
1006
		
1006 1007
		try {
1007 1008
			loadParams();
1008 1009

  
tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/provider/HashMapContentProvider.java (revision 1110)
1
package org.txm.rcp.swt.provider;
2

  
3
import java.util.HashMap;
4
import java.util.Set;
5

  
6
import org.eclipse.jface.viewers.IContentProvider;
7
import org.eclipse.jface.viewers.IStructuredContentProvider;
8
import org.eclipse.jface.viewers.Viewer;
9

  
10
public class HashMapContentProvider implements IContentProvider, IStructuredContentProvider {
11

  
12
	@Override
13
	public Object[] getElements(Object inputElement) {
14
		Set list = ((HashMap)inputElement).entrySet();
15
		Object[] objs = new Object[list.size()];
16
		int i = 0;
17
		for (Object o : list) {
18
			objs[i] = o;
19
		}
20
		return objs;
21
	}
22

  
23
	@Override
24
	public void dispose() {
25
		// TODO Auto-generated method stub
26
		
27
	}
28

  
29
	@Override
30
	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
31
		// TODO Auto-generated method stub
32
		
33
	}
34
}
0 35

  
tmp/org.txm.rcp/src/main/java/org/txm/rcp/corpuswizard/GeneralWizardPage.java (revision 1110)
5 5
import org.eclipse.swt.SWT;
6 6
import org.eclipse.swt.events.KeyEvent;
7 7
import org.eclipse.swt.events.KeyListener;
8
import org.eclipse.swt.events.ModifyEvent;
9
import org.eclipse.swt.events.ModifyListener;
8 10
import org.eclipse.swt.events.SelectionEvent;
9 11
import org.eclipse.swt.events.SelectionListener;
10 12
import org.eclipse.swt.layout.GridData;
......
14 16
import org.eclipse.swt.widgets.DirectoryDialog;
15 17
import org.eclipse.swt.widgets.Label;
16 18
import org.eclipse.swt.widgets.Text;
19
import org.txm.core.preferences.TXMPreferences;
20
import org.txm.rcp.preferences.RCPPreferences;
17 21

  
18 22
public class GeneralWizardPage extends WizardPage {
19 23
//    private Text corpusName;
......
41 45
        label2.setText("Source directory");
42 46
        
43 47
        sourceDirectory = new Text(container, SWT.BORDER | SWT.SINGLE);
44
        sourceDirectory.setText("");
48
        final String lastSourcesLocation = RCPPreferences.getInstance().getString("lastSourcesLocation");
49
        sourceDirectory.setText(lastSourcesLocation);
45 50
        sourceDirectory.setToolTipText("The corpus source directory");
46 51
        sourceDirectory.setLayoutData(gd);
52
        sourceDirectory.addModifyListener(new ModifyListener() {
53
			@Override
54
			public void modifyText(ModifyEvent e) {
55
				setPageComplete(isCompleted());
56
			}
57
		});
47 58
        
48 59
        Button button = new Button(container, SWT.PUSH);
49 60
        button.setText("...");
......
53 64
			@Override
54 65
			public void widgetSelected(SelectionEvent e) {
55 66
				DirectoryDialog dialog = new DirectoryDialog(e.display.getActiveShell());
67
				dialog.setFilterPath(getSourcePath());
56 68
				dialog.setText("Source directory");
57 69
				if (getSourcePath().length() > 0) {
58 70
					dialog.setFilterPath(getSourcePath());
......
60 72
				String path = dialog.open();
61 73
				if (path != null) {
62 74
					sourceDirectory.setText(path);
75
					RCPPreferences.getInstance().put("lastSourcesLocation", path);
76
					RCPPreferences.getInstance().flush();
63 77
					setPageComplete(isCompleted());
64 78
				}
65 79
			}
......
100 114
        // required to avoid an error in the system
101 115
        setControl(container);
102 116
        setPageComplete(false);
117
        
118
        setPageComplete(isCompleted());
103 119
    }
104 120

  
105 121
    protected boolean isCompleted() {
......
112 128
//    }
113 129
    
114 130
    public String getSourcePath() {
115
        return sourceDirectory.getText();
131
        return sourceDirectory.getText().trim();
116 132
    }
117 133
}
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff