View Javadoc

1   package org.musicontroller.gui.importer;
2   
3   import java.util.List;
4   
5   import org.apache.hivemind.util.PropertyUtils;
6   import org.apache.log4j.Logger;
7   import org.apache.tapestry.IPage;
8   import org.apache.tapestry.IRequestCycle;
9   import org.apache.tapestry.html.BasePage;
10  import org.musicontroller.core.jobs.MetadataExtractJob;
11  import org.musicontroller.importer.ImporterException;
12  import org.musicontroller.importer.MusicArchiveBean;
13  
14  /**
15   * @author Varienaja
16   * @version $Id: ImportProgress.java,v 1.1 2010/03/16 18:55:43 varienaja Exp $
17   */
18  public abstract class ImportProgress extends BasePage {
19  	public static final Logger log = Logger.getLogger(ImportProgress.class);
20  	
21  	public abstract void setFeedback(String msg);
22  	
23  	
24  	public List<MusicArchiveBean> getArchives() {
25  		return MetadataExtractJob.getMusicArchiveBeanList();
26  	}
27  
28  	private MusicArchiveBean getBeanForName(String archiveName) {
29  		MusicArchiveBean bean = null;
30  		for (MusicArchiveBean test : getArchives()) {
31  			if (test.getArchiveName().equals(archiveName)) {
32  				bean = test;
33  				break;
34  			}
35  		}
36  		return bean;
37  	}
38  	
39  	/**
40  	 * Forwards the User to a Page where the archive can be reviewed and imported.
41  	 * @param cycle
42  	 * @param archiveName
43  	 */
44  	public void reviewArchive(IRequestCycle cycle, String archiveName) {
45  		MusicArchiveBean bean = getBeanForName(archiveName);
46  		
47  		if (bean==null) {
48  			log.error("Error: bean with name: "+archiveName+" not found!");
49  		} else {
50  			IPage page = cycle.getPage("MusicArchive");
51  			PropertyUtils.write(page,"archive",bean);
52  			cycle.activate(page);
53  		}
54  	}
55  	
56  	/**
57  	 * Removes the archivebean and all relevant files. The archive will not
58  	 * be imported.
59  	 * @param cycle
60  	 * @param archiveName
61  	 */
62  	public void deleteArchive(IRequestCycle cycle, String archiveName) {
63  		try {
64  			MusicArchiveBean bean = getBeanForName(archiveName);
65  			MetadataExtractJob.removeMusicArchiveBean(bean);
66  			setFeedback("Archive "+archiveName+" deleted.");
67  		} catch (ImporterException e) {
68  			setFeedback(e.getMessage());
69  		}
70  	}
71  	
72  }