Révision 763
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java (revision 763) | ||
|---|---|---|
| 47 | 47 |
import org.eclipse.jface.viewers.TreeViewer; |
| 48 | 48 |
import org.eclipse.jface.viewers.Viewer; |
| 49 | 49 |
import org.eclipse.jface.viewers.ViewerFilter; |
| 50 |
import org.eclipse.jface.viewers.ViewerSorter; |
|
| 50 | 51 |
import org.eclipse.swt.SWT; |
| 51 | 52 |
import org.eclipse.swt.events.KeyAdapter; |
| 52 | 53 |
import org.eclipse.swt.events.KeyEvent; |
| ... | ... | |
| 82 | 83 |
import org.txm.rcp.messages.TXMUIMessages; |
| 83 | 84 |
import org.txm.rcp.utils.JobHandler; |
| 84 | 85 |
import org.txm.searchengine.cqp.corpus.Corpus; |
| 86 |
import org.txm.searchengine.cqp.corpus.Partition; |
|
| 87 |
import org.txm.searchengine.cqp.corpus.Subcorpus; |
|
| 85 | 88 |
import org.txm.utils.logger.Log; |
| 86 | 89 |
//import org.txm.functions.queryindex.QueryIndex; |
| 87 | 90 |
//import org.txm.rcp.editors.input.QueryIndexEditorInput; |
| ... | ... | |
| 204 | 207 |
treeViewer.setLabelProvider( |
| 205 | 208 |
new DecoratingLabelProvider(new TXMResultLabelProvider(), |
| 206 | 209 |
PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator())); |
| 210 |
|
|
| 211 |
// for now the sorter is used to sort the Corpus, Subcorpus and partition objects |
|
| 212 |
treeViewer.setSorter(new ViewerSorter() {
|
|
| 213 |
public int category(Object element) {
|
|
| 214 |
if (element instanceof Subcorpus) return 2; // must do it before the Corpus test |
|
| 215 |
else if (element instanceof Corpus) return 0; |
|
| 216 |
else if (element instanceof Partition) return 1; |
|
| 217 |
else return 3; |
|
| 218 |
} |
|
| 219 |
|
|
| 220 |
public int compare(Viewer viewer, Object e1, Object e2) {
|
|
| 221 |
|
|
| 222 |
int cat1 = category(e1); |
|
| 223 |
int cat2 = category(e2); |
|
| 207 | 224 |
|
| 225 |
if (cat1 != cat2) {
|
|
| 226 |
return cat1 - cat2; |
|
| 227 |
} |
|
| 228 |
|
|
| 229 |
if (e1 instanceof TXMResult && e2 instanceof TXMResult) {
|
|
| 230 |
return TXMResult.compare((TXMResult)e1, (TXMResult)e2); |
|
| 231 |
} else {
|
|
| 232 |
return super.compare(viewer, e1, e2); |
|
| 233 |
} |
|
| 234 |
} |
|
| 235 |
}); |
|
| 236 |
|
|
| 208 | 237 |
if (Toolbox.isInitialized()) {
|
| 209 | 238 |
Workspace w = null; |
| 210 | 239 |
while (w == null) {
|
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java (revision 763) | ||
|---|---|---|
| 132 | 132 |
// copy files in the new current corpora directory |
| 133 | 133 |
File destDir = new File(corporaDirectory, corpusDirectory.getName()); |
| 134 | 134 |
if (destDir.exists()) {
|
| 135 |
System.out.println("Le répertoire "+destDir+" existe déjà. Chargement du corpus du répertoire "+corpusDirectory+" ignoré.");
|
|
| 135 |
System.out.println("Le répertoire "+destDir+" existe déjà. Chargement du corpus de répertoire "+corpusDirectory.getName()+" ignoré.");
|
|
| 136 | 136 |
continue; |
| 137 | 137 |
} |
| 138 | 138 |
|
| ... | ... | |
| 142 | 142 |
} else if (corpusDirectory.getName().endsWith(".txm")) {
|
| 143 | 143 |
// corpusDirectory is a TXM archive |
| 144 | 144 |
String basedirname = Zip.getRoot(corpusDirectory); |
| 145 |
File destDir = new File(corporaDirectory, basedirname); |
|
| 146 |
if (destDir.exists()) {
|
|
| 147 |
System.out.println("Le répertoire "+destDir+" existe déjà. Chargement du corpus "+corpusDirectory.getName()+" ignoré.");
|
|
| 148 |
continue; |
|
| 149 |
} |
|
| 145 | 150 |
Zip.decompress(corpusDirectory.getAbsolutePath(), corporaDirectory.getAbsolutePath(), false, this); |
| 146 |
corpusDirectory = new File(corporaDirectory, basedirname);
|
|
| 151 |
corpusDirectory = destDir;
|
|
| 147 | 152 |
} else {
|
| 148 | 153 |
continue; // not a corpus |
| 149 | 154 |
} |
| ... | ... | |
| 162 | 167 |
|
| 163 | 168 |
this.acquireSemaphore(); |
| 164 | 169 |
org.txm.Toolbox.restartWorkspace(monitor); |
| 165 |
Toolbox.getEngineManager(EngineType.SEARCH).restartEngines();
|
|
| 170 |
Toolbox.getEngineManager(EngineType.SEARCH).startEngines(monitor);
|
|
| 166 | 171 |
this.releaseSemaphore(); |
| 167 | 172 |
|
| 168 | 173 |
|
| tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 763) | ||
|---|---|---|
| 61 | 61 |
public abstract class TXMResult implements Cloneable, IProgressMonitor, Comparable<TXMResult> {
|
| 62 | 62 |
|
| 63 | 63 |
|
| 64 |
public static final DateFormat ID_TIME_FORMAT = new SimpleDateFormat("YYYYMMdd");
|
|
| 64 |
public static final DateFormat ID_TIME_FORMAT = new SimpleDateFormat("YYYYMMdd-HHmmssSSS");
|
|
| 65 | 65 |
public static final Pattern FILE_NAME_PATTERN = Pattern.compile("[^a-zA-Z0-9\\.-]+"); //$NON-NLS-1$
|
| 66 | 66 |
public static final String UNDERSCORE = "_"; |
| 67 | 67 |
|
| ... | ... | |
| 226 | 226 |
protected void createUUID() {
|
| 227 | 227 |
// FIXME: see if it's useful to put the class name or not, should be better to save it in the .prefs |
| 228 | 228 |
//this.uniqueID = this.getClass().getName() + '@' + ID_TIME_FORMAT.format(new Date(System.currentTimeMillis())) + "_" + UUID.randomUUID(); |
| 229 |
this.uniqueID = "txm_res_" + ID_TIME_FORMAT.format(new Date(System.currentTimeMillis())) + "_" + UUID.randomUUID();
|
|
| 229 |
this.uniqueID = ID_TIME_FORMAT.format(new Date(System.currentTimeMillis())) + "_" + UUID.randomUUID(); |
|
| 230 | 230 |
} |
| 231 | 231 |
|
| 232 | 232 |
/** |
| ... | ... | |
| 1731 | 1731 |
return Integer.compare(this.weight, o.weight); |
| 1732 | 1732 |
} |
| 1733 | 1733 |
|
| 1734 |
|
|
| 1734 |
public static int compare(TXMResult e1, TXMResult e2) {
|
|
| 1735 |
if (e1 == null && e2 == null) return 0; |
|
| 1736 |
if (e1 == null) return 1; |
|
| 1737 |
|
|
| 1738 |
return e1.getUUID().compareTo(e2.getUUID()); |
|
| 1739 |
} |
|
| 1735 | 1740 |
} |
Formats disponibles : Unified diff