Bereinigen Code, beseitigen Bezüge auf SiteNode/Package/PackageType und weiteren old style application code.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2051 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2013-01-26 12:34:36 +00:00
parent 5764020eab
commit 18414f374a
4 changed files with 196 additions and 134 deletions

View File

@ -21,8 +21,8 @@ package com.arsdigita.simplesurvey;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.kernel.PackageInstance; // import com.arsdigita.kernel.PackageInstance;
import com.arsdigita.kernel.SiteNode; // import com.arsdigita.kernel.SiteNode;
import com.arsdigita.kernel.Kernel; import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.User; import com.arsdigita.kernel.User;
@ -30,9 +30,8 @@ import com.arsdigita.kernel.User;
import com.arsdigita.kernel.permissions.PermissionDescriptor; import com.arsdigita.kernel.permissions.PermissionDescriptor;
import com.arsdigita.kernel.permissions.PermissionService; import com.arsdigita.kernel.permissions.PermissionService;
import com.arsdigita.kernel.permissions.PrivilegeDescriptor; import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
import com.arsdigita.web.Application;
// import com.arsdigita.web.Web;
import javax.servlet.http.HttpServletRequest;
/** /**
@ -51,35 +50,35 @@ public class SimpleSurveyUtil {
* @param request * @param request
* @return * @return
*/ */
public static SiteNode getSiteNode(HttpServletRequest request) { // public static SiteNode getSiteNode(HttpServletRequest request) {
SiteNode siteNode; // SiteNode siteNode;
try { // try {
siteNode = SiteNode.getSiteNode(request.getRequestURI().toString(), true); // siteNode = SiteNode.getSiteNode(request.getRequestURI().toString(), true);
} catch (com.arsdigita.domain.DataObjectNotFoundException e) { // } catch (com.arsdigita.domain.DataObjectNotFoundException e) {
throw new com.arsdigita.util.UncheckedWrapperException(e); // throw new com.arsdigita.util.UncheckedWrapperException(e);
} // }
return siteNode; // return siteNode;
} // }
/** /**
* *
* @param pageState * @param pageState
* @return * @return
*/ */
public static SiteNode getSiteNode(PageState pageState) { // public static SiteNode getSiteNode(PageState pageState) {
return getSiteNode(pageState.getRequest()); // return getSiteNode(pageState.getRequest());
} // }
/** /**
* *
* @param pageState * @param pageState
* @return * @return
*/ */
public static PackageInstance getPackageInstance(PageState pageState) { // public static PackageInstance getPackageInstance(PageState pageState) {
return getSiteNode(pageState).getPackageInstance(); // return getSiteNode(pageState).getPackageInstance();
} // }
/** /**
* *
@ -87,15 +86,27 @@ public class SimpleSurveyUtil {
* @return * @return
*/ */
public static boolean isUserAdmin(PageState pageState) { public static boolean isUserAdmin(PageState pageState) {
boolean admin_p = false; boolean admin_p = false;
User user = (User)Kernel.getContext().getParty(); User user = (User)Kernel.getContext().getParty();
SiteNode siteNode = SimpleSurveyUtil.getSiteNode(pageState); // DEPRECATED! SiteNode is old style application an no longer used.
// Can not provide any useful information as no applicagtion is created
// as a SiteNode anymore.
// SiteNode siteNode = SimpleSurveyUtil.getSiteNode(pageState);
// PermissionDescriptor admin = new PermissionDescriptor
// (PrivilegeDescriptor.ADMIN,
// siteNode,
// user);
// TODO: Replacement code not tested yet (both alternatives)!
// Application app = Web.getContext().getApplication();
Application app = (Application)Kernel.getContext().getResource();
PermissionDescriptor admin = new PermissionDescriptor PermissionDescriptor admin = new PermissionDescriptor
(PrivilegeDescriptor.ADMIN, (PrivilegeDescriptor.ADMIN,
siteNode, app,
user); user);
if (PermissionService.checkPermission(admin)) { if (PermissionService.checkPermission(admin)) {

View File

@ -34,7 +34,7 @@ import com.arsdigita.formbuilder.PersistentForm;
import com.arsdigita.kernel.ACSObject; import com.arsdigita.kernel.ACSObject;
import com.arsdigita.kernel.User; import com.arsdigita.kernel.User;
import com.arsdigita.kernel.PackageInstance; // import com.arsdigita.kernel.PackageInstance;
import java.util.Date; import java.util.Date;
@ -196,10 +196,10 @@ public class Survey extends ACSObject {
getEndDate().compareTo(currentDate) > 0; getEndDate().compareTo(currentDate) > 0;
} }
public void setPackageInstance(PackageInstance packageInstance) { // Mo longer useful. PackageInstance is old style app no longer used.
// public void setPackageInstance(PackageInstance packageInstance) {
set(PACKAGE_INSTANCE, packageInstance); // set(PACKAGE_INSTANCE, packageInstance);
} // }
/* /*
* Retrieves most recent survey that isn't completed * Retrieves most recent survey that isn't completed

View File

@ -23,31 +23,24 @@ import com.arsdigita.simplesurvey.util.GlobalizationUtil ;
// Every item in the Table will have links // Every item in the Table will have links
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.ControlLink; import com.arsdigita.bebop.ControlLink;
import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.Table; import com.arsdigita.bebop.Table;
import com.arsdigita.bebop.table.TableModelBuilder; import com.arsdigita.bebop.table.TableModelBuilder;
import com.arsdigita.bebop.table.TableModel; import com.arsdigita.bebop.table.TableModel;
import com.arsdigita.bebop.table.TableCellRenderer; import com.arsdigita.bebop.table.TableCellRenderer;
import com.arsdigita.formbuilder.PersistentForm;
import com.arsdigita.simplesurvey.SimpleSurveyUtil;
import com.arsdigita.kernel.ACSObject; import com.arsdigita.kernel.ACSObject;
import com.arsdigita.kernel.PackageInstance; // import com.arsdigita.simplesurvey.SimpleSurveyUtil;
import com.arsdigita.bebop.Component;
import com.arsdigita.simplesurvey.Survey; import com.arsdigita.simplesurvey.Survey;
import com.arsdigita.simplesurvey.SurveyCollection; import com.arsdigita.simplesurvey.SurveyCollection;
import com.arsdigita.formbuilder.PersistentForm; import com.arsdigita.util.LockableImpl;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import com.arsdigita.bebop.PageState;
import com.arsdigita.util.LockableImpl;
/** /**
* Tables all Simple Surveys in the system. * Tables all Simple Surveys in the system.
* *
@ -71,38 +64,64 @@ public class AdminSurveyTable extends Table {
public static final int COL_DELETE = 7; public static final int COL_DELETE = 7;
/**
* Constructor.
*
* @param surveyClass
*/
public AdminSurveyTable(Class surveyClass) { public AdminSurveyTable(Class surveyClass) {
super(new AdminSurveyTableModelBuilder(surveyClass),
new String[] {"", "", "", "", "", "","", ""});
m_surveyClass = surveyClass; super(new AdminSurveyTableModelBuilder(surveyClass),
new String[] {"", "", "", "", "", "","", ""});
m_surveyClass = surveyClass;
setDefaultCellRenderer(new AdminSurveyTableCellRenderer()); setDefaultCellRenderer(new AdminSurveyTableCellRenderer());
} }
private static class AdminSurveyTableModelBuilder extends LockableImpl /**
implements TableModelBuilder { *
*/
private static class AdminSurveyTableModelBuilder
extends LockableImpl
implements TableModelBuilder {
private Class m_surveyClass; private Class m_surveyClass;
public AdminSurveyTableModelBuilder(Class surveyClass) { /**
m_surveyClass = surveyClass; *
} * @param surveyClass
*/
public AdminSurveyTableModelBuilder(Class surveyClass) {
m_surveyClass = surveyClass;
}
public TableModel makeModel(Table l, PageState pageState) { /**
PackageInstance pack = SimpleSurveyUtil.getPackageInstance(pageState); *
SurveyCollection surveys = * @param l
Survey.retrieveAll(); * @param pageState
* @return
*/
public TableModel makeModel(Table l, PageState pageState) {
surveys.addEqualsFilter(ACSObject.DEFAULT_DOMAIN_CLASS, // PackageInstance no loger provides useful information.
m_surveyClass.getName()); // Obviously not really used here.
// NOT TESTED yet!
// PackageInstance pack = SimpleSurveyUtil.getPackageInstance(pageState);
return new AdminSurveyTableModel(surveys); SurveyCollection surveys = Survey.retrieveAll();
}
surveys.addEqualsFilter(ACSObject.DEFAULT_DOMAIN_CLASS,
m_surveyClass.getName());
return new AdminSurveyTableModel(surveys);
}
} }
/**
*
*/
private static class AdminSurveyTableCellRenderer implements TableCellRenderer { private static class AdminSurveyTableCellRenderer implements TableCellRenderer {
public Component getComponent(Table table, PageState state, Object value,
public Component getComponent(Table table, PageState state, Object value,
boolean isSelected, Object key, boolean isSelected, Object key,
int row, int column) { int row, int column) {
Survey survey = (Survey)value; Survey survey = (Survey)value;

View File

@ -19,12 +19,10 @@
package com.arsdigita.simplesurvey.ui.admin; package com.arsdigita.simplesurvey.ui.admin;
import com.arsdigita.simplesurvey.util.GlobalizationUtil ;
import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.FormProcessListener; import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.parameters.NotWhiteSpaceValidationListener; import com.arsdigita.bebop.parameters.NotWhiteSpaceValidationListener;
import com.arsdigita.bebop.Form; import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.FormProcessException;
@ -42,13 +40,18 @@ import com.arsdigita.formbuilder.PersistentForm;
import com.arsdigita.simplesurvey.Survey; import com.arsdigita.simplesurvey.Survey;
import com.arsdigita.simplesurvey.Poll; import com.arsdigita.simplesurvey.Poll;
import com.arsdigita.simplesurvey.SimpleSurveyUtil; // import com.arsdigita.simplesurvey.SimpleSurveyUtil;
import com.arsdigita.simplesurvey.ui.SurveySelectionModel; import com.arsdigita.simplesurvey.ui.SurveySelectionModel;
import com.arsdigita.simplesurvey.util.GlobalizationUtil ;
import java.util.Calendar; import java.util.Calendar;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.lang.Boolean;
/**
*
*
*/
public class PropertiesForm extends Form { public class PropertiesForm extends Form {
private SurveySelectionModel m_survey; private SurveySelectionModel m_survey;
@ -117,82 +120,111 @@ public class PropertiesForm extends Form {
} }
/**
*
*/
private class SurveyInitListener implements FormInitListener { private class SurveyInitListener implements FormInitListener {
public void init(FormSectionEvent e)
throws FormProcessException {
PageState state = e.getPageState();
if (m_survey.isSelected(state)) { /**
Survey survey = m_survey.getSelectedSurvey(state); *
PersistentForm form = survey.getForm(); * @param e
* @throws FormProcessException
*/
public void init(FormSectionEvent e) throws FormProcessException {
m_surveyName.setValue(state, form.getAdminName()); PageState state = e.getPageState();
m_description.setValue(state, form.getDescription());
m_startDate.setValue(state, survey.getStartDate());
m_endDate.setValue(state, survey.getEndDate());
m_quizType.setValue(state, survey.getQuizType());
if ( survey.responsesArePublic() ) {
m_responsesPublic.setValue(state, "true");
} else {
m_responsesPublic.setValue(state,"false");
}
} else {
m_surveyName.setValue(state, "");
m_description.setValue(state, "");
Calendar startCalendar = new GregorianCalendar(); if (m_survey.isSelected(state)) {
startCalendar.add(Calendar.DATE, 0);
java.util.Date startDate = startCalendar.getTime();
Calendar endCalendar = new GregorianCalendar();
endCalendar.add(Calendar.DATE, 15);
java.util.Date endDate = endCalendar.getTime();
m_startDate.setValue(state, startDate); Survey survey = m_survey.getSelectedSurvey(state);
m_endDate.setValue(state, endDate); PersistentForm form = survey.getForm();
m_responsesPublic.setValue(state, "true"); m_surveyName.setValue(state, form.getAdminName());
m_quizType.setValue(state, "knowledge_test"); m_description.setValue(state, form.getDescription());
} m_startDate.setValue(state, survey.getStartDate());
} m_endDate.setValue(state, survey.getEndDate());
m_quizType.setValue(state, survey.getQuizType());
if ( survey.responsesArePublic() ) {
m_responsesPublic.setValue(state, "true");
} else {
m_responsesPublic.setValue(state,"false");
}
} else {
m_surveyName.setValue(state, "");
m_description.setValue(state, "");
Calendar startCalendar = new GregorianCalendar();
startCalendar.add(Calendar.DATE, 0);
java.util.Date startDate = startCalendar.getTime();
Calendar endCalendar = new GregorianCalendar();
endCalendar.add(Calendar.DATE, 15);
java.util.Date endDate = endCalendar.getTime();
m_startDate.setValue(state, startDate);
m_endDate.setValue(state, endDate);
m_responsesPublic.setValue(state, "true");
m_quizType.setValue(state, "knowledge_test");
}
}
} }
/**
*
*/
private class PropertiesFormProcessListener implements FormProcessListener { private class PropertiesFormProcessListener implements FormProcessListener {
public void process(FormSectionEvent e)
throws FormProcessException {
PageState state = e.getPageState();
Survey survey; /**
PersistentForm form; *
* @param e
* @throws FormProcessException
*/
public void process(FormSectionEvent e) throws FormProcessException {
if (m_survey.isSelected(state)) { PageState state = e.getPageState();
survey = m_survey.getSelectedSurvey(state);
form = survey.getForm();
} else {
survey = m_type.equals(Survey.class) ? new Survey() : new Poll();
survey.setPackageInstance(SimpleSurveyUtil.getPackageInstance(state));
form = new PersistentForm();
survey.setForm(form);
}
form.setAdminName((String)m_surveyName.getValue(state)); Survey survey;
form.setHTMLName(getHTMLName((String)m_surveyName.getValue(state))); PersistentForm form;
form.setDescription((String)m_description.getValue(state));
form.save();
survey.setStartDate((java.util.Date)m_startDate.getValue(state)); if (m_survey.isSelected(state)) {
survey.setEndDate((java.util.Date)m_endDate.getValue(state)); survey = m_survey.getSelectedSurvey(state);
survey.setResponsesPublic(new Boolean((String) m_responsesPublic.getValue(state))); form = survey.getForm();
survey.setQuizType((String) m_quizType.getValue(state)); } else {
survey.save(); survey = m_type.equals(Survey.class) ? new Survey() : new Poll();
}
private String getHTMLName(String surveyName) { // PackageInstance is old style application, no longer used.
// survey.setPackageInstance(SimpleSurveyUtil.getPackageInstance(state));
String htmlName = surveyName.trim().toLowerCase(); form = new PersistentForm();
survey.setForm(form);
}
htmlName = htmlName.replace(' ', '_'); form.setAdminName((String)m_surveyName.getValue(state));
form.setHTMLName(getHTMLName((String)m_surveyName.getValue(state)));
form.setDescription((String)m_description.getValue(state));
form.save();
return htmlName; survey.setStartDate((java.util.Date)m_startDate.getValue(state));
} survey.setEndDate((java.util.Date)m_endDate.getValue(state));
survey.setResponsesPublic(new Boolean((String) m_responsesPublic.getValue(state)));
survey.setQuizType((String) m_quizType.getValue(state));
survey.save();
}
/**
*
* @param surveyName
* @return
*/
private String getHTMLName(String surveyName) {
String htmlName = surveyName.trim().toLowerCase();
htmlName = htmlName.replace(' ', '_');
return htmlName;
}
} }
} }