Author: adubovsky
Date: 2008-11-25 09:47:15 -0500 (Tue, 25 Nov 2008)
New Revision: 11365
Added:
trunk/test-applications/facelets/src/main/java/editor/
trunk/test-applications/facelets/src/main/java/editor/Editor.java
trunk/test-applications/facelets/src/main/webapp/Editor/
trunk/test-applications/facelets/src/main/webapp/Editor/Editor.xhtml
trunk/test-applications/facelets/src/main/webapp/Editor/EditorProperty.xhtml
trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-Editor.xml
Modified:
trunk/test-applications/facelets/src/main/java/rich/RichBean.java
trunk/test-applications/facelets/src/main/java/util/event/Event.java
trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
Log:
+ Editor
Added: trunk/test-applications/facelets/src/main/java/editor/Editor.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/editor/Editor.java
(rev 0)
+++ trunk/test-applications/facelets/src/main/java/editor/Editor.java 2008-11-25 14:47:15
UTC (rev 11365)
@@ -0,0 +1,244 @@
+package editor;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.event.ValueChangeEvent;
+import javax.faces.validator.ValidatorException;
+import org.richfaces.component.html.HtmlEditor;
+import util.componentInfo.ComponentInfo;
+
+public class Editor {
+ private HtmlEditor htmlEditor;
+ private String value;
+ private String width;
+ private String height;
+ private String theme;
+ private boolean autoResize;
+ private boolean immediate;
+ private boolean rendered;
+ private boolean required;
+ private boolean useSeamText;
+ private String viewMode;
+ private boolean readonly;
+ private String tabindex;
+ private String dialogType;
+ private String language;
+ // private String skin;
+
+ public Editor() {
+ value = "Collaboration-oriented websites require a human-friendly markup language
for easy entry of formatted text in forum posts, wiki pages, blogs, comments, etc. Seam
provides the <s:formattedText/> control for display of formatted text that
conforms to the Seam Text language. Seam Text is implemented using an ANTLR-based parser.
You don't need to know anything about ANTLR to use it, however.";
+ width = "400";
+ height = "200";
+ theme = "simple";
+ autoResize = false;
+ immediate = false;
+ rendered = true;
+ required = false;
+ useSeamText = false;
+ viewMode = "visual";
+ readonly = false;
+ tabindex = "1";
+ dialogType = "window";
+ language = "en";
+ // skin = "default";
+ }
+
+ /*
+ * Custom valueChangeListener
+ */
+ public void valueChangeListener(ValueChangeEvent e) {
+ System.out.println("!!! valueChangeListener work !!!");
+ }
+
+ /*
+ * Custom Converter for editor
+ */
+ public Converter getConvert() {
+ return new Converter() {
+ public Object getAsObject(FacesContext context,
+ UIComponent component, String newValue)
+ throws ConverterException {
+
+ System.out.println("!!! getAsObject work !!!");
+
+ if (false)
+ throw new ConverterException(new FacesMessage(
+ FacesMessage.SEVERITY_ERROR, "Converter error",
+ "Error while convert to Object"));
+
+ return newValue;
+ }
+
+ public String getAsString(FacesContext context,
+ UIComponent component, Object value)
+ throws ConverterException {
+
+ System.out.println("!!! getAsString work !!!");
+
+ if (false)
+ throw new ConverterException(new FacesMessage(
+ FacesMessage.SEVERITY_ERROR, "Converter error",
+ "Error while convert to String"));
+
+ String result = (value == null) ? "" : value.toString();
+ return result;
+ }
+ };
+ }
+
+ /*
+ * Custom Validator for Editor
+ */
+ public void validate(FacesContext context, UIComponent component,
+ Object value) throws ValidatorException {
+
+ System.out.println("!!! Validator work !!!");
+ if (value != null) {
+
+ if (false) {
+ throw new ValidatorException(new FacesMessage(
+ FacesMessage.SEVERITY_ERROR, "Validation error",
+ "Incorrect input"));
+ }
+ }
+ }
+
+ /*
+ * Add test via reflection
+ */
+ public void addHtmlEditor() {
+ ComponentInfo info = ComponentInfo.getInstance();
+ info.addField(htmlEditor);
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public String getWidth() {
+ return width;
+ }
+
+ public void setWidth(String width) {
+ this.width = width;
+ }
+
+ public String getHeight() {
+ return height;
+ }
+
+ public void setHeight(String height) {
+ this.height = height;
+ }
+
+ public HtmlEditor getHtmlEditor() {
+ return htmlEditor;
+ }
+
+ public void setHtmlEditor(HtmlEditor htmlEditor) {
+ this.htmlEditor = htmlEditor;
+ }
+
+ public String getTheme() {
+ return theme;
+ }
+
+ public void setTheme(String theme) {
+ this.theme = theme;
+ }
+
+ public boolean isAutoResize() {
+ return autoResize;
+ }
+
+ public void setAutoResize(boolean autoResize) {
+ this.autoResize = autoResize;
+ }
+
+ public boolean isImmediate() {
+ return immediate;
+ }
+
+ public void setImmediate(boolean immediate) {
+ this.immediate = immediate;
+ }
+
+ public boolean isRendered() {
+ return rendered;
+ }
+
+ public void setRendered(boolean rendered) {
+ this.rendered = rendered;
+ }
+
+ public boolean isRequired() {
+ return required;
+ }
+
+ public void setRequired(boolean required) {
+ this.required = required;
+ }
+
+ public boolean isUseSeamText() {
+ return useSeamText;
+ }
+
+ public void setUseSeamText(boolean useSeamText) {
+ this.useSeamText = useSeamText;
+ }
+
+ public String getViewMode() {
+ return viewMode;
+ }
+
+ public void setViewMode(String viewMode) {
+ this.viewMode = viewMode;
+ }
+
+ public boolean isReadonly() {
+ return readonly;
+ }
+
+ public void setReadonly(boolean readonly) {
+ this.readonly = readonly;
+ }
+
+ public String getTabindex() {
+ return tabindex;
+ }
+
+ public void setTabindex(String tabindex) {
+ this.tabindex = tabindex;
+ }
+
+ public String getDialogType() {
+ return dialogType;
+ }
+
+ public void setDialogType(String dialogType) {
+ this.dialogType = dialogType;
+ }
+
+ public String getLanguage() {
+ return language;
+ }
+
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+
+ // public String getSkin() {
+ // return skin;
+ // }
+ //
+ // public void setSkin(String skin) {
+ // this.skin = skin;
+ // }
+}
Modified: trunk/test-applications/facelets/src/main/java/rich/RichBean.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/rich/RichBean.java 2008-11-25 14:44:09
UTC (rev 11364)
+++ trunk/test-applications/facelets/src/main/java/rich/RichBean.java 2008-11-25 14:47:15
UTC (rev 11365)
@@ -74,6 +74,7 @@
map.add("Validator", add("/Validator/Validator", new boolean []
{true, true, true}));
map.add("DataGrid", add("/DataGrid/DataGrid", new boolean []
{false, true, false}));
map.add("ExtendedDataTable",
add("/ExtendedDataTable/ExtendedDataTable", new boolean [] {false, true,
false}));
+ map.add("Editor", add("/Editor/Editor", new boolean [] {true, true,
false}));
Iterator<String> iterator = map.getSet().iterator();
while(iterator.hasNext()){
list.add(new SelectItem(iterator.next()));
Modified: trunk/test-applications/facelets/src/main/java/util/event/Event.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/util/event/Event.java 2008-11-25
14:44:09 UTC (rev 11364)
+++ trunk/test-applications/facelets/src/main/java/util/event/Event.java 2008-11-25
14:47:15 UTC (rev 11365)
@@ -125,9 +125,13 @@
private String onitemmouseout;
private String onitemmouseover;
private String onitemmouseup;
+ private String onsetup;
+ private String onsave;
// showEvent('onkeypressInputID', 'onkeypress work!')
public Event() {
+ onsave = "showEvent('formID:infoSubview:onsaveInputID', 'onsave
work!')";
+ onsetup = "showEvent('formID:infoSubview:onsetupInputID', 'onsetup
work!')";
onitemclick = "showEvent('formID:infoSubview:onitemclickInputID',
'onitemclick work!')";
onitemdblclick = "showEvent('formID:infoSubview:onitemdblclickInputID',
'onitemdblclick work!')";
onitemkeydown = "showEvent('formID:infoSubview:onitemkeydownInputID',
'onitemkeydown work!')";
@@ -1379,4 +1383,20 @@
this.onitemmouseup = onitemmouseup;
}
+ public String getOnsetup() {
+ return onsetup;
+ }
+
+ public void setOnsetup(String onsetup) {
+ this.onsetup = onsetup;
+ }
+
+ public String getOnsave() {
+ return onsave;
+ }
+
+ public void setOnsave(String onsave) {
+ this.onsave = onsave;
+ }
+
}
\ No newline at end of file
Added: trunk/test-applications/facelets/src/main/webapp/Editor/Editor.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/Editor/Editor.xhtml
(rev 0)
+++ trunk/test-applications/facelets/src/main/webapp/Editor/Editor.xhtml 2008-11-25
14:47:15 UTC (rev 11365)
@@ -0,0 +1,36 @@
+<f:subview
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:a4j="http://richfaces.org/a4j"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:rich="http://richfaces.org/rich" id="editorSubviewID">
+
+ <h:panelGrid id="EditorPanelID" columns="2"
border="1">
+
+ <rich:editor id="editorID" binding="#{editor.htmlEditor}"
+ value="#{editor.value}" width="#{editor.width}"
+ height="#{editor.height}" theme="#{editor.theme}"
+ onchange="#{event.onchange}" oninit="#{event.oninit}"
+ onsave="#{event.onsave}" onsetup="#{event.onsetup}"
+ autoResize="#{editor.autoResize}" converter="#{editor.convert}"
+ converterMessage="converterMessage"
immediate="#{editor.immediate}"
+ rendered="#{editor.rendered}" required="#{editor.required}"
+ requiredMessage="requiredMessage"
useSeamText="#{editor.useSeamText}"
+ validator="#{editor.validate}"
validatorMessage="validatorMessage"
+ valueChangeListener="#{editor.valueChangeListener}"
+ viewMode="#{editor.viewMode}" readonly="#{editor.readonly}"
+ tabindex="#{editor.tabindex}" dialogType="#{editor.dialogType}"
+ language="#{editor.language}"
styleClass="EditorStyleClass"></rich:editor>
+
+ <h:panelGrid columns="1">
+ <f:facet name="header">
+ <h:outputText value="Results" />
+ </f:facet>
+ <h:outputText value="#{editor.value}" escape="false" />
+ <div style="color: red; font-style: italic">HTML code:</div>
+ <h:outputText value="#{editor.value}"
+ style="font-style: italic; color: gray" />
+ </h:panelGrid>
+ </h:panelGrid>
+ <a4j:commandButton value="Show Result" reRender="EditorPanelID"
/>
+ <a4j:commandButton value="reRender editor" reRender="editorID"
/>
+</f:subview>
Added: trunk/test-applications/facelets/src/main/webapp/Editor/EditorProperty.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/Editor/EditorProperty.xhtml
(rev 0)
+++
trunk/test-applications/facelets/src/main/webapp/Editor/EditorProperty.xhtml 2008-11-25
14:47:15 UTC (rev 11365)
@@ -0,0 +1,72 @@
+<f:subview
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:a4j="http://richfaces.org/a4j"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:rich="http://richfaces.org/rich"
id="editorPropertySubviewID">
+
+ <h:panelGrid columns="2">
+ <f:facet name="header">
+ <h:outputText value="List of Attributes" />
+ </f:facet>
+
+ <h:outputText value="height: "></h:outputText>
+ <h:inputText value="#{editor.height}"
onchange="submit();"></h:inputText>
+
+ <h:outputText value="width: "></h:outputText>
+ <h:inputText value="#{editor.width}"
onchange="submit();"></h:inputText>
+
+ <h:outputText value="theme: "></h:outputText>
+ <h:selectOneRadio value="#{editor.theme}"
onchange="submit();">
+ <f:selectItem itemValue="simple" itemLabel="simple" />
+ <f:selectItem itemValue="advanced" itemLabel="advanced" />
+ </h:selectOneRadio>
+
+ <h:outputText value="autoResize: "></h:outputText>
+ <h:selectBooleanCheckbox value="#{editor.autoResize}"
+ onchange="submit();" />
+
+ <h:outputText value="immediate: "></h:outputText>
+ <h:selectBooleanCheckbox value="#{editor.immediate}"
+ onchange="submit();" />
+
+ <h:outputText value="rendered: "></h:outputText>
+ <h:selectBooleanCheckbox value="#{editor.rendered}"
+ onchange="submit();" />
+
+ <h:outputText value="required: "></h:outputText>
+ <h:selectBooleanCheckbox value="#{editor.required}"
+ onchange="submit();" />
+
+ <h:outputText value="useSeamText (work only with Seam libraries):
"></h:outputText>
+ <h:selectBooleanCheckbox value="#{editor.useSeamText}"
+ onchange="submit();" />
+
+ <h:outputText value="readonly: "></h:outputText>
+ <h:selectBooleanCheckbox value="#{editor.readonly}"
+ onchange="submit();" />
+
+ <h:outputText value="viewMode: "></h:outputText>
+ <h:selectOneRadio value="#{editor.viewMode}"
onchange="submit();">
+ <f:selectItem itemValue="visual" itemLabel="visual" />
+ <f:selectItem itemValue="source" itemLabel="source" />
+ </h:selectOneRadio>
+
+ <h:outputText value="tabindex: "></h:outputText>
+ <h:inputText value="#{editor.tabindex}"
onchange="submit();"></h:inputText>
+
+ <h:outputText value="dialogType: "></h:outputText>
+ <h:selectOneRadio value="#{editor.dialogType}"
onchange="submit();">
+ <f:selectItem itemValue="window" itemLabel="window" />
+ <f:selectItem itemValue="modal" itemLabel="modal" />
+ </h:selectOneRadio>
+
+ <h:outputText value="language: "></h:outputText>
+ <h:selectOneRadio value="#{editor.language}"
onchange="submit();">
+ <f:selectItem itemValue="en" itemLabel="en" />
+ <f:selectItem itemValue="de" itemLabel="de" />
+ <f:selectItem itemValue="ru" itemLabel="ru" />
+ </h:selectOneRadio>
+
+ </h:panelGrid>
+ <h:commandButton value="add test"
action="#{editor.addHtmlEditor}"></h:commandButton>
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-Editor.xml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-Editor.xml
(rev 0)
+++
trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-Editor.xml 2008-11-25
14:47:15 UTC (rev 11365)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces
Config 1.0//EN"
+
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+<faces-config>
+ <managed-bean>
+ <managed-bean-name>editor</managed-bean-name>
+ <managed-bean-class>editor.Editor</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+</faces-config>
\ No newline at end of file
Modified: trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2008-11-25 14:44:09
UTC (rev 11364)
+++ trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2008-11-25 14:47:15
UTC (rev 11365)
@@ -41,7 +41,7 @@
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
-
<param-value>/WEB-INF/faces-config-ExtendedDataTable.xml,/WEB-INF/faces-config-DataGrid.xml,/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.x!
ml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/faces-config-Style.xml,/WEB-INF/f!
aces-config-FileUpload.xml,/WEB-INF/faces-config-InplaceSelect.xml,/WE
B-INF/faces-config-InplaceInput.xml,/WEB-INF/faces-config-Skinning.xml,/WEB-INF/faces-config-Custom.xml</param-value>
+
<param-value>/WEB-INF/faces-config-Editor.xml,/WEB-INF/faces-config-ExtendedDataTable.xml,/WEB-INF/faces-config-DataGrid.xml,/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xm!
l,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/!
faces-config-Style.xml,/WEB-INF/faces-config-FileUpload.xml,/WEB-INF/f
aces-config-InplaceSelect.xml,/WEB-INF/faces-config-InplaceInput.xml,/WEB-INF/faces-config-Skinning.xml,/WEB-INF/faces-config-Custom.xml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>