⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tstrackmanager.java

📁 编辑视频文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     *     * @param sourceConfig the configuration of the source file     * @param track the track object     *     * @see #removeTrack(TSSourceConfiguration, TSTrackConfiguration)     */    public void removeTrack(TSSourceConfiguration sourceConfig,        TimeSeriesTrack track) {        if ((sourceConfig == null) || (track == null)) {            return;        }        // check if the track has been removed from the source configuration        if (sourceConfig.getObject(track.getName()) != null) {            sourceConfig.removeObject(track.getName());        }        tracks.remove(track);        notifyListeners(new TimeSeriesChangeEvent(track,                TimeSeriesChangeEvent.DELETE, TimeSeriesChangeEvent.TRACK));    }    /**     * Called when a track configuration has changed.     *     * @param trackConfig the track configuration     */    public void trackChanged(TSTrackConfiguration trackConfig) {        if (trackConfig == null) {            return;        }        // check if the track is in the list        AbstractTSTrack track = null;        Object tr = trackConfig.getObject(trackConfig.getTrackName());        if (tr instanceof AbstractTSTrack) {            track = (AbstractTSTrack) tr;            if (tracks.contains(track)) {                notifyListeners(new TimeSeriesChangeEvent(track,                        TimeSeriesChangeEvent.CHANGE,                        TimeSeriesChangeEvent.TRACK));            }        } else {            Iterator objIt = trackConfig.objectKeySet().iterator();            while (objIt.hasNext()) {                Object key = objIt.next();                Object oo = trackConfig.getObject(key);                if (oo instanceof AbstractTSTrack) {                    track = (AbstractTSTrack) oo;                    if (tracks.contains(track)) {                        notifyListeners(new TimeSeriesChangeEvent(track,                                TimeSeriesChangeEvent.CHANGE,                                TimeSeriesChangeEvent.TRACK));                    }                }            }        }    }    /**     * Called when a track has changed.     *     * @param track the track     */    public void trackChanged(TimeSeriesTrack track) {        if (track == null) {            return;        }        if (tracks.contains(track)) {            // notify listeners; listeners might have to check what has changed            notifyListeners(new TimeSeriesChangeEvent(track,                    TimeSeriesChangeEvent.CHANGE, TimeSeriesChangeEvent.TRACK));        }    }    /**     * Generic request to send a notification to listeners     *     * @param type ADD, CHANGE, DELETE     */    public void tsSourceChanged(int type) {        notifyListeners(new TimeSeriesChangeEvent(this, type,                TimeSeriesChangeEvent.TS_SOURCE));        encoder.encodeAndSave(transcription, trackSourceConfigs.values());    }    /**     * Adds a timeseries source configuration object to the manager. Any track     * objects found through this source configuration will be added to the     * list of managed tracks.     *     * @param configuration a configuration object associated with a single     *        source (file)     */    public void addTrackSource(TSSourceConfiguration configuration) {        if (configuration != null) {            trackSourceConfigs.put(configuration.getSource(), configuration);            // add tracks to the list            Iterator keyIt = configuration.objectKeySet().iterator();            while (keyIt.hasNext()) {                Object key = keyIt.next();                Object o = configuration.getObject(key);                if (o instanceof TimeSeriesTrack) {                    tracks.add(o);                } else if (o instanceof TSTrackConfiguration) { // default                    TSTrackConfiguration tstc = (TSTrackConfiguration) o;                    Object tr = tstc.getObject(tstc.getTrackName());                    if (tr instanceof TimeSeriesTrack) {                        tracks.add(tr); // default situation                    } else {                        Iterator objIt = tstc.objectKeySet().iterator();                        while (objIt.hasNext()) {                            Object ke = objIt.next();                            Object oo = tstc.getObject(ke);                            if (oo instanceof TimeSeriesTrack) {                                tracks.add(oo);                            }                        }                    }                }            }            if (syncPlayer == null) {                TimeSeriesViewer tsViewer = ELANCommandFactory.getViewerManager(transcription)                                                              .createTimeSeriesViewer();                //ELANCommandFactory.getViewerManager(transcription).disableViewer(tsViewer);                tsViewer.setTrackManager(this);                syncPlayer = new TSViewerPlayer(tsViewer,                        ELANCommandFactory.getViewerManager(transcription)                                          .getMasterMediaPlayer()                                          .getMediaDuration());                syncPlayer.setTrackManager(this); // adds the sources                ELANCommandFactory.getViewerManager(transcription)                                  .addMediaPlayer(syncPlayer);                ELANCommandFactory.getLayoutManager(transcription).add(syncPlayer);                ELANCommandFactory.getViewerManager(transcription)                                  .destroyMediaPlayer(syncPlayer);            }            notifyListeners(new TimeSeriesChangeEvent(configuration,                    TimeSeriesChangeEvent.ADD, TimeSeriesChangeEvent.TS_SOURCE));            encoder.encodeAndSave((TranscriptionImpl) transcription,                trackSourceConfigs.values());        }    }    /**     * Removes a source configuration from the managers map     *     * @param configuration a configuration object     *     * @see #removeTrackSource(String)     */    public void removeTrackSource(TSSourceConfiguration configuration) {        if (configuration != null) {            removeTrackSource(configuration.getSource());        }    }    /**     * Removes a timeseries source configuration object from the manager. Any     * track objects found through this source configuration will be removed     * from the list of managed tracks.     *     * @param source name of the configuration (=path)     */    public void removeTrackSource(String source) {        if (source != null) {            TSSourceConfiguration configuration = (TSSourceConfiguration) trackSourceConfigs.remove(source);            if (configuration != null) {                Iterator keyIt = configuration.objectKeySet().iterator();                while (keyIt.hasNext()) {                    Object key = keyIt.next();                    Object o = configuration.getObject(key);                    if (o instanceof TimeSeriesTrack) {                        tracks.remove(o);                    } else if (o instanceof TSTrackConfiguration) { // default                        TSTrackConfiguration tstc = (TSTrackConfiguration) o;                        Object tr = tstc.getObject(tstc.getTrackName());                        if (tr instanceof TimeSeriesTrack) {                            tracks.remove(tr); // default situation                        } else {                            Iterator objIt = tstc.objectKeySet().iterator();                            while (objIt.hasNext()) {                                Object ke = objIt.next();                                Object oo = tstc.getObject(ke);                                if (oo instanceof TimeSeriesTrack) {                                    tracks.remove(oo);                                }                            }                        }                    }                    notifyListeners(new TimeSeriesChangeEvent(o,                            TimeSeriesChangeEvent.DELETE,                            TimeSeriesChangeEvent.TRACK));                }            }            notifyListeners(new TimeSeriesChangeEvent(configuration,                    TimeSeriesChangeEvent.DELETE,                    TimeSeriesChangeEvent.TS_SOURCE));            if (trackSourceConfigs.isEmpty()) {                if (syncPlayer != null) {                    ELANCommandFactory.getLayoutManager(transcription).remove(syncPlayer);                    ELANCommandFactory.getViewerManager(transcription)                                      .destroyViewer(syncPlayer.getViewer());                    ELANCommandFactory.getViewerManager(transcription)                                      .destroyMediaPlayer(syncPlayer);                    syncPlayer = null;                }            }        }        encoder.encodeAndSave(transcription, trackSourceConfigs.values());    }    /**     * Called after a change in configuration settings.     *     * @param configuration the changed configuration     */    public void trackSourceChanged(TSSourceConfiguration configuration) {        if (configuration == null) {            return;        }        // check if the config is in the list        if (trackSourceConfigs.get(configuration.getSource()) != null) {            // check if the time origins of the tracks in this config need to be updated            int origin = configuration.getTimeOrigin();            AbstractTSTrack track = null;            Iterator keyIt = configuration.objectKeySet().iterator();            while (keyIt.hasNext()) {                Object key = keyIt.next();                Object o = configuration.getObject(key);                if (o instanceof AbstractTSTrack) {                    track = (AbstractTSTrack) o;                    if (track.getTimeOffset() != origin) {                        track.setTimeOffset(origin);                        notifyListeners(new TimeSeriesChangeEvent(track,                                TimeSeriesChangeEvent.CHANGE,                                TimeSeriesChangeEvent.TRACK));                    }                } else if (o instanceof TSTrackConfiguration) { // default                    TSTrackConfiguration tstc = (TSTrackConfiguration) o;                    Object tr = tstc.getObject(tstc.getTrackName());                    if (tr instanceof AbstractTSTrack) {                        track = (AbstractTSTrack) tr;                        if (track.getTimeOffset() != origin) {                            track.setTimeOffset(origin);                            notifyListeners(new TimeSeriesChangeEvent(track,                                    TimeSeriesChangeEvent.CHANGE,                                    TimeSeriesChangeEvent.TRACK));                        }                    } else {                        Iterator objIt = tstc.objectKeySet().iterator();                        while (objIt.hasNext()) {                            Object ke = objIt.next();                            Object oo = tstc.getObject(ke);                            if (oo instanceof AbstractTSTrack) {                                track = (AbstractTSTrack) oo;                                if (track.getTimeOffset() != origin) {                                    track.setTimeOffset(origin);                                    notifyListeners(new TimeSeriesChangeEvent(                                            track,                                            TimeSeriesChangeEvent.CHANGE,                                            TimeSeriesChangeEvent.TRACK));                                }                            }                        }                    }                }            }            notifyListeners(new TimeSeriesChangeEvent(configuration,                    TimeSeriesChangeEvent.CHANGE,                    TimeSeriesChangeEvent.TS_SOURCE));            encoder.encodeAndSave(transcription, trackSourceConfigs.values());        }    }    /**     * Adds a listener to the list of time series change listeners.     *     * @param li the listener     */    public void addTimeSeriesChangeListener(TimeSeriesChangeListener li) {        if (listeners == null) {            listeners = new ArrayList();        }        listeners.add(li);    }    /**     * Removes the listeners from the list     *     * @param li the listener     */    public void removeTimeSeriesChangeListener(TimeSeriesChangeListener li) {        if (listeners != null) {            listeners.remove(li);        }    }    /**     * Dispatches the event to all interested in time series change events     *     * @param event the time series change event     */    private void notifyListeners(TimeSeriesChangeEvent event) {        if (listeners != null) {            for (int i = 0; i < listeners.size(); i++) {                ((TimeSeriesChangeListener) listeners.get(i)).timeSeriesChanged(event);            }        }    }    /**     * Dispatches events to the registered listeners.     *     * @param event DOCUMENT ME!     */    public void timeSeriesChanged(TimeSeriesChangeEvent event) {        if (event.getEditSourceType() == TimeSeriesChangeEvent.TRACK) {            if (event.getSource() instanceof TSTrackConfiguration) {                TSTrackConfiguration trc = (TSTrackConfiguration) event.getSource();                Object tr = trc.getObject(trc.getTrackName());                if (event.getEditType() == TimeSeriesChangeEvent.ADD) {                    if (!tracks.contains(tr)) {                        tracks.add(tr);                    }                } else if (event.getEditType() == TimeSeriesChangeEvent.DELETE) {                    tracks.remove(tr);                }            }        }        notifyListeners(event);        encoder.encodeAndSave(transcription, trackSourceConfigs.values());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -