View Javadoc

1   /**
2    * Copyright (c) 2009-2010, Elias Gomes. All rights reserved.
3    * 
4    * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5    * following conditions are met:
6    * 
7    * - Redistributions of source code must retain the above copyright notice, this list of conditions and the following
8    * disclaimer.
9    * 
10   * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
11   * disclaimer in the documentation and/or other materials provided with the distribution.
12   * 
13   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
14   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
17   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
18   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
19   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20   */
21  package net.sourceforge.mystique.application;
22  
23  import java.util.List;
24  
25  import net.sourceforge.mystique.domain.entity.Comment;
26  import net.sourceforge.mystique.domain.entity.Ticket;
27  import net.sourceforge.mystique.domain.repository.CommentRepository;
28  import net.sourceforge.mystique.domain.repository.Repository;
29  import net.sourceforge.mystique.domain.repository.RepositoryException;
30  import net.sourceforge.mystique.domain.repository.TicketRepository;
31  
32  import org.springframework.beans.factory.annotation.Autowired;
33  import org.springframework.stereotype.Controller;
34  import org.springframework.ui.Model;
35  import org.springframework.web.bind.annotation.RequestMapping;
36  import org.springframework.web.bind.annotation.RequestParam;
37  
38  /**
39   * @author Elias Gomes [eliasgomes@users.sourceforge.net]
40   */
41  @Controller
42  public class CommentController {
43  
44  	@Autowired
45  	private TicketRepository ticketRepository;
46  
47  	@Autowired
48  	private CommentRepository commentRepository;
49  
50  	@RequestMapping("/ticket/comment/list.xhtml")
51  	public String handleList(@RequestParam("ticketId") Long ticketId, Model model) throws RepositoryException {
52  
53  		Ticket ticket = ticketRepository.findById(ticketId);
54  		List<Comment> list = commentRepository.findByTicket(ticket, 0, Repository.SMALL_RESULT);
55  
56  		model.addAttribute("ticket", ticket);
57  		model.addAttribute("list", list);
58  
59  		return "ticket.comment.list";
60  
61  	}
62  
63  	@RequestMapping("/ticket/comment/remove.xhtml")
64  	// TODO: Show success or error message
65  	public String handleRemove(@RequestParam("commentId") Long commentId) throws RepositoryException {
66  
67  		Comment comment = commentRepository.findById(commentId);
68  		Long ticketId = comment.getTicket().getId();
69  		commentRepository.remove(comment);
70  
71  		return "redirect:list.xhtml?ticketId=" + ticketId;
72  
73  	}
74  
75  }