/*
* OpenClinica is distributed under the
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
* copyright 2003-2005 Akaza Research
*/
package org.akaza.openclinica.view;
import org.akaza.openclinica.bean.core.Status;
import org.akaza.openclinica.control.form.FormProcessor;
import org.akaza.openclinica.i18n.core.LocaleResolver;
import org.akaza.openclinica.i18n.util.ResourceBundleProvider;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.servlet.http.HttpServletRequest;
/**
* Maintain the breadcrumbs on the page, remain seamless, for example, it gets
* set when the Page gets set in the forwardPage() method in the
* SecureController servlet, Keep track of metadata being sent in the request,
* so that users can go back down the bread crumb trail.
*
* @author thickerson
*
*/
public class BreadcrumbTrail {
private ArrayList trail = new ArrayList();
public BreadcrumbTrail() {
}
public BreadcrumbTrail(ArrayList trail) {
this.trail = trail;
}
/**
* @return Returns the trail.
*/
public ArrayList getTrail() {
return trail;
}
/**
* @param trail
* The trail to set.
*/
public void setTrail(ArrayList trail) {
this.trail = trail;
}
/**
* method to be called right before forwardPage() in the SecureController.
* Generates an arraylist of breadcrumb beans, which is then set to the
* request/session. Has the possibility of getting quite long, since we will
* be setting up all breadcrumb bean configurations here based on the Page
* submitted to us.
*
* @param jspPage
* the page which is the new target.
* @param request
* the HTTP request which we will construct the URL with.
* @return ArrayList of breadcrumb
*/
public ArrayList generateTrail(Page jspPage, HttpServletRequest request) {
Locale locale = LocaleResolver.getLocale(request);
ResourceBundle resworkflow = ResourceBundleProvider.getWorkflowBundle(locale);
try {
// ArrayList newTrail = new ArrayList();
if (jspPage.equals(Page.CREATE_DATASET_1)) {
// when a user first steps onto the trail,
// it is created new for them;
// further on down the trail,
// we update the statuses and collect URL variables
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("create_dataset_instructions"), "CreateDataset" + this.generateURLString(request),
Status.PENDING));// 0
trail.add(new BreadcrumbBean(resworkflow.getString("select_items_event"), "CreateDataset", Status.UNAVAILABLE));// 1
trail.add(new BreadcrumbBean(resworkflow.getString("define_temporal_scope"), "CreateDataset", Status.UNAVAILABLE));// 2
// trail.add(
// new BreadcrumbBean("Select Filter",
// "ApplyFilter",
// Status.UNAVAILABLE));//3
trail.add(new BreadcrumbBean(resworkflow.getString("specify_dataset_properties"), "CreateDataset", Status.UNAVAILABLE));// 3
trail.add(new BreadcrumbBean(resworkflow.getString("confirm_dataset_properties"), "CreateDataset", Status.UNAVAILABLE));// 4
trail.add(new BreadcrumbBean(resworkflow.getString("generate_dataset"), "CreateDataset", Status.UNAVAILABLE));// 5, 6
// items
// total
} else if (jspPage.equals(Page.CREATE_DATASET_2)) {
// BreadcrumbBean bcb = (BreadcrumbBean)trail.remove(0);
// bcb.setStatus(Status.AVAILABLE);
// trail.add(0, bcb);
openBreadcrumbs(2);
BreadcrumbBean bcb2 = (BreadcrumbBean) trail.remove(2);
bcb2.setStatus(Status.PENDING);
bcb2.setUrl("CreateDataset" + this.generateURLString(request));
trail.add(2, bcb2);
closeRestOfTrail(2);
} else if (jspPage.equals(Page.CREATE_DATASET_3)) {
if (trail.size() == 6) {
openBreadcrumbs(1);
((BreadcrumbBean) trail.get(1)).setStatus(Status.UNAVAILABLE);
((BreadcrumbBean) trail.get(2)).setStatus(Status.PENDING);
((BreadcrumbBean) trail.get(2)).setUrl("CreateDataset" + this.generateURLString(request));
closeRestOfTrail(2);
} else {
// BreadcrumbBean bcb = (BreadcrumbBean)trail.remove(1);
// bcb.setStatus(Status.AVAILABLE);
// trail.add(1, bcb);
openBreadcrumbs(3);
BreadcrumbBean bcb2 = (BreadcrumbBean) trail.remove(3);
bcb2.setStatus(Status.PENDING);
bcb2.setUrl("CreateDataset" + this.generateURLString(request));
trail.add(3, bcb2);
closeRestOfTrail(3);
}
} else if (jspPage.equals(Page.CREATE_DATASET_APPLY_FILTER) || jspPage.equals(Page.APPLY_FILTER)) {
// CREATE_DATASET_APPLY_FILTER might be bogus, tbh
// BreadcrumbBean bcb = (BreadcrumbBean)trail.remove(2);
// bcb.setStatus(Status.AVAILABLE);
// trail.add(2, bcb);
openBreadcrumbs(4);
BreadcrumbBean bcb2 = (BreadcrumbBean) trail.remove(4);
bcb2.setStatus(Status.PENDING);
bcb2.setUrl("ApplyFilter" + this.generateURLString(request));
trail.add(4, bcb2);
closeRestOfTrail(4);
} else if (jspPage.equals(Page.CREATE_DATASET_4)) {
// BreadcrumbBean bcb = (BreadcrumbBean)trail.remove(3);
// bcb.setStatus(Status.AVAILABLE);
// trail.add(3, bcb);
openBreadcrumbs(4);
BreadcrumbBean bcb2 = (BreadcrumbBean) trail.remove(4);
bcb2.setStatus(Status.PENDING);
bcb2.setUrl("CreateDataset" + this.generateURLString(request));
trail.add(4, bcb2);
closeRestOfTrail(4);
} else if (jspPage.equals(Page.CONFIRM_DATASET)) {
// BreadcrumbBean bcb = (BreadcrumbBean)trail.remove(4);
// bcb.setStatus(Status.AVAILABLE);
// trail.add(4, bcb);
openBreadcrumbs(5);
BreadcrumbBean bcb2 = (BreadcrumbBean) trail.remove(5);
bcb2.setStatus(Status.PENDING);
bcb2.setUrl("CreateDataset" + this.generateURLString(request));
trail.add(5, bcb2);
closeRestOfTrail(5);
} else if (jspPage.equals(Page.EXPORT_DATASETS) && trail.size() == 7) {
// i.e. you have the end of the trail here with create dataset
// BreadcrumbBean bcb = (BreadcrumbBean)trail.remove(5);
// bcb.setStatus(Status.AVAILABLE);
// trail.add(5, bcb);
openBreadcrumbs(6);
BreadcrumbBean bcb2 = (BreadcrumbBean) trail.remove(6);
bcb2.setStatus(Status.PENDING);
bcb2.setUrl("CreateDataset" + this.generateURLString(request));
trail.add(6, bcb2);
closeRestOfTrail(6);
} else if (jspPage.equals(Page.EXPORT_DATASETS) && trail.size() != 7) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("download_data"), "ExportDataset" + this.generateURLString(request), Status.PENDING));
} else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_2)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("instructions"), "CreateFiltersOne" + this.generateURLString(request), Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("select_CRF"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("select_section"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("select_parameters"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("specify_criteria"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("export"), "ExportDataset", Status.UNAVAILABLE));
} else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_3)) {
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("select_CRF"), "CreateFiltersTwo" + this.generateURLString(request),
Status.PENDING), 2);
closeRestOfTrail(2);
} else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_3_1)) {
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("select_section"), "CreateFiltersTwo" + this.generateURLString(request),
Status.PENDING), 3);
closeRestOfTrail(3);
} else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_3_2)) {
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("select_parameters"), "CreateFiltersTwo" + this.generateURLString(request),
Status.PENDING), 4);
closeRestOfTrail(4);
} else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_4)) {
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("specify_criteria"), "CreateFiltersTwo" + this.generateURLString(request),
Status.PENDING), 5);
closeRestOfTrail(5);
}
/*
* else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_2) ||
* jspPage.equals(Page.CREATE_FILTER_SCREEN_3) ||
* jspPage.equals(Page.CREATE_FILTER_SCREEN_3_1) ||
* jspPage.equals(Page.CREATE_FILTER_SCREEN_3_2)) { trail = new
* ArrayList(); trail.add(new BreadcrumbBean("Extract Datasets",
* "ExtractDatasetsMain", Status.AVAILABLE)); trail.add( new
* BreadcrumbBean("Select Study Events", "CreateFiltersTwo"+
* this.generateURLString(request), Status.PENDING)); trail.add( new
* BreadcrumbBean("Specify Dataset Metadata", "CreateFiltersThree",
* Status.UNAVAILABLE)); trail.add( new BreadcrumbBean("Export",
* "ExportDataset", Status.UNAVAILABLE)); } else if
* (jspPage.equals(Page.CREATE_FILTER_SCREEN_4)) {
*
* trail = this.advanceTrail(trail, new BreadcrumbBean("Specify
* Dataset Metadata", "CreateFiltersThree"+
* this.generateURLString(request), Status.PENDING),2);
* closeRestOfTrail(2); }
*/
else if (jspPage.equals(Page.SUBMIT_DATA)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("submit_data"), "ListStudySubjectsSubmit", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_STUDY_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_subjects"), "ListStudySubject", Status.AVAILABLE));
if (request.getAttribute("id") != null) {
trail.add(new BreadcrumbBean(resworkflow.getString("view_study_subject"), "ViewStudySubject?id=" + (String) request.getAttribute("id"),
Status.AVAILABLE));
} else {
trail.add(new BreadcrumbBean(resworkflow.getString("view_study_subject"), "ViewStudySubject" + this.generateURLString(request),
Status.AVAILABLE));
}
} else if (jspPage.equals(Page.UPDATE_STUDY_EVENT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_subjects"), "ListStudySubject", Status.AVAILABLE));
// trail.add(new
// BreadcrumbBean(resworkflow.getString("view_study_subject"),
// "ViewStudySubject" + this.generateURLString(request),
// Status.AVAILABLE));
if (request.getAttribute("id") != null) {
trail.add(new BreadcrumbBean(resworkflow.getString("view_study_subject"), "ViewStudySubject?module=manage&id="
+ (String) request.getAttribute("id"), Status.AVAILABLE));
} else {
trail.add(new BreadcrumbBean(resworkflow.getString("view_study_subject"), "ViewStudySubject" + this.generateURLString(request),
Status.AVAILABLE));
}
trail.add(new BreadcrumbBean(resworkflow.getString("update_study_event"), "#", Status.PENDING));
} else if (jspPage.equals(Page.INSTRUCTIONS_ENROLL_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("submit_data"), "ListStudySubjectsSubmit", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("enroll_subject_instructions"), "AddNewSubject?instr=1", Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("enroll_subject"), "AddNewSubject", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("add_new_study_event"), "CreateNewStudyEvent", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("study_event_overview"), "EnterDataForStudyEvent", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("event_CRF_data_submission"), "TableOfContents", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("data_entry"), "InitialDataEntry", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("mark_event_CRF_complete"), "MarkEventCRFComplete", Status.UNAVAILABLE));
} else if (jspPage.equals(Page.ADD_NEW_SUBJECT)) {
trail = advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("enroll_subject"), "AddNewSubject", Status.PENDING), 2);
closeRestOfTrail(2);
} else if (jspPage.equals(Page.CREATE_NEW_STUDY_EVENT)) {
if (!containsServlet("AddNewSubject")) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("submit_data"), "ListStudySubjectsSubmit", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("add_new_study_event"), "CreateNewStudyEvent", Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("study_event_overview"), "EnterDataForStudyEvent", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("event_CRF_data_submission"), "TableOfContents", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("data_entry"), "InitialDataEntry", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("mark_event_CRF_complete"), "MarkEventCRFComplete", Status.UNAVAILABLE));
} else {
trail = advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("add_new_study_event"), "CreateNewStudyEvent", Status.PENDING), 3);
closeRestOfTrail(3);
}
} else if (jspPage.equals(Page.ENTER_DATA_FOR_STUDY_EVENT)) {
int ordinal;
if (containsServlet("AddNewSubject")) {
ordinal = 4;
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("study_event_overview"), "EnterDataForStudyEvent"
+ generateURLString(request), Status.PENDING), ordinal);
} else if (containsServlet("CreateNewStudyEvent")) {
ordinal = 2;
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("study_event_overview"), "EnterDataForStudyEvent"
+ generateURLString(request), Status.PENDING), ordinal);
} else {
ordinal = 1;
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("submit_data"), "ListStudySubjectsSubmit", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("study_event_overview"), "EnterDataForStudyEvent" + generateURLString(request),
Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("event_CRF_data_submission"), "TableOfContents", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("data_entry"), "InitialDataEntry", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("mark_event_CRF_complete"), "MarkEventCRFComplete", Status.UNAVAILABLE));
}
closeRestOfTrail(ordinal);
} else if (jspPage.equals(Page.TABLE_OF_CONTENTS)) {
int ordinal;
if (containsServlet("EnterDataForStudyEvent")) {
ordinal = trail.size() - 3;
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("event_CRF_data_submission"), "TableOfContents"
+ this.generateURLString(request), Status.PENDING), ordinal);
closeRestOfTrail(ordinal);
} else {
ordinal = 1;
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("submit_data"), "ListStudySubjectsSubmit", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("event_CRF_data_submission"), "TableOfContents" + generateURLString(request),
Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("data_entry"), "InitialDataEntry", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("mark_event_CRF_omplete"), "MarkEventCRFComplete", Status.UNAVAILABLE));
}
closeRestOfTrail(ordinal);
} else if (jspPage.equals(Page.INITIAL_DATA_ENTRY)) {
int ordinal = trail.size() - 2;
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("data_entry"), "InitialDataEntry" + this.generateURLString(request),
Status.PENDING), ordinal);
closeRestOfTrail(ordinal);
} else if (jspPage.equals(Page.DOUBLE_DATA_ENTRY)) {
int ordinal = trail.size() - 2;
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("data_entry"), "DoubleDataEntry" + this.generateURLString(request),
Status.PENDING), ordinal);
closeRestOfTrail(ordinal);
} else if (jspPage.equals(Page.MARK_EVENT_CRF_COMPLETE)) {
int ordinal = trail.size() - 1;
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("mark_event_CRF_complete"), "MarkEventCRFComplete"
+ this.generateURLString(request), Status.PENDING), ordinal);
closeRestOfTrail(ordinal);
}
else if (jspPage.equals(Page.CREATE_STUDY1)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("study_description"), "#", Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("study_status"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("study_design"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("conditions_and_eligibility"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("facility_information"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("related_information"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("confirm_and_submit"), "#", Status.UNAVAILABLE));
}
else if (jspPage.equals(Page.CREATE_STUDY2)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("study_status"), "#", Status.PENDING), 1);
closeRestOfTrail(1);
} else if (jspPage.equals(Page.CREATE_STUDY3) || jspPage.equals(Page.CREATE_STUDY4)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("study_design"), "#", Status.PENDING), 2);
closeRestOfTrail(2);
// closeBreadcrumb(1);
} else if (jspPage.equals(Page.CREATE_STUDY5)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("conditions_and_eligibility"), "#", Status.PENDING), 3);
closeRestOfTrail(3);
// closeBreadcrumb(2);
} else if (jspPage.equals(Page.CREATE_STUDY6)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("facility_information"), "#", Status.PENDING), 4);
closeRestOfTrail(4);
// closeBreadcrumb(3);
} else if (jspPage.equals(Page.CREATE_STUDY7)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("related_information"), "#", Status.PENDING), 5);
closeRestOfTrail(5);
// closeBreadcrumb(4);
} else if (jspPage.equals(Page.STUDY_CREATE_CONFIRM)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("confirm_and_submit"), "#", Status.PENDING), 6);
closeRestOfTrail(6);
// closeBreadcrumb(5);
} else if (jspPage.equals(Page.UPDATE_STUDY1)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("study_description"), "#", Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("study_status"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("study_design"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("conditions_and_eligibility"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("facility_information"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("related_information"), "#", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("confirm_and_submit"), "#", Status.UNAVAILABLE));
}
else if (jspPage.equals(Page.UPDATE_STUDY2)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("study_status"), "#", Status.PENDING), 1);
closeRestOfTrail(1);
} else if (jspPage.equals(Page.UPDATE_STUDY3) || jspPage.equals(Page.CREATE_STUDY4)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("study_design"), "#", Status.PENDING), 2);
closeRestOfTrail(2);
} else if (jspPage.equals(Page.UPDATE_STUDY5)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("conditions_and_eligibility"), "#", Status.PENDING), 3);
closeRestOfTrail(3);
} else if (jspPage.equals(Page.UPDATE_STUDY6)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("facility_information"), "#", Status.PENDING), 4);
closeRestOfTrail(4);
} else if (jspPage.equals(Page.UPDATE_STUDY7)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("related_information"), "#", Status.PENDING), 5);
closeRestOfTrail(5);
} else if (jspPage.equals(Page.STUDY_UPDATE_CONFIRM)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("confirm_and_submit"), "#", Status.PENDING), 6);
closeRestOfTrail(6);
} else if (jspPage.equals(Page.ADMIN_SYSTEM) || jspPage.equals(Page.TECH_ADMIN_SYSTEM)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "#", Status.PENDING));
} else if (jspPage.equals(Page.ENTERPRISE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("home"), "MainMenu", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("openclinica_enterprise"), "#", Status.PENDING));
} else if (jspPage.equals(Page.MANAGE_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "#", Status.PENDING));
} else if (jspPage.equals(Page.MANAGE_STUDY_BODY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "#", Status.PENDING));
} else if (jspPage.equals(Page.LIST_USER_IN_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_users"), "ListStudyUser", Status.PENDING));
} else if (jspPage.equals(Page.LIST_STUDY_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_subjects"), "ListStudySubject", Status.PENDING));
} else if (jspPage.equals(Page.SITE_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_sites"), "ListSite", Status.PENDING));
} else if (jspPage.equals(Page.STUDY_EVENT_DEFINITION_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.PENDING));
}
else if (jspPage.equals(Page.SUBJECT_GROUP_CLASS_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_groups"), "ListSubjectGroupClass", Status.PENDING));
} else if (jspPage.equals(Page.CREATE_SUBJECT_GROUP_CLASS)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_groups"), "ListSubjectGroupClass", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("create_subject_group_class"), "CreateSubjectGroupClass", Status.PENDING));
} else if (jspPage.equals(Page.CRF_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.PENDING));
} else if (jspPage.equals(Page.SUBJECT_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_subjects"), "ListSubject", Status.PENDING));
} else if (jspPage.equals(Page.LIST_USER_ACCOUNTS)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_users"), "ListUserAccounts", Status.PENDING));
} else if (jspPage.equals(Page.STUDY_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_studies"), "ListStudy", Status.PENDING));
} else if (jspPage.equals(Page.CREATE_CRF)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("create_a_new_CRF"), "CreateCRF", Status.PENDING));
}
else if (jspPage.equals(Page.CREATE_CRF_VERSION)) {
trail = new ArrayList();
// trail.add(new
// BreadcrumbBean(resworkflow.getString("enter_version_name"),
// "#", Status.PENDING));
// trail.add(new
// BreadcrumbBean(resworkflow.getString("check_version"), "#",
// Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("upload_spreadsheet"), "#", Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("validate_spreadsheet"), "#", Status.UNAVAILABLE));
// trail.add(new
// BreadcrumbBean(resworkflow.getString("review_new_items"),
// "#", Status.UNAVAILABLE));
// trail.add(new
// BreadcrumbBean(resworkflow.getString("review_SQL_generated"),
// "#", Status.UNAVAILABLE));
/*
* MERGED from the following, may need to update i18n'ed text
* above:
*
* trail.add(new BreadcrumbBean("Upload Spreadsheet", "#",
* Status.PENDING)); // trail.add(new BreadcrumbBean("Check
* Version", "#", Status.UNAVAILABLE)); //trail.add(new
* BreadcrumbBean("Upload Spreadsheet", "#",
* Status.UNAVAILABLE)); trail.add(new BreadcrumbBean("Review
* Spreadsheet", "#", Status.UNAVAILABLE)); //trail.add(new
* BreadcrumbBean("Review New Items", "#", Status.UNAVAILABLE));
* //trail.add(new BreadcrumbBean("Review SQL Generated", "#",
* Status.UNAVAILABLE)); >>>>>>> .r9766
*/
} else if (jspPage.equals(Page.CREATE_CRF_VERSION_NODELETE) || jspPage.equals(Page.REMOVE_CRF_VERSION_DEF)
|| jspPage.equals(Page.REMOVE_CRF_VERSION_CONFIRM)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("upload_spreadsheet"), "#", Status.PENDING), 0);
closeRestOfTrail(0);
} else if (jspPage.equals(Page.UPLOAD_CRF_VERSION)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("upload_spreadsheet"), "#", Status.PENDING), 1);
BreadcrumbBean b = (BreadcrumbBean) trail.get(0);
b.setStatus(Status.AVAILABLE);
closeRestOfTrail(2);
} else if (jspPage.equals(Page.CREATE_CRF_VERSION_CONFIRM)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("validate_spreadsheet"), "#", Status.PENDING), 3);
closeRestOfTrail(3);
} else if (jspPage.equals(Page.CREATE_CRF_VERSION_CONFIRMSQL)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("review_new_items"), "#", Status.PENDING), 4);
closeRestOfTrail(4);
} else if (jspPage.equals(Page.CREATE_CRF_VERSION_DONE) || jspPage.equals(Page.CREATE_CRF_VERSION_ERROR)) {
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("review_SQL_generated"), "#", Status.PENDING), 5);
closeRestOfTrail(5);
} else if (jspPage.equals(Page.VIEW_CRF_VERSION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_CRF_version"), "ViewCRFVersion", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_CRF)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_CRF_version"), "ViewCRF", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_CRF)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_CRF"), "RemoveCRF", Status.PENDING));
} else if (jspPage.equals(Page.RESTORE_CRF)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("restore_CRF"), "RestoreCRF", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_CRF_VERSION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_CRF"), "RemoveCRFVersion", Status.PENDING));
} else if (jspPage.equals(Page.RESTORE_CRF_VERSION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("restore_CRF_version"), "RestoreCRFVersion", Status.PENDING));
} else if (jspPage.equals(Page.UPDATE_CRF)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("update_CRF"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_subjects"), "ListSubject", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_subject"), "#", Status.PENDING));
} else if (jspPage.equals(Page.UPDATE_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_subjects"), "ListSubject", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("update_subject"), "#", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_subjects"), "ListSubject", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_subject"), "#", Status.PENDING));
} else if (jspPage.equals(Page.RESTORE_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_subjects"), "ListSubject", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("restore_subject"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_USER_ACCOUNT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_users"), "ListUserAccounts", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_user_account"), "ViewUserAccount" + generateURLString(request), Status.PENDING));
}
else if (jspPage.equals(Page.EDIT_ACCOUNT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("administer_system"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_users"), "ListUserAccounts", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("edit_user_account"), "EditUserAccount" + generateURLString(request), Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("confirm_user_account_details"), "EditUserAccount", Status.UNAVAILABLE));
}
else if (jspPage.equals(Page.EDIT_ACCOUNT_CONFIRM)) {
trail =
advanceTrail(trail, new BreadcrumbBean(resworkflow.getString("confirm_user_account_details"), "EditUserAccount"
+ generateURLString(request), Status.PENDING), 3);
}
else if (jspPage.equals(Page.EDIT_STUDY_USER_ROLE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("administer_users"), "ListUserAccounts", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("edit_user_role"), "EditStudyUserRole", Status.PENDING));
}
else if (jspPage.equals(Page.CREATE_ACCOUNT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("administer_users"), "ListUserAccounts", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("create_user_account"), "CreateUserAccount", Status.PENDING));
} else if (jspPage.equals(Page.REASSIGN_STUDY_SUBJECT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_subjects"), "ListStudySubject", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("reassign_study_subject"), "#", Status.PENDING));
} else if (jspPage.equals(Page.DEFINE_STUDY_EVENT1)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("create_study_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.UPDATE_EVENT_DEFINITION1)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("update_study_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_EVENT_DEFINITION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.CHANGE_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("home"), "MainMenu", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("change_current_study"), "#", Status.PENDING));
} else if (jspPage.equals(Page.UPDATE_PROFILE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("home"), "MainMenu", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("update_user_profile"), "#", Status.PENDING));
} else if (jspPage.equals(Page.CREATE_SUB_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_sites"), "ListSite", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("create_new_site"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_SITE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_sites"), "ListSite", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_site"), "#", Status.PENDING));
} else if (jspPage.equals(Page.SET_USER_ROLE_IN_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_users"), "ListStudyUser", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("set_user_role"), "#", Status.PENDING));
} else if (jspPage.equals(Page.STUDY_USER_LIST)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_users"), "ListStudyUser", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("assign_new_users_to_study"), "#", Status.PENDING));
} else if (jspPage.equals(Page.LOCK_DEFINITION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("lock_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.UNLOCK_DEFINITION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("unlock_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_USER_IN_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_users"), "ListStudyUser", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_user_details"), "#", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_USER_ROLE_IN_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_users"), "ListStudyUser", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_user_role"), "#", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_DEFINITION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.RESTORE_DEFINITION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_event_definitions"), "ListEventDefinition", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("restore_event_definition"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_studies"), "ListStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_study_details"), "#", Status.PENDING));
} else if (jspPage.equals(Page.SET_USER_ROLE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_users"), "ListUserAccounts", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("set_user_role"), "#", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_studies"), "ListStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_a_study"), "#", Status.PENDING));
} else if (jspPage.equals(Page.RESTORE_STUDY)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("business_admin"), "AdminSystem", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("administer_studies"), "ListStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("restore_a_study"), "#", Status.PENDING));
} else if (jspPage.equals(Page.REMOVE_SITE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_sites"), "ListSite", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("remove_a_site"), "#", Status.PENDING));
} else if (jspPage.equals(Page.RESTORE_SITE)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_sites"), "ListSite", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("restore_a_site"), "#", Status.PENDING));
} else if (jspPage.equals(Page.MENU)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("home"), "MainMenu", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_TABLE_OF_CONTENT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_CRF_version_data_entry"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_SECTION_DATA_ENTRY) || jspPage.equals(Page.VIEW_SECTION_DATA_ENTRY_SERVLET)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_CRF_version_section_data"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_EVENT_CRF_CONTENT)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("manage_subjects"), "ListStudySubject", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_study_subject"), "ViewStudySubject" + this.generateURLString(request),
Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_event_CRF_data"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_STUDY_EVENTS)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_events"), "#", Status.PENDING));
} else if (jspPage.equals(Page.DELETE_CRF_VERSION)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_CRFs"), "ListCRF", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("delete_CRF_version"), "#", Status.PENDING));
}
// TODO fill in your page here if it does not require a
// breadcrumb trail:
else if (jspPage.equals(Page.MENU)) {
trail = new ArrayList();
}// below are new breadcrumbs added to provide links, tbh
else if (jspPage.equals(Page.EDIT_DATASET)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("edit_dataset_items_attributes"), "#", Status.PENDING));
trail.add(new BreadcrumbBean(resworkflow.getString("define_temporal_scope"), "CreateDataset", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("specify_dataset_properties"), "CreateDataset", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("confirm_dataset_properties"), "CreateDataset", Status.UNAVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("generate_dataset"), "CreateDataset", Status.UNAVAILABLE));
} else if (jspPage.equals(Page.EDIT_FILTER)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("edit_filter"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_DATASET_DETAILS)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_dataset_details"), "#", Status.PENDING));
} else if (jspPage.equals(Page.EXTRACT_DATASETS_MAIN)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("home"), "MainMenu", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_DATASETS)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_dataset"), "#", Status.PENDING));
} else if (jspPage.equals(Page.CREATE_FILTER_SCREEN_1)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("extract_datasets"), "ExtractDatasetsMain", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("view_filters"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_RULES)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("rule_manage_assignment"), "ViewRuleAssignment", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("rule_manage"), "#", Status.PENDING));
} else if (jspPage.equals(Page.VIEW_RULE_SETS)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("manage_study"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("rule_manage_assignment"), "ViewRuleAssignment", Status.AVAILABLE));
} else if (jspPage.equals(Page.IMPORT_RULES)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("import_rules_1"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("import_rules_2"), "ViewRuleAssignment", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("import_rules_3"), "#", Status.AVAILABLE));
} else if (jspPage.equals(Page.TEST_RULES)) {
trail = new ArrayList();
trail.add(new BreadcrumbBean(resworkflow.getString("test_rules_validate"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("test_rules_test"), "ManageStudy", Status.AVAILABLE));
trail.add(new BreadcrumbBean(resworkflow.getString("test_rules_get_results"), "TestRule", Status.AVAILABLE));
}
// else {
// trail = new ArrayList();
// }
} catch (IndexOutOfBoundsException ioobe) {
// TODO Auto-generated catch block, created to disallow errors
ioobe.printStackTrace();
trail = new ArrayList();
}
return trail;
}
public String generateURLString(HttpServletRequest request) {
String newURL = "?";
FormProcessor fp = new FormProcessor(request);
Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String title = (String) en.nextElement();
String value = fp.getString(title);
newURL += title + "=" + value + "&";
}
return newURL;
}
public ArrayList advanceTrail(ArrayList trail, BreadcrumbBean newBean, int ordinal) {
int previous = ordinal - 1;
BreadcrumbBean bcb;
if (previous >= 0 && previous < trail.size()) {
bcb = (BreadcrumbBean) trail.remove(previous);
bcb.setStatus(Status.AVAILABLE);
trail.add(previous, bcb);
}
if (ordinal >= 0 && ordinal < trail.size()) {
bcb = (BreadcrumbBean) trail.remove(ordinal);
trail.add(ordinal, newBean);
}
return trail;
}
/**
* Determines if the trail contains a particular servlet.
*
* @param servlet
* The name of the servlet.
* @return <code>true</code> if one of the elements refers to the
* specified servlet, <code>false</code> otherwise.
*/
public boolean containsServlet(String servlet) {
servlet = servlet.toLowerCase();
for (int i = 0; i < trail.size(); i++) {
BreadcrumbBean b = (BreadcrumbBean) trail.get(i);
if (b.getUrl().toLowerCase().indexOf(servlet) >= 0) {
return true;
}
}
return false;
}
/**
* Make everything in the trail after the specified ordinal unavailable.
*
* It is recommended that this method be called after advanceTrail. Using
* this method ensures that if the user got to the current page by "going
* back" through the trail, all the "future" pages will be marked
* unavailable.
*
* @param ordinal
* The index after which everything will be unavailable.
*/
private void closeRestOfTrail(int ordinal) {
if (ordinal < 0) {
return;
}
for (int i = ordinal + 1; i < trail.size(); i++) {
BreadcrumbBean b = (BreadcrumbBean) trail.get(i);
b.setStatus(Status.UNAVAILABLE);
trail.set(i, b);
}
return;
}
/**
* Make the breadcrumb at position ordinal unavailable.
*
* @param ordinal
* The index of the breadcrumb.
*/
private void closeBreadcrumb(int ordinal) {
if (ordinal < 0 || ordinal >= trail.size()) {
return;
}
BreadcrumbBean b = (BreadcrumbBean) trail.get(ordinal);
b.setStatus(Status.UNAVAILABLE);
trail.set(ordinal, b);
return;
}
/**
* Makes all breadcrumbs previous to this one open. Good for when you have
* to skip a few steps ahead.
*
* @author thickerson
* @param ordinal
* the index of the current breadcrumb.
*
*/
private void openBreadcrumbs(int ordinal) {
if (ordinal < 0 || ordinal > trail.size()) {
return;
}
for (int i = 0; i < ordinal; i++) {
BreadcrumbBean b = (BreadcrumbBean) trail.get(i);
b.setStatus(Status.AVAILABLE);
trail.set(i, b);
}
return;
}
}