001 /* 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * ACL Lab, School of Computer Science, Montreal, QC 005 * Date: 2002-8-27 006 * Time: 21:48:13 007 */ 008 package EVolve.util.predefinedutils; 009 010 import java.util.*; 011 import EVolve.exceptions.EVolveException; 012 import EVolve.util.xmlutils.datastructures.SerializedData; 013 import EVolve.util.xmlutils.datastructures.SerializedVisualization; 014 import EVolve.Scene; 015 016 017 public class PredefinedVisualization { 018 019 private boolean translated; 020 private String name; 021 private String filename; 022 private ArrayList vizInfoList; 023 private int currentIndex; 024 private boolean autoLoadTrace; 025 private String dataSourceName; 026 027 028 public PredefinedVisualization(String configFile,String name) { 029 translated = false; 030 filename = configFile; 031 this.name = name; 032 currentIndex = -1; 033 autoLoadTrace = false; 034 vizInfoList = null; 035 try { 036 SerializedData info = VisualizationSerializer.v().getVizInfoFromDisk(filename); 037 autoLoadTrace = info.AutoLoadTrace.equals("Yes"); 038 dataSourceName = info.DataSourceName; 039 } catch (EVolveException e) { 040 041 } 042 } 043 044 public String getName() { 045 return name; 046 } 047 048 public void setName(String name) { 049 this.name = name; 050 } 051 052 public String getFilename() { 053 return filename; 054 } 055 056 public void setFilename(String filename) { 057 this.filename = filename; 058 } 059 060 public boolean isTranslated() { 061 return translated & (!autoLoadTrace); 062 } 063 064 public void setTranslated(boolean translated) { 065 this.translated = false; 066 } 067 068 public SerializedVisualization getVizInfo(int index) { 069 return (SerializedVisualization)vizInfoList.get(index); 070 } 071 072 public void translateVizInfo() throws EVolveException{ 073 currentIndex = -1; 074 SerializedData info = VisualizationSerializer.v().getVizInfoFromDisk(filename); 075 autoLoadTrace = info.AutoLoadTrace.equals("Yes"); 076 if (autoLoadTrace) { 077 boolean success = Scene.getUIManager().addDataSource(info.DataSourceName); 078 079 if (!success) return; 080 081 String currentTrace = Scene.getCurrentDataFilename(); 082 if ((currentTrace==null)||(!currentTrace.equals(info.TraceFileName))) { 083 Scene.setDataFilename(info.TraceFileName); 084 Scene.autoLoadDataSource(); 085 Scene.setDataFilename(null); 086 } 087 Scene.getFilter().loadSelection(info.SerializedSelections,Integer.parseInt(info.SelectedSelection)); 088 } 089 vizInfoList = info.SerializedVisualizations; 090 setTranslated(true); 091 } 092 093 public boolean hasNext() { 094 if (currentIndex == vizInfoList.size() -1) return false; 095 return true; 096 } 097 098 public SerializedVisualization getNextVizInfo() { 099 return (SerializedVisualization )vizInfoList.get(++currentIndex); 100 } 101 102 public void reset() { 103 currentIndex = -1; 104 } 105 106 public boolean isAutoLoadTrace() { 107 return autoLoadTrace; 108 } 109 110 public String getUsedDataSourceName() { 111 return dataSourceName; 112 } 113 }