7a8,11 > import CH.ifa.draw.util.*; > import java.util.*; > import java.io.*; > 15a20,44 > 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(); > } 16,16d19 < public interface FigureSelection { 21,21c49,49 < public String getType(); --- > public String getType() { 21a50,51 > return TYPE; > } 28a59,78 > 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; > } 29,29d58 < public Object getData(String type);