Stateofmind

git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@257 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
joha-asc 2011-03-01 09:18:51 +00:00
parent 34894d251e
commit 8a4c2d9a21
2 changed files with 104 additions and 2 deletions
src/main/java/se/su/dsv/scipro/project/panels

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html 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="sliderLabel"></div>
<div wicket:id="slider"></div>
</wicket:panel>
</body>
</html>

@ -3,10 +3,99 @@
*/
package se.su.dsv.scipro.project.panels;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.odlabs.wiquery.ui.core.DefaultJsScopeUiEvent;
import org.odlabs.wiquery.ui.slider.AjaxSlider;
import org.odlabs.wiquery.ui.slider.AjaxSlider.ISliderAjaxEvent;
import org.odlabs.wiquery.ui.slider.Slider;
import org.odlabs.wiquery.ui.slider.Slider.Orientation;
import se.su.dsv.scipro.basepages.PublicPage;
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.enums.StateOfMind;
/**
* @author Johan Aschan - aschan@dsv.su.se
*
*
*/
public class StateOfMindPanel {
public class StateOfMindPanel extends Panel {
/**
* @param id
*/
@SpringBean
private ProjectDao projectDao;
private Label sliderLabel;
private String sliderValue;
private final static int NEEDHELPINT = 0, NEUTRALINT = 1, FANTASTICINT = 2;
public StateOfMindPanel(String id) {
super(id);
final Project project = projectDao.load(1L);
StateOfMind stateOfMind = project.getStateOfMind();
final Slider slider = new Slider("slider", 0, 2) {
};
AbstractDefaultAjaxBehavior sliderBehavior = new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@Override
protected void respond(AjaxRequestTarget target) {
// We get the slider value
int value = Integer.parseInt(this.getComponent().getRequest()
.getParameter("sliderIntValue"));
if (value == NEEDHELPINT) {
sliderValue = "Need Help";
project.setStateOfMind(StateOfMind.NEEDHELP);
} else if (value == NEUTRALINT) {
sliderValue = "Neutral";
project.setStateOfMind(StateOfMind.NEUTRAL);
} else if (value == FANTASTICINT) {
sliderValue = "Fantastic";
project.setStateOfMind(StateOfMind.FANTASTIC);
}
projectDao.save(project);
target.addComponent(sliderLabel);
}
};
add(sliderBehavior);
switch (stateOfMind) {
case NEEDHELP:
slider.setValue(NEEDHELPINT);
sliderValue = "Need Help";
break;
case NEUTRAL:
slider.setValue(NEUTRALINT);
sliderValue = "Neutral";
break;
case FANTASTIC:
slider.setValue(FANTASTICINT);
sliderValue = "Fantastic";
break;
}
slider.setChangeEvent(new DefaultJsScopeUiEvent("wicketAjaxGet('"
+ sliderBehavior.getCallbackUrl(true) + "&sliderInt"
+ "Value='+" + Slider.UI_VALUE
+ ", null,null, function() {return true;})"));
add(slider);
sliderLabel = new Label("sliderLabel",
new PropertyModel<StateOfMindPanel>(this, "sliderValue"));
sliderLabel.setOutputMarkupPlaceholderTag(true);
add(sliderLabel);
}
}