15a16,16 > import java.util.List; 19a21,21 > import CH.ifa.draw.util.CollectionsFactory; 40a43,52 > * the list of currently added figures > * by: ricardo_padilha. > * description: This has been added to provide support for creation tools that > * insert more than one figure to the drawing, for example, by > * maintaining SHIFT down and clicking. However, this class still > * maintains its normal behavior of creating only one figure. > */ > private List fAddedFigures; > > /** 80a93,103 > setAddedFigures(CollectionsFactory.current().createList()); > } > > /** > * @see CH.ifa.draw.framework.Tool#deactivate() > */ > public void deactivate() { > setCreatedFigure(null); > setAddedFigure(null); > setAddedFigures(null); > super.deactivate(); 89,89c112,112 < setAddedFigure(view().add(getCreatedFigure())); --- > setAddedFigure(getActiveView().add(getCreatedFigure())); 117a141,143 > if (getAddedFigure() != null && !getCreatedFigure().isEmpty()) { > getAddedFigures().add(getAddedFigure()); > } else { 118,119d140 < if (getAddedFigure() != null) { < if (getCreatedFigure().isEmpty()) { 120,120c144,144 < drawing().remove(getAddedFigure()); --- > getActiveView().remove(getAddedFigure()); 121,122d144 < // nothing to undo < setUndoActivity(null); 123a146,149 > > if (getAddedFigures().isEmpty()) { > setUndoActivity(null); > } else { 124,124d145 < else { 127,127d151 < 129,129c153,153 < getUndoActivity().setAffectedFigures(new SingleFigureEnumerator(getAddedFigure())); --- > getUndoActivity().setAffectedFigures(new FigureEnumerator(getAddedFigures())); 130,131d153 < } < setAddedFigure(null); 133,133d154 < setCreatedFigure(null); 157a179,192 > * Gets the list of currently added figure > */ > protected List getAddedFigures() { > return fAddedFigures; > } > > /** > * Sets the addedFigures attribute of the CreationTool object > */ > protected void setAddedFigures(List newAddedFigures) { > fAddedFigures = newAddedFigures; > } > > /** 190,190c225,225 < return new PasteCommand.UndoActivity(view()); --- > return new PasteCommand.UndoActivity(getActiveView());