001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Apr 11, 2003 005 * Time: 5:02:28 PM 006 */ 007 008 package EVolve.util; 009 010 import java.util.ArrayList; 011 import java.util.HashMap; 012 import java.util.HashSet; 013 import java.util.Iterator; 014 import java.util.Stack; 015 016 import javax.swing.JOptionPane; 017 018 import EVolve.Scene; 019 import EVolve.visualization.Visualization; 020 import EVolve.visualization.XYViz.XYVisualization; 021 022 public class HelperFuncs { 023 public static boolean inDebug = false; 024 public static int stop = -1; 025 026 public static HashMap cloneHashMap(HashMap source) { 027 if (source == null) return null; 028 029 Iterator it = source.keySet().iterator(); 030 HashMap target = new HashMap(); 031 while (it.hasNext()) { 032 Object key = it.next(); 033 target.put(key, source.get(key)); 034 } 035 036 return target; 037 } 038 039 public static HashSet cloneHashSet(HashSet source) { 040 if (source == null) return null; 041 042 Iterator it = source.iterator(); 043 HashSet target = new HashSet(); 044 while (it.hasNext()) { 045 target.add(it.next()); 046 } 047 048 return target; 049 } 050 051 public static ArrayList cloneArrayList(ArrayList source) { 052 ArrayList target = new ArrayList(); 053 054 for (int i=0; i<source.size(); i++) { 055 target.add(source.get(i)); 056 } 057 058 return target; 059 } 060 061 public static Stack cloneStack(Stack source) { 062 Stack target = new Stack(); 063 064 for (int i=0; i<source.size(); i++) { 065 target.add(source.get(i)); 066 } 067 068 return target; 069 } 070 071 public static XYVisualization getActiveXYViz() { 072 Visualization visual = Scene.getVisualizationManager().getActiveVisualization(); 073 if ((visual == null) || (!(visual instanceof XYVisualization))) 074 return null; 075 076 return (XYVisualization)visual; 077 } 078 079 public static void getDebugNo() { 080 String abc = JOptionPane.showInputDialog("stop condition"); 081 try { 082 stop = Integer.parseInt(abc); 083 } catch (Exception e) { 084 085 } 086 inDebug = false; 087 Scene.getUIManager().resetDebugMenu(inDebug); 088 } 089 090 public static long translateHexString(String line) throws NumberFormatException{ 091 long retVal = 0, factor = 1; 092 char[] buf = new char[line.length()]; 093 094 line.getChars(0,line.length(),buf,0); 095 096 for (int i=buf.length-1; i>=0; i--) { 097 switch (buf[i]) { 098 case '0': 099 case '1': 100 case '2': 101 case '3': 102 case '4': 103 case '5': 104 case '6': 105 case '7': 106 case '8': 107 case '9': 108 retVal = retVal + ((int)buf[i] - 0x30)*factor; 109 break; 110 case 'a': 111 case 'A': 112 retVal = retVal + 10 * factor; 113 break; 114 case 'b': 115 case 'B': 116 retVal = retVal + 11 * factor; 117 break; 118 case 'c': 119 case 'C': 120 retVal = retVal + 12 * factor; 121 break; 122 case 'd': 123 case 'D': 124 retVal = retVal + 13 * factor; 125 break; 126 case 'e': 127 case 'E': 128 retVal = retVal + 14 * factor; 129 break; 130 case 'f': 131 case 'F': 132 retVal = retVal + 15 * factor; 133 break; 134 default: 135 throw new NumberFormatException(); 136 } 137 factor = factor*16; 138 } 139 return retVal; 140 141 } 142 143 public static String restoreTimeFormat(long time) { 144 long factor = 60L*60L*1000000L; 145 String[] tokens = {"h ", "m ", "s ", " "}; 146 String returnVal = ""; 147 int i = 0; 148 149 for (i=0; i<4; i++) { 150 returnVal = returnVal + time/factor + tokens[i]; 151 time = time % factor; 152 if (factor >1000000) { 153 factor = factor/60; 154 } else { 155 factor = factor/1000; 156 } 157 } 158 159 returnVal = returnVal + time%(60L*60L*1000000L); 160 161 return returnVal; 162 } 163 164 }