//----------------------------------------------------------------------------// // // // L o a d S t e p // // // //----------------------------------------------------------------------------// // <editor-fold defaultstate="collapsed" desc="hdr"> // // Copyright © Hervé Bitteur and others 2000-2013. All rights reserved. // // This software is released under the GNU General Public License. // // Goto http://kenai.com/projects/audiveris to report bugs or suggestions. // //----------------------------------------------------------------------------// // </editor-fold> package omr.step; import omr.score.Score; import omr.sheet.Sheet; import omr.sheet.SystemInfo; import omr.sheet.picture.PictureLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.image.RenderedImage; import java.io.File; import java.util.Collection; import java.util.SortedMap; import java.util.SortedSet; import java.util.TreeSet; /** * Class {@code LoadStep} reloads the image for a sheet, * from a provided image file. * <p>This is simply a RE-loading, triggered by the user. The initial loading * is always done in {@link Score#createPages(SortedSet)}.</p> * * @author Hervé Bitteur */ public class LoadStep extends AbstractStep { //~ Static fields/initializers --------------------------------------------- /** Usual logger utility */ private static final Logger logger = LoggerFactory.getLogger(LoadStep.class); //~ Constructors ----------------------------------------------------------- /** * Creates a new LoadStep object. */ public LoadStep () { super( Steps.LOAD, Level.SHEET_LEVEL, Mandatory.MANDATORY, Step.PICTURE_TAB, "Reload the sheet picture"); } //~ Methods ---------------------------------------------------------------- //------// // doit // //------// @Override public void doit (Collection<SystemInfo> unused, Sheet sheet) throws StepException { final Score score = sheet.getScore(); final File imageFile = score.getImageFile(); final int index = sheet.getPage() .getIndex(); final SortedSet<Integer> set = new TreeSet<>(); set.add(index); SortedMap<Integer, RenderedImage> images = PictureLoader.loadImages(imageFile, set); if (images != null) { sheet.setImage(images.get(index)); } } }