import java.util.LinkedList; import java.util.List; import javax.swing.JSlider; import sort.MultipleWinTracer; import sort.Sort; import sort.SortThread; import sort.SortableComparableData; import sort.SortableData; import sort.SortableDataWithTracer; import sort.SwapableArray; import sort.WinTracer; /* * Created on 24 oct. 2004 * */ /** * @author baudon * */ public class TestSort { private static Sort getSort(String name) throws ClassNotFoundException, InstantiationException, IllegalAccessException { return (Sort) Class.forName(name).newInstance(); } public static void main(String[] args) throws InstantiationException, IllegalAccessException { List lsorts = new LinkedList(); try { for (String a : args) { lsorts.add(getSort(a)); } } catch (ClassNotFoundException e) { } int nsorts = lsorts.size(); Sort [] sorts = new Sort[nsorts]; lsorts.toArray(sorts); int ndata = args.length - nsorts; JSlider slider = new JSlider(); WinTracer [] wtracers = new WinTracer[nsorts]; SortThread [] threads = new SortThread[nsorts]; for (int i = 0; i < nsorts; i++) { String[] data = new String[ndata]; System.arraycopy(args, nsorts, data, 0, ndata); SortableData sdata = new SortableComparableData( new SwapableArray(data)); SortableDataWithTracer tracer = new SortableDataWithTracer( sdata); wtracers[i] = new WinTracer(tracer, slider); tracer.addObserver(wtracers[i]); threads[i] = new SortThread(sorts[i], tracer); } new MultipleWinTracer(wtracers, slider); for (SortThread st : threads) { st.start(); } } }