Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package slaveniMovieland.wicket.app.admin.movies;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import org.apache.wicket.PageParameters;
- import org.apache.wicket.ajax.AjaxRequestTarget;
- import org.apache.wicket.ajax.markup.html.AjaxLink;
- import org.apache.wicket.ajax.markup.html.form.AjaxButton;
- import org.apache.wicket.behavior.SimpleAttributeModifier;
- import org.apache.wicket.markup.html.basic.Label;
- import org.apache.wicket.markup.html.form.Button;
- import org.apache.wicket.markup.html.form.ChoiceRenderer;
- import org.apache.wicket.markup.html.form.DropDownChoice;
- import org.apache.wicket.markup.html.form.Form;
- import org.apache.wicket.markup.html.form.TextArea;
- import org.apache.wicket.markup.html.form.TextField;
- import org.apache.wicket.markup.html.link.BookmarkablePageLink;
- import org.apache.wicket.markup.html.link.Link;
- import org.apache.wicket.markup.html.list.ListItem;
- import org.apache.wicket.markup.html.list.PageableListView;
- import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
- import org.apache.wicket.markup.html.panel.FeedbackPanel;
- import org.apache.wicket.model.PropertyModel;
- import org.apache.wicket.util.value.ValueMap;
- import slaveniMovieland.dal.ProviderManager;
- import slaveniMovieland.dal.entities.Genre;
- import slaveniMovieland.dal.entities.Movie;
- import slaveniMovieland.dal.interfaces.IGenreDal;
- import slaveniMovieland.dal.interfaces.IMovieDal;
- import slaveniMovieland.wicket.app.admin.AdminPage;
- public class MoviesAdminPage extends AdminPage
- {
- int languageId = getMovielandSession().getLanguage().getId();
- List<Movie> moviesList = null;
- PageableListView moviesListView = null;
- EditMovieForm editForm = null;
- @SuppressWarnings("serial")
- private class AddMovieForm extends Form
- {
- private static final long serialVersionUID = 1L;
- private ValueMap properties = new ValueMap();
- @SuppressWarnings("unchecked")
- private List genres = null;
- private TextField nameAdd;
- private DropDownChoice genreAdd;
- private TextField yearAdd;
- private TextArea descriptionAdd;
- private TextArea crewAdd;
- private TextField priceAdd;
- private Button resetAdd;
- private List getGenres(){
- int languageId = getMovielandSession().getLanguage().getId();
- List<Genre> genres = ProviderManager.getDal(IGenreDal.class)
- .getByLanguageId(languageId);
- List tmpGenereList = new ArrayList<String>();
- for(Genre g : genres){
- tmpGenereList.add(g.getName());
- }
- return tmpGenereList;
- }
- private FeedbackPanel feedback;
- /* form */
- public AddMovieForm(String id)
- {
- super(id);
- setOutputMarkupId(true);
- /* fields */
- nameAdd = new TextField("nameAdd", new PropertyModel(properties, "nameAdd"));
- nameAdd.setRequired(true);
- add(nameAdd);
- /* get Genres from DB */
- List<Genre> genres = ProviderManager.getDal(IGenreDal.class).getAll();
- ChoiceRenderer genreRender = new ChoiceRenderer("name");
- genreAdd = new DropDownChoice("genreAdd", new PropertyModel(
- properties, "genreAdd"), genres, genreRender);
- genreAdd.setRequired(true);
- add(genreAdd);
- yearAdd = new TextField("yearAdd", new PropertyModel(
- properties, "yearAdd"), Integer.class);
- yearAdd.setRequired(true);
- add(yearAdd);
- descriptionAdd = new TextArea("descriptionAdd", new PropertyModel(
- properties, "descriptionAdd"));
- descriptionAdd.setRequired(true);
- add(descriptionAdd);
- crewAdd = new TextArea("crewAdd", new PropertyModel(properties, "crewAdd"));
- add(crewAdd);
- priceAdd = new TextField("priceAdd", new PropertyModel(
- properties, "priceAdd"), Double.class);
- priceAdd.setRequired(true);
- add(priceAdd);
- /* panel */
- feedback = new FeedbackPanel("feedback");
- feedback.setOutputMarkupId(true);
- add(feedback);
- AjaxButton addSave = new AjaxButton("addSave", this)
- {
- private static final long serialVersionUID = 1L;
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- onSubmitButton();
- target.appendJavascript("window.history.go(0);");
- }
- @Override
- protected void onError(AjaxRequestTarget target, Form form)
- {
- target.addComponent(form);
- }
- };
- add(addSave);
- }
- protected void onSubmitButton()
- {
- String nameAdd = properties.getString("nameAdd");
- Genre genreAdd = (Genre)properties.get("genreAdd");
- int yearAdd = properties.getInt("yearAdd");
- String descriptionAdd = properties.getString("descriptionAdd");
- String crewAdd = properties.getString("crewAdd");
- double priceAdd = properties.getDouble("priceAdd");
- /* set fields */
- Movie movie = new Movie();
- movie.setName(nameAdd);
- movie.setYear(yearAdd);
- movie.setDescription(descriptionAdd);
- movie.setPrice(priceAdd);
- movie.setCrew(crewAdd);
- movie.setGenre(genreAdd);
- try
- {
- ProviderManager.getDal(IMovieDal.class).insert(movie);
- cleanInput();
- info("Successfully added a movie.");
- }
- catch (Exception e)
- {
- System.out.print(e.getMessage());
- info("Error adding a movie.");
- }
- }
- public void cleanInput()
- {
- properties.clear();
- }
- }
- private class EditMovieForm extends Form
- {
- private static final long serialVersionUID = 1L;
- private ValueMap properties = new ValueMap();
- private TextField nameEdit;
- private DropDownChoice genreEdit;
- private TextField yearEdit;
- private TextArea descriptionEdit;
- private TextArea crewEdit;
- private TextField priceEdit;
- private FeedbackPanel feedback;
- Movie movie = null;
- private BookmarkablePageLink imageAddLink;
- PageParameters params = null;
- private List getGenres(){
- int languageId = getMovielandSession().getLanguage().getId();
- List<Genre> genres = ProviderManager.getDal(IGenreDal.class)
- .getByLanguageId(languageId);
- List tmpGenereList = new ArrayList<String>();
- for(Genre g : genres){
- tmpGenereList.add(g.getName());
- }
- return tmpGenereList;
- }
- /* form */
- public EditMovieForm(String id)
- {
- super(id);
- setOutputMarkupId(true);
- /* fields */
- nameEdit = new TextField("nameEdit", new PropertyModel(properties, "nameEdit"));
- nameEdit.setRequired(true);
- add(nameEdit);
- /* get Genres from DB */
- List<Genre> genres = ProviderManager.getDal(IGenreDal.class).getAll();
- ChoiceRenderer genreRender = new ChoiceRenderer("name");
- genreEdit = new DropDownChoice("genreEdit", new PropertyModel(
- properties, "genreEdit"), genres, genreRender);
- genreEdit.setRequired(true);
- add(genreEdit);
- yearEdit = new TextField("yearEdit", new PropertyModel(
- properties, "yearEdit"), Integer.class);
- yearEdit.setRequired(true);
- add(yearEdit);
- descriptionEdit = new TextArea("descriptionEdit",
- new PropertyModel(properties, "descriptionEdit"));
- descriptionEdit.setRequired(true);
- add(descriptionEdit);
- crewEdit = new TextArea("crewEdit", new PropertyModel(properties, "crewEdit"));
- add(crewEdit);
- priceEdit = new TextField("priceEdit", new PropertyModel(
- properties, "priceEdit"), Double.class);
- priceEdit.setRequired(true);
- add(priceEdit);
- params = new PageParameters();
- /* test */
- params.add("movieId", Integer.toString(33));
- imageAddLink = new BookmarkablePageLink("imageAddLink", MoviesImageUploadPage.class, params);
- imageAddLink.add(new Label("imageAddLinkLabel","Add images"));
- /* panel */
- feedback = new FeedbackPanel("feedback");
- feedback.setOutputMarkupId(true);
- add(feedback);
- AjaxButton editSave = new AjaxButton("editSave", this)
- {
- private static final long serialVersionUID = 1L;
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- onSubmitButton();
- target.addComponent(form);
- }
- @Override
- protected void onError(AjaxRequestTarget target, Form form)
- {
- target.addComponent(form);
- }
- };
- add(editSave);
- add(imageAddLink);
- }
- protected void onSubmitButton()
- {
- if (movie == null)
- {
- info("Please select movie.");
- return;
- }
- int movieId = properties.getInt("movieId");
- String nameEdit = properties.getString("nameEdit");
- Genre genreEdit = (Genre)properties.get("genreEdit");
- int yearEdit = properties.getInt("yearEdit");
- String descriptionEdit = properties.getString("descriptionEdit");
- String crewEdit = properties.getString("crewEdit");
- double priceEdit = Double.valueOf(properties.getString("priceEdit"));
- /* set fields */
- Movie newMovie = movie;
- newMovie.setId(movieId);
- newMovie.setName(nameEdit);
- newMovie.setYear(yearEdit);
- newMovie.setDescription(descriptionEdit);
- newMovie.setPrice(priceEdit);
- newMovie.setCrew(crewEdit);
- newMovie.setGenre(genreEdit);
- try
- {
- ProviderManager.getDal(IMovieDal.class).update(newMovie);
- moviesList.remove(movie);
- moviesList.add(newMovie);
- info("Edit successful.");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- info("Edit failed.");
- }
- }
- public void showMovieData(Movie m)
- {
- properties.put("nameEdit", m.getName());
- properties.put("genreEdit", m.getGenre());
- properties.put("yearEdit", m.getYear());
- properties.put("descriptionEdit", m.getDescription());
- properties.put("crewEdit", m.getCrew());
- properties.put("priceEdit", m.getPrice());
- properties.put("movieId", m.getId());
- movie = m;
- params.put("movieId", m.getId());
- }
- }
- @SuppressWarnings("rawtypes")
- private class SearchMovieForm extends Form
- {
- private static final long serialVersionUID = 1L;
- private ValueMap properties = new ValueMap();
- private TextField keyword;
- private DropDownChoice choice;
- final List terms = Arrays.asList(new String[] { "Name", "Genre", "Year" });
- /* form */
- public SearchMovieForm(String id)
- {
- super(id);
- /* fields */
- keyword = new TextField("keyword", new PropertyModel(properties, "keyword"));
- add(keyword);
- choice = new DropDownChoice("choice", new PropertyModel(properties, "choice"), terms);
- add(choice);
- }
- @Override
- protected void onSubmit()
- {
- String keyword = properties.getString("keyword");
- String column = properties.getString("choice");
- displayMovieSearchResults(keyword, column);
- resetMovieList();
- }
- }
- public List<Movie> searchMovies(String keyword, String choice)
- {
- return ProviderManager.getDal(IMovieDal.class).searchMovies(keyword, choice);
- }
- private void displayMovieSearchResults(String keyword, String column)
- {
- try
- {
- this.moviesListView = this.displaySearchResults(keyword, column);
- }
- catch (Exception e)
- {
- e.getMessage();
- }
- }
- public void removeMovieList()
- {
- try
- {
- this.remove(moviesListView);
- this.remove("navigator");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public void addMovieList()
- {
- try
- {
- this.add(moviesListView);
- PagingNavigator navigator = new PagingNavigator("navigator", moviesListView);
- if (moviesList.size() > 20)
- navigator.setVisible(true);
- else
- navigator.setVisible(false);
- add(navigator);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public void resetMovieList()
- {
- removeMovieList();
- addMovieList();
- }
- private PageableListView displaySearchResults(String keyword, String choice)
- {
- if(moviesListView != null)
- moviesListView.removeAll();
- moviesList = searchMovies(keyword, choice);
- moviesListView = new PageableListView("moviesListView", moviesList, 20)
- {
- public void populateItem(ListItem item)
- {
- final Movie movie = (Movie) item.getModelObject();
- item.add(new Label("name", movie.getName()));
- item.add(new Label("genre", movie.getGenre().getName()));
- item.add(new Label("year", movie.getYear() + ""));
- item.add(new Label("price", movie.getPrice() + ""));
- Link delete = new Link("delete", item.getModel())
- {
- @Override
- public void onClick()
- {
- try
- {
- Movie selectedMovie = (Movie) getModelObject();
- ProviderManager.getDal(IMovieDal.class).delete(
- selectedMovie.getId());
- moviesList.remove(selectedMovie);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- };
- String message = "Do you want to delete this movie?";
- delete.add(new SimpleAttributeModifier("onclick", "return confirm(' " + message + " ');"));
- item.add(delete);
- item.add(new AjaxLink("edit")
- {
- @Override
- public void onClick(AjaxRequestTarget target)
- {
- try
- {
- editForm.showMovieData(movie);
- target.addComponent(editForm);
- target.appendJavascript("$('#accordion').accordion('activate', 2);");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- });
- }
- };
- moviesListView.setOutputMarkupId(true);
- return moviesListView;
- }
- public MoviesAdminPage()
- {
- AddMovieForm addForm = new AddMovieForm("addMovieForm");
- add(addForm);
- editForm = new EditMovieForm("editMovieForm");
- add(editForm);
- SearchMovieForm searchForm = new SearchMovieForm("searchMoviesForm");
- add(searchForm);
- moviesListView = displaySearchResults("", "");
- addMovieList();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement