8,11d7 < import CH.ifa.draw.util.*; < import java.util.*; < import java.io.*; < 19a16,16 > public interface FigureSelection { 20,44d15 < public class FigureSelection extends Object { < < private byte[] fData; // flattend figures, ready to be resurrected < /** < * The type identifier of the selection. < */ < public final static String TYPE = "CH.ifa.draw.Figures"; < < /** < * Constructes the Figure selection for the vector of figures. < */ < public FigureSelection(Vector figures) { < // a FigureSelection is represented as a flattened ByteStream < // of figures. < ByteArrayOutputStream output = new ByteArrayOutputStream(200); < StorableOutput writer = new StorableOutput(output); < writer.writeInt(figures.size()); < Enumeration selected = figures.elements(); < while (selected.hasMoreElements()) { < Figure figure = (Figure) selected.nextElement(); < writer.writeStorable(figure); < } < writer.close(); < fData = output.toByteArray(); < } 49,49c21,21 < public String getType() { --- > public String getType(); 50,51d21 < return TYPE; < } 58a29,29 > public Object getData(String type); 59,78d28 < public Object getData(String type) { < if (type.equals(TYPE)) { < InputStream input = new ByteArrayInputStream(fData); < Vector result = new Vector(10); < StorableInput reader = new StorableInput(input); < int numRead = 0; < try { < int count = reader.readInt(); < while (numRead < count) { < Figure newFigure = (Figure) reader.readStorable(); < result.addElement(newFigure); < numRead++; < } < } catch (IOException e) { < System.out.println(e.toString()); < } < return result; < } < return null; < }