private Widget buildDropdownWidget(Integer size){ Widget dropdownWidget = new DropdownWidget(size); if(size==1 || !required){ // show an empty option when size =1, even if required =true ((DropdownWidget) dropdownWidget).addOption(new Option()); } return dropdownWidget; } private void prepareWidgets(FormEntryContext context, Map<String, String> parameters) {
for (int i = 0; i < getOptions().size(); ++i) { Option opt = getOptions().get(i); boolean selected = getInitialValue() == null ? "".equals(opt.getValue()) : getInitialValue().equals( opt.getValue()); if (selected) { sb.append(WidgetFactory.displayValue("[X] " + opt.getLabel())); } else { sb.append(WidgetFactory.displayEmptyValue("[  ] " + opt.getLabel())); for (int i = 0; i < getOptions().size(); ++i) { Option option = getOptions().get(i); boolean selected = option.isSelected(); if (!selected) selected = getInitialValue() == null ? option.getValue().equals("") : getInitialValue().equals( option.getValue()); sb.append("<input type=\"radio\" id=\"").append(id + "_" + i).append("\" name=\"") .append(id).append("\" value=\"").append(option.getValue()).append("\""); if (selected) sb.append(" checked=\"true\""); sb.append(" onMouseDown=\"radioDown(this)\" onClick=\"radioClicked(this)\""); sb.append("/>"); sb.append("<label for=\"").append(id + "_" + i).append("\">").append(option.getLabel()).append("</label>"); if (i < getOptions().size() - 1) { sb.append(getAnswerSeparator());
@Override public String generateHtml(FormEntryContext context) { if (FormEntryContext.Mode.VIEW == context.getMode()) { return initialValue == null ? "" : initialValue.getLabel(); sb.append("<input id=\"" + formFieldName + "-display\""); if (initialValue != null) { sb.append(" value=\"" + initialValue.getLabel() + "\""); sb.append(" value=\"" + initialValue.getValue() + "\"");
if (getInitialValue().equals(o.getLabel())) { toPrint = o.getLabel(); found = true; break; if (getInitialValue() != null && getInitialValue().equals(o.getLabel())) { initialOption = new Option(o.getLabel(),o.getValue(),false); if (o.isSelected() && !o.getValue().equals("")) { initialOption = new Option(o.getLabel(),o.getValue(),false); + ((initialOption != null) ? HtmlUtils.htmlEscape(initialOption.getLabel()) : "") + "\" onblur=\"onBlurAutocomplete(this)\" class=\"optionAutoComplete\"" + " onfocus=\"setupOptionAutocomplete(this,'" +optionNames +"','" + id + "\" value=\"" + ((initialOption != null) ? initialOption.getValue() : "") + "\" />"); return sb.toString();
providerOptions.add(new Option(label, p.getId().toString(), false)); Option option = new Option(StringEscapeUtils.escapeHtml(personStub.toString()), personStub.getId().toString(), false); providerUsers.add(option); if(defaultProvider != null){ for(Option option: providerOptions){ if(option.getValue().equals(defaultProvider.getId().toString())){ defaultOptionPresent = true; providerOptions.remove(option); = new Option(StringEscapeUtils.escapeHtml(defaultProvider.getPersonName().getFullName()), defaultProvider.getId().toString(), true); providerOptions.add(defProviderOption); } else { defProviderOption = new Option(StringEscapeUtils.escapeHtml(defaultProvider.getPersonName().getFullName()), defaultProvider.getId().toString(), true); for (Option option : providerOptions) { if (option.getValue().equals(defProviderOption.getValue())) { providerOptions.remove(option); break; providerWidget.addOption(new Option()); if (!providerOptions.isEmpty()) { providerWidget.setOptions(providerOptions); providerWidget.addOption(new Option (Context.getMessageSourceService().getMessage("htmlformentry.chooseAProvider"), "", !initialValueIsSet)); // if no initial or default value
/** * * @param options * @return a single string with all the option values appended into it */ private String getValuesAsString(List<Option> options) { StringBuilder valueSb = new StringBuilder(); for (Iterator<Option> it = options.iterator(); it.hasNext();) { valueSb.append(it.next().getValue()); if (it.hasNext()){ valueSb.append(","); } } return valueSb.toString(); }
/** * This method exists to allow us to quickly support providers as introduce in OpenMRS 1.9.x, * without having to branch the module. We should remove this method when do a proper * implementation. * * @param persons */ private void removeNonProviders(List<Option> persons) { if (openmrsVersionDoesNotSupportProviders()) return; Set<Integer> legalPersonIds = getAllProviderPersonIds(); for (Iterator<Option> i = persons.iterator(); i.hasNext(); ) { Option candidate = i.next(); if (!legalPersonIds.contains(Integer.parseInt(candidate.getValue()))) i.remove(); } }
private String getNamesAsString(List<Option> options) { StringBuilder nameSb = new StringBuilder(); for (Iterator<Option> it = options.iterator(); it.hasNext();) { String originalOption = it.next().getLabel(); // this is added to eliminate the errors occur due to having ", ' and \ charaters included in // the option names. When those are met they are replaced with 'escape character+original character' originalOption = originalOption.replace("\\", "\\" +"\\" ); originalOption = originalOption.replace("'", "\\" +"'"); originalOption = originalOption.replace("\"", "\\" +"'" ); nameSb.append(originalOption); if (it.hasNext()){ nameSb.append(","); } } return nameSb.toString(); }
private void createDosingTypeWidget(FormEntryContext context) { dosingTypeWidget = new DropdownWidget(); List<Option> options = new ArrayList<Option>(); MessageSourceService mss = Context.getMessageSourceService(); options.add(new Option(mss.getMessage("htmlformentry.drugOrder.dosingType.simple"), SimpleDosingInstructions.class.getName(), true)); //options.add(new Option(mss.getMessage("htmlformentry.drugOrder.dosingType.freetext"), FreeTextDosingInstructions.class.getName(), false)); setupDropdownWidget(context, dosingTypeWidget, options); }
if (getInitialValue().equals(o.getValue())) { toPrint = o.getLabel(); found = true; break; for (int i = 0; i < getOptions().size(); ++i) { Option option = getOptions().get(i); boolean selected = option.isSelected(); if (!selected) selected = getInitialValue() == null ? option.getValue().equals("") : getInitialValue().equals(option.getValue()); sb.append("<option value=\"").append(option.getValue()).append("\""); if (selected) sb.append(" selected=\"true\""); sb.append(">"); sb.append(option.getLabel()); sb.append("</option>");
static void setupDropdownWidget(FormEntryContext context, DropdownWidget widget, List<Option> options) { if (context.getMode() != Mode.VIEW) { widget.setOptions(options); if (!options.isEmpty()) { widget.setInitialValue(options.get(0).getValue()); } } else { widget.setOptions(new ArrayList<Option>()); } context.registerWidget(widget); }
@Override public void setInitialValue(Object initialValue) { if (initialValue instanceof Drug) { Drug asDrug = (Drug) initialValue; this.initialValue = new Option(asDrug.getName(), "Drug:" + asDrug.getId(), true); } else if (initialValue instanceof Concept) { Concept asConcept = (Concept) initialValue; this.initialValue = new Option((asConcept.getName().getName()), asConcept.getConceptId().toString(), true); } else { this.initialValue = (Option) initialValue; } }
private void createRouteWidget(FormEntryContext context) { routeWidget = new DropdownWidget(); List<Concept> drugRoutes = Context.getOrderService().getDrugRoutes(); List<Option> options = new ArrayList<Option>(); for (Concept route : drugRoutes) { options.add(new Option(route.getName().getName(), route.getId().toString(), false)); } setupDropdownWidget(context, routeWidget, options); }
private void createDurationUnitsWidget(FormEntryContext context) { durationUnitsWidget = new DropdownWidget(); List<Option> options = new ArrayList<Option>(); List<Concept> durationUnits = Context.getOrderService().getDurationUnits(); for (Concept concept : durationUnits) { options.add(new Option(concept.getName().getName(), concept.getId().toString(), false)); } setupDropdownWidget(context, durationUnitsWidget, options); }
private void createQuantityUnitsWidget(FormEntryContext context) { quantityUnitsWidget = new DropdownWidget(); List<Option> options = new ArrayList<Option>(); List<Concept> drugDispensingUnits = Context.getOrderService().getDrugDispensingUnits(); for (Concept concept : drugDispensingUnits) { options.add(new Option(concept.getName().getName(), concept.getId().toString(), false)); } setupDropdownWidget(context, quantityUnitsWidget, options); }
private void createDoseUnitsWidget(FormEntryContext context) { doseUnitsWidget = new DropdownWidget(); List<Concept> concepts = Context.getOrderService().getDrugDosingUnits(); List<Option> options = new ArrayList<Option>(); for (Concept concept : concepts) { options.add(new Option(concept.getName().getName(), concept.getId().toString(), false)); } setupDropdownWidget(context, doseUnitsWidget, options); }
public static DropdownWidget createCareSettingWidget(FormEntryContext context, boolean inpatientOnly) { DropdownWidget careSettingWidget = new DropdownWidget(); List<CareSetting> careSettings = Context.getOrderService().getCareSettings(false); List<Option> options = new ArrayList<Option>(); for (CareSetting careSetting : careSettings) { if (!inpatientOnly || careSetting.getCareSettingType().equals(CareSettingType.INPATIENT)) { options.add(new Option(careSetting.getName(), careSetting.getId().toString(), false)); } } setupDropdownWidget(context, careSettingWidget, options); return careSettingWidget; }
@Test public void testMultipleOptions() throws Exception { DropdownWidget widget = new DropdownWidget(); List<Option> option = new ArrayList<Option>(); option.add(new Option("label1", "value1", false)); option.add(new Option("label2", "value2", true)); option.add(new Option("label3", "value3", false)); option.add(new Option("label4", "value4", false)); option.add(new Option("label5", "value5", false)); widget.setOptions(option); widget.setInitialValue("choose one"); FormEntryContext formEntryContext = mock(FormEntryContext.class); when(formEntryContext.getFieldName(widget)).thenReturn("w1"); String html = widget.generateHtml(formEntryContext); assertThat(html, is("<select id=\"w1\" name=\"w1\"><option value=\"value1\">label1</option><option value=\"value2\" selected=\"true\">label2</option><option value=\"value3\">label3</option><option value=\"value4\">label4</option><option value=\"value5\">label5</option></select>")); } }
/** * Be aware it's called by the constructor. * * @param context * @param mss */ protected void createFrequencyWidget(FormEntryContext context, MessageSourceService mss) { frequencyWidget = new DropdownWidget(); frequencyErrorWidget = new ErrorWidget(); // fill frequency drop down lists (ENTER, EDIT) List<Option> freqOptions = new ArrayList<Option>(); if (context.getMode() != Mode.VIEW ) { for (int i = 1; i <= 10; i++) { freqOptions.add(new Option(i + "/" + mss.getMessage("DrugOrder.frequency.day"), String.valueOf(i), false)); } } frequencyWidget.setOptions(freqOptions); context.registerWidget(frequencyWidget); context.registerErrorWidget(frequencyWidget, frequencyErrorWidget); }