001 /* 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: 2002-8-29 005 * Time: 13:31:24 006 * To change template for new class use 007 * Code Style | Class Templates options (Tools | IDE Options). 008 */ 009 package EVolve.util.predefinedutils; 010 011 import java.util.*; 012 import java.awt.*; 013 import java.io.*; 014 015 import EVolve.Scene; 016 import EVolve.util.xmlutils.datastructures.SerializedVisualization; 017 import EVolve.util.settings.SceneSetting; 018 import EVolve.exceptions.EVolveException; 019 import EVolve.visualization.Visualization; 020 021 public class PredefinedVisualizationRunner { 022 private ArrayList predefinedVizCollection; 023 private int selected; 024 025 public PredefinedVisualizationRunner() { 026 predefinedVizCollection = new ArrayList(); 027 selected = 0; 028 } 029 030 public int getSelected() { 031 return this.selected; 032 } 033 034 public void setSelected(int selected) { 035 this.selected = selected; 036 } 037 038 public int getPredefinedVisualizationNumber() { 039 return predefinedVizCollection.size(); 040 } 041 042 public String getConfigureName(int index) { 043 return ((PredefinedVisualization)predefinedVizCollection.get(index)).getName(); 044 } 045 046 public PredefinedVisualization getSelectedPredefinedViz() { 047 return predefinedVizCollection.size() == 0 ? null : (PredefinedVisualization)predefinedVizCollection.get(selected); 048 } 049 050 public PredefinedVisualization getPredefinedVizByIndex(int index) { 051 return (PredefinedVisualization)predefinedVizCollection.get(index); 052 } 053 054 public void addPredefinedVisualization(String filename, String configname) { 055 for (int i=0; i<predefinedVizCollection.size(); i++) { 056 PredefinedVisualization viz = (PredefinedVisualization)predefinedVizCollection.get(i); 057 if (viz.getFilename().equals(filename)) { 058 viz.setTranslated(false); 059 viz.setFilename(filename); 060 viz.setName(configname); 061 return; 062 } 063 } 064 PredefinedVisualization viz = new PredefinedVisualization(filename,configname); 065 predefinedVizCollection.add(predefinedVizCollection.size(),viz); 066 } 067 068 public boolean containsConfigure(String name) { 069 070 for (int i=0; i< predefinedVizCollection.size(); i++) { 071 if (((PredefinedVisualization)predefinedVizCollection.get(i)).getName().equals(name)) return true; 072 } 073 074 return false; 075 } 076 077 public int getIdFromName(String name) { 078 int retValue = -1; 079 for (int i=0; i< predefinedVizCollection.size(); i++) { 080 if (((PredefinedVisualization)predefinedVizCollection.get(i)).getName().equals(name)) retValue = i; 081 } 082 083 return retValue; 084 } 085 086 public void runPredefinedVisualization() { 087 Visualization visual = null; 088 PredefinedVisualization predefinedViz = getSelectedPredefinedViz(); 089 090 if (predefinedViz == null) return; 091 try { 092 if (!predefinedViz.isTranslated()) 093 predefinedViz.translateVizInfo(); 094 095 } catch (EVolveException e) { 096 Scene.showErrorMessage(e.getMessage()); 097 return; 098 } 099 100 //Scene.getVisualizationManager().cleanup(); 101 while (predefinedViz.hasNext()) { 102 SerializedVisualization viz = predefinedViz.getNextVizInfo(); 103 104 visual = Scene.getVisualizationManager().newVisualization(viz.FactoryName); 105 106 visual.getWindow().setBounds(new Rectangle(Integer.parseInt(viz.WindowX), Integer.parseInt(viz.WindowY), 107 Integer.parseInt(viz.WindowWidth),Integer.parseInt(viz.WindowHeight))); 108 visual.setName(viz.WindowTitle); 109 visual.restoreConfiguration(viz); 110 } 111 Scene.getVisualizationManager().addAllVisualizations(); 112 Scene.getFilter().updateSelection(); 113 Scene.getVisualizationManager().prepareListToBeVisualized(); 114 Scene.visualize(); 115 predefinedViz.reset(); 116 } 117 118 public ArrayList getPredefinedVizList() { 119 return predefinedVizCollection; 120 } 121 122 public void loadPredefinedFiles() { 123 String dirName = SceneSetting.v().getConfigurationPath(); 124 125 if ((dirName == null)||(dirName.length()==0)) 126 return ; 127 128 129 File dir = new File(dirName); 130 String files[] = dir.list(new FilenameFilter() { 131 public boolean accept(File dir, String name) { 132 return name.endsWith("xml"); 133 } 134 }); 135 136 /* Were we able to read the directory? */ 137 if (files == null) { 138 Scene.showErrorMessage("Directory "+ dirName + " does not exist!"); 139 return; 140 } 141 142 for (int i=0; i<files.length; i++) { 143 String fname = dirName + File.separator + files[i]; 144 VisualizationSerializer.v().loadConfiguration(fname); 145 } 146 147 } 148 }