Révision 3081
tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java (revision 3081) | ||
---|---|---|
45 | 45 |
import org.txm.edition.rcp.messages.EditionUIMessages; |
46 | 46 |
import org.txm.objects.Project; |
47 | 47 |
import org.txm.objects.Text; |
48 |
import org.txm.rcp.editors.TXMEditor; |
|
48 | 49 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
49 | 50 |
import org.txm.searchengine.cqp.corpus.MainCorpus; |
50 | 51 |
import org.txm.searchengine.cqp.corpus.Property; |
... | ... | |
148 | 149 |
* @return the object |
149 | 150 |
*/ |
150 | 151 |
public static SynopticEditionEditor openEdition(CQPCorpus corpus, List<String> editions) { |
151 |
String textid = null; |
|
152 | 152 |
|
153 | 153 |
Log.fine("Opening edition of " + corpus); //$NON-NLS-1$ |
154 | 154 |
try { |
155 |
corpus.compute(false); |
|
156 |
|
|
155 | 157 |
String[] availables = corpus.getCorpusTextIdsList(); |
156 | 158 |
if (availables.length == 0) { |
157 |
Log.warning(NLS.bind("Error: No text in the {0} corpus", corpus)); |
|
159 |
Log.warning(NLS.bind("Error: No text available in the {0} corpus", corpus));
|
|
158 | 160 |
return null; |
159 | 161 |
} |
160 | 162 |
Text text = corpus.getProject().getText(availables[0]); |
... | ... | |
167 | 169 |
// Property text_id = text_su.getProperty("id"); //$NON-NLS-1$ |
168 | 170 |
|
169 | 171 |
// if (result.getNMatch() > 0) textid = result.getMatches(0, 1).get(0).getValueForProperty(text_id); |
170 |
MainCorpus maincorpus = corpus.getMainCorpus(); |
|
172 |
// MainCorpus maincorpus = corpus.getMainCorpus();
|
|
171 | 173 |
|
172 | 174 |
// if (textid != null) text = maincorpus.getText(textid); |
173 | 175 |
|
tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/SearchEditionToolbar.java (revision 3081) | ||
---|---|---|
18 | 18 |
import org.txm.searchengine.core.IQuery; |
19 | 19 |
import org.txm.searchengine.core.Selection; |
20 | 20 |
import org.txm.searchengine.cqp.CQPSearchEngine; |
21 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
|
21 | 22 |
import org.txm.searchengine.cqp.corpus.MainCorpus; |
22 | 23 |
import org.txm.searchengine.cqp.corpus.QueryResult; |
23 | 24 |
import org.txm.searchengine.cqp.corpus.query.CQLQuery; |
... | ... | |
30 | 31 |
|
31 | 32 |
private GridData searchGdata2; |
32 | 33 |
|
33 |
private GridData searchGdata3; |
|
34 |
|
|
35 | 34 |
private AssistedChoiceQueryWidget searchText; |
36 | 35 |
|
37 | 36 |
/** |
... | ... | |
44 | 43 |
*/ |
45 | 44 |
protected int searchIndex; |
46 | 45 |
|
47 |
private NewNavigationWidget searchNagigation;
|
|
46 |
private NewNavigationWidget searchNavigation;
|
|
48 | 47 |
|
49 | 48 |
|
50 | 49 |
|
51 | 50 |
Composite lowerControlsArea; |
52 | 51 |
|
53 |
MainCorpus mcorpus;
|
|
52 |
CQPCorpus mcorpus;
|
|
54 | 53 |
|
55 | 54 |
SynopticEditionEditor editor; |
56 | 55 |
|
... | ... | |
58 | 57 |
|
59 | 58 |
private Button searchButton; |
60 | 59 |
|
61 |
public void init(Composite lowerControlsArea, MainCorpus mcorpus, SynopticEditionEditor editor) { |
|
60 |
private Button endSearchButton; |
|
61 |
|
|
62 |
private GridData searchButtonGdata; |
|
63 |
|
|
64 |
public void init(Composite lowerControlsArea, CQPCorpus mcorpus, SynopticEditionEditor editor) { |
|
62 | 65 |
|
63 | 66 |
this.lowerControlsArea = lowerControlsArea; |
64 | 67 |
this.mcorpus = mcorpus; |
65 | 68 |
this.editor = editor; |
66 | 69 |
|
67 |
Button endSearchButton = new Button(lowerControlsArea, SWT.PUSH);
|
|
68 |
endSearchButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE));
|
|
70 |
endSearchButton = new Button(lowerControlsArea, SWT.PUSH); |
|
71 |
endSearchButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_SEARCH));
|
|
69 | 72 |
endSearchButton.addSelectionListener(new SelectionListener() { |
70 | 73 |
|
71 | 74 |
@Override |
72 | 75 |
public void widgetSelected(SelectionEvent e) { |
73 | 76 |
if (searchGdata.widthHint > 0) { |
74 |
searchGdata.minimumWidth = searchGdata.widthHint = 0; |
|
75 |
searchGdata2.minimumWidth = searchGdata2.widthHint = 0; |
|
76 |
searchGdata3.minimumWidth = searchGdata3.widthHint = 0; |
|
77 |
lowerControlsArea.layout(); |
|
78 |
searchButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_SEARCH)); |
|
77 |
closeSearch(); |
|
79 | 78 |
} |
79 |
else { |
|
80 |
openSearch(editor.getTextSelection()); |
|
81 |
} |
|
80 | 82 |
} |
81 | 83 |
|
82 | 84 |
@Override |
83 | 85 |
public void widgetDefaultSelected(SelectionEvent e) {} |
84 | 86 |
}); |
85 |
searchGdata3 = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
|
86 |
searchGdata3.minimumWidth = 0; |
|
87 |
searchGdata3.widthHint = 0; |
|
87 |
GridData searchGdata3 = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
|
88 |
// searchGdata3.minimumWidth = searchGdata3.widthHint = 0; |
|
88 | 89 |
endSearchButton.setLayoutData(searchGdata3); |
89 | 90 |
|
90 | 91 |
searchText = new AssistedChoiceQueryWidget(lowerControlsArea, SWT.NONE, mcorpus); |
91 | 92 |
searchGdata = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
92 |
searchGdata.minimumWidth = 0; |
|
93 |
searchGdata.widthHint = 0; |
|
93 |
searchGdata.minimumWidth = searchGdata.widthHint = 0; |
|
94 | 94 |
searchText.setLayoutData(searchGdata); |
95 | 95 |
searchText.addKeyListener(new KeyListener() { |
96 | 96 |
|
... | ... | |
108 | 108 |
}); |
109 | 109 |
|
110 | 110 |
searchButton = new Button(lowerControlsArea, SWT.PUSH); |
111 |
searchButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_SEARCH));
|
|
111 |
searchButton.setImage(IImageKeys.getImage(IImageKeys.START));
|
|
112 | 112 |
searchButton.addSelectionListener(new SelectionListener() { |
113 | 113 |
|
114 | 114 |
@Override |
115 | 115 |
public void widgetSelected(SelectionEvent e) { |
116 |
if (searchGdata.widthHint == 0) { |
|
117 |
openSearch(editor.getTextSelection()); |
|
118 |
} |
|
119 |
else if (searchText.getQuery() != null) { |
|
116 |
if (searchText.getQuery() != null) { |
|
120 | 117 |
search(); |
121 | 118 |
} |
122 | 119 |
} |
... | ... | |
124 | 121 |
@Override |
125 | 122 |
public void widgetDefaultSelected(SelectionEvent e) {} |
126 | 123 |
}); |
124 |
searchButtonGdata = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
|
125 |
searchButtonGdata.minimumWidth = searchButtonGdata.widthHint = 0; |
|
126 |
searchButton.setLayoutData(searchButtonGdata); |
|
127 | 127 |
|
128 |
searchNagigation = new NewNavigationWidget(lowerControlsArea, SWT.NONE) {
|
|
128 |
searchNavigation = new NewNavigationWidget(lowerControlsArea, SWT.NONE) {
|
|
129 | 129 |
|
130 | 130 |
@Override |
131 | 131 |
public void refresh() { |
132 | 132 |
super.refresh(); |
133 |
int s = this.getCurrentPosition(); |
|
134 |
if (s == searchIndex) { |
|
135 |
return; // no need to update |
|
136 |
} |
|
133 | 137 |
searchIndex = this.getCurrentPosition(); |
134 | 138 |
showCurrentSearchMatch(); |
135 | 139 |
// Log.info("showing the " + index + " match."); |
136 | 140 |
} |
137 | 141 |
}; |
138 | 142 |
searchGdata2 = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
139 |
searchGdata2.minimumWidth = 0; |
|
140 |
searchGdata2.widthHint = 0; |
|
141 |
searchNagigation.setLayoutData(searchGdata2); |
|
142 |
searchNagigation.setEnabled(false); |
|
143 |
searchGdata2.minimumWidth = searchGdata2.widthHint = 0; |
|
144 |
searchNavigation.setLayoutData(searchGdata2); |
|
145 |
searchNavigation.setEnabled(false); |
|
146 |
} |
|
147 |
|
|
148 |
protected void closeSearch() { |
|
143 | 149 |
|
150 |
// disable highlights |
|
151 |
if (foundWordids != null) { |
|
152 |
editor.removeHighlightWordsById(BackToText.red, foundWordids); |
|
153 |
editor.setFocusedWordID(null); |
|
154 |
editor.updateWordStyles(); |
|
155 |
} |
|
156 |
|
|
157 |
// hide controls |
|
158 |
searchGdata.minimumWidth = searchGdata.widthHint = 0; |
|
159 |
searchGdata2.minimumWidth = searchGdata2.widthHint = 0; |
|
160 |
searchButtonGdata.minimumWidth = searchButtonGdata.widthHint = 0; |
|
161 |
lowerControlsArea.layout(); |
|
162 |
endSearchButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_SEARCH)); |
|
144 | 163 |
} |
145 | 164 |
|
146 | 165 |
/** |
... | ... | |
150 | 169 |
if (searchGdata.widthHint == 0) { |
151 | 170 |
searchGdata.minimumWidth = searchGdata.widthHint = 350; // |
152 | 171 |
searchGdata2.minimumWidth = searchGdata2.widthHint = SWT.DEFAULT; // several buttons |
153 |
searchGdata3.minimumWidth = searchGdata3.widthHint = SWT.DEFAULT; // button
|
|
172 |
searchButtonGdata.minimumWidth = searchButtonGdata.widthHint = SWT.DEFAULT; // button
|
|
154 | 173 |
lowerControlsArea.layout(); |
155 |
searchButton.setImage(IImageKeys.getImage(IImageKeys.START));
|
|
174 |
endSearchButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE));
|
|
156 | 175 |
} |
157 | 176 |
searchText.setFocus(); |
158 | 177 |
if (value != null && value.length() > 0) { |
... | ... | |
186 | 205 |
} |
187 | 206 |
} |
188 | 207 |
} |
189 |
searchNagigation.setEnabled(true);
|
|
190 |
searchNagigation.setCurrentPosition(searchIndex);
|
|
191 |
searchNagigation.setMinPosition(1);
|
|
192 |
searchNagigation.setMaxPosition(tmp.getNMatch());
|
|
193 |
searchNagigation.refresh();
|
|
208 |
searchNavigation.setEnabled(true);
|
|
209 |
searchNavigation.setCurrentPosition(searchIndex);
|
|
210 |
searchNavigation.setMinPosition(1);
|
|
211 |
searchNavigation.setMaxPosition(tmp.getNMatch());
|
|
212 |
searchNavigation.refresh();
|
|
194 | 213 |
Log.info("" + searchResult.getNMatch() + " hits."); |
195 | 214 |
} |
196 | 215 |
else { |
197 | 216 |
searchIndex = 0; |
198 |
searchNagigation.setEnabled(false);
|
|
199 |
searchNagigation.setCurrentPosition(0);
|
|
200 |
searchNagigation.setMinPosition(0);
|
|
201 |
searchNagigation.setMaxPosition(0);
|
|
202 |
searchNagigation.refresh();
|
|
217 |
searchNavigation.setEnabled(false);
|
|
218 |
searchNavigation.setCurrentPosition(0);
|
|
219 |
searchNavigation.setMinPosition(0);
|
|
220 |
searchNavigation.setMaxPosition(0);
|
|
221 |
searchNavigation.refresh();
|
|
203 | 222 |
Log.info("No hit."); |
204 | 223 |
} |
205 | 224 |
} |
tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java (revision 3081) | ||
---|---|---|
143 | 143 |
"} catch (e) { };"; //$NON-NLS-1$ |
144 | 144 |
|
145 | 145 |
public String functions = ""// "alert(\"loading functions\");" //$NON-NLS-1$ |
146 |
+ "\nfunction getNodeText(node) {" //$NON-NLS-1$ |
|
146 |
+ "\ngetNodeText = function getNodeText(node) {" //$NON-NLS-1$
|
|
147 | 147 |
+ "\n if (typeof node == 'string') return node;" //$NON-NLS-1$ |
148 | 148 |
+ "\n else if (typeof node.innerText != 'undefined') return node.innerText;" //$NON-NLS-1$ |
149 | 149 |
+ "\n else if (typeof node.InnerText != 'undefined') return node.InnerText;" //$NON-NLS-1$ |
150 | 150 |
+ "\n else if (typeof node.textContent != 'undefined') return node.textContent;" //$NON-NLS-1$ |
151 | 151 |
+ "\n else return null;" //$NON-NLS-1$ |
152 | 152 |
+ "\n}" //$NON-NLS-1$ |
153 |
+ "\nfunction txmGetParent(node) {" //$NON-NLS-1$ |
|
153 |
+ "\ntxmGetParent = function txmGetParent(node) {" //$NON-NLS-1$
|
|
154 | 154 |
+ "\n if (typeof node.parentNode != 'undefined') return node.parentNode;" //$NON-NLS-1$ |
155 | 155 |
+ "\n else return null;" //$NON-NLS-1$ |
156 | 156 |
+ "\n}" //$NON-NLS-1$ |
157 |
+ "\nfunction txmGetChildren(node) {" //$NON-NLS-1$ |
|
157 |
+ "\ntxmGetChildren = function txmGetChildren(node) {" //$NON-NLS-1$
|
|
158 | 158 |
+ "\n if (typeof node == 'string') return 'STRING HTML';" //$NON-NLS-1$ |
159 | 159 |
+ "\n else if (typeof node.children != 'undefined') return node.children;" //$NON-NLS-1$ |
160 | 160 |
+ "\n else if (typeof node.ChildNodes != 'undefined') return node.ChildNodes;" //$NON-NLS-1$ |
161 | 161 |
+ "\n else if (typeof node.childNodes != 'undefined') return node.childNodes;" //$NON-NLS-1$ |
162 | 162 |
+ "\n else return null;" //$NON-NLS-1$ |
163 | 163 |
+ "\n}" //$NON-NLS-1$ |
164 |
+ "\nfunction txmGetSelection() {" //$NON-NLS-1$ |
|
164 |
+ "\ntxmGetSelection = function txmGetSelection() {" //$NON-NLS-1$
|
|
165 | 165 |
+ "\n if (typeof window.getSelection != 'undefined') {return window.getSelection();}" //$NON-NLS-1$ |
166 | 166 |
+ "\n else if (typeof document.selection != 'undefined') { return document.selection;}" //$NON-NLS-1$ |
167 | 167 |
+ "\n else return 'NO SELECTION';" //$NON-NLS-1$ |
168 | 168 |
+ "\n}" //$NON-NLS-1$ |
169 |
+ "\nfunction txmGetRangeSize(selection) {" //$NON-NLS-1$ |
|
169 |
+ "\ntxmGetRangeSize = function txmGetRangeSize(selection) {" //$NON-NLS-1$
|
|
170 | 170 |
+ "\n if (typeof selection.rangeCount != 'undefined') {return selection.rangeCount;}" //$NON-NLS-1$ |
171 | 171 |
+ "\n else if (typeof selection.createRangeCollection != 'undefined') { return selection.createRangeCollection().length();} // IE5 has no multiple selection" //$NON-NLS-1$ |
172 | 172 |
+ "\n}" //$NON-NLS-1$ |
173 |
+ "\nfunction txmGetRange(selection, i) {" //$NON-NLS-1$ |
|
173 |
+ "\ntxmGetRange = function txmGetRange(selection, i) {" //$NON-NLS-1$
|
|
174 | 174 |
+ "\n if (typeof selection.getRangeAt != 'undefined') {return selection.getRangeAt(i);}" //$NON-NLS-1$ |
175 | 175 |
+ "\n else if (typeof selection.createRangeCollection != 'undefined') {return selection.createRangeCollection().item(i);}" // IE > IE5 //$NON-NLS-1$ |
176 | 176 |
+ "\n else if (typeof selection.createRange != 'undefined') { return selection.createRange();} // IE5 has no multiple selection" //$NON-NLS-1$ |
177 | 177 |
+ "\n else return 'NO RANGE';" //$NON-NLS-1$ |
178 | 178 |
+ "\n}" //$NON-NLS-1$ |
179 |
+ "\nfunction txmGetParentElementRange(range) {" //$NON-NLS-1$ |
|
179 |
+ "\ntxmGetParentElementRange = function txmGetParentElementRange(range) {" //$NON-NLS-1$
|
|
180 | 180 |
+ "\n if (typeof range.parentElement != 'undefined') {return range.parentElement();}" //$NON-NLS-1$ |
181 | 181 |
+ "\n else if (typeof range.startContainer != 'undefined') { return range.startContainer.parentNode;}" //$NON-NLS-1$ |
182 | 182 |
+ "\n else return 'NO PARENT';" //$NON-NLS-1$ |
183 | 183 |
+ "\n}" //$NON-NLS-1$ |
184 |
+ "\nfunction txmGetFragment(range) {" //$NON-NLS-1$ |
|
184 |
+ "\ntxmGetFragment = function txmGetFragment(range) {" //$NON-NLS-1$
|
|
185 | 185 |
+ "\n if (typeof range.cloneContents != 'undefined') { return range.cloneContents();}" //$NON-NLS-1$ |
186 | 186 |
+ "\n else if (typeof range.htmlText != 'undefined') {var node = document.createElement('sel'); node.innerHTML = range.htmlText; return node;" //$NON-NLS-1$ |
187 | 187 |
+ "\n } else return 'NO FRAG';" //$NON-NLS-1$ |
188 | 188 |
+ "\n}" //$NON-NLS-1$ |
189 |
+ "\nfunction txmGetTagName(node) {" //$NON-NLS-1$ |
|
189 |
+ "\ntxmGetTagName = function txmGetTagName(node) {" //$NON-NLS-1$
|
|
190 | 190 |
+ "\n if (typeof node.tagName != 'undefined') {return node.tagName;}" //$NON-NLS-1$ |
191 | 191 |
+ "\n else if (typeof node.nodeName != 'undefined') { return node.nodeName;}" //$NON-NLS-1$ |
192 | 192 |
+ "\n else if (typeof node.name != 'undefined') { return node.name;}" //$NON-NLS-1$ |
193 | 193 |
+ "\n else return 'NO TAGNAME';" //$NON-NLS-1$ |
194 | 194 |
+ "\n}" //$NON-NLS-1$ |
195 |
+ "\nfunction findSpans(children, all) {" //$NON-NLS-1$ |
|
195 |
+ "\nfindSpans = function findSpans(children, all) {" //$NON-NLS-1$
|
|
196 | 196 |
+ "\n for (var i = 0 ; i < children.length ; i++) {" //$NON-NLS-1$ |
197 | 197 |
+ "\n var node = children.item(i);" //$NON-NLS-1$ |
198 | 198 |
+ "\n if (node.nodeType == 1) {" //$NON-NLS-1$ |
... | ... | |
205 | 205 |
+ "\n }" //$NON-NLS-1$ |
206 | 206 |
+ "\n }" //$NON-NLS-1$ |
207 | 207 |
+ "\n}" //$NON-NLS-1$ |
208 |
+ "\nfunction findIdsInString(str, all) {" //$NON-NLS-1$ |
|
208 |
+ "\nfindIdsInString = function findIdsInString(str, all) {" //$NON-NLS-1$
|
|
209 | 209 |
+ "\n for (var i = 0 ; i < children.length ; i++) {" //$NON-NLS-1$ |
210 | 210 |
+ "\n var node = children.item(i);" //$NON-NLS-1$ |
211 | 211 |
+ "\n if (node.nodeType == 1) {" //$NON-NLS-1$ |
... | ... | |
218 | 218 |
+ "\n }" //$NON-NLS-1$ |
219 | 219 |
+ "\n }" //$NON-NLS-1$ |
220 | 220 |
+ "\n}" //$NON-NLS-1$ |
221 |
+ "\nfunction get_type(thing){if(thing===null)return \"[object Null]\"; return Object.prototype.toString.call(thing);}\n" //$NON-NLS-1$ |
|
222 |
+ "\nfunction getDetailedObject(inputObject) { var detailedObject = {}; var properties; \n do { properties = Object.getOwnPropertyNames( inputObject ); for (var o in properties) {detailedObject[properties[o]] = inputObject[properties[o]];}} while ( inputObject = Object.getPrototypeOf(inputObject) );return detailedObject;}\n" //$NON-NLS-1$ |
|
221 |
+ "\nget_type = function get_type(thing){if(thing===null)return \"[object Null]\"; return Object.prototype.toString.call(thing);}\n" //$NON-NLS-1$
|
|
222 |
+ "\ngetDetailedObject = function getDetailedObject(inputObject) { var detailedObject = {}; var properties; \n do { properties = Object.getOwnPropertyNames( inputObject ); for (var o in properties) {detailedObject[properties[o]] = inputObject[properties[o]];}} while ( inputObject = Object.getPrototypeOf(inputObject) );return detailedObject;}\n" //$NON-NLS-1$
|
|
223 | 223 |
+ "\nvar sheet = null;" //$NON-NLS-1$ |
224 | 224 |
+ "\ntry{" //$NON-NLS-1$ |
225 | 225 |
+ "\n var style = document.createElement(\"style\");" //$NON-NLS-1$ |
... | ... | |
309 | 309 |
@Override |
310 | 310 |
public void completed(ProgressEvent event) { |
311 | 311 |
|
312 |
// System.out.println("EditionPanel "+currentEdition.getName()+" reload "+getCurrentPage().getName());
|
|
312 |
Log.finest("EditionPanel " + currentEdition.getName() + " reload " + getCurrentPage().getName());
|
|
313 | 313 |
Object rez = evaluate("return typeof sheet;"); //$NON-NLS-1$ |
314 | 314 |
if ("undefined".equals(rez)) { //$NON-NLS-1$ |
315 |
if (!execute(functions)) { // build the sheet if not present in the HTML DOM |
|
315 |
Object loadResult = execute(functions); |
|
316 |
Object testloadResult = evaluate("return typeof txmGetSelection;"); |
|
317 |
if (loadResult == null || testloadResult == null) { // build the sheet if not present in the HTML DOM |
|
316 | 318 |
Log.fine("JS execution (init) error with=" + functions); //$NON-NLS-1$ |
317 | 319 |
} |
318 | 320 |
else { |
319 |
|
|
321 |
Log.finer("JS functions loaded."); |
|
320 | 322 |
} |
321 | 323 |
} |
322 | 324 |
|
... | ... | |
557 | 559 |
|
558 | 560 |
boolean dblClick = false; |
559 | 561 |
|
560 |
boolean debug = false;
|
|
562 |
boolean debug = true;
|
|
561 | 563 |
|
562 | 564 |
private int t, x, y; |
563 | 565 |
|
564 | 566 |
@Override |
565 | 567 |
public void mouseDoubleClick(MouseEvent e) { |
566 |
if (debug) System.out.println("DOUBLE CLICK"); //$NON-NLS-1$
|
|
568 |
if (debug) Log.finest("DOUBLE CLICK"); //$NON-NLS-1$
|
|
567 | 569 |
dblClick = true; |
568 | 570 |
} |
569 | 571 |
|
570 | 572 |
@Override |
571 | 573 |
public void mouseDown(MouseEvent e) { |
572 |
if (debug) System.out.println("MOUSE DOWN"); //$NON-NLS-1$
|
|
574 |
if (debug) Log.finest("MOUSE DOWN"); //$NON-NLS-1$
|
|
573 | 575 |
dblClick = false; |
574 | 576 |
t = e.time; |
575 | 577 |
x = e.x; |
... | ... | |
582 | 584 |
dblClick = false; |
583 | 585 |
return; // stop right now ! :-o |
584 | 586 |
} |
585 |
if (debug) System.out.println("MOUSE UP"); //$NON-NLS-1$
|
|
587 |
if (debug) Log.finest("MOUSE UP"); //$NON-NLS-1$
|
|
586 | 588 |
EditionPanel panel = EditionPanel.this; |
587 | 589 |
|
588 | 590 |
// filter click that are not a left simple click (no drag) |
589 | 591 |
// System.out.println("click count="+e.count+" button="+e.button+" time="+e.time+" diff="+(e.time-t)+" dist="+(Math.abs(e.x - x) + Math.abs(e.y - y))); |
590 | 592 |
if (e.count > 1) { |
591 |
if (debug) System.out.println(" DOUBLE CLICK"); //$NON-NLS-1$
|
|
593 |
if (debug) Log.finest(" DOUBLE CLICK"); //$NON-NLS-1$
|
|
592 | 594 |
// System.out.println("not a simple click"); |
593 | 595 |
return; |
594 | 596 |
} |
... | ... | |
606 | 608 |
} |
607 | 609 |
}); |
608 | 610 |
|
609 |
getBrowser().addKeyListener(new KeyListener() {
|
|
611 |
KeyListener kListener = new KeyListener() {
|
|
610 | 612 |
|
613 |
boolean debug = true; |
|
614 |
|
|
611 | 615 |
@Override |
612 | 616 |
public void keyReleased(KeyEvent e) { |
613 |
|
|
614 |
if (e.keyCode == 102 && (e.stateMask & SWT.CTRL) != 0) { |
|
617 |
if (debug) Log.finest(" KEY RELEASED: " + e); //$NON-NLS-1$ |
|
618 |
} |
|
619 |
|
|
620 |
@Override |
|
621 |
public void keyPressed(KeyEvent e) { |
|
622 |
if (debug) Log.finest(" KEY PRESSED: " + e); //$NON-NLS-1$ |
|
623 |
if (e.keyCode == 'f' && (e.stateMask & SWT.CTRL) != 0) { |
|
615 | 624 |
synopticEditionEditor.getSearchEditionToolbar().openSearch(getTextSelection()); |
616 | 625 |
} |
617 | 626 |
} |
618 |
|
|
619 |
@Override |
|
620 |
public void keyPressed(KeyEvent e) {} |
|
621 |
}); |
|
627 |
}; |
|
628 |
getBrowser().setCapture(true); |
|
629 |
getBrowser().addKeyListener(kListener); |
|
622 | 630 |
|
623 | 631 |
getBrowser().addProgressListener(progresslistener); |
624 | 632 |
new CommandLink(synopticEditionEditor, getBrowser()); |
... | ... | |
1085 | 1093 |
"return html"; //$NON-NLS-1$ |
1086 | 1094 |
|
1087 | 1095 |
public String getTextSelectionDOM() { |
1088 |
return ((String) evaluate(SCRIPT01)); |
|
1096 |
String t = ((String) evaluate(SCRIPT01)); |
|
1097 |
Log.finest("HTML text selection=" + t); |
|
1098 |
return t; |
|
1089 | 1099 |
} |
1090 | 1100 |
|
1091 | 1101 |
/** |
tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/SynopticEditionEditor.java (revision 3081) | ||
---|---|---|
82 | 82 |
import org.txm.rcp.editors.TXMEditor; |
83 | 83 |
import org.txm.rcp.swt.GLComposite; |
84 | 84 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
85 |
import org.txm.searchengine.cqp.corpus.MainCorpus; |
|
86 | 85 |
import org.txm.utils.logger.Log; |
87 | 86 |
|
88 | 87 |
/** |
... | ... | |
109 | 108 |
|
110 | 109 |
private CQPCorpus corpus; |
111 | 110 |
|
112 |
private MainCorpus mainCorpus; |
|
113 |
|
|
114 | 111 |
private Text text; |
115 | 112 |
|
116 | 113 |
private Button editionsChooser; |
... | ... | |
129 | 126 |
|
130 | 127 |
private SearchEditionToolbar set; |
131 | 128 |
|
129 |
private Project project; |
|
130 |
|
|
132 | 131 |
// TODO finish editor conversion |
133 | 132 |
@Override |
134 | 133 |
public Text getResult() { |
... | ... | |
317 | 316 |
String[] texts = corpus.getCorpusTextIdsList(); |
318 | 317 |
for (String text_id : texts) { |
319 | 318 |
if (text_id.equals(id)) { |
320 |
Text text = mainCorpus.getProject().getText(text_id);
|
|
319 |
Text text = project.getText(text_id);
|
|
321 | 320 |
if (text != null) { |
322 | 321 |
setText(text, true); |
323 | 322 |
return; |
... | ... | |
415 | 414 |
// supplementaryButtonToolbar = new TXMEditorToolBar(this, getTopToolbarContainer(), annotationWidgetsArea, SWT.NONE, "annotation urs"); |
416 | 415 |
|
417 | 416 |
set = new SearchEditionToolbar(); |
418 |
Project project = this.getResult().getProject(); |
|
419 |
MainCorpus mcorpus = (MainCorpus) project.getCorpusBuild(project.getName().toUpperCase(), MainCorpus.class); |
|
420 |
set.init(lowerControlsArea, mcorpus, this); |
|
421 | 417 |
|
418 |
// MainCorpus mcorpus = (MainCorpus) project.getCorpusBuild(project.getName().toUpperCase(), MainCorpus.class); |
|
419 |
set.init(lowerControlsArea, corpus, this); |
|
420 |
|
|
422 | 421 |
// Edition names label |
423 | 422 |
|
424 | 423 |
|
425 |
if (mainCorpus.getProject().getBuiltEditionNames().size() > 1) {
|
|
424 |
if (project.getBuiltEditionNames().size() > 1) {
|
|
426 | 425 |
editionsChooser = new Button(lowerControlsArea, SWT.PUSH); |
427 | 426 |
editionsChooser.setText(StringUtils.join(editionNames, " | ")); //$NON-NLS-1$ |
428 | 427 |
editionsChooser.addSelectionListener(new SelectionListener() { |
... | ... | |
430 | 429 |
@Override |
431 | 430 |
public void widgetSelected(SelectionEvent e) { |
432 | 431 |
try { |
433 |
List<String> availableEditions = mainCorpus.getProject().getBuiltEditionNames();
|
|
432 |
List<String> availableEditions = project.getBuiltEditionNames();
|
|
434 | 433 |
if (availableEditions.size() == 0) return; |
435 | 434 |
if (availableEditions.size() == 1) return; |
436 | 435 |
|
437 | 436 |
|
438 | 437 |
Shell shell = e.display.getActiveShell(); |
439 |
EditionSelectorDialog d = new EditionSelectorDialog(shell, mainCorpus, editionNames);
|
|
438 |
EditionSelectorDialog d = new EditionSelectorDialog(shell, project, editionNames);
|
|
440 | 439 |
|
441 | 440 |
if (d.open() == Window.OK) { |
442 | 441 |
Object[] rez = d.getResult(); |
... | ... | |
724 | 723 |
|
725 | 724 |
try { |
726 | 725 |
// ensure all texts have build their page indexes |
727 |
for (Text t : mainCorpus.getProject().getTexts()) {
|
|
726 |
for (Text t : project.getTexts()) {
|
|
728 | 727 |
t.compute(); |
729 | 728 |
} |
730 | 729 |
if (openEditions(text, editionNames)) { |
... | ... | |
880 | 879 |
// TODO Auto-generated catch block |
881 | 880 |
e.printStackTrace(); |
882 | 881 |
} |
883 |
mainCorpus = corpus.getMainCorpus(); // get the main corpus of the corpus |
|
882 |
|
|
883 |
project = corpus.getProject(); |
|
884 |
|
|
884 | 885 |
text = ((SynopticEditorInput) input).getText(); |
885 | 886 |
editionNames = ((SynopticEditorInput) input).getEditions(); |
886 | 887 |
|
... | ... | |
939 | 940 |
return corpus; |
940 | 941 |
} |
941 | 942 |
|
942 |
public CQPCorpus getMainCorpus() { |
|
943 |
return mainCorpus; |
|
944 |
} |
|
945 |
|
|
946 | 943 |
public EditionPanel getEditionPanel(int i) { |
947 | 944 |
int n = 0; |
948 | 945 |
for (EditionPanel p : editionPanels.values()) { |
tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionSelectorDialog.java (revision 3081) | ||
---|---|---|
9 | 9 |
import org.eclipse.swt.widgets.Shell; |
10 | 10 |
import org.eclipse.ui.dialogs.ElementListSelectionDialog; |
11 | 11 |
import org.txm.edition.rcp.messages.EditionUIMessages; |
12 |
import org.txm.objects.CorpusBuild;
|
|
12 |
import org.txm.objects.Project;
|
|
13 | 13 |
|
14 | 14 |
public class EditionSelectorDialog extends ElementListSelectionDialog { |
15 | 15 |
|
16 |
public EditionSelectorDialog(Shell parent, CorpusBuild corpus, List<String> defaultSelection) {
|
|
16 |
public EditionSelectorDialog(Shell parent, Project project, List<String> defaultSelection) {
|
|
17 | 17 |
super(parent, new ILabelProvider() { |
18 | 18 |
|
19 | 19 |
@Override |
... | ... | |
46 | 46 |
setMessage(EditionUIMessages.selectOneOrMoreEditions); |
47 | 47 |
setMultipleSelection(true); |
48 | 48 |
|
49 |
setElements(corpus.getProject().getBuiltEditionNames().toArray());
|
|
49 |
setElements(project.getBuiltEditionNames().toArray());
|
|
50 | 50 |
setFilter("*"); //$NON-NLS-1$ |
51 | 51 |
|
52 | 52 |
if (defaultSelection == null) { |
53 |
defaultSelection = Arrays.asList(corpus.getProject().getDefaultEditionName());
|
|
53 |
defaultSelection = Arrays.asList(project.getDefaultEditionName());
|
|
54 | 54 |
} |
55 | 55 |
this.setInitialSelections(defaultSelection.toArray()); |
56 | 56 |
} |
tmp/org.txm.edition.rcp/res/js/functions.js (revision 3081) | ||
---|---|---|
1 |
function getNodeText(node) { |
|
1 |
getNodeText = function getNodeText(node) {
|
|
2 | 2 |
if (typeof node == 'string') |
3 | 3 |
return node; |
4 | 4 |
else if (typeof node.innerText != 'undefined') |
... | ... | |
10 | 10 |
else |
11 | 11 |
return null; |
12 | 12 |
} |
13 |
function txmGetParent(node) { |
|
13 |
txmGetParent = function txmGetParent(node) {
|
|
14 | 14 |
if (typeof node.parentNode != 'undefined') |
15 | 15 |
return node.parentNode; |
16 | 16 |
else |
17 | 17 |
return null; |
18 | 18 |
} |
19 |
function txmGetChildren(node) { |
|
19 |
txmGetChildren = function txmGetChildren(node) {
|
|
20 | 20 |
if (typeof node == 'string') |
21 | 21 |
return 'STRING HTML'; |
22 | 22 |
else if (typeof node.children != 'undefined') |
... | ... | |
28 | 28 |
else |
29 | 29 |
return null; |
30 | 30 |
} |
31 |
function txmGetSelection() { |
|
31 |
txmGetSelection = function txmGetSelection() {
|
|
32 | 32 |
if (typeof window.getSelection != 'undefined') { |
33 | 33 |
return window.getSelection(); |
34 | 34 |
} else if (typeof document.selection != 'undefined') { |
... | ... | |
36 | 36 |
} else |
37 | 37 |
return 'NO SELECTION'; |
38 | 38 |
} |
39 |
function txmGetRangeSize(selection) { |
|
39 |
txmGetRangeSize = function txmGetRangeSize(selection) {
|
|
40 | 40 |
if (typeof selection.rangeCount != 'undefined') { |
41 | 41 |
return selection.rangeCount; |
42 | 42 |
} else if (typeof selection.createRangeCollection != 'undefined') { |
43 | 43 |
return selection.createRangeCollection().length(); |
44 | 44 |
} // IE5 has no multiple selection |
45 | 45 |
} |
46 |
function txmGetRange(selection, i) { |
|
46 |
txmGetRange = function txmGetRange(selection, i) {
|
|
47 | 47 |
if (typeof selection.getRangeAt != 'undefined') { |
48 | 48 |
return selection.getRangeAt(i); |
49 | 49 |
} else if (typeof selection.createRangeCollection != 'undefined') { |
... | ... | |
54 | 54 |
else |
55 | 55 |
return 'NO RANGE'; |
56 | 56 |
} |
57 |
function txmGetParentElementRange(range) { |
|
57 |
txmGetParentElementRange = function txmGetParentElementRange(range) {
|
|
58 | 58 |
if (typeof range.parentElement != 'undefined') { |
59 | 59 |
return range.parentElement(); |
60 | 60 |
} else if (typeof range.startContainer != 'undefined') { |
... | ... | |
62 | 62 |
} else |
63 | 63 |
return 'NO PARENT'; |
64 | 64 |
} |
65 |
function txmGetFragment(range) { |
|
65 |
txmGetFragment = function txmGetFragment(range) {
|
|
66 | 66 |
if (typeof range.cloneContents != 'undefined') { |
67 | 67 |
return range.cloneContents(); |
68 | 68 |
} else if (typeof range.htmlText != 'undefined') { |
... | ... | |
72 | 72 |
} else |
73 | 73 |
return 'NO FRAG'; |
74 | 74 |
} |
75 |
function txmGetTagName(node) { |
|
75 |
txmGetTagName = function txmGetTagName(node) {
|
|
76 | 76 |
if (typeof node.tagName != 'undefined') { |
77 | 77 |
return node.tagName; |
78 | 78 |
} else if (typeof node.nodeName != 'undefined') { |
... | ... | |
82 | 82 |
} else |
83 | 83 |
return 'NO TAGNAME'; |
84 | 84 |
} |
85 |
function findSpans(children, all) { |
|
85 |
findSpans = function findSpans(children, all) {
|
|
86 | 86 |
for (var i = 0; i < children.length; i++) { |
87 | 87 |
var node = children.item(i); |
88 | 88 |
if (node.nodeType == 1) { |
... | ... | |
97 | 97 |
} |
98 | 98 |
} |
99 | 99 |
} |
100 |
function findIdsInString(str, all) { |
|
100 |
findIdsInString = function findIdsInString(str, all) {
|
|
101 | 101 |
for (var i = 0; i < children.length; i++) { |
102 | 102 |
var node = children.item(i); |
103 | 103 |
if (node.nodeType == 1) { |
... | ... | |
112 | 112 |
} |
113 | 113 |
} |
114 | 114 |
} |
115 |
function get_type(thing) { |
|
115 |
get_type = function get_type(thing) {
|
|
116 | 116 |
if (thing === null) |
117 | 117 |
return "[object Null]"; |
118 | 118 |
return Object.prototype.toString.call(thing); |
119 | 119 |
} |
120 | 120 |
|
121 |
function getDetailedObject(inputObject) { |
|
121 |
getDetailedObject = function getDetailedObject(inputObject) {
|
|
122 | 122 |
var detailedObject = {}; |
123 | 123 |
var properties; |
124 | 124 |
do { |
... | ... | |
185 | 185 |
// Element.prototype.scrollIntoViewIfNeeded = Element.prototype.scrollIntoView |
186 | 186 |
// } |
187 | 187 |
|
188 |
function showElementIfNeeded(el) { |
|
188 |
showElementIfNeeded = function showElementIfNeeded(el) {
|
|
189 | 189 |
if (!Element.prototype.scrollIntoViewIfNeeded) { |
190 | 190 |
if (!isAnyPartOfElementInViewport(el)) |
191 | 191 |
el.scrollIntoView(false); |
... | ... | |
194 | 194 |
} |
195 | 195 |
} |
196 | 196 |
|
197 |
function isAnyPartOfElementInViewport(el) { |
|
197 |
isAnyPartOfElementInViewport = function isAnyPartOfElementInViewport(el) {
|
|
198 | 198 |
try { |
199 | 199 |
const rect = el.getBoundingClientRect(); |
200 | 200 |
// DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, |
... | ... | |
212 | 212 |
} catch (e) { |
213 | 213 |
return false; |
214 | 214 |
} |
215 |
} |
|
215 |
} |
|
216 |
|
|
217 |
return true |
Formats disponibles : Unified diff