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
16
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
41
42
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
58
59
60
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 }