Révision 1546

tmp/org.txm.core/src/java/org/txm/objects/Workspace.java (revision 1546)
214 214
		File PROJECT = new File(binCorpusDir, ".project"); //$NON-NLS-1$
215 215
		binCorpusDir = new File(this.getLocation(), binCorpusDir.getName()); // this is to ensure the project is in the workspace files
216 216
		
217
		
218
		
217 219
		if (binCorpusDir.exists() && HTMLs.exists() && DATAs.exists()
218 220
				&& REGISTRY.exists() && PARAMS.exists() && PROJECT.exists())// && correspfile.exists())
219 221
		{// minimal base data
222
		
223
			File[] maincorpusNames = DATAs.listFiles();
224
			String maincorpusName = "";
225
			if (maincorpusNames.length == 0) { // no CQP corpus
226
				System.out.println(NLS.bind("Error: no CQP corpus data found in {0} directory.", DATAs));
227
				return null;
228
			} else {
229
				maincorpusName = maincorpusNames[0].getName();
230
			}
220 231
			
221 232
			Project p = getProject(binCorpusDir.getName());
222 233
			if (p != null) {
223
				p.delete();
234
				p.delete(); // a project with the same name already exists
224 235
			}
236
			p = getProject(maincorpusName);
237
			if (p != null) {
238
				p.delete(); // a project with the same name already exists
239
			}
225 240

  
226 241
			//System.out.println(parameters.toString());
227 242
			
tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java (revision 1546)
51 51
import org.txm.searchengine.core.SearchEngine;
52 52
import org.txm.searchengine.core.SearchEnginesManager;
53 53
import org.txm.utils.io.IOUtils;
54
import org.txm.utils.logger.Log;
54 55

  
55 56
/**
56 57
 * Create projects from one binary corpus directory
......
195 196

  
196 197
//				Project base = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(corpusDirectory);
197 198
				if (project == null) {
198
					System.out.println("Fail to load binary corpus: "+corpusDirectory);
199
					Log.warning("Error: fail to load binary corpus: "+corpusDirectory);
199 200
				} else {
200 201
					projects.add(project);
201 202
				}
tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java (revision 1546)
345 345
		//
346 346
		//		Toolbox.workspace.save();
347 347

  
348
		// test with project name
348 349
		Project p = Toolbox.workspace.getProject(corpusDirectory.getName().toUpperCase().toUpperCase());
349 350
		if (p != null) {
350
			System.out.println("Aborting loading of "+corpusDirectory+". A corpus with the same name already exists.");
351
			System.out.println(NLS.bind("Aborting loading of {0}. A corpus with the same name already exists.", corpusDirectory));
351 352
			return null;
352 353
		}
353 354

  
355
		// test with CQP MainCorpus name
356
		File dataDirectory = new File(corpusDirectory, "data");
357
		File[] mainCorpusDirs = dataDirectory.listFiles();
358
		if (mainCorpusDirs != null && mainCorpusDirs.length > 0) {
359
			String mainCorpusName = mainCorpusDirs[0].getName();
360
			p = Toolbox.workspace.getProject(mainCorpusName);
361
			if (p != null) {
362
				System.out.println(NLS.bind("Aborting loading of {0}. A corpus with the same {1} CQP MainCorpus name already exists.", corpusDirectory, mainCorpusName));
363
				return null;
364
			}
365
		}
366

  
354 367
		// seems like a binary corpus directory
355 368
		// copy files in the new current corpora directory
356 369
		File destDir = new File(Toolbox.workspace.getLocation(), corpusDirectory.getName().toUpperCase());
......
364 377
		File dotProjectFile = new File(destDir, ".project");
365 378
		if (paramFile.exists() && paramFile.isDirectory() && dotProjectFile.exists() && dotProjectFile.isFile()) {
366 379
			System.out.println(NLS.bind(TXMUIMessages.loadingTheP0BinaryCorpusAsATXM080Corpus, destDir));
380

  
367 381
			project = Load080BinaryCorpus.loadBinaryCorpusAsDirectory(destDir);
368 382
		} else if (importXMLFile.exists()) {
369 383
			System.out.println(NLS.bind(TXMUIMessages.loadingTheP0BinaryCorpusAsATXM079Corpus, destDir));
......
372 386
			System.out.println(NLS.bind("Error: {0} is not a binary corpus directory.", destDir));
373 387
		}
374 388

  
389
		if (!destDir.equals(corpusDirectory) && project == null) { // clean if necessary
390
			DeleteDir.deleteDirectory(destDir); // the corpus directory was not in the corpora directory
391
		}
392

  
375 393
		return project;
376 394
	}
377 395
}
tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load080BinaryCorpus.java (revision 1546)
34 34
import org.txm.Toolbox;
35 35
import org.txm.objects.Project;
36 36
import org.txm.rcp.messages.TXMUIMessages;
37
import org.txm.utils.DeleteDir;
37 38
import org.txm.utils.logger.Log;
38 39
import org.txm.utils.zip.Zip;
39 40

  
......
44 45
 */
45 46
public class Load080BinaryCorpus {
46 47

  
47
	
48

  
48 49
	public static boolean canLoad(File zipFile) {
49 50
		String basedirname = Zip.getRoot(zipFile);
50 51
		return Zip.hasEntries(zipFile, basedirname+"/.settings/", basedirname+"/.project", basedirname+"/data/", basedirname+"/txm/", basedirname+"/HTML/", basedirname+"/registry/");
......
61 62
		//ZIPPED FILE
62 63
		if (monitor != null) monitor.beginTask(TXMUIMessages.loadingBinaryCorpus, 100);
63 64
		if (monitor != null) monitor.subTask(TXMUIMessages.extractingBinaryCorpus);
64
		
65

  
65 66
		String basedirname = Zip.getRoot(zipFile);
66
		
67

  
67 68
		Project p = Toolbox.workspace.getProject(basedirname.toUpperCase());
68 69
		if (p != null) {
69 70
			System.out.println("Aborting loading of "+zipFile+". A corpus with the same name already exists.");
70 71
			return null;
71 72
		}
72
		
73

  
73 74
		if (!canLoad(zipFile)) {
74 75
			Log.info(NLS.bind(TXMUIMessages.binaryCorpusIsNotATXM080CorpusNoSettingsNorProjectFile, zipFile.getName()));
75 76
			return null;
76 77
		}
77
		
78

  
78 79
		System.out.println(NLS.bind(TXMUIMessages.loadingTheP0BinaryCorpusAsATXM080Corpus, zipFile.getName()));
79
		
80

  
80 81
		try {
81 82
			//System.out.println(NLS.bind(Messages.AddBase_29, zipFile, corporaDir));
82 83
			Zip.decompress(zipFile, Toolbox.workspace.getLocation(), false, monitor);
......
88 89
		if (monitor != null) monitor.worked(50);
89 90

  
90 91
		if (monitor != null) monitor.subTask(TXMUIMessages.loadingTheCorpusInThePlatform);
91
		Project newProject = loadBinaryCorpusAsDirectory(new File(Toolbox.workspace.getLocation(), basedirname));
92
		File corpusDirectory = new File(Toolbox.workspace.getLocation(), basedirname);
93

  
94
		// test with CQP MainCorpus name
95
		File dataDirectory = new File(corpusDirectory, "data");
96
		File[] mainCorpusDirs = dataDirectory.listFiles();
97
		if (mainCorpusDirs != null && mainCorpusDirs.length > 0) {
98
			String mainCorpusName = mainCorpusDirs[0].getName();
99
			p = Toolbox.workspace.getProject(mainCorpusName);
100
			if (p != null) {
101
				System.out.println(NLS.bind("Aborting loading of {0}. A corpus with the same {1} CQP MainCorpus name already exists.", corpusDirectory, mainCorpusName));
102
				DeleteDir.deleteDirectory(corpusDirectory); // clean files
103
				return null;
104
			}
105
		}
106

  
107
		Project newProject = loadBinaryCorpusAsDirectory(corpusDirectory);
92 108
		if (newProject == null) {
109
			DeleteDir.deleteDirectory(corpusDirectory); // clean files
93 110
			System.out.println(TXMUIMessages.failedToLoadBinaryCorpusNullError);
94 111
			return null;
95 112
		}
96
		
113

  
97 114
		return newProject;
98 115
	}
99
	
116

  
100 117
	/**
101 118
	 * load the content of the file if its a directory containing at least the sub folders :
102 119
	 * txm, html, data and registry.
......
114 131

  
115 132
		File txmcorpora = new File(Toolbox.getTxmHomePath(), "corpora"); //$NON-NLS-1$
116 133
		txmcorpora.mkdir();
117
		Project base = Toolbox.workspace.scanDirectory(binCorpusDirectory);
118
		if (base == null) {
134
		Project project = Toolbox.workspace.scanDirectory(binCorpusDirectory);
135
		if (project == null) {
119 136
			Log.severe(NLS.bind(TXMUIMessages.failedToLoadCorpusFromDirectoryColonP0WeCannotFindTheNecessaryComponents, binCorpusDirectory)); 
120 137
			return null;
121 138
		}
122 139

  
123 140
		Toolbox.workspace.saveParameters();
124
		return base;
141
		return project;
125 142
	}
126 143
}

Formats disponibles : Unified diff