Révision 2494
| tmp/org.txm.index.rcp/src/org/txm/index/rcp/handlers/SendIndexTo.java (revision 2494) | ||
|---|---|---|
| 29 | 29 |
|
| 30 | 30 |
import org.eclipse.core.commands.ExecutionEvent; |
| 31 | 31 |
import org.eclipse.jface.viewers.ISelection; |
| 32 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 33 | 32 |
import org.eclipse.jface.viewers.StructuredSelection; |
| 34 | 33 |
import org.eclipse.ui.handlers.HandlerUtil; |
| 35 | 34 |
import org.txm.core.results.TXMResult; |
| 36 | 35 |
import org.txm.index.core.functions.Index; |
| 37 | 36 |
import org.txm.links.rcp.handlers.SendSelectionToQueryable; |
| 38 | 37 |
import org.txm.rcp.editors.TXMEditor; |
| 38 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
|
| 39 | 39 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
| 40 | 40 |
import org.txm.searchengine.cqp.corpus.query.CQLQuery; |
| 41 | 41 |
|
| ... | ... | |
| 47 | 47 |
*/ |
| 48 | 48 |
public class SendIndexTo extends SendSelectionToQueryable {
|
| 49 | 49 |
|
| 50 |
|
|
| 51 | 50 |
@Override |
| 52 | 51 |
public String createQuery(ExecutionEvent event, ISelection selection) {
|
| 53 | 52 |
if (selection instanceof StructuredSelection) {
|
| ... | ... | |
| 66 | 65 |
return null; |
| 67 | 66 |
} |
| 68 | 67 |
|
| 69 |
|
|
| 70 |
|
|
| 71 | 68 |
@Override |
| 72 | 69 |
public TXMResult getResultParent(ExecutionEvent event) {
|
| 73 |
TXMEditor editor = (TXMEditor) HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart(); |
|
| 74 |
return CQPCorpus.getFirstParentCorpus(editor.getResult()); |
|
| 70 |
@SuppressWarnings("unchecked")
|
|
| 71 |
TXMEditor<Index> editor = (TXMEditor<Index>) HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart(); |
|
| 72 |
|
|
| 73 |
TXMResult result = editor.getResult(); |
|
| 74 |
Index index = (Index) result; |
|
| 75 |
CQPCorpus corpus = CQPCorpus.getFirstParentCorpus(index); |
|
| 76 |
if (index.getQuery() instanceof CQLQuery) {
|
|
| 77 |
CQLQuery cqlQuery = (CQLQuery) index.getQuery(); |
|
| 78 |
CQPCorpus subcorpus; |
|
| 79 |
try {
|
|
| 80 |
subcorpus = corpus.createSubcorpus(cqlQuery, cqlQuery.getQueryString()); |
|
| 81 |
} |
|
| 82 |
catch (CqiClientException e) {
|
|
| 83 |
// TODO Auto-generated catch block |
|
| 84 |
e.printStackTrace(); |
|
| 85 |
return null; |
|
| 86 |
} |
|
| 87 |
|
|
| 88 |
return subcorpus; |
|
| 89 |
} |
|
| 90 |
else {
|
|
| 91 |
return null; |
|
| 92 |
} |
|
| 75 | 93 |
} |
| 76 |
|
|
| 77 |
|
|
| 78 |
|
|
| 79 | 94 |
} |
| tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToQueryable.java (revision 2494) | ||
|---|---|---|
| 45 | 45 |
* |
| 46 | 46 |
*/ |
| 47 | 47 |
public abstract class SendSelectionToQueryable extends BaseAbstractHandler {
|
| 48 |
|
|
| 48 |
|
|
| 49 | 49 |
/** |
| 50 | 50 |
* Creates the query. |
| 51 |
* |
|
| 51 | 52 |
* @param isel |
| 52 | 53 |
* @return |
| 53 | 54 |
*/ |
| 54 | 55 |
public abstract String createQuery(ExecutionEvent event, ISelection isel); |
| 55 |
|
|
| 56 |
|
|
| 56 | 57 |
/** |
| 57 | 58 |
* Creates the queries. |
| 58 | 59 |
* This method is essentially dedicated to be overridden, if needed. |
| 60 |
* |
|
| 59 | 61 |
* @param selection |
| 60 | 62 |
* @return |
| 61 | 63 |
*/ |
| ... | ... | |
| 73 | 75 |
String query = this.createQuery(event, selection); |
| 74 | 76 |
String queries = this.createQueries(event, selection); |
| 75 | 77 |
|
| 76 |
if(query.isEmpty() && queries.isEmpty()) {
|
|
| 78 |
if (query.isEmpty() && queries.isEmpty()) {
|
|
| 77 | 79 |
Log.severe(Messages.noQueryWasSetCommandCanceled); |
| 78 | 80 |
return null; |
| 79 | 81 |
} |
| 80 | 82 |
|
| 81 | 83 |
// create a local result node in the project node, store in some parameters and call the linked command |
| 82 |
String resultParametersNodePath = this.getResultParent(event).getProject().getParametersNodeRootPath() + TXMResult.createUUID() + "_link"; // FIXME: we can't put the class name here since we does not know the target class |
|
| 83 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.PARENT_PARAMETERS_NODE_PATH, this.getResultParent(event).getParametersNodePath()); |
|
| 84 |
TXMResult result = this.getResultParent(event); |
|
| 85 |
String resultParametersNodePath = result.getProject().getParametersNodeRootPath() + TXMResult.createUUID() + "_link"; // FIXME: we can't put the class name here since |
|
| 86 |
// we does not know the target class |
|
| 87 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.PARENT_PARAMETERS_NODE_PATH, result.getParametersNodePath()); |
|
| 84 | 88 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.QUERY, query); |
| 85 | 89 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.QUERIES, queries); |
| 86 | 90 |
|
| 87 | 91 |
BaseAbstractHandler.executeSendToCommand(event.getCommand().getId(), resultParametersNodePath); |
| 88 | 92 |
|
| 89 | 93 |
} |
| 90 |
else {
|
|
| 94 |
else {
|
|
| 91 | 95 |
this.logCanNotExecuteCommand(selection); |
| 92 | 96 |
} |
| 93 | 97 |
return null; |
| 94 | 98 |
} |
| 95 |
} |
|
| 99 |
} |
|
| tmp/org.txm.links.rcp/src/org/txm/links/rcp/handlers/SendSelectionToMatchable.java (revision 2494) | ||
|---|---|---|
| 48 | 48 |
* |
| 49 | 49 |
*/ |
| 50 | 50 |
public abstract class SendSelectionToMatchable extends BaseAbstractHandler {
|
| 51 |
|
|
| 51 |
|
|
| 52 | 52 |
/** |
| 53 | 53 |
* Creates the queries. |
| 54 | 54 |
* This method is essentially dedicated to be overridden, if needed. |
| 55 |
* |
|
| 55 | 56 |
* @param selection |
| 56 | 57 |
* @return |
| 57 | 58 |
*/ |
| 58 | 59 |
public abstract List<Match> createMatches(ExecutionEvent event, IStructuredSelection selection); |
| 59 |
|
|
| 60 |
|
|
| 60 | 61 |
@Override |
| 61 | 62 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
| 62 | 63 |
|
| ... | ... | |
| 65 | 66 |
|
| 66 | 67 |
List<Match> matches = this.createMatches(event, selection); |
| 67 | 68 |
|
| 68 |
if(matches.isEmpty()) {
|
|
| 69 |
if (matches.isEmpty()) {
|
|
| 69 | 70 |
Log.severe(Messages.noMatchesWasSetCommandCanceled); |
| 70 | 71 |
return null; |
| 71 | 72 |
} |
| 72 | 73 |
|
| 73 | 74 |
// create a local result node in the project node, store in some parameters and call the linked command |
| 74 |
String resultParametersNodePath = this.getResultParent(event).getProject().getParametersNodeRootPath() + TXMResult.createUUID() + "_link"; // FIXME: we can't put the class name here since we does not know the target class |
|
| 75 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.PARENT_PARAMETERS_NODE_PATH, this.getResultParent(event).getParametersNodePath()); |
|
| 75 |
TXMResult result = this.getResultParent(event); |
|
| 76 |
if (result == null) {
|
|
| 77 |
System.out.println("No result found with " + event);
|
|
| 78 |
return null; |
|
| 79 |
} |
|
| 80 |
String resultParametersNodePath = result.getProject().getParametersNodeRootPath() + TXMResult.createUUID() + "_link"; // FIXME: we can't put the class name here since we does not know the |
|
| 81 |
// target class |
|
| 82 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.PARENT_PARAMETERS_NODE_PATH, result.getParametersNodePath()); |
|
| 76 | 83 |
TXMPreferences.put(resultParametersNodePath, TXMPreferences.MATCHES, matches.toString()); |
| 77 | 84 |
|
| 78 | 85 |
BaseAbstractHandler.executeSendToCommand(event.getCommand().getId(), resultParametersNodePath); |
| 79 | 86 |
} |
| 80 |
else {
|
|
| 87 |
else {
|
|
| 81 | 88 |
this.logCanNotExecuteCommand(selection); |
| 82 | 89 |
} |
| 83 | 90 |
return null; |
| 84 | 91 |
} |
| 85 |
|
|
| 86 |
} |
|
| 92 |
|
|
| 93 |
} |
|
| tmp/org.txm.index.core/src/org/txm/index/core/functions/LineComparator.java (revision 2494) | ||
|---|---|---|
| 62 | 62 |
/** The reverse. */ |
| 63 | 63 |
boolean reverse; |
| 64 | 64 |
|
| 65 |
int focusedSubcorpus = 0; |
|
| 66 |
|
|
| 65 | 67 |
/** |
| 66 | 68 |
* Instantiates a new line comparator. |
| 67 | 69 |
* |
| 68 | 70 |
* @param mode the mode |
| 69 | 71 |
* @param reverse the reverse |
| 70 | 72 |
*/ |
| 71 |
public LineComparator(SortMode mode, boolean reverse) {
|
|
| 73 |
public LineComparator(SortMode mode, int focusedSubcorpus, boolean reverse) {
|
|
| 72 | 74 |
setSortByFrequence(mode); |
| 73 | 75 |
setReverse(reverse); |
| 76 |
this.focusedSubcorpus = focusedSubcorpus; |
|
| 74 | 77 |
} |
| 75 | 78 |
|
| 76 | 79 |
/** |
| ... | ... | |
| 91 | 94 |
int sort = 0; |
| 92 | 95 |
switch (currentsortmode) {
|
| 93 | 96 |
case FREQUNIT: |
| 94 |
sort = arg0.getFrequency() - arg1.getFrequency();
|
|
| 97 |
sort = arg0.getFrequency(focusedSubcorpus) - arg1.getFrequency(focusedSubcorpus);
|
|
| 95 | 98 |
|
| 96 | 99 |
if (sort == 0) |
| 97 | 100 |
sort = -collator.compare(arg0.toString(), arg1.toString()); |
| ... | ... | |
| 101 | 104 |
case UNITFREQ: |
| 102 | 105 |
sort = collator.compare(arg0.toString(), arg1.toString()); |
| 103 | 106 |
if (sort == 0) |
| 104 |
sort = arg0.getFrequency() - arg1.getFrequency();
|
|
| 107 |
sort = arg0.getFrequency(focusedSubcorpus) - arg1.getFrequency(focusedSubcorpus);
|
|
| 105 | 108 |
break; |
| 106 | 109 |
|
| 107 | 110 |
case FREQ: |
| 108 |
sort = arg0.getFrequency() - arg1.getFrequency();
|
|
| 111 |
sort = arg0.getFrequency(focusedSubcorpus) - arg1.getFrequency(focusedSubcorpus);
|
|
| 109 | 112 |
break; |
| 110 | 113 |
|
| 111 | 114 |
case UNIT: |
| 112 | 115 |
sort = collator.compare(arg0.toString(), arg1.toString()); |
| 113 | 116 |
break; |
| 114 | 117 |
} |
| 115 |
if (reverse) |
|
| 118 |
|
|
| 119 |
if (reverse) {
|
|
| 116 | 120 |
sort = -sort; |
| 121 |
} |
|
| 117 | 122 |
return sort; |
| 118 | 123 |
} |
| 119 | 124 |
|
| tmp/org.txm.index.core/src/org/txm/index/core/functions/PartitionIndex.java (revision 2494) | ||
|---|---|---|
| 32 | 32 |
import java.io.FileOutputStream; |
| 33 | 33 |
import java.io.IOException; |
| 34 | 34 |
import java.io.OutputStreamWriter; |
| 35 |
import java.util.ArrayList; |
|
| 36 |
import java.util.Arrays; |
|
| 37 |
import java.util.Collections; |
|
| 38 | 35 |
import java.util.HashMap; |
| 39 |
import java.util.LinkedHashMap; |
|
| 40 | 36 |
import java.util.List; |
| 41 | 37 |
|
| 42 | 38 |
import org.eclipse.osgi.util.NLS; |
| 43 | 39 |
import org.rosuda.REngine.REXPMismatchException; |
| 44 | 40 |
import org.txm.core.messages.TXMCoreMessages; |
| 45 | 41 |
import org.txm.core.preferences.TXMPreferences; |
| 46 |
import org.txm.core.results.Parameter; |
|
| 47 |
import org.txm.core.results.TXMParameters; |
|
| 48 |
import org.txm.core.results.TXMResult; |
|
| 49 | 42 |
import org.txm.index.core.functions.LineComparator.SortMode; |
| 50 | 43 |
import org.txm.index.core.messages.IndexCoreMessages; |
| 51 |
import org.txm.index.core.preferences.IndexPreferences; |
|
| 52 |
import org.txm.objects.Match; |
|
| 53 |
import org.txm.searchengine.core.IQuery; |
|
| 54 |
import org.txm.searchengine.core.Selection; |
|
| 55 | 44 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
| 56 | 45 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
| 57 | 46 |
import org.txm.searchengine.cqp.corpus.CQPLexicon; |
| 58 |
import org.txm.searchengine.cqp.corpus.CorpusManager; |
|
| 59 | 47 |
import org.txm.searchengine.cqp.corpus.Part; |
| 60 | 48 |
import org.txm.searchengine.cqp.corpus.Partition; |
| 61 | 49 |
import org.txm.searchengine.cqp.corpus.Property; |
| 62 |
import org.txm.searchengine.cqp.corpus.StructuralUnitProperty; |
|
| 63 | 50 |
import org.txm.searchengine.cqp.corpus.WordProperty; |
| 64 | 51 |
import org.txm.searchengine.cqp.corpus.query.CQLQuery; |
| 65 |
import org.txm.searchengine.cqp.serverException.CqiServerError; |
|
| 66 | 52 |
import org.txm.statsengine.r.core.RWorkspace; |
| 67 | 53 |
import org.txm.statsengine.r.core.exceptions.RWorkspaceException; |
| 68 | 54 |
import org.txm.utils.logger.Log; |
| ... | ... | |
| 73 | 59 |
* @author mdecorde |
| 74 | 60 |
* @author sjacquot |
| 75 | 61 |
*/ |
| 76 |
// FIXME: SJ: chzeck that all works well then remove the partnamtes usage
|
|
| 62 |
// FIXME: SJ: check that all works well then remove the partnames usage
|
|
| 77 | 63 |
public class PartitionIndex extends Index {
|
| 78 | 64 |
|
| 79 |
|
|
| 80 | 65 |
/** The lexicon used to compute the index (if query = null || query == [] && properties.size() == 1 */ |
| 81 | 66 |
@Deprecated |
| 82 | 67 |
protected CQPLexicon lexicon; |
| 83 | 68 |
|
| 84 |
@Deprecated |
|
| 85 |
protected boolean lexiconMode = false; |
|
| 86 |
|
|
| 87 |
// /** |
|
| 88 |
// * Partition part names. |
|
| 89 |
// */ |
|
| 90 |
// protected List<String> partNames = new ArrayList<>(); |
|
| 91 |
|
|
| 92 |
|
|
| 93 |
|
|
| 94 | 69 |
/** |
| 95 | 70 |
* |
| 96 | 71 |
* @param parent |
| ... | ... | |
| 113 | 88 |
*/ |
| 114 | 89 |
public PartitionIndex(String parametersNodePath, Partition parent) {
|
| 115 | 90 |
super(parametersNodePath, parent); |
| 116 |
// |
|
| 117 |
// Partition partition = getParent(); |
|
| 118 |
// partNames.clear(); |
|
| 119 |
// for (Part part : partition.getParts()) {
|
|
| 120 |
// partNames.add(part.getName()); |
|
| 121 |
// } |
|
| 122 | 91 |
} |
| 123 | 92 |
|
| 124 | 93 |
@Override |
| ... | ... | |
| 126 | 95 |
return (Partition) parent; |
| 127 | 96 |
} |
| 128 | 97 |
|
| 129 |
|
|
| 130 |
|
|
| 131 | 98 |
@Override |
| 132 | 99 |
public String getComputingStartMessage() {
|
| 133 | 100 |
return TXMCoreMessages.bind(IndexCoreMessages.indexOfP0PropertiesP1OnP2Partition, this.pQuery, WordProperty.propertiesToString(this.pProperties).replaceAll(TXMPreferences.LIST_SEPARATOR, |
| 134 | 101 |
", "), this.getPartition().getSimpleName()); //$NON-NLS-1$ |
| 135 | 102 |
} |
| 136 | 103 |
|
| 137 |
|
|
| 138 |
|
|
| 139 |
|
|
| 140 | 104 |
@Override |
| 141 | 105 |
protected boolean _compute() throws Exception {
|
| 142 | 106 |
lines.clear(); |
| ... | ... | |
| 146 | 110 |
nTotalTokens = 0; |
| 147 | 111 |
|
| 148 | 112 |
Partition partition = getParent(); |
| 149 |
// partNames.clear(); |
|
| 150 | 113 |
for (Part part : partition.getParts()) {
|
| 151 | 114 |
scanCorpus(part); |
| 152 | 115 |
currentpartid++; |
| 153 |
// partNames.add(part.getName()); |
|
| 154 | 116 |
} |
| 155 | 117 |
|
| 156 | 118 |
setLineCounts(); |
| ... | ... | |
| 286 | 248 |
return lexicon; |
| 287 | 249 |
} |
| 288 | 250 |
|
| 289 |
public boolean getLexiconMode() {
|
|
| 290 |
return this.lexiconMode; |
|
| 291 |
} |
|
| 292 |
|
|
| 293 |
|
|
| 294 |
|
|
| 295 | 251 |
/** |
| 296 | 252 |
* update the lines counts. |
| 297 | 253 |
*/ |
| tmp/org.txm.index.core/src/org/txm/index/core/functions/Index.java (revision 2494) | ||
|---|---|---|
| 171 | 171 |
@Override |
| 172 | 172 |
protected boolean _compute() throws Exception {
|
| 173 | 173 |
|
| 174 |
|
|
| 175 |
|
|
| 176 | 174 |
// reset all stored data |
| 177 | 175 |
if (lines != null) {
|
| 178 | 176 |
lines.clear(); |
| ... | ... | |
| 978 | 976 |
* @param reverse the reverse |
| 979 | 977 |
*/ |
| 980 | 978 |
public void sortLines(LineComparator.SortMode mode, boolean reverse) {
|
| 981 |
LineComparator lc = new LineComparator(mode, reverse); |
|
| 979 |
LineComparator lc = new LineComparator(mode, 0, reverse);
|
|
| 982 | 980 |
lc.initialize(this.getCorpus()); |
| 981 |
|
|
| 983 | 982 |
Collections.sort(lines, lc); |
| 983 |
|
|
| 984 | 984 |
this.pTopIndex = 0; // return to the first page |
| 985 | 985 |
} |
| 986 | 986 |
|
Formats disponibles : Unified diff