message
git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@229 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
parent
c51b91ded2
commit
636f26335f
@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
|
||||
>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<a wicket:id="first"><<</a> <a wicket:id="prev"><</a>
|
||||
<span wicket:id="navigation">
|
||||
<a wicket:id="pageLink" href="#"><span wicket:id="pageNumber">5</span></a>
|
||||
</span>
|
||||
<a wicket:id="next">></a> <a wicket:id="last">>></a>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,16 @@
|
||||
package se.su.dsv.scipro.message.panels;
|
||||
|
||||
import org.apache.wicket.markup.html.navigation.paging.IPageable;
|
||||
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
|
||||
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
|
||||
|
||||
public class CustomPagingNavigator extends PagingNavigator {
|
||||
public CustomPagingNavigator(final String id, final IPageable pageable) {
|
||||
this(id, pageable, null);
|
||||
}
|
||||
|
||||
public CustomPagingNavigator(final String id, final IPageable pageable,
|
||||
final IPagingLabelProvider labelProvider) {
|
||||
super(id, pageable, labelProvider);
|
||||
}
|
||||
}
|
@ -28,28 +28,7 @@
|
||||
<td><a href="#" wicket:id="removeLink">Remove<p/></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table wicket:id="private-message-item">
|
||||
<tr>
|
||||
<hr/>
|
||||
</tr>
|
||||
<tr><strong>Private Message</strong></tr>
|
||||
<tr >
|
||||
<td wicket:id="application.date"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="application.from"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="application.title"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td wicket:id="application.message"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#" wicket:id="removeLink">Remove<p/></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div wicket:id="navigator"></div>
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
|
@ -5,6 +5,7 @@ package se.su.dsv.scipro.message.panels;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
@ -13,6 +14,10 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.list.PageableListView;
|
||||
import org.apache.wicket.markup.html.navigation.paging.IPageable;
|
||||
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
|
||||
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
@ -27,6 +32,7 @@ import se.su.dsv.scipro.data.dao.interfaces.UserDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.BoardMessage;
|
||||
import se.su.dsv.scipro.data.dataobjects.MessageBoard;
|
||||
import se.su.dsv.scipro.data.dataobjects.PrivateMessage;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.Recipient;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
|
||||
@ -36,83 +42,50 @@ import se.su.dsv.scipro.data.dataobjects.User;
|
||||
*/
|
||||
public class MessagePanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private MessageBoardDao messageBoardDao;
|
||||
|
||||
@SpringBean
|
||||
private BoardMessageDao boardMessageDao;
|
||||
@SpringBean
|
||||
private UserDao userDao;
|
||||
@SpringBean
|
||||
private SupervisorMessageBoardDao supervisorMessageBoardDao;
|
||||
@SpringBean
|
||||
private SupervisorBoardMessageDao supervisorBoardMessageDao;
|
||||
|
||||
@SpringBean
|
||||
private ProjectDao projectDao;
|
||||
@SpringBean
|
||||
private PrivateMessageDao privateMessageDao;
|
||||
@SpringBean
|
||||
private RecipientDao recipientDao;
|
||||
|
||||
private WebMarkupContainer listContainer;
|
||||
|
||||
private CustomPagingNavigator pagingNavigator;
|
||||
|
||||
private MessageBoard mb;
|
||||
private Project project;
|
||||
|
||||
private ListView<BoardMessage> boardMessageListView;
|
||||
private PageableListView<BoardMessage> boardMessageListView;
|
||||
|
||||
private ListView<Recipient> privateMessageListView;
|
||||
|
||||
public MessagePanel(String id, MessageBoard mb) {
|
||||
public MessagePanel(String id, Project project) {
|
||||
super(id);
|
||||
this.mb = mb;
|
||||
// BoardMessage bm = new BoardMessage();
|
||||
// bm.setFromUser(user);
|
||||
// bm.setTitle("WuuuuuuuuuuuuuuuuT");
|
||||
// bm.setMessage("Tjena tja");
|
||||
// bm = boardMessageDao.save(bm);
|
||||
//
|
||||
|
||||
// mb.setTitle("Apans messageBoard");
|
||||
// List<BoardMessage> bmList = mb.getBoardMessageList();
|
||||
// bmList.add(bm);
|
||||
// mb.setBoardMessageList(bmList);
|
||||
// mb.setProject(projectDao.load(1L));
|
||||
// mb = messageBoardDao.save(mb);
|
||||
//
|
||||
// SupervisorBoardMessage sbm = new SupervisorBoardMessage();
|
||||
// sbm.setFromUser(userDao.load(1L));
|
||||
// sbm.setTitle("Han jobbar sakta");
|
||||
// sbm.setMessage("Fett långsamtttttt");
|
||||
// sbm = supervisorBoardMessageDao.save(sbm);
|
||||
//
|
||||
// SupervisorMessageBoard smb = new SupervisorMessageBoard();
|
||||
// smb.setTitle("Gorillans supervisorMessageBoard");
|
||||
// smb.setProject(projectDao.load(2L));
|
||||
// List<SupervisorBoardMessage> sbmList =
|
||||
// smb.getSupervisorBoardMessageList();
|
||||
// sbmList.add(sbm);
|
||||
// smb.setSupervisorBoardMessageList(sbmList);
|
||||
//
|
||||
// smb = supervisorMessageBoardDao.save(smb);
|
||||
this.project = project;
|
||||
loadListView();
|
||||
listContainer = new WebMarkupContainer("listContainer");
|
||||
listContainer.add(boardMessageListView);
|
||||
listContainer.add(privateMessageListView);
|
||||
listContainer.add(pagingNavigator = new CustomPagingNavigator("navigator", boardMessageListView){
|
||||
@Override
|
||||
public boolean isVisible(){
|
||||
return boardMessageListView.size() > 0;
|
||||
}
|
||||
});
|
||||
listContainer.setOutputMarkupId(true);
|
||||
add(listContainer);
|
||||
|
||||
}
|
||||
|
||||
public void loadListView() {
|
||||
User user = userDao.load(1L);
|
||||
mb = messageBoardDao.reLoad(mb);
|
||||
List<BoardMessage> bmList = mb.getBoardMessageList();
|
||||
project = projectDao.reLoad(project);
|
||||
List<BoardMessage> bmList = project.getMessageBoard().getBoardMessageList();
|
||||
Collections.sort(bmList, new Comparator<BoardMessage>() {
|
||||
public int compare(BoardMessage o1, BoardMessage o2) {
|
||||
return o1.getDateCreated().compareTo(o2.getDateCreated());
|
||||
}
|
||||
});
|
||||
boardMessageListView = new ListView<BoardMessage>(
|
||||
"board-message-item", bmList) {
|
||||
boardMessageListView = new PageableListView<BoardMessage>(
|
||||
"board-message-item", bmList, 5) {
|
||||
|
||||
@Override
|
||||
protected void populateItem(final ListItem<BoardMessage> item) {
|
||||
@ -127,34 +100,8 @@ public class MessagePanel extends Panel {
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
privateMessageListView = new ListView<Recipient>(
|
||||
"private-message-item", recipientDao.getRecipientsByUser(user)) {
|
||||
|
||||
@Override
|
||||
protected void populateItem(final ListItem<Recipient> item) {
|
||||
final Recipient rec = item.getModelObject();
|
||||
PrivateMessage pm = rec.getPrivateMessage();
|
||||
item.add(new Label("application.date", pm.getDateCreated()
|
||||
.toString()));
|
||||
item.add(new Label("application.from", pm.getFromUser()
|
||||
.getFirstName() + " " + pm.getFromUser().getLastName()));
|
||||
item.add(new Label("application.title", pm.getTitle()));
|
||||
item.add(new Label("application.message", pm.getMessage()));
|
||||
RecipientDeleteLink rdl = new RecipientDeleteLink("removeLink", item.getModelObject());
|
||||
item.add(rdl);
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
public void removeMessage(BoardMessage bm) {
|
||||
boardMessageDao.delete(bm);
|
||||
}
|
||||
|
||||
public void removeRecipient(Recipient r) {
|
||||
recipientDao.delete(r);
|
||||
}
|
||||
|
||||
private class BoardMessageDeleteLink extends AjaxLink<BoardMessage> {
|
||||
|
||||
@ -170,39 +117,18 @@ public class MessagePanel extends Panel {
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
boardMessage = boardMessageDao.reLoad(boardMessage);
|
||||
System.out.println(boardMessage);
|
||||
boardMessageDao.delete(boardMessage);
|
||||
|
||||
listContainer.remove(boardMessageListView);
|
||||
listContainer.remove(privateMessageListView);
|
||||
listContainer.remove(pagingNavigator);
|
||||
loadListView();
|
||||
listContainer.add(boardMessageListView);
|
||||
listContainer.add(privateMessageListView);
|
||||
target.addComponent(listContainer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class RecipientDeleteLink extends AjaxLink<BoardMessage> {
|
||||
|
||||
private static final long serialVersionUID = 5900025667153930797L;
|
||||
private Recipient recipient;
|
||||
|
||||
public RecipientDeleteLink(String id, Recipient recipient) {
|
||||
super(id);
|
||||
this.recipient = recipient;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
recipient = recipientDao.reLoad(recipient);
|
||||
recipientDao.lazyDelete(recipient);
|
||||
listContainer.remove(boardMessageListView);
|
||||
listContainer.remove(privateMessageListView);
|
||||
loadListView();
|
||||
listContainer.add(boardMessageListView);
|
||||
listContainer.add(privateMessageListView);
|
||||
listContainer.add(pagingNavigator = new CustomPagingNavigator("navigator", boardMessageListView){
|
||||
@Override
|
||||
public boolean isVisible(){
|
||||
return boardMessageListView.size() > 0;
|
||||
}
|
||||
});
|
||||
target.addComponent(listContainer);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,45 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
|
||||
>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<wicket:panel>
|
||||
<div wicket:id="listContainer">
|
||||
<table wicket:id="private-message-item">
|
||||
<tr>
|
||||
|
||||
<hr/>
|
||||
</tr>
|
||||
<tr><strong>Private Message</strong></tr>
|
||||
<tr >
|
||||
<td wicket:id="application.date"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="application.dateRead"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="application.from"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="application.title"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td wicket:id="application.message"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="#" wicket:id="removeLink">Remove</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#" wicket:id="setReadLink">Set Read<p/></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,131 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package se.su.dsv.scipro.message.panels;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.list.PageableListView;
|
||||
import org.apache.wicket.markup.html.navigation.paging.IPageable;
|
||||
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
|
||||
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.BoardMessageDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.MessageBoardDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.PrivateMessageDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.RecipientDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.SupervisorBoardMessageDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.SupervisorMessageBoardDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.UserDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.BoardMessage;
|
||||
import se.su.dsv.scipro.data.dataobjects.MessageBoard;
|
||||
import se.su.dsv.scipro.data.dataobjects.PrivateMessage;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.Recipient;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
|
||||
/**
|
||||
* @author Johan Aschan - aschan@dsv.su.se
|
||||
*
|
||||
*/
|
||||
public class PrivateMessagePanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private RecipientDao recipientDao;
|
||||
|
||||
private WebMarkupContainer listContainer;
|
||||
|
||||
private PageableListView<BoardMessage> boardMessageListView;
|
||||
|
||||
private ListView<Recipient> privateMessageListView;
|
||||
|
||||
private User user;
|
||||
|
||||
public PrivateMessagePanel(String id, User user) {
|
||||
super(id);
|
||||
this.user = user;
|
||||
loadListView();
|
||||
listContainer = new WebMarkupContainer("listContainer");
|
||||
listContainer.add(privateMessageListView);
|
||||
listContainer.setOutputMarkupId(true);
|
||||
add(listContainer);
|
||||
|
||||
}
|
||||
|
||||
public void loadListView() {
|
||||
privateMessageListView = new ListView<Recipient>(
|
||||
"private-message-item", recipientDao.getRecipientsByUser(user)) {
|
||||
|
||||
@Override
|
||||
protected void populateItem(final ListItem<Recipient> item) {
|
||||
final Recipient rec = item.getModelObject();
|
||||
PrivateMessage pm = rec.getPrivateMessage();
|
||||
item.add(new Label("application.date", pm.getDateCreated()
|
||||
.toString()));
|
||||
String read = "Not Read";
|
||||
if(rec.getDateRead() != null){
|
||||
read = rec.getDateRead().toString();
|
||||
}
|
||||
item.add(new Label("application.dateRead", read));
|
||||
item.add(new Label("application.from", pm.getFromUser()
|
||||
.getFirstName() + " " + pm.getFromUser().getLastName()));
|
||||
item.add(new Label("application.title", pm.getTitle()));
|
||||
item.add(new Label("application.message", pm.getMessage()));
|
||||
RecipientDeleteLink rdl = new RecipientDeleteLink("removeLink", item.getModelObject());
|
||||
item.add(new AjaxLink<Recipient>("setReadLink"){
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
rec.setDateRead(new Date());
|
||||
recipientDao.save(rec);
|
||||
//Recipient rec2 = recipientDao.reLoad(rec);
|
||||
listContainer.remove(privateMessageListView);
|
||||
loadListView();
|
||||
listContainer.add(privateMessageListView);
|
||||
target.addComponent(listContainer);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
item.add(rdl);
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
private class RecipientDeleteLink extends AjaxLink<Recipient> {
|
||||
|
||||
private static final long serialVersionUID = 5900025667153930797L;
|
||||
private Recipient recipient;
|
||||
|
||||
public RecipientDeleteLink(String id, Recipient recipient) {
|
||||
super(id);
|
||||
this.recipient = recipient;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
recipient = recipientDao.reLoad(recipient);
|
||||
recipientDao.lazyDelete(recipient);
|
||||
listContainer.remove(privateMessageListView);
|
||||
loadListView();
|
||||
listContainer.add(privateMessageListView);
|
||||
target.addComponent(listContainer);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
|
||||
>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<wicket:panel>
|
||||
<div wicket:id="listContainer">
|
||||
<table wicket:id="private-message-item">
|
||||
<tr>
|
||||
|
||||
<hr/>
|
||||
</tr>
|
||||
<tr><strong>Sent Private Message</strong></tr>
|
||||
<tr >
|
||||
<td wicket:id="date"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="to"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="title"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#" wicket:id="removeLink">Remove</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,90 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package se.su.dsv.scipro.message.panels;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.PrivateMessageDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.RecipientDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.PrivateMessage;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
|
||||
|
||||
/**
|
||||
* @author Johan Aschan - aschan@dsv.su.se
|
||||
*
|
||||
*/
|
||||
|
||||
public class SentPrivateMessagePanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private PrivateMessageDao privateMessageDao;
|
||||
|
||||
private WebMarkupContainer listContainer;
|
||||
|
||||
private ListView<PrivateMessage> privateMessageListView;
|
||||
|
||||
private User user;
|
||||
|
||||
public SentPrivateMessagePanel(String id, User user) {
|
||||
super(id);
|
||||
this.user = user;
|
||||
loadListView();
|
||||
listContainer = new WebMarkupContainer("listContainer");
|
||||
listContainer.add(privateMessageListView);
|
||||
listContainer.setOutputMarkupId(true);
|
||||
add(listContainer);
|
||||
|
||||
}
|
||||
|
||||
public void loadListView() {
|
||||
privateMessageListView = new ListView<PrivateMessage>(
|
||||
"private-message-item", privateMessageDao.getPrivateMessagesFromUser(user)) {
|
||||
|
||||
@Override
|
||||
protected void populateItem(final ListItem<PrivateMessage> item) {
|
||||
final PrivateMessage pm = item.getModelObject();
|
||||
item.add(new Label("date", pm.getDateCreated()
|
||||
.toString()));;
|
||||
item.add(new Label("to", pm.getRecipientList().toString()));
|
||||
item.add(new Label("title", pm.getTitle()));
|
||||
DeletePrivateMessage rdl = new DeletePrivateMessage("removeLink", item.getModelObject());
|
||||
item.add(rdl);
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
private class DeletePrivateMessage extends AjaxLink<PrivateMessage> {
|
||||
|
||||
private static final long serialVersionUID = 5900025667153930797L;
|
||||
private PrivateMessage privateMessage;
|
||||
|
||||
public DeletePrivateMessage(String id, PrivateMessage privateMessage) {
|
||||
super(id);
|
||||
this.privateMessage = privateMessage;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
privateMessage = privateMessageDao.reLoad(privateMessage);
|
||||
privateMessageDao.lazyDelete(privateMessage);
|
||||
listContainer.remove(privateMessageListView);
|
||||
loadListView();
|
||||
listContainer.add(privateMessageListView);
|
||||
target.addComponent(listContainer);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
|
||||
>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<wicket:panel>
|
||||
<div wicket:id="listContainer">
|
||||
<table wicket:id="board-message-item">
|
||||
<tr>
|
||||
<hr/>
|
||||
</tr>
|
||||
<tr><strong>Supervisor Board message</strong></tr>
|
||||
<tr >
|
||||
<td wicket:id="application.date"></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td wicket:id="application.from"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td wicket:id="application.message"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#" wicket:id="removeLink">Remove<p/></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div wicket:id="navigator"></div>
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,125 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package se.su.dsv.scipro.message.panels;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.list.PageableListView;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.BoardMessageDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.SupervisorBoardMessageDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.BoardMessage;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.Recipient;
|
||||
import se.su.dsv.scipro.data.dataobjects.SupervisorBoardMessage;
|
||||
|
||||
/**
|
||||
* @author Johan Aschan - aschan@dsv.su.se
|
||||
*
|
||||
*/
|
||||
public class SupervisorMessageBoardPanel extends Panel {
|
||||
|
||||
|
||||
@SpringBean
|
||||
private SupervisorBoardMessageDao boardMessageDao;
|
||||
|
||||
@SpringBean
|
||||
private ProjectDao projectDao;
|
||||
|
||||
private WebMarkupContainer listContainer;
|
||||
|
||||
private CustomPagingNavigator pagingNavigator;
|
||||
|
||||
private Project project;
|
||||
|
||||
private PageableListView<SupervisorBoardMessage> boardMessageListView;
|
||||
|
||||
|
||||
public SupervisorMessageBoardPanel(String id, Project project) {
|
||||
super(id);
|
||||
this.project = project;
|
||||
loadListView();
|
||||
listContainer = new WebMarkupContainer("listContainer");
|
||||
listContainer.add(boardMessageListView);
|
||||
listContainer.add(pagingNavigator = new CustomPagingNavigator("navigator", boardMessageListView){
|
||||
@Override
|
||||
public boolean isVisible(){
|
||||
return boardMessageListView.size() > 0;
|
||||
}
|
||||
});
|
||||
listContainer.setOutputMarkupId(true);
|
||||
add(listContainer);
|
||||
|
||||
}
|
||||
|
||||
public void loadListView() {
|
||||
project = projectDao.reLoad(project);
|
||||
List<SupervisorBoardMessage> bmList = project.getSupervisorMessageBoard().getSupervisorBoardMessageList();
|
||||
Collections.sort(bmList, new Comparator<SupervisorBoardMessage>() {
|
||||
public int compare(SupervisorBoardMessage o1, SupervisorBoardMessage o2) {
|
||||
return o1.getDateCreated().compareTo(o2.getDateCreated());
|
||||
}
|
||||
});
|
||||
boardMessageListView = new PageableListView<SupervisorBoardMessage>(
|
||||
"board-message-item", bmList, 5) {
|
||||
|
||||
@Override
|
||||
protected void populateItem(final ListItem<SupervisorBoardMessage> item) {
|
||||
final SupervisorBoardMessage bm = item.getModelObject();
|
||||
item.add(new Label("application.date", bm.getDateCreated()
|
||||
.toString()));
|
||||
item.add(new Label("application.from", bm.getFromUser()
|
||||
.getFirstName() + " " + bm.getFromUser().getLastName()));
|
||||
item.add(new Label("application.message", bm.getMessage()));
|
||||
BoardMessageDeleteLink bmdl = new BoardMessageDeleteLink("removeLink", item.getModelObject());
|
||||
item.add(bmdl);
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private class BoardMessageDeleteLink extends AjaxLink<BoardMessage> {
|
||||
|
||||
private static final long serialVersionUID = 5900025667153930797L;
|
||||
private SupervisorBoardMessage boardMessage;
|
||||
|
||||
public BoardMessageDeleteLink(String id, SupervisorBoardMessage boardMessage) {
|
||||
super(id);
|
||||
this.boardMessage = boardMessage;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
boardMessage = boardMessageDao.reLoad(boardMessage);
|
||||
boardMessageDao.delete(boardMessage);
|
||||
|
||||
listContainer.remove(boardMessageListView);
|
||||
listContainer.remove(pagingNavigator);
|
||||
loadListView();
|
||||
listContainer.add(boardMessageListView);
|
||||
listContainer.add(pagingNavigator = new CustomPagingNavigator("navigator", boardMessageListView){
|
||||
@Override
|
||||
public boolean isVisible(){
|
||||
return boardMessageListView.size() > 0;
|
||||
}
|
||||
});
|
||||
target.addComponent(listContainer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user