Révision 543
tmp/org.txm.core/src/java/org/txm/objects/TxmObject.java (revision 543) | ||
---|---|---|
263 | 263 |
@Override |
264 | 264 |
public void clean() { |
265 | 265 |
// TODO Auto-generated method stub |
266 |
|
|
267 | 266 |
} |
268 | 267 |
|
269 | 268 |
@Override |
... | ... | |
283 | 282 |
// TODO Auto-generated method stub |
284 | 283 |
return false; |
285 | 284 |
} |
286 |
|
|
287 |
/* (non-Javadoc) |
|
288 |
* @see org.txm.objects.TxmObject#removeChildren(org.txm.objects.TxmObject) |
|
289 |
*/ |
|
290 |
public TxmObject removeChildren(TxmObject o) { |
|
291 |
if (super.removeResult(o)) { |
|
292 |
getSelfElement().removeChild(o.getSelfElement()); |
|
293 |
} |
|
294 |
return o; |
|
295 |
} |
|
296 |
|
|
297 |
/* (non-Javadoc) |
|
298 |
* @see org.txm.objects.TxmObject#hasChildren(org.txm.objects.TxmObject) |
|
299 |
*/ |
|
300 |
public boolean hasChildren(TxmObject o) { |
|
301 |
return this.getResults(TxmObject.class).contains(o); |
|
302 |
} |
|
303 |
|
|
304 | 285 |
} |
tmp/org.txm.referencer.rcp/src/org/txm/rcp/editors/referencer/ReferencerEditor.java (revision 543) | ||
---|---|---|
99 | 99 |
QueryWidget querywidget; |
100 | 100 |
|
101 | 101 |
/** The props area. */ |
102 |
protected PropertiesSelector propsArea; |
|
102 |
protected PropertiesSelector<Property> propsArea;
|
|
103 | 103 |
|
104 | 104 |
/** The pattern area. */ |
105 |
protected PropertiesSelector patternArea; |
|
105 |
protected PropertiesSelector<Property> patternArea;
|
|
106 | 106 |
|
107 | 107 |
/** The navigation area. */ |
108 | 108 |
NavigationWidget navigationArea; |
tmp/org.txm.concordance.core/src/org/txm/concordance/core/functions/Concordance.java (revision 543) | ||
---|---|---|
131 | 131 |
|
132 | 132 |
private ArrayList<Property> availableRightSortProperties; |
133 | 133 |
|
134 |
/** |
|
135 |
* |
|
136 |
* @param corpus |
|
137 |
* @param v |
|
138 |
* @return a list of word properties read from a String |
|
139 |
*/ |
|
140 |
public static List<Property> stringToProperties(Corpus corpus, String v) { |
|
141 |
|
|
142 |
ArrayList<Property> props = new ArrayList<Property>(); |
|
143 |
if (v == null) return props; |
|
144 |
if (v.length() == 0) return props; |
|
145 |
|
|
146 |
String[] split = v.split("\t"); |
|
147 |
for (String s : split) { |
|
148 |
Property prop; |
|
149 |
try { |
|
150 |
prop = corpus.getProperty(s); |
|
151 |
} catch (CqiClientException e) { |
|
152 |
System.out.println("Error: "+v+" property not found in "+corpus); |
|
153 |
Log.printStackTrace(e); |
|
154 |
return null; |
|
155 |
} |
|
156 |
if (prop != null) { |
|
157 |
props.add(prop); |
|
158 |
} |
|
159 |
} |
|
160 |
return props; |
|
161 |
} |
|
162 |
|
|
163 |
/** |
|
164 |
* |
|
165 |
* @param corpus |
|
166 |
* @param v |
|
167 |
* @return a list of word and structure properties read from a String |
|
168 |
*/ |
|
169 |
public static ReferencePattern stringToReferencePattern(Corpus corpus, String v) { |
|
170 |
try { |
|
171 |
ReferencePattern props = new ReferencePattern(); |
|
172 |
if (v == null) return props; |
|
173 |
if (v.length() == 0) return props; |
|
174 |
|
|
175 |
String[] split = v.split("\t"); |
|
176 |
for (String s : split) { |
|
177 |
if (s.contains("_")) { |
|
178 |
String[] split2 = s.split("_", 2); |
|
179 |
StructuralUnit su = corpus.getStructuralUnit(split2[0]); |
|
180 |
if (su != null) { |
|
181 |
Property prop = su.getProperty(split2[1]); |
|
182 |
if (prop != null) { |
|
183 |
props.addProperty(prop); |
|
184 |
} |
|
185 |
} |
|
186 |
} else { |
|
187 |
Property prop = corpus.getProperty(s); |
|
188 |
if (prop != null) { |
|
189 |
props.addProperty(prop); |
|
190 |
} |
|
191 |
} |
|
192 |
} |
|
193 |
return props; |
|
194 |
} catch (Exception e) { |
|
195 |
System.out.println("Error: "+v+" property not found in "+corpus); |
|
196 |
return null; |
|
197 |
} |
|
198 |
} |
|
199 |
|
|
200 | 134 |
public Concordance(Corpus corpus) { |
201 | 135 |
|
202 | 136 |
super(corpus); |
... | ... | |
215 | 149 |
|
216 | 150 |
try { |
217 | 151 |
String propertyNames = this.getStringParameterValue(ConcordancePreferences.KEYWORD_VIEW_PROPERTIES); |
218 |
this.pViewKeywordProperties = Concordance.stringToProperties(corpus, propertyNames);
|
|
152 |
this.pViewKeywordProperties = Property.stringToProperties(corpus, propertyNames);
|
|
219 | 153 |
this.availableKeywordViewProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
220 | 154 |
this.availableKeywordViewProperties.removeAll(pViewKeywordProperties); |
221 | 155 |
|
222 | 156 |
propertyNames = this.getStringParameterValue(ConcordancePreferences.LEFT_VIEW_PROPERTIES); |
223 |
this.pViewLeftProperties = Concordance.stringToProperties(corpus, propertyNames);
|
|
157 |
this.pViewLeftProperties = Property.stringToProperties(corpus, propertyNames);
|
|
224 | 158 |
this.availableLeftViewProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
225 | 159 |
this.availableLeftViewProperties.removeAll(pViewLeftProperties); |
226 | 160 |
|
227 | 161 |
propertyNames = this.getStringParameterValue(ConcordancePreferences.RIGHT_VIEW_PROPERTIES); |
228 |
this.pViewRightProperties = Concordance.stringToProperties(corpus, propertyNames);
|
|
162 |
this.pViewRightProperties = Property.stringToProperties(corpus, propertyNames);
|
|
229 | 163 |
this.availableRightViewProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
230 | 164 |
this.availableRightViewProperties.removeAll(pViewRightProperties); |
231 | 165 |
|
232 | 166 |
propertyNames = this.getStringParameterValue(ConcordancePreferences.KEYWORD_ANALYSIS_PROPERTIES); |
233 |
this.pAnalysisKeywordProperties = Concordance.stringToProperties(corpus, propertyNames);
|
|
167 |
this.pAnalysisKeywordProperties = Property.stringToProperties(corpus, propertyNames);
|
|
234 | 168 |
this.availableKeywordSortProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
235 | 169 |
this.availableKeywordSortProperties.removeAll(pAnalysisKeywordProperties); |
236 | 170 |
|
237 | 171 |
propertyNames = this.getStringParameterValue(ConcordancePreferences.LEFT_ANALYSIS_PROPERTIES); |
238 |
this.pAnalysisLeftProperties = Concordance.stringToProperties(corpus, propertyNames);
|
|
172 |
this.pAnalysisLeftProperties = Property.stringToProperties(corpus, propertyNames);
|
|
239 | 173 |
this.availableLeftSortProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
240 | 174 |
this.availableLeftSortProperties.removeAll(pAnalysisLeftProperties); |
241 | 175 |
|
242 | 176 |
propertyNames = this.getStringParameterValue(ConcordancePreferences.RIGHT_ANALYSIS_PROPERTIES); |
243 |
this.pAnalysisRightProperties = Concordance.stringToProperties(corpus, propertyNames);
|
|
177 |
this.pAnalysisRightProperties = Property.stringToProperties(corpus, propertyNames);
|
|
244 | 178 |
this.availableRightSortProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
245 | 179 |
this.availableRightSortProperties.removeAll(pAnalysisRightProperties); |
246 | 180 |
|
... | ... | |
254 | 188 |
this.pViewRefPattern = new ReferencePattern(refProperty); |
255 | 189 |
} |
256 | 190 |
} else { |
257 |
this.pViewRefPattern = Concordance.stringToReferencePattern(corpus, refPropertyNames);
|
|
191 |
this.pViewRefPattern = ReferencePattern.stringToReferencePattern(corpus, refPropertyNames);
|
|
258 | 192 |
} |
259 | 193 |
|
260 | 194 |
refPropertyNames = this.getStringParameterValue(ConcordancePreferences.ANALYSIS_REFERENCEPATTERN); |
... | ... | |
267 | 201 |
this.pAnalysisRefPattern = new ReferencePattern(refProperty); |
268 | 202 |
} |
269 | 203 |
} else { |
270 |
this.pAnalysisRefPattern = Concordance.stringToReferencePattern(corpus, refPropertyNames);
|
|
204 |
this.pAnalysisRefPattern = ReferencePattern.stringToReferencePattern(corpus, refPropertyNames);
|
|
271 | 205 |
} |
272 | 206 |
} catch (CqiClientException e) { |
273 | 207 |
// TODO Auto-generated catch block |
... | ... | |
1203 | 1137 |
if (p instanceof List<?>) this.pAnalysisLeftProperties = (List<Property>)p; |
1204 | 1138 |
else { |
1205 | 1139 |
String v = p.toString(); |
1206 |
this.pAnalysisLeftProperties = Concordance.stringToProperties(getCorpus(), v);
|
|
1140 |
this.pAnalysisLeftProperties = Property.stringToProperties(getCorpus(), v);
|
|
1207 | 1141 |
} |
1208 | 1142 |
} |
1209 | 1143 |
|
... | ... | |
1212 | 1146 |
if (p instanceof List<?>) this.pAnalysisRightProperties = (List<Property>)p; |
1213 | 1147 |
else { |
1214 | 1148 |
String v = p.toString(); |
1215 |
this.pAnalysisRightProperties = Concordance.stringToProperties(getCorpus(), v);
|
|
1149 |
this.pAnalysisRightProperties = Property.stringToProperties(getCorpus(), v);
|
|
1216 | 1150 |
} |
1217 | 1151 |
} |
1218 | 1152 |
|
... | ... | |
1221 | 1155 |
if (p instanceof List<?>) this.pAnalysisKeywordProperties = (List<Property>)p; |
1222 | 1156 |
else { |
1223 | 1157 |
String v = p.toString(); |
1224 |
this.pAnalysisKeywordProperties = Concordance.stringToProperties(getCorpus(), v);
|
|
1158 |
this.pAnalysisKeywordProperties = Property.stringToProperties(getCorpus(), v);
|
|
1225 | 1159 |
} |
1226 | 1160 |
} |
1227 | 1161 |
|
... | ... | |
1230 | 1164 |
if (p instanceof List<?>) this.pViewLeftProperties = (List<Property>)p; |
1231 | 1165 |
else { |
1232 | 1166 |
String v = p.toString(); |
1233 |
this.pViewLeftProperties = Concordance.stringToProperties(getCorpus(), v);
|
|
1167 |
this.pViewLeftProperties = Property.stringToProperties(getCorpus(), v);
|
|
1234 | 1168 |
} |
1235 | 1169 |
} |
1236 | 1170 |
|
... | ... | |
1239 | 1173 |
if (p instanceof List<?>) this.pViewRightProperties = (List<Property>)p; |
1240 | 1174 |
else { |
1241 | 1175 |
String v = p.toString(); |
1242 |
this.pViewRightProperties = Concordance.stringToProperties(getCorpus(), v);
|
|
1176 |
this.pViewRightProperties = Property.stringToProperties(getCorpus(), v);
|
|
1243 | 1177 |
} |
1244 | 1178 |
} |
1245 | 1179 |
|
... | ... | |
1248 | 1182 |
if (p instanceof List<?>) this.pViewKeywordProperties = (List<Property>)p; |
1249 | 1183 |
else { |
1250 | 1184 |
String v = p.toString(); |
1251 |
this.pViewKeywordProperties = Concordance.stringToProperties(getCorpus(), v);
|
|
1185 |
this.pViewKeywordProperties = Property.stringToProperties(getCorpus(), v);
|
|
1252 | 1186 |
} |
1253 | 1187 |
} |
1254 | 1188 |
|
... | ... | |
1257 | 1191 |
if (p instanceof ReferencePattern) this.pViewRefPattern = (ReferencePattern)p; |
1258 | 1192 |
else { |
1259 | 1193 |
String v = p.toString(); |
1260 |
this.pViewRefPattern = Concordance.stringToReferencePattern(getCorpus(), v);
|
|
1194 |
this.pViewRefPattern = ReferencePattern.stringToReferencePattern(getCorpus(), v);
|
|
1261 | 1195 |
} |
1262 | 1196 |
} |
1263 | 1197 |
|
... | ... | |
1266 | 1200 |
if (p instanceof ReferencePattern) this.pAnalysisRefPattern = (ReferencePattern)p; |
1267 | 1201 |
else { |
1268 | 1202 |
String v = p.toString(); |
1269 |
this.pAnalysisRefPattern = Concordance.stringToReferencePattern(getCorpus(), v);
|
|
1203 |
this.pAnalysisRefPattern = ReferencePattern.stringToReferencePattern(getCorpus(), v);
|
|
1270 | 1204 |
} |
1271 | 1205 |
} |
1272 | 1206 |
|
tmp/org.txm.internalview.core/src/org/txm/functions/internal/InternalView.java (revision 543) | ||
---|---|---|
1 | 1 |
package org.txm.functions.internal; |
2 | 2 |
|
3 | 3 |
import java.io.File; |
4 |
import java.io.PrintWriter; |
|
4 | 5 |
import java.util.ArrayList; |
5 | 6 |
import java.util.Collection; |
6 | 7 |
import java.util.HashMap; |
7 | 8 |
import java.util.LinkedHashMap; |
8 | 9 |
import java.util.List; |
9 | 10 |
|
11 |
import org.apache.commons.lang.StringUtils; |
|
10 | 12 |
import org.txm.core.results.TXMParameters; |
11 | 13 |
import org.txm.core.results.TXMResult; |
12 | 14 |
import org.txm.internalview.core.Messages; |
... | ... | |
19 | 21 |
import org.txm.searchengine.cqp.corpus.StructuralUnitProperty; |
20 | 22 |
import org.txm.searchengine.cqp.corpus.query.Match; |
21 | 23 |
import org.txm.searchengine.cqp.corpus.query.Query; |
24 |
import org.txm.utils.io.IOUtils; |
|
22 | 25 |
|
23 | 26 |
public class InternalView extends TXMResult { |
24 | 27 |
|
25 |
Corpus corpus; |
|
26 |
List<Property> pProperties; |
|
27 |
StructuralUnit pStructure; |
|
28 |
List<StructuralUnitProperty> pStructProperties; |
|
29 |
Integer pCurrentStruct = -1; |
|
28 |
protected List<Property> availablesProperties; |
|
29 |
protected List<StructuralUnit> availableStructs; |
|
30 |
protected List<StructuralUnitProperty> availableStructuralUnitProperties; |
|
31 |
protected Corpus corpus; |
|
32 |
protected List<Match> matches = new ArrayList<Match>(); |
|
33 |
protected int nmatches = 0; |
|
34 |
|
|
35 |
protected Integer pCurrentPage = -1; |
|
36 |
protected List<Property> pProperties; |
|
30 | 37 |
|
31 |
int nmatches = 0;
|
|
32 |
List<Match> matches = new ArrayList<Match>();
|
|
38 |
protected List<StructuralUnitProperty> pStructProperties;
|
|
39 |
protected StructuralUnit pStructure;
|
|
33 | 40 |
|
34 |
|
|
35 | 41 |
public InternalView(Corpus corpus) { |
36 | 42 |
super(corpus); |
37 | 43 |
this.corpus = corpus; |
44 |
|
|
45 |
try { |
|
46 |
String propNames = this.getStringParameterValue(InternalViewPreferences.PROPERTIES); |
|
47 |
pProperties = Property.stringToProperties(corpus, propNames); |
|
48 |
availablesProperties = new ArrayList<Property>(corpus.getOrderedProperties()); |
|
49 |
availablesProperties.removeAll(pProperties); |
|
50 |
|
|
51 |
propNames = this.getStringParameterValue(InternalViewPreferences.STRUCTURALUNITS); |
|
52 |
availableStructs = corpus.getStructuralUnits(); |
|
53 |
pStructure = StructuralUnit.stringToStructuralUnits(corpus, propNames).get(0); |
|
54 |
availableStructs.remove(pStructure); |
|
55 |
|
|
56 |
propNames = this.getStringParameterValue(InternalViewPreferences.STRUCTURALUNITPROPERTIES); |
|
57 |
availableStructuralUnitProperties = pStructure.getProperties(); |
|
58 |
pStructProperties = StructuralUnitProperty.stringToStructuralUnitProperties(corpus, propNames); |
|
59 |
availableStructuralUnitProperties.removeAll(pStructProperties); |
|
60 |
|
|
61 |
} catch (CqiClientException e) { |
|
62 |
e.printStackTrace(); |
|
63 |
} |
|
38 | 64 |
} |
39 | 65 |
|
40 |
public void setParameters(List<Property> properties, StructuralUnit struct, List<StructuralUnitProperty> structProperties, Integer currentStructure) { |
|
41 |
if (properties != null) this.pProperties = properties; |
|
42 |
if (struct != null) this.pStructure = struct; |
|
43 |
if (structProperties != null) this.pStructProperties = structProperties; |
|
44 |
if (currentStructure != null) this.pCurrentStruct = currentStructure; |
|
45 |
|
|
46 |
dirty = true; |
|
66 |
@Override |
|
67 |
protected boolean _compute(boolean update) throws Exception { |
|
68 |
//find struct start-end |
|
69 |
Query query = new Query("<"+pStructure.getName()+"> [] expand to "+pStructure); //$NON-NLS-1$ //$NON-NLS-2$ |
|
70 |
//System.out.println(query); |
|
71 |
QueryResult result = corpus.query(query, "test", false); //$NON-NLS-1$ |
|
72 |
nmatches = result.getNMatch(); |
|
73 |
if (nmatches > 0) { |
|
74 |
matches = result.getMatches(); |
|
75 |
} |
|
76 |
result.drop(); |
|
77 |
//System.out.println(matches); |
|
78 |
dirty = false; |
|
79 |
return nmatches > 0; |
|
47 | 80 |
} |
48 | 81 |
|
49 |
public String getStructInfos() { |
|
82 |
@Override |
|
83 |
public boolean canCompute() { |
|
84 |
return corpus != null && |
|
85 |
pStructure != null && |
|
86 |
pProperties != null && |
|
87 |
pProperties.size() > 0 && |
|
88 |
pStructProperties != null && |
|
89 |
pStructProperties.size() > 0; |
|
90 |
} |
|
50 | 91 |
|
51 |
try { |
|
52 |
if (pStructProperties.size() > 0) { |
|
53 |
String str = Messages.InternalView_3; |
|
54 |
for (Property sup : pStructProperties) { |
|
55 |
int[] array = {getCurrentSegmentNo()}; |
|
56 |
str += " "+sup.getName()+"="+CQPEngine.getCqiClient().struc2Str(sup.getQualifiedName(), array)[0]; //$NON-NLS-1$ //$NON-NLS-2$ |
|
57 |
} |
|
58 |
return str; |
|
59 |
} |
|
60 |
} catch (Exception e) { |
|
61 |
System.out.println(Messages.InternalView_6+e.getMessage()); |
|
62 |
org.txm.utils.logger.Log.printStackTrace(e); |
|
63 |
} |
|
64 |
return Messages.InternalView_7; |
|
92 |
@Override |
|
93 |
public void clean() { |
|
94 |
// TODO Auto-generated method stub |
|
65 | 95 |
} |
66 | 96 |
|
67 |
public HashMap<Property, List<String>> getNext() throws CqiClientException { |
|
68 |
int next = pCurrentStruct + 1; |
|
69 |
if (next < nmatches) { |
|
70 |
return getPage(next); |
|
71 |
} |
|
72 |
return new HashMap<Property, List<String>>(); |
|
97 |
public List<Property> getAvailableProperties() { |
|
98 |
return availablesProperties; |
|
73 | 99 |
} |
74 | 100 |
|
75 |
public HashMap<Property, List<String>> getPrevious() throws CqiClientException { |
|
76 |
int previous = pCurrentStruct - 1; |
|
77 |
if (previous >= 0 && previous < nmatches) { |
|
78 |
return getPage(previous); |
|
79 |
} |
|
80 |
return new HashMap<Property, List<String>>(); |
|
101 |
public List<StructuralUnit> getAvailableStructs() { |
|
102 |
return availableStructs; |
|
81 | 103 |
} |
82 | 104 |
|
83 |
public HashMap<Property, List<String>> getFirst() throws CqiClientException { |
|
84 |
if (0 < nmatches) { |
|
85 |
return getPage(0); |
|
86 |
} |
|
87 |
return new HashMap<Property, List<String>>(); |
|
105 |
public Corpus getCorpus() { |
|
106 |
return corpus; |
|
88 | 107 |
} |
89 | 108 |
|
90 |
public HashMap<Property, List<String>> getLast() throws CqiClientException { |
|
91 |
if (nmatches - 1 >= 0) { |
|
92 |
return getPage(nmatches - 1); |
|
109 |
public String getCurrentLocation() { |
|
110 |
return ""+(pCurrentPage+1); //$NON-NLS-1$ |
|
111 |
} |
|
112 |
|
|
113 |
public HashMap<Property, List<String>> getCurrentPage() throws CqiClientException { |
|
114 |
if (pCurrentPage == null || pCurrentPage < 0) { |
|
115 |
pCurrentPage = 0; |
|
93 | 116 |
} |
94 |
return new HashMap<Property, List<String>>(); |
|
117 |
HashMap<Property, List<String>> current = getPage(pCurrentPage); |
|
118 |
return current; |
|
95 | 119 |
} |
96 | 120 |
|
121 |
public Integer getCurrentSegmentNo() { |
|
122 |
return pCurrentPage; |
|
123 |
} |
|
124 |
|
|
125 |
public String getDetails() { |
|
126 |
return corpus.getName()+" "+pStructure.getName()+" "+(pCurrentPage+1); //$NON-NLS-1$ //$NON-NLS-2$ |
|
127 |
} |
|
128 |
|
|
129 |
public Integer getFirst() throws CqiClientException { |
|
130 |
pCurrentPage = 0; |
|
131 |
return pCurrentPage; |
|
132 |
} |
|
133 |
|
|
134 |
public Integer getLast() throws CqiClientException { |
|
135 |
pCurrentPage = nmatches -1; |
|
136 |
return pCurrentPage; |
|
137 |
} |
|
138 |
|
|
139 |
public String getLocationTail() { |
|
140 |
if (nmatches > 0) |
|
141 |
return " / "+nmatches; //$NON-NLS-1$ |
|
142 |
return ""; |
|
143 |
} |
|
144 |
|
|
145 |
@Override |
|
146 |
public String getName() { |
|
147 |
if (pStructure != null) return pStructure.getName()+" "+pCurrentPage; |
|
148 |
return corpus.getName(); |
|
149 |
} |
|
150 |
|
|
151 |
public Integer getNext() throws CqiClientException { |
|
152 |
if (pCurrentPage < nmatches -1 ) { |
|
153 |
pCurrentPage++; |
|
154 |
} |
|
155 |
return pCurrentPage; |
|
156 |
} |
|
157 |
|
|
158 |
public int getNSegment() { |
|
159 |
return nmatches; |
|
160 |
} |
|
161 |
|
|
97 | 162 |
/** |
98 | 163 |
* get the ith page and set the current page number to i |
99 | 164 |
* |
... | ... | |
113 | 178 |
for (Property prop : pProperties) { |
114 | 179 |
rez.put(prop, Match.getValuesForProperty(prop, p)); |
115 | 180 |
} |
116 |
pCurrentStruct = i;
|
|
181 |
pCurrentPage = i;
|
|
117 | 182 |
} |
118 | 183 |
return rez; |
119 | 184 |
} |
120 | 185 |
|
121 |
public void printNext() throws CqiClientException { |
|
122 |
HashMap<Property, List<String>> seg = getNext(); |
|
123 |
if (seg.size() > 0) |
|
124 |
System.out.println(seg); |
|
186 |
public Integer getPrevious() throws CqiClientException { |
|
187 |
pCurrentPage = Math.max(0, pCurrentPage-1); |
|
188 |
return pCurrentPage; |
|
125 | 189 |
} |
126 | 190 |
|
127 |
public void printPrevious() throws CqiClientException { |
|
128 |
HashMap<Property, List<String>> seg = getPrevious(); |
|
129 |
if (seg.size() > 0) |
|
130 |
System.out.println(seg); |
|
131 |
} |
|
132 |
|
|
133 |
public void printSeg(HashMap<Property, List<String>> seg) { |
|
134 |
Collection<List<String>> values = seg.values(); |
|
135 |
if(values.size() == 0) return; |
|
136 |
|
|
137 |
for(List<String> list : values) { |
|
138 |
for(String value : list) |
|
139 |
System.out.print("\t"+value); //$NON-NLS-1$ |
|
140 |
System.out.println(); |
|
141 |
} |
|
142 |
System.out.println(); |
|
143 |
} |
|
144 |
|
|
145 |
public Corpus getCorpus() { |
|
146 |
return corpus; |
|
147 |
} |
|
148 |
|
|
149 |
public StructuralUnit getStructuralUnit() { |
|
150 |
return pStructure; |
|
151 |
} |
|
152 |
|
|
153 | 191 |
public List<Property> getProperties() { |
154 | 192 |
return pProperties; |
155 | 193 |
} |
156 | 194 |
|
157 |
public Integer getCurrentSegmentNo() { |
|
158 |
return pCurrentStruct; |
|
159 |
} |
|
160 |
|
|
161 |
public int getNSegment() { |
|
162 |
return nmatches; |
|
163 |
} |
|
164 |
|
|
165 | 195 |
public int getSegmentLength() { |
166 | 196 |
if (matches.size() == 0) return 0; |
167 |
if (matches.size() < pCurrentStruct) return 0;
|
|
168 |
if (pCurrentStruct == null) return 0;
|
|
197 |
if (matches.size() < pCurrentPage) return 0;
|
|
198 |
if (pCurrentPage == null) return 0;
|
|
169 | 199 |
|
170 |
Match m = matches.get(pCurrentStruct);
|
|
200 |
Match m = matches.get(pCurrentPage);
|
|
171 | 201 |
return m.size(); |
172 | 202 |
} |
173 | 203 |
|
174 |
public boolean isFirst() { |
|
175 |
return pCurrentStruct == 0; |
|
204 |
@Override |
|
205 |
public String getSimpleName() { |
|
206 |
return getName(); |
|
176 | 207 |
} |
177 | 208 |
|
178 |
public boolean isLast() { |
|
179 |
return pCurrentStruct == nmatches - 1; |
|
180 |
} |
|
209 |
public String getStructInfos() { |
|
181 | 210 |
|
182 |
public String getLocationTail() { |
|
183 |
if (nmatches > 0) |
|
184 |
return " / "+nmatches; //$NON-NLS-1$ |
|
185 |
return ""; |
|
211 |
try { |
|
212 |
if (pStructProperties.size() > 0) { |
|
213 |
String str = Messages.InternalView_3; |
|
214 |
for (Property sup : pStructProperties) { |
|
215 |
int[] array = {getCurrentSegmentNo()}; |
|
216 |
str += " "+sup.getName()+"="+CQPEngine.getCqiClient().struc2Str(sup.getQualifiedName(), array)[0]; //$NON-NLS-1$ //$NON-NLS-2$ |
|
217 |
} |
|
218 |
return str; |
|
219 |
} |
|
220 |
} catch (Exception e) { |
|
221 |
System.out.println(Messages.InternalView_6+e.getMessage()); |
|
222 |
org.txm.utils.logger.Log.printStackTrace(e); |
|
223 |
} |
|
224 |
return Messages.InternalView_7; |
|
186 | 225 |
} |
187 | 226 |
|
188 |
public String getCurrentLocation() {
|
|
189 |
return ""+(pCurrentStruct+1); //$NON-NLS-1$
|
|
227 |
public StructuralUnit getStructuralUnit() {
|
|
228 |
return pStructure;
|
|
190 | 229 |
} |
191 | 230 |
|
192 |
public String getDetails() { |
|
193 |
// TODO Auto-generated method stub |
|
194 |
return corpus.getName()+" "+pStructure.getName()+" "+(pCurrentStruct+1); //$NON-NLS-1$ //$NON-NLS-2$ |
|
231 |
public boolean isFirst() { |
|
232 |
return pCurrentPage == 0; |
|
195 | 233 |
} |
196 | 234 |
|
197 |
@Override |
|
198 |
public String getName() { |
|
199 |
// TODO Auto-generated method stub |
|
200 |
return null; |
|
235 |
public boolean isLast() { |
|
236 |
return pCurrentPage == nmatches - 1; |
|
201 | 237 |
} |
202 | 238 |
|
203 |
@Override |
|
204 |
public String getSimpleName() { |
|
205 |
// TODO Auto-generated method stub |
|
206 |
return null; |
|
239 |
public void printSeg(HashMap<Property, List<String>> seg) { |
|
240 |
Collection<List<String>> values = seg.values(); |
|
241 |
if(values.size() == 0) return; |
|
242 |
|
|
243 |
for(List<String> list : values) { |
|
244 |
for(String value : list) |
|
245 |
System.out.print("\t"+value); //$NON-NLS-1$ |
|
246 |
System.out.println(); |
|
247 |
} |
|
248 |
System.out.println(); |
|
207 | 249 |
} |
208 | 250 |
|
209 |
@Override |
|
210 |
public void clean() { |
|
211 |
// TODO Auto-generated method stub |
|
212 |
|
|
251 |
public void setParameters(List<Property> properties, StructuralUnit struct, List<StructuralUnitProperty> structProperties, Integer currentStructure) { |
|
252 |
if (properties != null) this.pProperties = properties; |
|
253 |
if (struct != null) this.pStructure = struct; |
|
254 |
if (structProperties != null) this.pStructProperties = structProperties; |
|
255 |
if (currentStructure != null) this.pCurrentPage = currentStructure; |
|
256 |
|
|
257 |
dirty = true; |
|
213 | 258 |
} |
214 | 259 |
|
215 | 260 |
@Override |
216 |
public boolean canCompute() {
|
|
217 |
return corpus != null && pStructure != null && pProperties != null && pProperties.size() > 0 && pStructProperties != null && pStructProperties.size() > 0;
|
|
261 |
public boolean setParameters(TXMParameters parameters) {
|
|
262 |
return false;
|
|
218 | 263 |
} |
219 | 264 |
|
220 |
@Override |
|
221 |
protected boolean _compute(boolean update) throws Exception { |
|
222 |
//find struct start-end |
|
223 |
Query query = new Query("<"+pStructure.getName()+"> [] expand to "+pStructure); //$NON-NLS-1$ //$NON-NLS-2$ |
|
224 |
//System.out.println(query); |
|
225 |
QueryResult result = corpus.query(query, "test", false); //$NON-NLS-1$ |
|
226 |
nmatches = result.getNMatch(); |
|
227 |
if (nmatches > 0) { |
|
228 |
matches = result.getMatches(); |
|
229 |
} |
|
230 |
result.drop(); |
|
231 |
//System.out.println(matches); |
|
232 |
dirty = false; |
|
233 |
return nmatches > 0; |
|
265 |
public void setStructuralUnit(StructuralUnit structuralUnit) { |
|
266 |
this.pStructure = structuralUnit; |
|
234 | 267 |
} |
235 | 268 |
|
236 | 269 |
@Override |
237 | 270 |
public boolean toTxt(File outfile, String encoding, String colseparator, String txtseparator) throws Exception { |
238 |
// TODO Auto-generated method stub |
|
271 |
PrintWriter writer = IOUtils.getWriter(outfile, encoding); |
|
272 |
for (int ipage = 0 ; ipage < nmatches ; ipage++) { // run through all pages |
|
273 |
LinkedHashMap<Property, List<String>> page = getPage(ipage); |
|
274 |
for (Property p : pProperties) { |
|
275 |
writer.println(StringUtils.join(page.get(p), colseparator)); |
|
276 |
} |
|
277 |
writer.println("\n\n"); |
|
278 |
} |
|
279 |
writer.close(); |
|
239 | 280 |
return false; |
240 | 281 |
} |
241 | 282 |
|
242 |
@Override |
|
243 |
public boolean setParameters(TXMParameters parameters) { |
|
244 |
return false; |
|
283 |
public void setStructuralUnitProperties(ArrayList<StructuralUnitProperty> supList) { |
|
284 |
this.pStructProperties = supList; |
|
245 | 285 |
} |
246 | 286 |
|
247 |
public HashMap<Property, List<String>> getCurrentPage() throws CqiClientException { |
|
248 |
if (pCurrentStruct == null || pCurrentStruct < 0) { |
|
249 |
return getFirst(); |
|
250 |
} |
|
251 |
HashMap<Property, List<String>> current = getPage(pCurrentStruct); |
|
252 |
return current; |
|
287 |
public List<StructuralUnitProperty> getAvailableStructuralUnitProperties() { |
|
288 |
return availableStructuralUnitProperties; |
|
253 | 289 |
} |
254 | 290 |
|
255 |
@Override |
|
256 |
public boolean saveParameters() { |
|
257 |
// TODO Auto-generated method stub |
|
258 |
return false; |
|
291 |
public List<StructuralUnitProperty> getStructuralUnitProperties() { |
|
292 |
return pStructProperties; |
|
259 | 293 |
} |
260 | 294 |
} |
tmp/org.txm.internalview.core/src/org/txm/functions/internal/InternalViewPreferences.java (revision 543) | ||
---|---|---|
9 | 9 |
|
10 | 10 |
public static String PREFERENCES_NODE = FrameworkUtil.getBundle(InternalViewPreferences.class).getSymbolicName(); |
11 | 11 |
|
12 |
/** the selected word properties */ |
|
13 |
public static final String PROPERTIES = "properties"; |
|
14 |
/** the selected structural units */ |
|
15 |
public static final String STRUCTURALUNITS = "structuralunits"; |
|
16 |
/** the selected structure properties */ |
|
17 |
public static final String STRUCTURALUNITPROPERTIES = "structuralunitsproperties"; |
|
18 |
/** the current page number */ |
|
19 |
public static final String CURRENTPAGE = "current_page"; |
|
20 |
|
|
12 | 21 |
@Override |
13 | 22 |
public void initializeDefaultPreferences() { |
14 | 23 |
Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE); |
24 |
|
|
25 |
preferences.put(PROPERTIES, "word"); |
|
26 |
preferences.put(STRUCTURALUNITS, "text"); |
|
27 |
preferences.putInt(CURRENTPAGE, 0); |
|
15 | 28 |
} |
16 | 29 |
} |
tmp/org.txm.internalview.rcp/src/org/txm/internal/rcp/editors/InternalViewEditor.java (revision 543) | ||
---|---|---|
5 | 5 |
import java.util.HashSet; |
6 | 6 |
import java.util.List; |
7 | 7 |
|
8 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
9 |
import org.eclipse.core.runtime.IStatus; |
|
10 |
import org.eclipse.core.runtime.Status; |
|
11 | 8 |
import org.eclipse.jface.action.MenuManager; |
12 | 9 |
import org.eclipse.jface.viewers.ColumnLabelProvider; |
13 | 10 |
import org.eclipse.jface.viewers.IStructuredContentProvider; |
... | ... | |
37 | 34 |
import org.txm.internalview.rcp.AdapterFactory; |
38 | 35 |
import org.txm.internalview.rcp.Messages; |
39 | 36 |
import org.txm.rcp.IImageKeys; |
40 |
import org.txm.rcp.JobsTimer; |
|
41 | 37 |
import org.txm.rcp.editors.TXMEditorPart; |
42 | 38 |
import org.txm.rcp.editors.TXMResultEditorInput; |
43 | 39 |
import org.txm.rcp.editors.TableKeyListener; |
44 | 40 |
import org.txm.rcp.swt.widget.NavigationWidget; |
45 | 41 |
import org.txm.rcp.swt.widget.PropertiesSelector; |
46 |
import org.txm.rcp.utils.JobHandler; |
|
47 | 42 |
import org.txm.rcp.views.corpora.CorporaView; |
48 | 43 |
import org.txm.searchengine.cqp.CQPEngine; |
49 | 44 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
... | ... | |
59 | 54 |
|
60 | 55 |
public static final String ID = InternalViewEditor.class.getName(); |
61 | 56 |
|
62 |
Corpus corpus; |
|
63 |
InternalView internalView; |
|
57 |
protected Corpus corpus; |
|
58 |
protected InternalView internalView; |
|
59 |
|
|
60 |
protected Combo structCombo; |
|
61 |
|
|
62 |
protected PropertiesSelector<Property> propSelector; |
|
63 |
protected PropertiesSelector<StructuralUnitProperty> structSelector; |
|
64 |
protected TableViewer viewer; |
|
65 |
protected Table table; |
|
66 |
protected NavigationWidget navigation; |
|
67 |
protected HashMap<Property, List<String>> lines; |
|
64 | 68 |
|
65 |
Combo structCombo; |
|
66 |
List<StructuralUnit> availableStructs; |
|
67 |
PropertiesSelector propSelector; |
|
68 |
PropertiesSelector structSelector; |
|
69 |
List<Property> availables; |
|
70 |
List<Property> selected; |
|
71 |
TableViewer viewer; |
|
72 |
Table table; |
|
73 |
NavigationWidget navigation; |
|
74 |
HashMap<Property, List<String>> line; |
|
69 |
protected Label structInfos; |
|
70 |
protected Composite formPanel; |
|
71 |
protected Composite navigationPanel; |
|
72 |
protected Composite resultPanel; |
|
75 | 73 |
|
76 |
Label structInfos; |
|
77 |
private Composite formPanel; |
|
78 |
private Composite navigationPanel; |
|
79 |
private Composite resultPanel; |
|
80 |
|
|
81 | 74 |
/* (non-Javadoc) |
82 | 75 |
* @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput) |
83 | 76 |
*/ |
... | ... | |
112 | 105 |
return false; |
113 | 106 |
} |
114 | 107 |
|
115 |
@Override |
|
116 |
public void computeResult() { |
|
117 |
|
|
118 |
final StructuralUnit struct = this.availableStructs.get(this.structCombo.getSelectionIndex()); |
|
108 |
public void updateParameters() { |
|
109 |
final StructuralUnit struct = internalView.getAvailableStructs().get(this.structCombo.getSelectionIndex()); |
|
119 | 110 |
final List<Property> properties = propSelector.getProperties(); |
120 | 111 |
final List<StructuralUnitProperty> supList = new ArrayList<StructuralUnitProperty>(); |
121 |
List<Property> pList = structSelector.getProperties(); |
|
112 |
List<StructuralUnitProperty> pList = structSelector.getProperties();
|
|
122 | 113 |
for (Property property : pList) if (property instanceof StructuralUnitProperty) supList.add((StructuralUnitProperty) property); |
123 | 114 |
|
124 | 115 |
Integer currentPage = internalView.getCurrentSegmentNo(); |
125 | 116 |
if (currentPage == null) currentPage = 0; |
126 | 117 |
internalView.setParameters(properties, struct, supList, currentPage); |
118 |
} |
|
119 |
|
|
120 |
@Override |
|
121 |
public void refresh(boolean update) { |
|
127 | 122 |
|
128 |
JobHandler jobhandler = new JobHandler(Messages.InternalViewEditor_1) { |
|
129 |
@Override |
|
130 |
protected IStatus run(IProgressMonitor monitor) { |
|
131 |
this.runInit(monitor); |
|
132 |
JobsTimer.start(); |
|
133 |
monitor.beginTask(Messages.InternalViewEditor_2, 100); |
|
134 |
try { |
|
135 |
if (!(internalView.canCompute() && internalView.isDirty())) |
|
136 |
return Status.CANCEL_STATUS; |
|
137 |
|
|
138 |
internalView.compute(false, monitor); |
|
139 |
firePropertyChange(PROP_DIRTY); // refresh the dirtiness state |
|
140 |
line = internalView.getCurrentPage(); // get the first page if pCurrentPage is not set |
|
141 |
monitor.beginTask(Messages.InternalViewEditor_3, 100); |
|
142 |
this.syncExec(new Runnable() { |
|
143 |
@Override |
|
144 |
public void run() { |
|
145 |
try { |
|
146 |
fillResultArea(); |
|
147 |
CorporaView.refresh(); |
|
148 |
} catch (CqiClientException e) { |
|
149 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
|
150 |
} |
|
151 |
} |
|
152 |
}); |
|
153 |
} catch (ThreadDeath td) { |
|
154 |
return Status.CANCEL_STATUS; |
|
155 |
} catch(Exception e) { |
|
156 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
|
157 |
} finally { |
|
158 |
monitor.done(); |
|
159 |
JobsTimer.stopAndPrint(); |
|
160 |
} |
|
161 |
return Status.OK_STATUS; |
|
162 |
} |
|
163 |
}; |
|
164 |
jobhandler.schedule(); |
|
123 |
// JobHandler jobhandler = new JobHandler(Messages.InternalViewEditor_1) { |
|
124 |
// @Override |
|
125 |
// protected IStatus run(IProgressMonitor monitor) { |
|
126 |
// this.runInit(monitor); |
|
127 |
// JobsTimer.start(); |
|
128 |
// monitor.beginTask(Messages.InternalViewEditor_2, 100); |
|
129 |
// try { |
|
130 |
try { |
|
131 |
lines = internalView.getCurrentPage(); |
|
132 |
fillResultArea(); |
|
133 |
CorporaView.refresh(); |
|
134 |
} catch (CqiClientException e) { |
|
135 |
// TODO Auto-generated catch block |
|
136 |
e.printStackTrace(); |
|
137 |
} // get the first page if pCurrentPage is not set |
|
138 |
// monitor.beginTask(Messages.InternalViewEditor_3, 100); |
|
139 |
// this.syncExec(new Runnable() { |
|
140 |
// @Override |
|
141 |
// public void run() { |
|
142 |
// try { |
|
143 |
|
|
144 |
// } catch (CqiClientException e) { |
|
145 |
// org.txm.rcp.utils.Logger.printStackTrace(e); |
|
146 |
// } |
|
147 |
// } |
|
148 |
// }); |
|
149 |
// } catch (ThreadDeath td) { |
|
150 |
// return Status.CANCEL_STATUS; |
|
151 |
// } catch(Exception e) { |
|
152 |
// org.txm.rcp.utils.Logger.printStackTrace(e); |
|
153 |
// } finally { |
|
154 |
// monitor.done(); |
|
155 |
// JobsTimer.stopAndPrint(); |
|
156 |
// } |
|
157 |
// return Status.OK_STATUS; |
|
158 |
// } |
|
159 |
// }; |
|
160 |
// jobhandler.schedule(); |
|
165 | 161 |
} |
166 | 162 |
|
167 | 163 |
public void fillResultArea() throws CqiClientException |
168 | 164 |
{ |
169 | 165 |
initColumns(); |
170 |
viewer.setInput(line); |
|
166 |
lines = internalView.getCurrentPage(); |
|
167 |
viewer.setInput(lines); |
|
171 | 168 |
viewer.refresh(); |
172 | 169 |
|
173 | 170 |
navigation.setInfoLineText(""+(internalView.getCurrentSegmentNo()+1), internalView.getLocationTail()); //$NON-NLS-1$ |
... | ... | |
208 | 205 |
structComboLabel.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true)); |
209 | 206 |
structCombo = new Combo(formPanel, SWT.NONE); |
210 | 207 |
structCombo.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true)); |
208 |
structCombo.addSelectionListener(new SelectionListener() { |
|
209 |
@Override |
|
210 |
public void widgetSelected(SelectionEvent e) { |
|
211 |
internalView.setStructuralUnit(internalView.getAvailableStructs().get(structCombo.getSelectionIndex())); |
|
212 |
try { |
|
213 |
internalView.getFirst(); |
|
214 |
fillResultArea(); |
|
215 |
} catch (CqiClientException e1) { |
|
216 |
System.out.println("Error: "+e1.getLocalizedMessage()); |
|
217 |
Log.printStackTrace(e1); |
|
218 |
} |
|
219 |
} |
|
220 |
|
|
221 |
@Override |
|
222 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
223 |
}); |
|
211 | 224 |
propSelector = new PropertiesSelector(formPanel, SWT.NONE); |
212 | 225 |
propSelector.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true)); |
213 | 226 |
propSelector.setLayout(new GridLayout(3, false)); |
... | ... | |
216 | 229 |
public void widgetSelected(SelectionEvent e) { |
217 | 230 |
internalView.setParameters(propSelector.getProperties(), null, null, null); |
218 | 231 |
try { |
219 |
line = internalView.getPage(internalView.getCurrentSegmentNo()); |
|
220 | 232 |
fillResultArea(); |
221 | 233 |
} catch (CqiClientException e1) { |
222 | 234 |
System.out.println("Error: "+e1.getLocalizedMessage()); |
... | ... | |
237 | 249 |
public void widgetSelected(SelectionEvent e) { |
238 | 250 |
ArrayList<StructuralUnitProperty> supList = new ArrayList<StructuralUnitProperty>(); |
239 | 251 |
for (Property property : structSelector.getProperties()) if (property instanceof StructuralUnitProperty) supList.add((StructuralUnitProperty) property); |
240 |
internalView.setParameters(null, null, supList, null);
|
|
252 |
internalView.setStructuralUnitProperties(supList);
|
|
241 | 253 |
try { |
242 |
line = internalView.getPage(internalView.getCurrentSegmentNo());
|
|
254 |
lines = internalView.getCurrentPage();
|
|
243 | 255 |
fillResultArea(); |
244 | 256 |
} catch (CqiClientException e1) { |
245 | 257 |
System.out.println("Error: "+e1.getLocalizedMessage()); |
... | ... | |
260 | 272 |
@Override |
261 | 273 |
public void widgetSelected(SelectionEvent e) { |
262 | 274 |
internalView.setParameters(null, null, null, 0); |
263 |
computeResult();
|
|
275 |
TXMEditorPart.compute(getResultData(), true, InternalViewEditor.this);
|
|
264 | 276 |
} |
265 | 277 |
|
266 | 278 |
@Override |
267 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
268 |
// TODO Auto-generated method stub |
|
269 |
} |
|
279 |
public void widgetDefaultSelected(SelectionEvent e) { } |
|
270 | 280 |
}); |
271 | 281 |
|
272 | 282 |
navigation = new NavigationWidget(navigationPanel, SWT.NONE); |
... | ... | |
295 | 305 |
public void widgetSelected(SelectionEvent e) { |
296 | 306 |
if (internalView != null) { |
297 | 307 |
try { |
298 |
line = internalView.getFirst();
|
|
308 |
internalView.getFirst(); |
|
299 | 309 |
fillResultArea(); // one segment at time |
300 | 310 |
|
301 | 311 |
navigation.setFirstEnabled(false); |
... | ... | |
317 | 327 |
public void widgetSelected(SelectionEvent e) { |
318 | 328 |
if (internalView != null) { |
319 | 329 |
try { |
320 |
line = internalView.getPrevious();
|
|
330 |
internalView.getPrevious(); |
|
321 | 331 |
fillResultArea(); // one segment at time |
322 | 332 |
|
323 | 333 |
navigation.setFirstEnabled(true); |
... | ... | |
339 | 349 |
public void widgetSelected(SelectionEvent e) { |
340 | 350 |
if (internalView != null) { |
341 | 351 |
try { |
342 |
line = internalView.getNext();
|
|
352 |
internalView.getNext(); |
|
343 | 353 |
fillResultArea(); // one segment at time |
344 | 354 |
|
345 | 355 |
navigation.setFirstEnabled(true); |
... | ... | |
361 | 371 |
public void widgetSelected(SelectionEvent e) { |
362 | 372 |
if (internalView != null) { |
363 | 373 |
try { |
364 |
line = internalView.getLast();
|
|
374 |
internalView.getLast(); |
|
365 | 375 |
fillResultArea(); // one segment at time |
366 | 376 |
|
367 | 377 |
navigation.setFirstEnabled(true); |
... | ... | |
427 | 437 |
|
428 | 438 |
createContextMenu(); |
429 | 439 |
|
430 |
computeResult();
|
|
440 |
TXMEditorPart.compute(getResultData(), true, InternalViewEditor.this);
|
|
431 | 441 |
} |
432 | 442 |
|
433 | 443 |
protected boolean goToPage(int next) throws CqiClientException { |
434 |
line = internalView.getPage(next); |
|
444 |
lines = internalView.getPage(next);
|
|
435 | 445 |
fillResultArea(); // one segment at time |
436 | 446 |
|
437 | 447 |
if (next == 0) { |
... | ... | |
453 | 463 |
} |
454 | 464 |
|
455 | 465 |
private void reloadStructuralUnitProperties() { |
456 |
StructuralUnit struct = availableStructs.get(structCombo.getSelectionIndex()); |
|
457 |
ArrayList<Property> availables = new ArrayList<Property>(struct.getOrderedProperties()); |
|
458 |
for (int i = 0 ; i < availables.size() ; i++) { |
|
459 |
String name = availables.get(i).getName(); |
|
460 |
if (name.equals("base") || name.equals("project")) //$NON-NLS-1$ //$NON-NLS-2$ |
|
461 |
availables.remove(i--); |
|
462 |
} |
|
463 |
ArrayList<Property> selected = new ArrayList<Property>(); |
|
464 |
if (availables.size() > 0) { |
|
465 |
selected.add(availables.remove(0)); |
|
466 |
} |
|
467 |
structSelector.setProperties(availables, selected); |
|
466 |
|
|
467 |
structSelector.setProperties(internalView.getAvailableStructuralUnitProperties(), internalView.getStructuralUnitProperties()); |
|
468 | 468 |
} |
469 | 469 |
|
470 | 470 |
HashMap<Property, TableViewerColumn> columns = new HashMap<Property, TableViewerColumn>(); |
... | ... | |
531 | 531 |
|
532 | 532 |
} |
533 | 533 |
|
534 |
|
|
535 | 534 |
public String buildQuery() { |
536 | 535 |
TableColumn[] cols = viewer.getTable().getColumns(); |
537 | 536 |
TableItem[] items = viewer.getTable().getItems(); |
... | ... | |
629 | 628 |
|
630 | 629 |
protected void initializeFields() { |
631 | 630 |
try { // init combos |
632 |
availables = new ArrayList<Property>(corpus.getOrderedProperties()); |
|
633 |
availableStructs = corpus.getStructuralUnits(); |
|
634 | 631 |
|
635 |
selected = new ArrayList<Property>();
|
|
632 |
propSelector.setProperties(internalView.getAvailableProperties(), internalView.getProperties());
|
|
636 | 633 |
|
637 |
if (internalView.getProperties() != null && internalView.getProperties().size() > 0) { |
|
638 |
selected = internalView.getProperties(); |
|
639 |
availables.removeAll(selected); |
|
640 |
propSelector.setProperties(availables, selected); |
|
641 |
} else { |
|
642 |
availables.remove(corpus.getProperty("word")); //$NON-NLS-1$ |
|
643 |
selected.add(corpus.getProperty("word")); //$NON-NLS-1$ |
|
644 |
propSelector.setCorpus(corpus); |
|
645 |
} |
|
646 |
|
|
647 | 634 |
if (internalView.getCurrentSegmentNo() != null) { |
648 | 635 |
Integer n = internalView.getCurrentSegmentNo(); |
649 | 636 |
n++; |
650 | 637 |
navigation.setInfoLineText(n.toString(), internalView.getLocationTail()); |
651 | 638 |
} |
652 | 639 |
|
653 |
for (StructuralUnit struct : availableStructs)
|
|
640 |
for (StructuralUnit struct : internalView.getAvailableStructs())
|
|
654 | 641 |
structCombo.add(struct.toString()); |
655 |
if (availableStructs.size() > 0) {
|
|
642 |
if (internalView.getAvailableStructs().size() > 0) {
|
|
656 | 643 |
int hasS = -1; |
657 | 644 |
int hasP = -1; |
658 |
for (int i = 0 ; i < availableStructs.size() ; i++) {
|
|
659 |
if (availableStructs.get(i).getName().equals("s")) hasS = i; //$NON-NLS-1$
|
|
660 |
else if (availableStructs.get(i).getName().equals("p")) hasP = i; //$NON-NLS-1$
|
|
645 |
for (int i = 0 ; i < internalView.getAvailableStructs().size() ; i++) {
|
|
646 |
if (internalView.getAvailableStructs().get(i).getName().equals("s")) hasS = i; //$NON-NLS-1$
|
|
647 |
else if (internalView.getAvailableStructs().get(i).getName().equals("p")) hasP = i; //$NON-NLS-1$
|
|
661 | 648 |
} |
662 | 649 |
|
663 | 650 |
if (hasS > 0) { |
... | ... | |
680 | 667 |
|
681 | 668 |
reloadStructuralUnitProperties(); |
682 | 669 |
} |
683 |
} catch (CqiClientException e) {
|
|
670 |
} catch (Exception e) { |
|
684 | 671 |
System.out.println(Messages.InternalViewEditor_10); |
685 | 672 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
686 | 673 |
} |
tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnit.java (revision 543) | ||
---|---|---|
32 | 32 |
import java.util.List; |
33 | 33 |
|
34 | 34 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
35 |
import org.txm.utils.logger.Log; |
|
35 | 36 |
|
36 | 37 |
// TODO: Auto-generated Javadoc |
37 | 38 |
/** |
... | ... | |
151 | 152 |
Collections.sort(props); |
152 | 153 |
return props; |
153 | 154 |
} |
155 |
|
|
156 |
public static List<StructuralUnit> stringToStructuralUnits(Corpus corpus, String v) { |
|
157 |
ArrayList<StructuralUnit> structs = new ArrayList<StructuralUnit>(); |
|
158 |
if (v == null) return structs; |
|
159 |
if (v.length() == 0) return structs; |
|
160 |
|
|
161 |
String[] split = v.split("\t"); |
|
162 |
for (String s : split) { |
|
163 |
StructuralUnit struc; |
|
164 |
try { |
|
165 |
struc = corpus.getStructuralUnit(s); |
|
166 |
} catch (CqiClientException e) { |
|
167 |
System.out.println("Error: "+v+" structure not found in "+corpus); |
|
168 |
Log.printStackTrace(e); |
|
169 |
return null; |
|
170 |
} |
|
171 |
if (struc != null) { |
|
172 |
structs.add(struc); |
|
173 |
} |
|
174 |
} |
|
175 |
return structs; |
|
176 |
} |
|
154 | 177 |
} |
tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java (revision 543) | ||
---|---|---|
52 | 52 |
/** The strucutral unit. */ |
53 | 53 |
private StructuralUnit structuralUnit; |
54 | 54 |
|
55 |
public static List<StructuralUnitProperty> stringToStructuralUnitProperties(Corpus corpus, String v) { |
|
56 |
ArrayList<StructuralUnitProperty> structs = new ArrayList<StructuralUnitProperty>(); |
|
57 |
if (v == null) return structs; |
|
58 |
if (v.length() == 0) return structs; |
|
59 |
|
|
60 |
String[] split = v.split("\t"); |
|
61 |
for (String s : split) { |
|
62 |
String[] split2 = s.split("_", 2); |
|
63 |
if (split2.length != 2) continue; |
|
64 |
try { |
|
65 |
StructuralUnit struc = corpus.getStructuralUnit(split2[0]); |
|
66 |
StructuralUnitProperty struc_p = struc.getProperty(split2[1]); |
|
67 |
if (struc_p != null) { |
|
68 |
structs.add(struc_p); |
|
69 |
} |
|
70 |
} catch (CqiClientException e) { |
|
71 |
System.out.println("Error: "+v+" structure property not found in "+corpus); |
|
72 |
Log.printStackTrace(e); |
|
73 |
return null; |
|
74 |
} |
|
75 |
|
|
76 |
} |
|
77 |
return structs; |
|
78 |
} |
|
79 |
|
|
55 | 80 |
/** |
56 | 81 |
* Instantiates a new structural unit property. |
57 | 82 |
* |
tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Property.java (revision 543) | ||
---|---|---|
28 | 28 |
package org.txm.searchengine.cqp.corpus; |
29 | 29 |
|
30 | 30 |
import java.io.Serializable; |
31 |
import java.util.ArrayList; |
|
32 |
import java.util.List; |
|
31 | 33 |
|
34 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
|
35 |
import org.txm.utils.logger.Log; |
|
36 |
|
|
32 | 37 |
/** |
33 | 38 |
* An abstract CQP corpus property. Represents a <strong>type</strong>, not a the value for a specific unit. |
34 | 39 |
* |
... | ... | |
40 | 45 |
|
41 | 46 |
private static final long serialVersionUID = -7769130002380230833L; |
42 | 47 |
|
48 |
/** |
|
49 |
* |
|
50 |
* @param corpus |
|
51 |
* @param v |
|
52 |
* @return a list of word properties read from a String |
|
53 |
*/ |
|
54 |
public static List<Property> stringToProperties(Corpus corpus, String v) { |
|
55 |
|
|
56 |
ArrayList<Property> props = new ArrayList<Property>(); |
|
57 |
if (v == null) return props; |
|
58 |
if (v.length() == 0) return props; |
|
59 |
|
|
60 |
String[] split = v.split("\t"); |
|
61 |
for (String s : split) { |
|
62 |
Property prop; |
|
63 |
try { |
|
64 |
prop = corpus.getProperty(s); |
|
65 |
} catch (CqiClientException e) { |
|
66 |
System.out.println("Error: "+v+" property not found in "+corpus); |
|
67 |
Log.printStackTrace(e); |
|
68 |
return null; |
|
69 |
} |
|
70 |
if (prop != null) { |
|
71 |
props.add(prop); |
|
72 |
} |
|
73 |
} |
|
74 |
return props; |
|
75 |
} |
|
76 |
|
|
77 |
|
|
43 | 78 |
/** The name. */ |
44 | 79 |
protected String name; |
45 | 80 |
|
tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/ReferencePattern.java (revision 543) | ||
---|---|---|
32 | 32 |
import java.util.List; |
33 | 33 |
|
34 | 34 |
import org.txm.core.messages.TXMCoreMessages; |
35 |
import org.txm.searchengine.cqp.corpus.Corpus; |
|
35 | 36 |
import org.txm.searchengine.cqp.corpus.Property; |
37 |
import org.txm.searchengine.cqp.corpus.StructuralUnit; |
|
36 | 38 |
import org.txm.searchengine.cqp.corpus.StructuralUnitProperty; |
37 | 39 |
|
38 | 40 |
// TODO: Auto-generated Javadoc |
... | ... | |
47 | 49 |
private List<Property> properties = new ArrayList<Property>(); |
48 | 50 |
|
49 | 51 |
/** |
52 |
* |
|
53 |
* @param corpus |
|
54 |
* @param v |
|
55 |
* @return a list of word and structure properties read from a String |
|
56 |
*/ |
|
57 |
public static ReferencePattern stringToReferencePattern(Corpus corpus, String v) { |
|
58 |
try { |
|
59 |
ReferencePattern props = new ReferencePattern(); |
|
60 |
if (v == null) return props; |
|
61 |
if (v.length() == 0) return props; |
|
62 |
|
|
63 |
String[] split = v.split("\t"); |
|
64 |
for (String s : split) { |
|
65 |
if (s.contains("_")) { |
|
66 |
String[] split2 = s.split("_", 2); |
|
67 |
StructuralUnit su = corpus.getStructuralUnit(split2[0]); |
|
68 |
if (su != null) { |
|
69 |
Property prop = su.getProperty(split2[1]); |
|
70 |
if (prop != null) { |
|
71 |
props.addProperty(prop); |
|
72 |
} |
|
73 |
} |
|
74 |
} else { |
|
75 |
Property prop = corpus.getProperty(s); |
|
76 |
if (prop != null) { |
|
77 |
props.addProperty(prop); |
|
78 |
} |
|
79 |
} |
|
80 |
} |
|
81 |
return props; |
|
82 |
} catch (Exception e) { |
|
83 |
System.out.println("Error: "+v+" property not found in "+corpus); |
|
84 |
return null; |
|
85 |
} |
|
86 |
} |
|
87 |
|
|
88 |
/** |
|
50 | 89 |
* Instantiates a new reference pattern. |
51 | 90 |
*/ |
52 | 91 |
public ReferencePattern() { |
tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/ViewPropertySelectionDialog.java (revision 543) | ||
---|---|---|
50 | 50 |
/** |
51 | 51 |
* the dialog box called to select the view properties @ author mdecorde. |
52 | 52 |
*/ |
53 |
public class ViewPropertySelectionDialog extends Dialog { |
|
53 |
public class ViewPropertySelectionDialog<P extends Property> extends Dialog {
|
|
54 | 54 |
|
55 | 55 |
/** The available properties. */ |
56 |
final private List<Property> availableProperties;
|
|
56 |
final private List<P> availableProperties; |
|
57 | 57 |
|
58 | 58 |
/** The selected properties. */ |
59 |
final private List<Property> selectedProperties;
|
|
59 |
final private List<P> selectedProperties; |
|
60 | 60 |
|
61 | 61 |
/** The maxprops. */ |
62 | 62 |
int maxprops = -1; |
... | ... | |
75 | 75 |
* @param selectedProperties the selected properties |
76 | 76 |
*/ |
77 | 77 |
public ViewPropertySelectionDialog(IShellProvider parentShell, |
78 |
List<Property> availableProperties,
|
|
79 |
List<Property> selectedProperties) {
|
|
78 |
List<P> availableProperties, |
|
79 |
List<P> selectedProperties) { |
|
80 | 80 |
super(parentShell); |
81 | 81 |
|
82 | 82 |
this.availableProperties = availableProperties; |
... | ... | |
92 | 92 |
* @param selectedProperties the selected properties |
93 | 93 |
*/ |
94 | 94 |
public ViewPropertySelectionDialog(Shell shell, |
95 |
List<Property> availableProperties,
|
|
96 |
List<Property> selectedProperties) {
|
|
95 |
List<P> availableProperties, |
|
96 |
List<P> selectedProperties) { |
|
97 | 97 |
super(shell); |
98 | 98 |
|
99 | 99 |
this.availableProperties = availableProperties; |
... | ... | |
110 | 110 |
* @param maxprops the maxprops |
111 | 111 |
*/ |
112 | 112 |
public ViewPropertySelectionDialog(Shell shell, |
113 |
List<Property> availableProperties,
|
|
114 |
List<Property> selectedProperties, int maxprops) {
|
|
113 |
List<P> availableProperties, |
|
114 |
List<P> selectedProperties, int maxprops) { |
|
115 | 115 |
super(shell); |
116 | 116 |
|
117 | 117 |
this.availableProperties = availableProperties; |
... | ... | |
125 | 125 |
* |
126 | 126 |
* @return the selected properties |
127 | 127 |
*/ |
128 |
public List<Property> getSelectedProperties() {
|
|
128 |
public List<P> getSelectedProperties() { |
|
129 | 129 |
return selectedProperties; |
130 | 130 |
} |
131 | 131 |
|
... | ... | |
209 | 209 |
public void widgetSelected(SelectionEvent e) { |
210 | 210 |
int index = selectedPropertiesView.getSelectionIndex(); |
211 | 211 |
if (index > 0) { |
212 |
Property selectedP = selectedProperties.get(index);
|
|
213 |
Property upperP = selectedProperties.get(index - 1);
|
|
212 |
P selectedP = selectedProperties.get(index); |
|
213 |
P upperP = selectedProperties.get(index - 1); |
|
214 | 214 |
|
215 | 215 |
selectedProperties.set(index, upperP); |
216 | 216 |
selectedProperties.set(index - 1, selectedP); |
... | ... | |
226 | 226 |
public void widgetSelected(SelectionEvent e) { |
227 | 227 |
int index = selectedPropertiesView.getSelectionIndex(); |
228 | 228 |
if (index < selectedProperties.size() - 1 && index >= 0) { |
229 |
Property selectedP = selectedProperties.get(index);
|
|
230 |
Property bellowP = selectedProperties.get(index + 1);
|
|
229 |
P selectedP = selectedProperties.get(index); |
|
230 |
P bellowP = selectedProperties.get(index + 1); |
|
231 | 231 |
|
232 | 232 |
selectedProperties.set(index, bellowP); |
233 | 233 |
selectedProperties.set(index + 1, selectedP); |
tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/PropertiesSelector.java (revision 543) | ||
---|---|---|
28 | 28 |
package org.txm.rcp.swt.widget; |
29 | 29 |
|
30 | 30 |
import java.util.ArrayList; |
31 |
import java.util.Collection; |
|
31 | 32 |
import java.util.List; |
32 | 33 |
|
33 | 34 |
import org.eclipse.osgi.util.NLS; |
... | ... | |
50 | 51 |
/** |
51 | 52 |
* Allow to choose a structural property @ author mdecorde. |
52 | 53 |
*/ |
53 |
public class PropertiesSelector extends Composite { |
|
54 |
public class PropertiesSelector<P extends Property> extends Composite {
|
|
54 | 55 |
|
55 | 56 |
/** The corpus. */ |
56 | 57 |
Corpus corpus; |
57 | 58 |
|
58 | 59 |
/** The properties. */ |
59 |
List<Property> properties;
|
|
60 |
List<P> properties; |
|
60 | 61 |
|
61 | 62 |
/** The availableprops. */ |
62 |
List<Property> availableprops;
|
|
63 |
List<P> availableprops; |
|
63 | 64 |
|
64 | 65 |
/** The maxprops. */ |
65 | 66 |
int maxprops = -1; |
... | ... | |
179 | 180 |
*/ |
180 | 181 |
public void setCorpus(Corpus corpus) { |
181 | 182 |
this.corpus = corpus; |
182 |
this.properties = new ArrayList<Property>();
|
|
183 |
this.properties = new ArrayList<P>(); |
|
183 | 184 |
if (corpus == null) |
184 | 185 |
return; |
185 | 186 |
try { |
186 |
availableprops = new ArrayList<Property>();
|
|
187 |
availableprops.addAll(corpus.getOrderedProperties()); |
|
187 |
availableprops = new ArrayList<P>(); |
|
188 |
availableprops.addAll((Collection<? extends P>) corpus.getOrderedProperties());
|
|
188 | 189 |
//availableprops.addAll(corpus.getStructuralUnitProperties()); |
189 | 190 |
|
190 | 191 |
for (int i = 0; i < availableprops.size(); i++) { |
... | ... | |
196 | 197 |
} |
197 | 198 |
|
198 | 199 |
if (availableprops.size() > 0) { |
199 |
this.properties = new ArrayList<Property>();
|
|
200 |
this.properties = new ArrayList<P>(); |
|
200 | 201 |
for (int i = 0 ; i < availableprops.size() ; i++) { |
201 | 202 |
if (availableprops.get(i).getName().equals("word")) { //$NON-NLS-1$ |
202 | 203 |
properties.add(availableprops.get(i)); |
... | ... | |
216 | 217 |
* |
217 | 218 |
* @return the properties |
218 | 219 |
*/ |
219 |
public List<Property> getProperties() {
|
|
220 |
public List<P> getProperties() { |
|
220 | 221 |
return this.properties; |
221 | 222 |
} |
222 | 223 |
|
... | ... | |
225 | 226 |
* |
226 | 227 |
* @return the Available properties |
227 | 228 |
*/ |
228 |
public List<Property> getAvailableProperties() {
|
|
229 |
public List<P> getAvailableProperties() { |
|
229 | 230 |
return this.availableprops; |
230 | 231 |
} |
231 | 232 |
|
... | ... | |
235 | 236 |
* @param available the available |
236 | 237 |
* @param selected the selected |
237 | 238 |
*/ |
238 |
public void setProperties(List<Property> available, List<Property> selected) {
|
|
239 |
public void setProperties(List<P> available, List<P> selected) {
|
|
239 | 240 |
// System.out.println("initialize prop selector with: "+available+" and "+selected); |
240 | 241 |
availableprops = available; |
241 | 242 |
this.properties = selected; |
... | ... | |
254 | 255 |
|
255 | 256 |
public void clear() { |
256 | 257 |
setText(""); //$NON-NLS-1$ |
257 |
setProperties(new ArrayList<Property>(), new ArrayList<Property>());
|
|
258 |
setProperties(new ArrayList<P>(), new ArrayList<P>());
|
|
258 | 259 |
} |
259 | 260 |
|
260 | 261 |
ArrayList<Listener> listeners = new ArrayList<Listener>(); |
Formats disponibles : Unified diff