/* 
 * 作成日: 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(); 
} 
}
    
    |