package org.sakaiproject.site.tool.helper.order.rsf;
import java.util.ArrayList;
import java.util.List;
import org.sakaiproject.site.tool.helper.order.impl.SitePageEditHandler;
import org.sakaiproject.tool.api.Tool;
import uk.org.ponder.messageutil.MessageLocator;
import uk.org.ponder.rsf.components.UIBranchContainer;
import uk.org.ponder.rsf.components.UICommand;
import uk.org.ponder.rsf.components.UIContainer;
import uk.org.ponder.rsf.components.UIForm;
import uk.org.ponder.rsf.components.UIMessage;
import uk.org.ponder.rsf.components.UIOutput;
import uk.org.ponder.rsf.components.UISelect;
import uk.org.ponder.rsf.components.UISelectChoice;
import uk.org.ponder.rsf.flow.jsfnav.NavigationCase;
import uk.org.ponder.rsf.flow.jsfnav.NavigationCaseReporter;
import uk.org.ponder.rsf.view.ComponentChecker;
import uk.org.ponder.rsf.view.ViewComponentProducer;
import uk.org.ponder.rsf.viewstate.SimpleViewParameters;
import uk.org.ponder.rsf.viewstate.ViewParameters;
import uk.org.ponder.stringutil.StringList;
/**
*
* @author Joshua Ryan joshua.ryan@asu.edu
*
*/
public class PageAddProducer implements ViewComponentProducer, NavigationCaseReporter {
public static final String VIEW_ID = "PageAdd";
public SitePageEditHandler handler;
public MessageLocator messageLocator;
public String getViewID() {
return VIEW_ID;
}
public void fillComponents(UIContainer tofill, ViewParameters arg1, ComponentChecker arg2) {
UIForm toolsForm = UIForm.make(tofill, "tools-form");
List<Tool> tools = handler.getAvailableTools();
StringList toolItems = new StringList();
UISelect toolSelect = UISelect.makeMultiple(toolsForm, "select-tools",
null, "#{SitePageEditHandler.selectedTools}", new String[] {});
UIMessage.make(toolsForm, "prompt", "add_prompt", new Object[] {handler.title});
for (int i = 0; i < tools.size(); i++ ) {
UIBranchContainer toolRow = UIBranchContainer.make(toolsForm, "tool-row:", Integer.toString(i));
Tool tool = tools.get(i);
UIOutput.make(toolRow, "tool-name", tool.getTitle());
UIOutput.make(toolRow, "tool-id", tool.getId());
UIOutput.make(toolRow, "tool-description", tool.getDescription());
UISelectChoice.make(toolRow, "tool-select", toolSelect.getFullID(), i);
toolItems.add(tool.getId());
}
toolSelect.optionlist.setValue(toolItems.toStringArray());
UICommand.make(toolsForm, "save", UIMessage.make("add_selected"),
"#{SitePageEditHandler.addTools}");
UICommand.make(toolsForm, "cancel", UIMessage.make("cancel")).setReturn("back");
}
public List reportNavigationCases() {
List togo = new ArrayList();
togo.add(new NavigationCase("error", new SimpleViewParameters(VIEW_ID)));
togo.add(new NavigationCase("success",
new SimpleViewParameters(PageListProducer.VIEW_ID)));
togo.add(new NavigationCase("back",
new SimpleViewParameters(PageListProducer.VIEW_ID)));
return togo;
}
}