001 /* 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: 4-Sep-2002 005 * Time: 1:44:25 PM 006 * To change template for new class use 007 * Code Style | Class Templates options (Tools | IDE Options). 008 */ 009 package EVolve.util.unifyutils; 010 011 import java.util.ArrayList; 012 import java.util.HashSet; 013 014 import EVolve.Scene; 015 import EVolve.exceptions.NoDataPlotException; 016 import EVolve.visualization.AutoImage; 017 import EVolve.visualization.ReferenceDimension; 018 import EVolve.visualization.Visualization; 019 020 public class UnifiedVisualization { 021 private ArrayList viz; 022 private int dimension; 023 private HashSet fullEntitySet; 024 025 public UnifiedVisualization(int dimension) { 026 this.dimension = dimension; 027 viz = new ArrayList(); 028 fullEntitySet = new HashSet(); 029 } 030 031 public boolean exists(Visualization visual) { 032 boolean retValue = false; 033 for (int i=0;i<viz.size();i++) { 034 if (((Visualization)viz.get(i)).getVisualizationID() == visual.getVisualizationID()) { 035 retValue = true; 036 } 037 } 038 return retValue; 039 } 040 041 public void addVisualization(Visualization [] visuals) { 042 043 for (int i=0;i<visuals.length;i++) { 044 if (exists(visuals[i])) continue; 045 viz.add(viz.size(),visuals[i]); 046 } 047 } 048 049 public void visualize() { 050 ArrayList tobeViz = new ArrayList(); 051 fullEntitySet.clear(); 052 053 for (int i=0; i<viz.size(); i++) { 054 Visualization visual = (Visualization)viz.get(i); 055 AutoImage image = visual.getImage(); 056 if (image == null) 057 tobeViz.add(visual); 058 } 059 060 if (tobeViz.size() != 0) { 061 Scene.getVisualizationManager().prepareForLinkedViz(tobeViz,0); 062 Scene.visualize(); 063 } 064 065 Unification.getUnifiedEntity(fullEntitySet,viz,dimension); 066 067 for (int i = 0; i< viz.size(); i++) { 068 Visualization visual = (Visualization)viz.get(i); 069 ReferenceDimension dim = visual.getLinkableDimension(dimension); 070 dim.linkEntities(fullEntitySet); 071 try { 072 dim.visualize(); 073 } catch (NoDataPlotException e) { 074 Scene.showErrorMessage(e.getMessage()); 075 } 076 } 077 078 for (int i=0; i<viz.size(); i++) { 079 ((Visualization)viz.get(i)).visualize(); 080 } 081 } 082 083 public int unregisterViz(Visualization visual) { 084 int delCount = 0; 085 for (int i=0;i<viz.size();i++) { 086 if (((Visualization)viz.get(i-delCount)).getVisualizationID() == visual.getVisualizationID()) { 087 viz.remove(i-delCount); 088 delCount++; 089 } 090 } 091 if (viz.size() == 1) viz.clear(); 092 093 return viz.size(); 094 } 095 096 }