@SuppressWarnings("unchecked")
	@Override
	public void open(File file) {
		ObjectInputStream ois = null;
		try {
			ois = new ObjectInputStream(new FileInputStream(file));
			shapes = ((ListenedList<ShapeComponent>) ois.readObject());
			shapes.setRunnable(new Runnable() {
				
				@Override
				public void run() {
					setChanged();
					notifyObservers();
				}
			});
			
			for(ShapeComponent shape : shapes) {
				shape.setSupport(this);
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(ois != null)
				try {
					ois.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
		setChanged();
		notifyObservers();
	}