public void read(File file, Drawing drawing, boolean replace) throws IOException { ImageHolderFigure figure = (ImageHolderFigure) prototype.clone(); figure.loadImage(file); figure.setBounds( new Point2D.Double(0, 0), new Point2D.Double( figure.getBufferedImage().getWidth(), figure.getBufferedImage().getHeight())); if (replace) { drawing.removeAllChildren(); drawing.set(CANVAS_WIDTH, figure.getBounds().width); drawing.set(CANVAS_HEIGHT, figure.getBounds().height); } drawing.basicAdd(figure); }
@Override @SuppressWarnings("unchecked") public Collection<Figure> ungroupFigures(DrawingView view, CompositeFigure group) { LinkedList<Figure> figures = new LinkedList<Figure>(group.getChildren()); view.clearSelection(); group.basicRemoveAllChildren(); LinkedList<Figure> paths = new LinkedList<Figure>(); for (Figure f : figures) { ODGPathFigure path = new ODGPathFigure(); path.removeAllChildren(); for (Map.Entry<AttributeKey, Object> entry : group.getAttributes().entrySet()) { path.set(entry.getKey(), entry.getValue()); } path.add(f); view.getDrawing().basicAdd(path); paths.add(path); } view.getDrawing().remove(group); view.addToSelection(paths); return figures; }
@SuppressWarnings("unchecked") @Override public Collection<Figure> ungroupFigures(DrawingView view, CompositeFigure group) { LinkedList<Figure> figures = new LinkedList<Figure>(group.getChildren()); view.clearSelection(); group.basicRemoveAllChildren(); LinkedList<Figure> paths = new LinkedList<Figure>(); for (Figure f : figures) { ODGPathFigure path = new ODGPathFigure(); path.removeAllChildren(); for (Map.Entry<AttributeKey, Object> entry : group.getAttributes().entrySet()) { path.set(entry.getKey(), entry.getValue()); } path.add(f); view.getDrawing().basicAdd(path); paths.add(path); } view.getDrawing().remove(group); view.addToSelection(paths); return figures; }
@Override public void read(InputStream in, Drawing drawing, boolean replace) throws IOException { ImageHolderFigure figure = createImageHolder(in); if (replace) { drawing.removeAllChildren(); drawing.set(CANVAS_WIDTH, figure.getBounds().width); drawing.set(CANVAS_HEIGHT, figure.getBounds().height); } drawing.basicAdd(figure); }