001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Apr 10, 2003 005 * Time: 11:18:01 PM 006 */ 007 008 package EVolve.util.unifyutils; 009 010 import java.awt.Color; 011 import java.util.ArrayList; 012 import java.util.HashMap; 013 import java.util.HashSet; 014 import java.util.Iterator; 015 016 import EVolve.Scene; 017 import EVolve.data.Entity; 018 import EVolve.visualization.AutoImage; 019 import EVolve.visualization.ReferenceDimension; 020 import EVolve.visualization.Visualization; 021 022 public class Unification { 023 024 public static void unifyEntities(HashMap standard, HashMap toBeUnified) { 025 Iterator it = toBeUnified.keySet().iterator(); 026 while (it.hasNext()) { 027 Entity entity = (Entity)toBeUnified.get(it.next()); 028 029 if (!standard.containsKey(entity.getName())) { 030 standard.put(entity.getName(), entity); 031 } 032 } 033 } 034 035 public static void getUnifiedEntity(HashSet fullEntitySet, ArrayList vizList, int dimension) { 036 HashSet dsourceFound = new HashSet(); 037 HashMap standard = new HashMap(); 038 039 for (int i=0; i<vizList.size(); i++) { 040 Visualization visual = (Visualization)vizList.get(i); 041 Integer dsourceId = new Integer(visual.getDataSourceId()); 042 043 if (dsourceFound.contains(dsourceId)) continue; 044 045 dsourceFound.add(dsourceId); 046 047 ReferenceDimension dim = visual.getLinkableDimension(dimension); 048 049 HashMap toBeUnified = Scene.getDataSourceManager().getDataManager(dsourceId.intValue()).getEntity()[dim.getDataFilter().getTargetType()]; 050 051 Unification.unifyEntities(standard, toBeUnified); 052 } 053 054 Iterator it = standard.keySet().iterator(); 055 while (it.hasNext()) { 056 fullEntitySet.add(standard.get(it.next())); 057 } 058 059 } 060 061 public static void changeColor(AutoImage image, Color newColor) { 062 int w = image.getW(); 063 int h = image.getH(); 064 065 for (int i=0; i<w; i++) { 066 for (int j=0; j<h; j++) { 067 Object temp = image.getColor(i,j); 068 if ((temp == null)||(newColor==null)) continue; 069 image.setColor(i, j,newColor); 070 } 071 } 072 } 073 }