Fixat nya grejor

git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@245 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
joha-asc 2011-02-23 13:52:49 +00:00
parent 29b3901ea3
commit 0cde34029d
2 changed files with 488 additions and 334 deletions
src/main/java/se/su/dsv/scipro/message/pages

@ -7,61 +7,83 @@
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
</head>
<body>
<form wicket:id="messageForm">
<div wicket:id=projectFinder></div>
<div/>
<!-- <input type="text" wicket:id="userSearchText" />-->
<!-- <select wicket:id="selectedProjectList" size="10">-->
<!-- <option>Adam Adamsson (aaa@email)</option>-->
<!-- <option>Nils Nilsson (nils@epost)</option>-->
<!-- </select>-->
<!-- <div/>-->
Message:
<br />
<textarea wicket:id="textMessage" ></textarea>
<div/>
<input type="submit" wicket:id="submitButton" />
</form>
<p/>
<form wicket:id="supervisorMessageForm">
<div wicket:id=projectFinder></div>
<div/>
<!-- <input type="text" wicket:id="userSearchText" />-->
<!-- <select wicket:id="selectedProjectList" size="10">-->
<!-- <option>Adam Adamsson (aaa@email)</option>-->
<!-- <option>Nils Nilsson (nils@epost)</option>-->
<!-- </select>-->
<!-- <div/>-->
Message:
<br />
<textarea wicket:id="textMessage" ></textarea>
<div/>
<input type="submit" wicket:id="submitSupervisorButton" />
</form>
<p/>
<form wicket:id="privateMessageForm">
<div wicket:id=userFinder></div>
<div/>
<!-- <input type="text" wicket:id="userSearchText" />-->
<!-- <select wicket:id="selectedUserList" size="10">-->
<!-- <option>Adam Adamsson (aaa@email)</option>-->
<!-- <option>Nils Nilsson (nils@epost)</option>-->
<!-- </select>-->
<!-- <div/>-->
Title:
<br />
<input type="text" wicket:id="title"/>
<div/>
Message:
<br />
<textarea wicket:id="textMessage" ></textarea>
<div/>
<input type="submit" wicket:id="submitButton" />
</form>
<div wicket:id="sentPrivateMessagePanel""></div>
<div wicket:id="messagePanel""></div>
<div wicket:id="supervisorMessagePanel""></div>
<div wicket:id="privateMessagePanel""></div>
<div wicket:id="feedbackPanel">[Feedback Panel]</div>
<a href="#" wicket:id="inboxLink">Inbox</a>
<br/>
<a href="#" wicket:id="sentLink">Sent</a>
<br/>
<a href="#" wicket:id="messageBoard">Message Board</a>
<br/>
<a href="#" wicket:id="supervisorMessageBoard">Supervisor Message Board</a>
<table>
<td>
<h4>Board Message</h4>
<form wicket:id="messageForm">
<div wicket:id=projectFinder></div>
<div/>
<!-- <input type="text" wicket:id="userSearchText" />-->
<!-- <select wicket:id="selectedProjectList" size="10">-->
<!-- <option>Adam Adamsson (aaa@email)</option>-->
<!-- <option>Nils Nilsson (nils@epost)</option>-->
<!-- </select>-->
<!-- <div/>-->
Message:
<br />
<textarea wicket:id="textMessage" ></textarea>
<div/>
<input type="submit" wicket:id="submitButton" />
</form>
</td>
<td>
<h4>Supervisor Board Message</h4>
<form wicket:id="supervisorMessageForm">
<div wicket:id=projectFinder></div>
<div/>
<!-- <input type="text" wicket:id="userSearchText" />-->
<!-- <select wicket:id="selectedProjectList" size="10">-->
<!-- <option>Adam Adamsson (aaa@email)</option>-->
<!-- <option>Nils Nilsson (nils@epost)</option>-->
<!-- </select>-->
<!-- <div/>-->
Message:
<br />
<textarea wicket:id="textMessage" ></textarea>
<div/>
<input type="submit" wicket:id="submitSupervisorButton" />
</form>
</td>
<td>
<h4>Private Message</h4>
<form wicket:id="privateMessageForm">
<div wicket:id=userFinder></div>
<div/>
<!-- <input type="text" wicket:id="userSearchText" />-->
<!-- <select wicket:id="selectedUserList" size="10">-->
<!-- <option>Adam Adamsson (aaa@email)</option>-->
<!-- <option>Nils Nilsson (nils@epost)</option>-->
<!-- </select>-->
<!-- <div/>-->
Title:
<br />
<input type="text" wicket:id="title"/>
<div/>
Message:
<br />
<textarea wicket:id="textMessage" ></textarea>
<div/>
<input type="submit" wicket:id="submitButton" />
</form>
</td>
</table>
<div wicket:id="panelContainer">
<div wicket:id="messagePanel""></div>
<div wicket:id="supervisorMessagePanel""></div>
<div wicket:id="privateMessagePanel""></div>
<div wicket:id="sentPrivateMessagePanel""></div>
</div>
</body>
</html>

