/*
* 作成日: 2004/04/09
* License Apache 2.0
* この生成されたコメントの挿入されるテンプレートを変更するため
* ウィンドウ > 設定 > Java > コード生成 > コードとコメント
*/
package org.jpn.xucker.subtitle.srt;
import java.util.Arrays;
import java.util.List;
import java.util.Vector;
import org.jpn.xucker.subtitle.StandardSubObject;
import org.jpn.xucker.subtitle.sub.SUBObject;
/**
* @author ak
* License Apache 2.0
*
* この生成されたコメントの挿入されるテンプレートを変更するため
* ウィンドウ > 設定 > Java > コード生成 > コードとコメント
*/
public class SRTList {
private int index=1;
Vector srtList=new Vector();
public int size(){
return srtList.size();
}
public void add(SRTObject object){
add(object,false);
}
public synchronized void add(SRTObject object,boolean isIndexChange){
if(isIndexChange){
object.setIndex(index);
srtList.addElement(object);
index++;
}else{
srtList.addElement(object);
index=object.getIndex()+1;
}
}
public synchronized void add(TimeData start,TimeData end,String text){
SRTObject object=new SRTObject();
object.setStartTime(start);
object.setEndTime(end);
object.setIndex(index);
object.setText(text);
srtList.addElement(object);
index++;
}
public SRTObject getSRTObjectAt(int index){
return (SRTObject) srtList.elementAt(index);
}
public List getSubDataList(){
List list=new Vector();
for(int i=0;i<srtList.size();i++){
SRTObject srt=(SRTObject)srtList.get(i);
StandardSubObject standard=new StandardSubObject();
standard.setStartTime(srt.getStartTime().getTime());
standard.setEndTime(srt.getEndTime().getTime());
if(isImageFile(srt.getText())){
standard.setImagePath(srt.getText());
}else{
standard.setText(srt.getText());
}
list.add(standard);
}
return list;
}
/**
* @param text
* @return
*/
private boolean isImageFile(String text) {
String extensions[]={".png",".gif",".bmp",".jpg"};
for (int i = 0; i < extensions.length; i++) {
if(text.toLowerCase().endsWith(extensions[i])){
return true;
}
}
return false;
}
public synchronized void sort(){
SRTObject[] srtObjects=(SRTObject[]) srtList.toArray(new SRTObject[srtList.size()]);
Arrays.sort(srtObjects);
srtList.removeAll(srtList);
for (int i = 0; i < srtObjects.length; i++) {
srtList.add(srtObjects[i]);
}
}
public void reindex(){
//not sort.
SRTObject[] srtObjects=(SRTObject[]) srtList.toArray(new SRTObject[srtList.size()]);
for (int i = 0; i < srtObjects.length; i++) {
srtObjects[i].setIndex(i+1);
}
}
public String toString(){
StringBuffer buffer=new StringBuffer();
SRTObject[] srtObjects=(SRTObject[]) srtList.toArray(new SRTObject[srtList.size()]);
for (int i = 0; i < srtObjects.length; i++) {
buffer.append(srtObjects[i].toString());
buffer.append("\r\n");
}
return buffer.toString();
}
}
|