84 |
84 |
/** The selection. */
|
85 |
85 |
private IStructuredSelection selection;
|
86 |
86 |
|
87 |
|
private static HashMap<ITXMResultEditor<?>, VLCPlayerEditor> associatedEditors = new HashMap<ITXMResultEditor<?>, VLCPlayerEditor>();
|
|
87 |
private static HashMap<IWorkbenchPart, VLCPlayerEditor> associatedEditors = new HashMap<IWorkbenchPart, VLCPlayerEditor>();
|
88 |
88 |
|
89 |
89 |
/*
|
90 |
90 |
* (non-Javadoc)
|
... | ... | |
109 |
109 |
return null;
|
110 |
110 |
}
|
111 |
111 |
|
|
112 |
IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart();
|
|
113 |
|
112 |
114 |
if (time_parameter != null) {
|
113 |
|
return backToMedia(cqpCorpus, text_parameter, 0, 0, 0, 0, time_parameter, time_parameter, null, HandlerUtil.getActiveWorkbenchWindow(event).getShell());
|
|
115 |
return backToMedia(cqpCorpus, text_parameter, 0, 0, time_parameter, time_parameter, editor, HandlerUtil.getActiveWorkbenchWindow(event).getShell());
|
114 |
116 |
}
|
115 |
117 |
else {
|
116 |
118 |
CQLQuery query = new CQLQuery(NLS.bind("[id=\"{0}\" & _.text_id=\"{1}\"]", word_parameter, text_parameter));
|
117 |
119 |
QueryResult rez = cqpCorpus.query(query, "TMP", false);
|
118 |
120 |
if (rez.getNMatch() == 1) {
|
119 |
121 |
Match m = rez.getMatch(0);
|
120 |
|
return backToMedia(cqpCorpus, text_parameter, m.getStart(), m.getEnd(), 10, 10, null, null, null, HandlerUtil.getActiveWorkbenchWindow(event).getShell());
|
|
122 |
|
|
123 |
return backToMedia(cqpCorpus, text_parameter, m.getStart(), m.getEnd(), null, null, (EditorPart) editor, HandlerUtil.getActiveWorkbenchWindow(event).getShell());
|
121 |
124 |
}
|
122 |
125 |
else {
|
123 |
126 |
Log.warning(NLS.bind("Fail to find word with id={0} in text with id={1}", word_parameter, text_parameter));
|
... | ... | |
157 |
160 |
String textid = line.getTextId();// line.getMatch().getValueForProperty(textP);// get text via text struc property id
|
158 |
161 |
CQPCorpus corpus = line.getConcordance().getCorpus();
|
159 |
162 |
|
160 |
|
return backToMedia(corpus, textid, m.getStart(), m.getEnd(), line.getConcordance().getLeftContextSize(), line.getConcordance().getRightContextSize(), null, null, ce, ce.getContainer()
|
|
163 |
return backToMedia(corpus, textid, m.getStart(), m.getEnd(), null, null, ce, ce.getContainer()
|
161 |
164 |
.getShell());
|
162 |
165 |
}
|
163 |
166 |
}
|
164 |
167 |
|
165 |
|
public static Object backToMedia(CQPCorpus corpus, String textid, int keywordPosition, int keywordEndPosition, int leftContext, int rightContext, String sStartTime, String sEndTime,
|
166 |
|
ITXMResultEditor<?> editor, Shell shell) {
|
|
168 |
public static Object backToMedia(CQPCorpus corpus, String textid, int keywordPosition, int keywordEndPosition, String sStartTime, String sEndTime,
|
|
169 |
IWorkbenchPart editor, Shell shell) {
|
167 |
170 |
|
168 |
171 |
TXMPreferences alternative = BackToMediaPreferences.getInstance();
|
169 |
172 |
|
... | ... | |
181 |
184 |
String secured_media_password = System.getProperty(BackToMediaPreferences.MEDIA_AUTH_PASSWORD);
|
182 |
185 |
String media_format = commandPreferences.get(BackToMediaPreferences.MEDIA_EXTENSION, alternative);
|
183 |
186 |
String media_index = commandPreferences.get(BackToMediaPreferences.MEDIA_INDEX_NODE, alternative);
|
|
187 |
String pTimeName = commandPreferences.get(BackToMediaPreferences.WORD_PROPERTY, alternative);
|
|
188 |
int leftContext = commandPreferences.getInt(BackToMediaPreferences.WORD_CONTEXT_LEFT_DISTANCE, alternative);
|
|
189 |
int rightContext = commandPreferences.getInt(BackToMediaPreferences.WORD_CONTEXT_RIGHT_DISTANCE, alternative);
|
184 |
190 |
|
185 |
191 |
try {
|
186 |
192 |
|
... | ... | |
189 |
195 |
if (sStartTime == null || sEndTime == null) { // we need to find out the time to play
|
190 |
196 |
|
191 |
197 |
if (BackToMediaPreferences.WORDMODE.equals(sync_mode)) {
|
192 |
|
String pTimeName = BackToMediaPreferences.getInstance().getString(BackToMediaPreferences.WORD_PROPERTY);
|
|
198 |
|
193 |
199 |
if ("".equals(pTimeName)) pTimeName = "time"; //$NON-NLS-1$ //$NON-NLS-2$
|
194 |
200 |
|
195 |
201 |
Property timeP = corpus.getProperty(pTimeName);
|
... | ... | |
357 |
363 |
if (editor != null) {
|
358 |
364 |
vlcEditor = associatedEditors.get(editor);
|
359 |
365 |
}
|
360 |
|
if (vlcEditor != null && !editor.isDirty() && !vlcEditor.getPlayer().isDisposed()) {
|
|
366 |
if (vlcEditor != null && !vlcEditor.getPlayer().isDisposed()) {
|
361 |
367 |
vlcEditor.getPlayer().play(path, sStartTime, sEndTime);
|
362 |
368 |
vlcEditor.getPlayer().setRepeat(true);
|
363 |
369 |
}
|
... | ... | |
366 |
372 |
vlcEditor = OpenVLCPlayer.openEditor(path, sStartTime, sEndTime);
|
367 |
373 |
|
368 |
374 |
// editor.getPlayer().setRepeat(true);
|
369 |
|
if (vlcEditor == null) { return null; }
|
|
375 |
if (vlcEditor == null) {
|
|
376 |
Log.warning("Error: could not open the MediaPlayer.");
|
|
377 |
return null;
|
|
378 |
}
|
370 |
379 |
|
371 |
380 |
if (!vlcEditor.isMediaLoaded()) {
|
|
381 |
|
|
382 |
vlcEditor.getSite().getPage().closeEditor(vlcEditor, false);
|
372 |
383 |
if (media_auth) {
|
|
384 |
Log.warning("The MediaPlayer could not open the media: "+media_directory); // don't show credentials
|
373 |
385 |
System.clearProperty(BackToMediaPreferences.MEDIA_AUTH_PASSWORD);
|
|
386 |
System.clearProperty(BackToMediaPreferences.MEDIA_AUTH_LOGIN);
|
|
387 |
} else {
|
|
388 |
Log.warning("The MediaPlayer could not open the media: "+path);
|
374 |
389 |
}
|
375 |
|
vlcEditor.getSite().getPage().closeEditor(vlcEditor, false);
|
376 |
390 |
}
|
377 |
391 |
|
378 |
392 |
// move the editor in the window
|