@ -12,7 +12,9 @@ import java.util.List;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.markup.html.form.Form;
@ -20,6 +22,7 @@ import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.ListMultipleChoice;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.util.ListModel;
@ -48,7 +51,7 @@ import se.su.dsv.scipro.data.dataobjects.SupervisorBoardMessage;
import se.su.dsv.scipro.data.dataobjects.SupervisorMessageBoard;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.message.models.MessageModel;
import se.su.dsv.scipro.message.panels.MessagePanel;
import se.su.dsv.scipro.message.panels.MessageBoardPanel;
import se.su.dsv.scipro.message.panels.PrivateMessagePanel;
import se.su.dsv.scipro.message.panels.SentPrivateMessagePanel;
import se.su.dsv.scipro.message.panels.SupervisorMessageBoardPanel;
@ -79,37 +82,142 @@ public class MessagePage extends PublicPage {
private Collection<User> selectedUserList = new ArrayList<User>();
private Collection<Project> selectedProjectList = new ArrayList<Project>();
private MessagePanel messagePanel;
private MessageBoardPanel messagePanel;
private PrivateMessagePanel privateMessagePanel;
private SupervisorMessageBoardPanel supervisorMessageBoardPanel;
private SentPrivateMessagePanel sentPrivateMessagePanel;
private MessageBoard mb;
private User user;
private WebMarkupContainer panelContainer;
private FeedbackPanel feedbackPanel;
public MessagePage(final PageParameters pp) {
super(pp);
add(feedbackPanel = new FeedbackPanel("feedbackPanel"));
feedbackPanel.setOutputMarkupId(true);
user = userDao.load(1L);
// SupervisorMessageBoard smb = new SupervisorMessageBoard();
// smb.setTitle("Supervisors Projektwall");
// smb.setProject(projectDao.load(1L));
// supervisorMessageBoardDao.save(smb);
// SupervisorMessageBoard smb = new SupervisorMessageBoard();
// smb.setTitle("Supervisors Projektwall");
// smb.setProject(projectDao.load(1L));
// supervisorMessageBoardDao.save(smb);
List<Project> project = projectDao.getProjectsByParticipant(user, null);
messagePanel = new MessagePanel("messagePanel", project.get(0));
messagePanel = new MessageBoardPanel("messagePanel", projectDao.load(1L));
messagePanel.setOutputMarkupId(true);
add(messagePanel);
sentPrivateMessagePanel = new SentPrivateMessagePanel("sentPrivateMessagePanel", userDao.load(3L));
messagePanel.setVisible(false);
sentPrivateMessagePanel = new SentPrivateMessagePanel(
"sentPrivateMessagePanel", userDao.load(3L)) {
};
sentPrivateMessagePanel.setOutputMarkupId(true);
add(sentPrivateMessagePanel);
privateMessagePanel = new PrivateMessagePanel("privateMessagePanel", user);
sentPrivateMessagePanel.setVisible(false);
privateMessagePanel = new PrivateMessagePanel("privateMessagePanel",
user) {
};
privateMessagePanel.setVisible(false);
privateMessagePanel.setOutputMarkupId(true);
add(privateMessagePanel);
supervisorMessageBoardPanel = new SupervisorMessageBoardPanel("supervisorMessagePanel", project.get(0));
supervisorMessageBoardPanel = new SupervisorMessageBoardPanel(
"supervisorMessagePanel", project.get(0));
supervisorMessageBoardPanel.setOutputMarkupId(true);
add(supervisorMessageBoardPanel);
supervisorMessageBoardPanel.setVisible(false);
add(new MessageForm("messageForm"));
add(new PrivateMessageForm("privateMessageForm"));
add(new SupervisorMessageForm("supervisorMessageForm"));
panelContainer = new WebMarkupContainer(
"panelContainer");
panelContainer.add(privateMessagePanel);
panelContainer.add(sentPrivateMessagePanel);
panelContainer.add(supervisorMessageBoardPanel);
panelContainer.add(messagePanel);
panelContainer.setOutputMarkupId(true);
add(panelContainer);
add(new AjaxLink("inboxLink") {
@Override
public void onClick(AjaxRequestTarget target) {
sentPrivateMessagePanel.setVisible(false);
supervisorMessageBoardPanel.setVisible(false);
messagePanel.setVisible(false);
PrivateMessagePanel pmp = new PrivateMessagePanel(
"privateMessagePanel", user);
pmp.setMarkupId(privateMessagePanel.getMarkupId());
pmp.setOutputMarkupId(true);
privateMessagePanel.replaceWith(pmp);
privateMessagePanel = pmp;
panelContainer.add(privateMessagePanel);
target.addComponent(panelContainer);
}
});
add(new AjaxLink("sentLink") {
@Override
public void onClick(AjaxRequestTarget target) {
privateMessagePanel.setVisible(false);
supervisorMessageBoardPanel.setVisible(false);
messagePanel.setVisible(false);
SentPrivateMessagePanel spmp = new SentPrivateMessagePanel(
"sentPrivateMessagePanel", userDao.load(3L));
spmp.setMarkupId(sentPrivateMessagePanel.getMarkupId());
spmp.setOutputMarkupId(true);
sentPrivateMessagePanel.replaceWith(spmp);
sentPrivateMessagePanel = spmp;
panelContainer.add(sentPrivateMessagePanel);
target.addComponent(panelContainer);
}
});
add(new AjaxLink("messageBoard") {
@Override
public void onClick(AjaxRequestTarget target) {
loadMessageBoard(target);
}
});
add(new AjaxLink("supervisorMessageBoard") {
@Override
public void onClick(AjaxRequestTarget target) {
loadSupervisorMessageBoard(target);
}
});
}
public void loadSupervisorMessageBoard(AjaxRequestTarget target){
privateMessagePanel.setVisible(false);
sentPrivateMessagePanel.setVisible(false);
messagePanel.setVisible(false);
SupervisorMessageBoardPanel mp = new SupervisorMessageBoardPanel(
"supervisorMessagePanel", projectDao.load(1L));
mp.setMarkupId(supervisorMessageBoardPanel.getMarkupId());
mp.setOutputMarkupId(true);
supervisorMessageBoardPanel.replaceWith(mp);
supervisorMessageBoardPanel = mp;
supervisorMessageBoardPanel.setVisible(true);
panelContainer.add(supervisorMessageBoardPanel);
target.addComponent(panelContainer);
}
public void loadMessageBoard(AjaxRequestTarget target){
privateMessagePanel.setVisible(false);
sentPrivateMessagePanel.setVisible(false);
supervisorMessageBoardPanel.setVisible(false);
MessageBoardPanel mp = new MessageBoardPanel("messagePanel",
projectDao.load(1L));
mp.setMarkupId(messagePanel.getMarkupId());
mp.setOutputMarkupId(true);
messagePanel.replaceWith(mp);
messagePanel = mp;
messagePanel.setVisible(true);
panelContainer.add(messagePanel);
target.addComponent(panelContainer);
}
public class MessageForm extends Form<MessageModel> {
public MessageForm(String name) {
@ -144,92 +252,100 @@ public class MessagePage extends PublicPage {
return projectDao.load(id);
}
});
MultiObjectAutoCompleteField<Project, Long> moacf = moac.build(
"projectFinder");
MultiObjectAutoCompleteField<Project, Long> moacf = moac
.build("projectFinder");
add(moacf);
// final TextField<String> userSearchText = new TextField<String>(
// "userSearchText");
// add(userSearchText);
//
// final ListMultipleChoice<Project> userSelectList = new ListMultipleChoice<Project>(
// "selectedProjectList", new ListModel<Project>(
// new ArrayList<Project>()),
// new ChoiceRenderer<Project>("title")) {
// private static final long serialVersionUID = -7117603450416845711L;
//
// @Override
// protected CharSequence getDefaultChoice(Object selected) {
// return "";
// }
// };
//
// OnChangeAjaxBehavior userSelectBehaviour = new OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID = 3412906970812300312L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// selectedProjectList = userSelectList.getModelObject();
// }
// };
// userSelectList.add(userSelectBehaviour);
//
// userSelectList.setOutputMarkupId(true);
// add(userSelectList);
//
// OnChangeAjaxBehavior userSearchTextBehaviour = new OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID = -3243439315735164519L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// String input = userSearchText
// .getDefaultModelObjectAsString();
// if (input.length() >= 3) {
// List<Project> matches = projectDao
// .searchProjectByTitle(input);
// userSelectList.setChoices(new ListModel<Project>(
// matches));
//
// } else {
// userSelectList.setChoices(new ArrayList<Project>());
// }
//
// if (target != null) {
// target.addComponent(userSelectList);
// }
// }
// };
//
// userSearchText.add(userSearchTextBehaviour);
// final TextField<String> userSearchText = new TextField<String>(
// "userSearchText");
// add(userSearchText);
//
// final ListMultipleChoice<Project> userSelectList = new
// ListMultipleChoice<Project>(
// "selectedProjectList", new ListModel<Project>(
// new ArrayList<Project>()),
// new ChoiceRenderer<Project>("title")) {
// private static final long serialVersionUID =
// -7117603450416845711L;
//
// @Override
// protected CharSequence getDefaultChoice(Object selected) {
// return "";
// }
// };
//
// OnChangeAjaxBehavior userSelectBehaviour = new
// OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID =
// 3412906970812300312L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// selectedProjectList = userSelectList.getModelObject();
// }
// };
// userSelectList.add(userSelectBehaviour);
//
// userSelectList.setOutputMarkupId(true);
// add(userSelectList);
//
// OnChangeAjaxBehavior userSearchTextBehaviour = new
// OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID =
// -3243439315735164519L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// String input = userSearchText
// .getDefaultModelObjectAsString();
// if (input.length() >= 3) {
// List<Project> matches = projectDao
// .searchProjectByTitle(input);
// userSelectList.setChoices(new ListModel<Project>(
// matches));
//
// } else {
// userSelectList.setChoices(new ArrayList<Project>());
// }
//
// if (target != null) {
// target.addComponent(userSelectList);
// }
// }
// };
//
// userSearchText.add(userSearchTextBehaviour);
add(new TextArea<String>("textMessage"));
add(new Button("submitButton", new Model<String>(
"Send Board Message")));
}
add(new AjaxButton("submitButton", new Model<String>(
"Send Board Message")) {
@Override
protected void onSubmit() {
List<Project> projectList = getModelObject().getProjectFinder();
for (Project project : projectList) {
project = projectDao.reLoad(project);
MessageBoard toMb = project.getMessageBoard();
MessageModel messModel = getModelObject();
BoardMessage bm = new BoardMessage();
bm.setFromUser(userDao.load(2L));
bm.setMessage(messModel.getTextMessage());
bm = boardMessageDao.save(bm);
List<BoardMessage> bmList = toMb.getBoardMessageList();
bmList.add(bm);
toMb.setBoardMessageList(bmList);
toMb = messageBoardDao.save(toMb);
mb = messageBoardDao.reLoad(mb);
MessagePanel mp = new MessagePanel("messagePanel", project);
mp.setMarkupId(messagePanel.getMarkupId());
messagePanel.replaceWith(mp);
messagePanel = mp;
}
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
List<Project> projectList = ((MessageModel) form
.getModelObject()).getProjectFinder();
for (Project project : projectList) {
project = projectDao.reLoad(project);
MessageBoard toMb = project.getMessageBoard();
MessageModel messModel = (MessageModel) form
.getModelObject();
BoardMessage bm = new BoardMessage();
bm.setFromUser(userDao.load(2L));
bm.setMessage(messModel.getTextMessage());
bm = boardMessageDao.save(bm);
List<BoardMessage> bmList = toMb.getBoardMessageList();
bmList.add(bm);
toMb.setBoardMessageList(bmList);
toMb = messageBoardDao.save(toMb);
mb = messageBoardDao.reLoad(mb);
}
loadMessageBoard(target);
}
});
}
}
@ -267,103 +383,112 @@ public class MessagePage extends PublicPage {
return projectDao.load(id);
}
});
MultiObjectAutoCompleteField<Project, Long> moacf = moac.build(
"projectFinder");
MultiObjectAutoCompleteField<Project, Long> moacf = moac
.build("projectFinder");
add(moacf);
// final TextField<String> userSearchText = new TextField<String>(
// "userSearchText");
// add(userSearchText);
//
// final ListMultipleChoice<Project> userSelectList = new ListMultipleChoice<Project>(
// "selectedProjectList", new ListModel<Project>(
// new ArrayList<Project>()),
// new ChoiceRenderer<Project>("title")) {
// private static final long serialVersionUID = -7117603450416845711L;
//
// @Override
// protected CharSequence getDefaultChoice(Object selected) {
// return "";
// }
// };
//
// OnChangeAjaxBehavior userSelectBehaviour = new OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID = 3412906970812300312L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// selectedProjectList = userSelectList.getModelObject();
// }
// };
// userSelectList.add(userSelectBehaviour);
//
// userSelectList.setOutputMarkupId(true);
// add(userSelectList);
//
// OnChangeAjaxBehavior userSearchTextBehaviour = new OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID = -3243439315735164519L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// String input = userSearchText
// .getDefaultModelObjectAsString();
// if (input.length() >= 3) {
// List<Project> matches = projectDao
// .searchProjectByTitle(input);
// userSelectList.setChoices(new ListModel<Project>(
// matches));
//
// } else {
// userSelectList.setChoices(new ArrayList<Project>());
// }
//
// if (target != null) {
// target.addComponent(userSelectList);
// }
// }
// };
//
// userSearchText.add(userSearchTextBehaviour);
// final TextField<String> userSearchText = new TextField<String>(
// "userSearchText");
// add(userSearchText);
//
// final ListMultipleChoice<Project> userSelectList = new
// ListMultipleChoice<Project>(
// "selectedProjectList", new ListModel<Project>(
// new ArrayList<Project>()),
// new ChoiceRenderer<Project>("title")) {
// private static final long serialVersionUID =
// -7117603450416845711L;
//
// @Override
// protected CharSequence getDefaultChoice(Object selected) {
// return "";
// }
// };
//
// OnChangeAjaxBehavior userSelectBehaviour = new
// OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID =
// 3412906970812300312L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// selectedProjectList = userSelectList.getModelObject();
// }
// };
// userSelectList.add(userSelectBehaviour);
//
// userSelectList.setOutputMarkupId(true);
// add(userSelectList);
//
// OnChangeAjaxBehavior userSearchTextBehaviour = new
// OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID =
// -3243439315735164519L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// String input = userSearchText
// .getDefaultModelObjectAsString();
// if (input.length() >= 3) {
// List<Project> matches = projectDao
// .searchProjectByTitle(input);
// userSelectList.setChoices(new ListModel<Project>(
// matches));
//
// } else {
// userSelectList.setChoices(new ArrayList<Project>());
// }
//
// if (target != null) {
// target.addComponent(userSelectList);
// }
// }
// };
//
// userSearchText.add(userSearchTextBehaviour);
add(new TextArea<String>("textMessage"));
add(new AjaxButton("submitSupervisorButton", new Model<String>(
"Send Supervisor Board Message")){
"Send Supervisor Board Message")) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
System.out.println("test");
List<Project> projectList = ((MessageModel) form
.getModelObject()).getProjectFinder();
for (Project project : projectList) {
project = projectDao.reLoad(project);
SupervisorMessageBoard toMb = project
.getSupervisorMessageBoard();
MessageModel messModel = (MessageModel) form
.getModelObject();
SupervisorBoardMessage bm = new SupervisorBoardMessage();
bm.setFromUser(userDao.load(2L));
bm.setMessage(messModel.getTextMessage());
bm = supervisorBoardMessageDao.save(bm);
List<SupervisorBoardMessage> bmList = toMb
.getSupervisorBoardMessageList();
bmList.add(bm);
toMb.setSupervisorBoardMessageList(bmList);
toMb = supervisorMessageBoardDao.save(toMb);
}
loadSupervisorMessageBoard(target);
}
@Override
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
System.out.println("test");
List<Project> projectList = ((MessageModel) form.getModelObject()).getProjectFinder();
for (Project project : projectList) {
project = projectDao.reLoad(project);
SupervisorMessageBoard toMb = project.getSupervisorMessageBoard();
MessageModel messModel = (MessageModel) form.getModelObject();
SupervisorBoardMessage bm = new SupervisorBoardMessage();
bm.setFromUser(userDao.load(2L));
bm.setMessage(messModel.getTextMessage());
bm = supervisorBoardMessageDao.save(bm);
List<SupervisorBoardMessage> bmList = toMb.getSupervisorBoardMessageList();
bmList.add(bm);
toMb.setSupervisorBoardMessageList(bmList);
toMb = supervisorMessageBoardDao.save(toMb);
SupervisorMessageBoardPanel mp = new SupervisorMessageBoardPanel("supervisorMessagePanel", project);
mp.setMarkupId(supervisorMessageBoardPanel.getMarkupId());
supervisorMessageBoardPanel.replaceWith(mp);
supervisorMessageBoardPanel = mp;
}
}
});
}
}
public class PrivateMessageForm extends Form<MessageModel> {
public PrivateMessageForm(String name) {
super(name, new CompoundPropertyModel<MessageModel>(
new MessageModel()));
AutoCompletionChoicesProvider<User> choiceProvider = new AutoCompletionChoicesProvider<User>() {
@Override
@ -378,7 +503,7 @@ public class MessagePage extends PublicPage {
moac.idType(Long.class);
moac.autoCompleteRenderer(new MultiObjectAutoCompleteRenderer<User>() {
public String getTextValue(User u) {
return u.getFirstName() + " " + u.getLastName();
return u.getFirstName() + " " + u.getLastName();
}
protected String getIdValue(User u) {
@ -393,114 +518,121 @@ public class MessagePage extends PublicPage {
return userDao.load(id);
}
});
MultiObjectAutoCompleteField<User, Long> moacf = moac.build(
"userFinder");
MultiObjectAutoCompleteField<User, Long> moacf = moac
.build("userFinder");
add(moacf);
final Button submitButton = new Button("submitButton", new Model<String>(
"Send Private Message"));
// final TextField<String> userSearchText = new TextField<String>(
// "userSearchText");
// add(userSearchText);
//
// IChoiceRenderer<User> choiceRenderer = new IChoiceRenderer<User>() {
//
// // Implement dispay here
// public Object getDisplayValue(User user) {
// return user.getFirstName() + " " + user.getLastName();
// }
//
// @Override
// public String getIdValue(User user, int arg1) {
// return user.getId().toString();
// }
//
// };
//
// final ListMultipleChoice<User> userSelectList = new ListMultipleChoice<User>(
// "selectedUserList", new ListModel<User>(
// new ArrayList<User>()), choiceRenderer) {
// private static final long serialVersionUID = -7117603450416845711L;
//
// @Override
// protected CharSequence getDefaultChoice(Object selected) {
// return "";
// }
// };
//
// OnChangeAjaxBehavior userSelectBehaviour = new OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID = 3412906970812300312L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// selectedUserList = userSelectList.getModelObject();
// }
// };
// userSelectList.add(userSelectBehaviour);
//
// userSelectList.setOutputMarkupId(true);
// add(userSelectList);
//
// OnChangeAjaxBehavior userSearchTextBehaviour = new OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID = -3243439315735164519L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// String input = userSearchText
// .getDefaultModelObjectAsString();
// if (input.length() >= 3) {
// List<User> matches = userDao.findUserQuery(input, 10);
// userSelectList.setChoices(new ListModel<User>(matches));
//
// } else {
// userSelectList.setChoices(new ArrayList<User>());
// }
//
// if (target != null) {
// target.addComponent(userSelectList);
// target.addComponent(submitButton);
// }
// }
// };
//
// userSearchText.add(userSearchTextBehaviour);
// final TextField<String> userSearchText = new TextField<String>(
// "userSearchText");
// add(userSearchText);
//
// IChoiceRenderer<User> choiceRenderer = new
// IChoiceRenderer<User>() {
//
// // Implement dispay here
// public Object getDisplayValue(User user) {
// return user.getFirstName() + " " + user.getLastName();
// }
//
// @Override
// public String getIdValue(User user, int arg1) {
// return user.getId().toString();
// }
//
// };
//
// final ListMultipleChoice<User> userSelectList = new
// ListMultipleChoice<User>(
// "selectedUserList", new ListModel<User>(
// new ArrayList<User>()), choiceRenderer) {
// private static final long serialVersionUID =
// -7117603450416845711L;
//
// @Override
// protected CharSequence getDefaultChoice(Object selected) {
// return "";
// }
// };
//
// OnChangeAjaxBehavior userSelectBehaviour = new
// OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID =
// 3412906970812300312L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// selectedUserList = userSelectList.getModelObject();
// }
// };
// userSelectList.add(userSelectBehaviour);
//
// userSelectList.setOutputMarkupId(true);
// add(userSelectList);
//
// OnChangeAjaxBehavior userSearchTextBehaviour = new
// OnChangeAjaxBehavior() {
//
// private static final long serialVersionUID =
// -3243439315735164519L;
//
// @Override
// protected void onUpdate(AjaxRequestTarget target) {
// String input = userSearchText
// .getDefaultModelObjectAsString();
// if (input.length() >= 3) {
// List<User> matches = userDao.findUserQuery(input, 10);
// userSelectList.setChoices(new ListModel<User>(matches));
//
// } else {
// userSelectList.setChoices(new ArrayList<User>());
// }
//
// if (target != null) {
// target.addComponent(userSelectList);
// target.addComponent(submitButton);
// }
// }
// };
//
// userSearchText.add(userSearchTextBehaviour);
add(new TextField<String>("title"));
add(new TextArea<String>("textMessage"));
add(submitButton);
add(new AjaxButton("submitButton", new Model<String>(
"Send Private Message")) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
List<User> users = ((MessageModel) form.getModelObject())
.getUserFinder();
if (users.size() > 0) {
mb = messageBoardDao.reLoad(mb);
MessageModel messModel = ((MessageModel) form
.getModelObject());
PrivateMessage pm = new PrivateMessage();
pm.setFromUser(userDao.load(3L));
pm.setMessage(messModel.getTextMessage());
pm.setTitle(messModel.getTitle());
pm = privateMessageDao.save(pm);
for (User selectedUser : users) {
Recipient rec = new Recipient();
selectedUser = userDao.reLoad(selectedUser);
rec.setToUser(selectedUser);
rec.setPrivateMessage(pm);
rec = recipientDao.save(rec);
}
info("Private message sent");
target.addComponent(feedbackPanel);
}
}
});
}
@Override
protected void onSubmit() {
List<User> users = getModelObject().getUserFinder();
if (users.size() > 0) {
mb = messageBoardDao.reLoad(mb);
MessageModel messModel = getModelObject();
PrivateMessage pm = new PrivateMessage();
pm.setFromUser(userDao.load(3L));
pm.setMessage(messModel.getTextMessage());
pm.setTitle(messModel.getTitle());
pm = privateMessageDao.save(pm);
for (User selectedUser : users) {
Recipient rec = new Recipient();
selectedUser = userDao.reLoad(selectedUser);
rec.setToUser(selectedUser);
rec.setPrivateMessage(pm);
rec = recipientDao.save(rec);
}
PrivateMessagePanel pmp = new PrivateMessagePanel("privateMessagePanel", user);
pmp.setMarkupId(privateMessagePanel.getMarkupId());
privateMessagePanel.replaceWith(pmp);
privateMessagePanel = pmp;
SentPrivateMessagePanel spmp = new SentPrivateMessagePanel("sentPrivateMessagePanel", userDao.load(3L));
spmp.setMarkupId(sentPrivateMessagePanel.getMarkupId());
sentPrivateMessagePanel.replaceWith(spmp);
sentPrivateMessagePanel = spmp;
}
}