private HtmlOutputText createLabelComponent( FacesContext context, EventEditorDialog dialog, String id, String text) { HtmlOutputText outputText = Components.composeHtmlOutputText(context, dialog, id, text); outputText.setStyle(dialog.getLabelStyle()); outputText.setStyleClass(dialog.getLabelClass()); return outputText; }
private UIComponent getResourceField(FacesContext context, EventEditorDialog dialog) { DropDownField field = Components.getOrCreateFacet( context, dialog, DropDownField.COMPONENT_TYPE, "resourceField", DropDownField.class); List<TimetableResource> resources = (List<TimetableResource>) dialog.getAttributes().get(DayTableRenderer.EVENTEDITOR_RESOURCES_ATTR); for (TimetableResource resource : resources) { field.getChildren().add(new DropDownItem(resource.getName())); } field.setCustomValueAllowed(false); return field; }
@Override protected void encodeCustomContent(FacesContext context, PopupLayer popupLayer) throws IOException { final EventEditorDialog dialog = (EventEditorDialog) popupLayer; final TimetableView timetableView = (TimetableView) dialog.getParent(); TimetableEditingOptions editingOptions = timetableView.getEditingOptions(); final boolean useResourceSeparationMode = (Boolean) timetableView .getAttributes() .get(TimeScaleTableRenderer.USE_RESOURCE_SEPARATION_MODE_ATTR) && (editingOptions != null && editingOptions.isEventResourceEditable()); final boolean eventDurationEditable = (editingOptions != null && editingOptions.isEventDurationEditable()); final UIComponent[][] components = new UIComponent[][] { { createLabelComponent(context, dialog, "nameLabel", dialog.getNameLabel()), getNameField(context, dialog) }, { createLabelComponent(context, dialog, "resourceLabel", dialog.getResourceLabel()), getResourceField(context, dialog) }, { createLabelComponent(context, dialog, "startLabel", dialog.getStartLabel()), createDateTimeFields(context, dialog, "start") }, { createLabelComponent(context, dialog, "endLabel", dialog.getEndLabel()), createDateTimeFields(context, dialog, "end") }, { createLabelComponent(context, dialog, "descriptionLabel", dialog.getDescriptionLabel()), }, {getDescriptionField(context, dialog)}, {null} }; new TableRenderer() { @Override protected void writeTableAttributes( FacesContext context, ResponseWriter writer, UIComponent component) throws IOException { super.writeTableAttributes(context, writer, component); writer.writeAttribute("class", "o_fullWidthAndHeight", null); } protected boolean isRowVisible(int rowIndex) { switch (rowIndex) { case 1: return useResourceSeparationMode; case 3: return eventDurationEditable; default: return true; } } @Override protected void writeRowAttributes(ResponseWriter writer, int rowIndex) throws IOException { if (rowIndex == 5) { writer.writeAttribute("style", "height: 100%;", null); } } @Override protected void writeCellAttributes(ResponseWriter writer, int rowIndex, int cellIndex) throws IOException { super.writeCellAttributes(writer, rowIndex, cellIndex); if (rowIndex < 4 && cellIndex == 0) writer.writeAttribute("style", "width: 0", null); if (rowIndex == 5) writer.writeAttribute("style", "vertical-align: top;", null); } @Override protected void encodeCellContents( FacesContext context, ResponseWriter writer, UIComponent component, int rowIndex, int colIndex) throws IOException { super.encodeCellContents(context, writer, component, rowIndex, colIndex); if (rowIndex == components.length - 1) { writer.startElement("div", component); writer.writeAttribute("class", "o_eventEditor_buttonsArea", null); HtmlCommandButton deleteButton = Components.createButtonFacet( context, dialog, "deleteButton", dialog.getDeleteButtonText()); deleteButton.setStyle(Styles.mergeStyles("float: left", dialog.getDeleteButtonStyle())); deleteButton.setStyleClass(dialog.getDeleteButtonClass()); deleteButton.encodeAll(context); HtmlCommandButton okButton = Components.createButtonFacet(context, dialog, "okButton", dialog.getOkButtonText()); okButton.setStyle(dialog.getOkButtonStyle()); okButton.setStyleClass(dialog.getOkButtonClass()); okButton.encodeAll(context); HtmlCommandButton cancelButton = Components.createButtonFacet( context, dialog, "cancelButton", dialog.getCancelButtonText()); writer.write(HTML.NBSP_ENTITY); cancelButton.setStyle(dialog.getCancelButtonStyle()); cancelButton.setStyleClass(dialog.getCancelButtonClass()); cancelButton.encodeAll(context); writer.endElement("div"); Rendering.renderInitScript( context, new ScriptBuilder() .functionCall( "O$.Timetable._initEventEditorDialog", timetableView, dialog, dialog.getCreateEventCaption(), dialog.getEditEventCaption(), dialog.isCentered()) .semicolon()); } } }.render(popupLayer, components); }