/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.examples.resources.server;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.servlet.ServletContextEvent;
import com.sencha.gxt.examples.resources.server.data.Folder;
import com.sencha.gxt.examples.resources.server.data.Music;
public class MusicDataLoader {
public static void initMusic(ServletContextEvent event) {
EntityManager em = EMF.get().createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
em.persist(makeFolder());
tx.commit();
}
/**
* package protected for testing
*/
static Folder makeFolder() {
Folder root = makeFolder("Root");
Folder author = makeFolder("Beethoven");
root.addSubFolder(author);
Folder genre = makeFolder("Quartets");
author.addSubFolder(genre);
genre.addMusic(makeMusic("Six String Quartets", author, genre));
genre.addMusic(makeMusic("Three String Quartets", author, genre));
genre.addMusic(makeMusic("Grosse Fugue for String Quartets", author, genre));
genre = makeFolder("Sonatas");
author.addSubFolder(genre);
genre.addMusic(makeMusic("Sonata in A Minor", author, genre));
genre.addMusic(makeMusic("Sonata in F Major", author, genre));
genre = makeFolder("Concertos");
author.addSubFolder(genre);
genre.addMusic(makeMusic("No. 1 - C", author, genre));
genre.addMusic(makeMusic("No. 2 - B-Flat Major", author, genre));
genre.addMusic(makeMusic("No. 3 - C Minor", author, genre));
genre.addMusic(makeMusic("No. 4 - G Major", author, genre));
genre.addMusic(makeMusic("No. 5 - E-Flat Major", author, genre));
genre = makeFolder("Symphonies");
author.addSubFolder(genre);
genre.addMusic(makeMusic("No. 1 - C Major", author, genre));
genre.addMusic(makeMusic("No. 2 - D Major", author, genre));
genre.addMusic(makeMusic("No. 3 - E-Flat Major", author, genre));
genre.addMusic(makeMusic("No. 4 - B-Flat Major", author, genre));
genre.addMusic(makeMusic("No. 5 - C Minor", author, genre));
genre.addMusic(makeMusic("No. 6 - F Major", author, genre));
genre.addMusic(makeMusic("No. 7 - A Major", author, genre));
genre.addMusic(makeMusic("No. 8 - F Major", author, genre));
genre.addMusic(makeMusic("No. 9 - D Minor", author, genre));
author = makeFolder("Brahms");
root.addSubFolder(author);
genre = makeFolder("Concertos");
author.addSubFolder(genre);
genre.addMusic(makeMusic("Violin Concerto", author, genre));
genre.addMusic(makeMusic("Double Concerto - A Minor", author, genre));
genre.addMusic(makeMusic("Piano Concerto No. 1 - D Minor", author, genre));
genre.addMusic(makeMusic("Piano Concerto No. 2 - B-Flat Major", author, genre));
genre = makeFolder("Quartets");
author.addSubFolder(genre);
genre.addMusic(makeMusic("Piano Quartet No. 1 - G Minor", author, genre));
genre.addMusic(makeMusic("Piano Quartet No. 2 - A Major", author, genre));
genre.addMusic(makeMusic("Piano Quartet No. 3 - C Minor", author, genre));
genre.addMusic(makeMusic("String Quartet No. 3 - B-Flat Minor", author, genre));
genre = makeFolder("Sonatas");
author.addSubFolder(genre);
genre.addMusic(makeMusic("Two Sonatas for Clarinet - F Minor", author, genre));
genre.addMusic(makeMusic("Two Sonatas for Clarinet - E-Flat Major", author, genre));
genre = makeFolder("Symphonies");
author.addSubFolder(genre);
genre.addMusic(makeMusic("No. 1 - C Minor", author, genre));
genre.addMusic(makeMusic("No. 2 - D Minor", author, genre));
genre.addMusic(makeMusic("No. 3 - F Major", author, genre));
genre.addMusic(makeMusic("No. 4 - E Minor", author, genre));
author = makeFolder("Mozart");
root.addSubFolder(author);
genre = makeFolder("Concertos");
author.addSubFolder(genre);
genre.addMusic(makeMusic("Piano Concerto No. 12", author, genre));
genre.addMusic(makeMusic("Piano Concerto No. 17", author, genre));
genre.addMusic(makeMusic("Clarinet Concerto", author, genre));
genre.addMusic(makeMusic("Violin Concerto No. 5", author, genre));
genre.addMusic(makeMusic("Violin Concerto No. 4", author, genre));
return root;
}
private static Folder makeFolder(String name) {
Folder folder = new Folder();
folder.setName(name);
return folder;
}
private static Music makeMusic(String name, Folder author, Folder genre) {
return makeMusic(name, author.getName(), genre.getName());
}
private static Music makeMusic(String name, String author, String genre) {
Music m = new Music();
m.setName(name);
m.setAuthor(author);
m.setGenre(genre);
return m;
}
}