Révision 2240
tmp/org.txm.backtomedia.rcp/src/vlcplayerrcp/messages.properties (revision 2240) | ||
---|---|---|
16 | 16 |
BackToMedia_17 = Error: this is not a transcription corpus: no ''{0}'' structure properties |
17 | 17 |
BackToMedia_19 = ENDTIME: |
18 | 18 |
BackToMedia_25 = AUDIO/VIDEO FILE: |
19 |
BackToMedia_26 = Error: no media file (mp3, wav, mp4 or avi) found for name: |
|
20 |
BackToMedia_27 = All media files should be stored in the '' |
|
21 |
BackToMedia_28 = '' directory. |
|
19 |
BackToMedia_26 = Error: no media file (mp3, wav, mp4 or avi) found for name: {0} |
|
20 |
BackToMedia_27 = All media files should be stored in the ''{0}'' directory. |
|
22 | 21 |
BackToMedia_29 = Media file names should be ''<transcription ID>.<supported format>'' |
23 | 22 |
BackToMedia_30 = Unexpected error: |
24 | 23 |
BackToMedia_7 = TEXT ID: |
tmp/org.txm.backtomedia.rcp/src/vlcplayerrcp/MessagesMP.java (revision 2240) | ||
---|---|---|
18 | 18 |
public static String BackToMedia_25; |
19 | 19 |
public static String BackToMedia_26; |
20 | 20 |
public static String BackToMedia_27; |
21 |
public static String BackToMedia_28; |
|
22 | 21 |
public static String BackToMedia_29; |
23 | 22 |
public static String BackToMedia_30; |
24 | 23 |
public static String BackToMedia_7; |
tmp/org.txm.backtomedia.rcp/src/vlcplayerrcp/messages_fr.properties (revision 2240) | ||
---|---|---|
16 | 16 |
BackToMedia_17 = Erreur : pas de propriété de structure ''{0}'' trouvée |
17 | 17 |
BackToMedia_19 = TEMPS FIN : |
18 | 18 |
BackToMedia_25 = Fichier AUDIO/VIDEO : |
19 |
BackToMedia_26 = Error: no media file (mp3, wav, mp4 or avi) found for name: |
|
20 |
BackToMedia_27 = All media files should be stored in the '' |
|
21 |
BackToMedia_28 = '' directory. |
|
19 |
BackToMedia_26 = Error: no media file (mp3, wav, mp4 or avi) found for name: {0} |
|
20 |
BackToMedia_27 = All media files should be stored in the ''{0}'' directory. |
|
22 | 21 |
BackToMedia_29 = Le nom du fichier média doit être ''<transcription ID>.<format supporté>'' |
23 | 22 |
BackToMedia_30 = Erreur : |
24 | 23 |
BackToMedia_7 = Identifiant de texte : |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/commands/function/MediaPreferences.java (revision 2240) | ||
---|---|---|
39 | 39 |
Shell s = d.getActiveShell(); |
40 | 40 |
MediaPreferencesDialog dialog = new MediaPreferencesDialog(s, corpus); |
41 | 41 |
if (dialog.open() == MediaPreferencesDialog.OK) { |
42 |
CorpusCommandPreferences commandPreferences = corpus.getProject().getCommandPreferences("backtomedia"); |
|
42 |
CorpusCommandPreferences commandPreferences = corpus.getProject().getCommandPreferences("backtomedia");//$NON-NLS-1$
|
|
43 | 43 |
for (String p : MediaPreferencesDialog.properties) { |
44 | 44 |
commandPreferences.set(p, dialog.getProperty(p)); |
45 | 45 |
} |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/commands/function/MediaPreferencesDialog.java (revision 2240) | ||
---|---|---|
55 | 55 |
Composite c = new Composite(container, SWT.NONE); |
56 | 56 |
c.setLayout(new GridLayout(3, false)); |
57 | 57 |
|
58 |
CorpusCommandPreferences commandPreferences = corpus.getProject().getCommandPreferences("backtomedia"); |
|
58 |
CorpusCommandPreferences commandPreferences = corpus.getProject().getCommandPreferences("backtomedia");//$NON-NLS-1$
|
|
59 | 59 |
TXMPreferences alternative = BackToMediaPreferences.getInstance(); |
60 | 60 |
|
61 | 61 |
for (String p : properties) { |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/commands/function/BackToMedia.java (revision 2240) | ||
---|---|---|
28 | 28 |
package org.txm.backtomedia.commands.function; |
29 | 29 |
|
30 | 30 |
import java.io.File; |
31 |
import java.io.InputStream; |
|
31 | 32 |
import java.util.HashMap; |
32 | 33 |
|
33 | 34 |
import org.eclipse.core.commands.AbstractHandler; |
... | ... | |
35 | 36 |
import org.eclipse.core.commands.ExecutionException; |
36 | 37 |
import org.eclipse.core.runtime.preferences.IEclipsePreferences; |
37 | 38 |
import org.eclipse.jface.viewers.IStructuredSelection; |
39 |
import org.eclipse.osgi.util.NLS; |
|
38 | 40 |
import org.eclipse.ui.IWorkbenchPart; |
39 | 41 |
import org.eclipse.ui.handlers.HandlerUtil; |
40 | 42 |
import org.txm.backtomedia.editors.vlcplayer.VLCPlayer; |
... | ... | |
44 | 46 |
import org.txm.concordance.rcp.editors.ConcordanceEditor; |
45 | 47 |
import org.txm.core.preferences.TXMPreferences; |
46 | 48 |
import org.txm.objects.CorpusCommandPreferences; |
49 |
import org.txm.rcp.utils.SWTEditorsUtils; |
|
47 | 50 |
import org.txm.searchengine.core.SearchEngine; |
48 | 51 |
import org.txm.searchengine.cqp.AbstractCqiClient; |
49 | 52 |
import org.txm.searchengine.cqp.CQPSearchEngine; |
50 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
|
51 | 53 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
52 | 54 |
import org.txm.searchengine.cqp.corpus.CorpusManager; |
53 | 55 |
import org.txm.searchengine.cqp.corpus.Property; |
... | ... | |
58 | 60 |
|
59 | 61 |
import vlcplayerrcp.MessagesMP; |
60 | 62 |
|
61 |
// TODO: Auto-generated Javadoc |
|
62 | 63 |
/** |
63 | 64 |
* open the VLCPlayer Editor and go back to time |
64 | 65 |
* @author mdecorde. |
... | ... | |
88 | 89 |
|
89 | 90 |
if (!(page instanceof ConcordanceEditor)) { |
90 | 91 |
Log.fine(MessagesMP.BackToMedia_1); |
91 |
System.out.println("Active page is not a ConcordanceEditor"); |
|
92 |
System.out.println("Active page is not a ConcordanceEditor"); //$NON-NLS-1$
|
|
92 | 93 |
return null; |
93 | 94 |
} |
94 | 95 |
ConcordanceEditor ce = (ConcordanceEditor) page; |
... | ... | |
108 | 109 |
|
109 | 110 |
// try reading project specific preferences |
110 | 111 |
//TODO see with SJ how to implement the "command > project > preferences > default preferences" preference order |
111 |
CorpusCommandPreferences commandPreferences = corpus.getProject().getCommandPreferences("backtomedia"); |
|
112 |
String structurePropertyName = commandPreferences.get(BackToMediaPreferences.STRUCTURE, alternative); //$NON-NLS-1$
|
|
113 |
String startPropertyName = commandPreferences.get(BackToMediaPreferences.STRUCTURE_START_PROPERTY, alternative); //$NON-NLS-1$
|
|
114 |
String endPropertyName = commandPreferences.get(BackToMediaPreferences.STRUCTURE_END_PROPERTY, alternative); //$NON-NLS-1$
|
|
112 |
CorpusCommandPreferences commandPreferences = corpus.getProject().getCommandPreferences("backtomedia"); //$NON-NLS-1$
|
|
113 |
String structurePropertyName = commandPreferences.get(BackToMediaPreferences.STRUCTURE, alternative); |
|
114 |
String startPropertyName = commandPreferences.get(BackToMediaPreferences.STRUCTURE_START_PROPERTY, alternative); |
|
115 |
String endPropertyName = commandPreferences.get(BackToMediaPreferences.STRUCTURE_END_PROPERTY, alternative); |
|
115 | 116 |
String sync_mode = commandPreferences.get(BackToMediaPreferences.SYNCMODE, alternative); |
116 | 117 |
String media_directory = commandPreferences.get(BackToMediaPreferences.MEDIA_DIRECTORY, alternative); |
117 | 118 |
String media_format = commandPreferences.get(BackToMediaPreferences.MEDIA_FORMAT, alternative); |
... | ... | |
199 | 200 |
} |
200 | 201 |
} |
201 | 202 |
|
202 |
// try {
|
|
203 |
// startTime = (int)Float.parseFloat(sStartTime);
|
|
204 |
// endTime = (int)Float.parseFloat(sEndTime);
|
|
205 |
// } catch(Exception e2) {
|
|
206 |
// System.out.println("Error: time format must be an Integer, unit is second. Found "+sStartTime);
|
|
207 |
// return null;
|
|
208 |
// }
|
|
203 |
//try { |
|
204 |
// startTime = (int)Float.parseFloat(sStartTime); |
|
205 |
// endTime = (int)Float.parseFloat(sEndTime); |
|
206 |
//} catch(Exception e2) { |
|
207 |
// System.out.println("Error: time format must be an Integer, unit is second. Found "+sStartTime); |
|
208 |
// return null; |
|
209 |
//} |
|
209 | 210 |
|
210 | 211 |
File binDir = corpus.getProject().getProjectDirectory(); |
211 | 212 |
File audioFile = null; |
... | ... | |
213 | 214 |
IEclipsePreferences node = corpus.getProject().getPreferencesScope().getNode(media_index); |
214 | 215 |
String path = node.get(textid, null); |
215 | 216 |
audioFile = new File(path); |
217 |
if (path.startsWith("http:/")) { |
|
218 |
try { |
|
219 |
InputStream conn = audioFile.toURI().toURL().openStream(); |
|
220 |
conn.close(); |
|
221 |
} catch(Exception e) { |
|
222 |
Log.info("Could not open media file: "+path); |
|
223 |
} |
|
224 |
} else if (!audioFile.exists()) { |
|
225 |
Log.info("Media file register in the index not found: "+audioFile); |
|
226 |
return null; |
|
227 |
} |
|
216 | 228 |
} else if (media_directory != null && media_directory.length() > 0 && media_format != null && media_format.length() > 0) { |
217 | 229 |
audioFile = new File(media_directory, textid+"."+media_format); //$NON-NLS-1$ |
230 |
if (media_directory.startsWith("http:/")) { |
|
231 |
try { |
|
232 |
InputStream conn = audioFile.toURI().toURL().openStream(); |
|
233 |
conn.close(); |
|
234 |
} catch(Exception e) { |
|
235 |
Log.info("Could not open media file: "+audioFile); |
|
236 |
} |
|
237 |
} else { // local |
|
238 |
if (!new File(media_directory).exists()) { |
|
239 |
Log.info("Media directory not found: "+media_directory); |
|
240 |
return null; |
|
241 |
} else if (!audioFile.exists()) { |
|
242 |
Log.info("Media file not found: "+audioFile); |
|
243 |
return null; |
|
244 |
} |
|
245 |
} |
|
218 | 246 |
} else { |
219 | 247 |
File mediaDir = new File(binDir, "media"); //$NON-NLS-1$ |
220 | 248 |
audioFile = new File(mediaDir, textid+".mp3"); //$NON-NLS-1$ |
... | ... | |
224 | 252 |
if (!audioFile.exists()) audioFile = new File(mediaDir, textid+".avi"); //$NON-NLS-1$ |
225 | 253 |
if (!audioFile.exists()) audioFile = new File(mediaDir, textid+".mov"); //$NON-NLS-1$ |
226 | 254 |
if (!audioFile.exists()) { |
227 |
System.out.println(MessagesMP.BackToMedia_26+textid);
|
|
228 |
System.out.println(MessagesMP.BackToMedia_27+mediaDir+MessagesMP.BackToMedia_28);
|
|
255 |
System.out.println(NLS.bind(MessagesMP.BackToMedia_26, textid));
|
|
256 |
System.out.println(NLS.bind(MessagesMP.BackToMedia_27, mediaDir));
|
|
229 | 257 |
System.out.println(MessagesMP.BackToMedia_29); |
258 |
return null; |
|
230 | 259 |
} |
231 | 260 |
} |
232 | 261 |
|
233 | 262 |
Log.fine(MessagesMP.BackToMedia_25+audioFile); |
234 |
|
|
263 |
|
|
235 | 264 |
//System.out.println("Linked editors: "+associatedEditors); |
236 | 265 |
VLCPlayerEditor editor = associatedEditors.get(ce); |
237 | 266 |
String path = audioFile.getPath(); |
... | ... | |
241 | 270 |
} else { |
242 | 271 |
//System.out.println("new editor linked to "+ce); |
243 | 272 |
editor = OpenVLCPlayer.openEditor(path, sStartTime, sEndTime); |
273 |
|
|
244 | 274 |
//editor.getPlayer().setRepeat(true); |
245 | 275 |
if (editor == null) { |
246 | 276 |
return null; |
247 | 277 |
} |
278 |
|
|
279 |
// move the editor in the window |
|
280 |
int position = BackToMediaPreferences.getInstance().getInt(BackToMediaPreferences.BACKTOMEDIA_POSITION); |
|
281 |
SWTEditorsUtils.addEditor(editor, ce, position); |
|
282 |
|
|
248 | 283 |
VLCPlayer player = editor.getPlayer(); |
249 | 284 |
if (player != null) { |
250 | 285 |
player.hideStopButton(); |
251 | 286 |
associatedEditors.put(ce, editor); |
252 | 287 |
} |
253 | 288 |
} |
254 |
if (audioFile != null) |
|
289 |
|
|
290 |
if (audioFile != null) { |
|
255 | 291 |
editor.setPartName(audioFile.getName()); |
292 |
} |
|
256 | 293 |
return null; |
257 | 294 |
|
258 | 295 |
} catch (Exception e2) { |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/commands/function/OpenVLCPlayer.java (revision 2240) | ||
---|---|---|
32 | 32 |
import org.eclipse.core.commands.AbstractHandler; |
33 | 33 |
import org.eclipse.core.commands.ExecutionEvent; |
34 | 34 |
import org.eclipse.core.commands.ExecutionException; |
35 |
import org.eclipse.jface.dialogs.InputDialog; |
|
35 | 36 |
import org.eclipse.jface.viewers.IStructuredSelection; |
36 | 37 |
import org.eclipse.swt.SWT; |
37 | 38 |
import org.eclipse.swt.widgets.FileDialog; |
... | ... | |
73 | 74 |
System.out.println(MessagesMP.select_object+s); |
74 | 75 |
} |
75 | 76 |
|
76 |
FileDialog fd = new FileDialog(new Shell(), SWT.SAVE); |
|
77 |
fd.setText(MessagesMP.select_file); |
|
77 |
Shell sh = HandlerUtil.getActiveShell(event); |
|
78 |
InputDialog fd = new InputDialog(sh, "Opening media file...", "Enter file path or URL", "", null); |
|
79 |
//FileDialog fd = new FileDialog(new Shell(), SWT.SAVE); |
|
80 |
//fd.setText(MessagesMP.select_file); |
|
78 | 81 |
|
79 |
String[] filterExt = { "*.*", "*.mp3", "*.ogg", "*.avi", "*.mp4", "*.mov"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ |
|
80 |
fd.setFilterExtensions(filterExt); |
|
81 |
String mrl = fd.open(); |
|
82 |
if (mrl != null) |
|
83 |
openEditor(mrl, 0); |
|
82 |
//String[] filterExt = { "*.*", "*.mp3", "*.ogg", "*.avi", "*.mp4", "*.mov"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ |
|
83 |
//fd.setFilterExtensions(filterExt); |
|
84 |
if (fd.open() == fd.OK) { |
|
85 |
String mrl = fd.getValue(); |
|
86 |
if (mrl != null) |
|
87 |
openEditor(mrl, 0); |
|
88 |
} |
|
89 |
|
|
84 | 90 |
return null; |
85 | 91 |
} |
86 | 92 |
|
... | ... | |
149 | 155 |
|
150 | 156 |
return null; |
151 | 157 |
} |
152 |
|
|
153 | 158 |
} |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/preferences/BackToMediaPreferences.java (revision 2240) | ||
---|---|---|
1 | 1 |
package org.txm.backtomedia.preferences; |
2 | 2 |
|
3 | 3 |
import org.eclipse.core.runtime.preferences.DefaultScope; |
4 |
import org.eclipse.e4.ui.workbench.modeling.EModelService; |
|
4 | 5 |
import org.osgi.framework.FrameworkUtil; |
5 | 6 |
import org.osgi.service.prefs.Preferences; |
6 | 7 |
import org.txm.core.preferences.TXMPreferences; |
... | ... | |
30 | 31 |
|
31 | 32 |
public static final String MEDIA_INDEX_NODE = "media_index_node"; |
32 | 33 |
|
34 |
/** |
|
35 |
* one of the EModelService position constant to use when opening editor: ABOVE = 0 BELOW = 1 LEFT_OF = 2 RIGHT_OF = 3 |
|
36 |
*/ |
|
37 |
public static final String BACKTOMEDIA_POSITION = "backtomedia_position"; //$NON-NLS-1$ |
|
33 | 38 |
|
34 | 39 |
public BackToMediaPreferences() { |
35 | 40 |
// TODO Auto-generated constructor stub |
... | ... | |
46 | 51 |
preferences.put(STRUCTURE_START_PROPERTY, "start"); |
47 | 52 |
preferences.put(STRUCTURE_END_PROPERTY, "end"); |
48 | 53 |
preferences.put(WORD_PROPERTY, "time"); |
54 |
preferences.putInt(BACKTOMEDIA_POSITION, EModelService.ABOVE); |
|
49 | 55 |
} |
50 | 56 |
|
51 | 57 |
/** |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/preferences/BackToMediaPreferencePage.java (revision 2240) | ||
---|---|---|
27 | 27 |
// |
28 | 28 |
package org.txm.backtomedia.preferences; |
29 | 29 |
|
30 |
import org.eclipse.e4.ui.workbench.modeling.EModelService; |
|
30 | 31 |
import org.eclipse.jface.preference.BooleanFieldEditor; |
31 | 32 |
import org.eclipse.jface.preference.FieldEditor; |
32 | 33 |
import org.eclipse.jface.preference.StringFieldEditor; |
... | ... | |
62 | 63 |
* The display parts count in chart title state. |
63 | 64 |
*/ |
64 | 65 |
private BooleanFieldEditor loopProperty; |
66 |
private ComboFieldEditor backtotext_position; |
|
65 | 67 |
private ComboFieldEditor useWordProperty; |
66 | 68 |
private StringFieldEditor defaultStructure; |
67 | 69 |
private StringFieldEditor defaultStructureStartProperty; |
... | ... | |
107 | 109 |
|
108 | 110 |
addField(useWordProperty); |
109 | 111 |
|
112 |
String[][] values = {{"ABOVE", ""+EModelService.ABOVE}, {"BELOW", ""+EModelService.BELOW}, {"LEFT_OF", ""+EModelService.LEFT_OF}, {"RIGHT_OF", ""+EModelService.RIGHT_OF}}; |
|
113 |
backtotext_position = new ComboFieldEditor(BackToMediaPreferences.BACKTOMEDIA_POSITION, "new editor position", values, getFieldEditorParent()); |
|
114 |
addField(backtotext_position); |
|
115 |
|
|
110 | 116 |
spanGroup = new Group(getFieldEditorParent(), SWT.NONE); |
111 | 117 |
spanGroup.setText(MessagesMP.BackToMediaPreferencePage_3); |
112 | 118 |
GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, true, false); |
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/editors/vlcplayer/VLCPlayer.java (revision 2240) | ||
---|---|---|
263 | 263 |
}); |
264 | 264 |
|
265 | 265 |
rateValueLabel = new Label(this, SWT.NONE); |
266 |
rateValueLabel.setText("100%"); |
|
266 |
rateValueLabel.setText("100%");//$NON-NLS-1$
|
|
267 | 267 |
|
268 | 268 |
l = new Label(this, SWT.NONE); |
269 | 269 |
l.setText(MessagesMP.volume); |
Formats disponibles : Unified diff