JBoss Rich Faces SVN: r13744 - trunk/examples/photoalbum/web/src/main/webapp/img.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-04-21 14:01:18 -0400 (Tue, 21 Apr 2009)
New Revision: 13744
Added:
trunk/examples/photoalbum/web/src/main/webapp/img/spacer.gif
Log:
Added: trunk/examples/photoalbum/web/src/main/webapp/img/spacer.gif
===================================================================
(Binary files differ)
Property changes on: trunk/examples/photoalbum/web/src/main/webapp/img/spacer.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 8 months
JBoss Rich Faces SVN: r13743 - trunk/ui/dropdown-menu/src/main/templates/org/richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-04-21 13:01:08 -0400 (Tue, 21 Apr 2009)
New Revision: 13743
Modified:
trunk/ui/dropdown-menu/src/main/templates/org/richfaces/htmlDropDownMenu.jspx
Log:
https://jira.jboss.org/jira/browse/RF-6554
Modified: trunk/ui/dropdown-menu/src/main/templates/org/richfaces/htmlDropDownMenu.jspx
===================================================================
--- trunk/ui/dropdown-menu/src/main/templates/org/richfaces/htmlDropDownMenu.jspx 2009-04-21 16:01:58 UTC (rev 13742)
+++ trunk/ui/dropdown-menu/src/main/templates/org/richfaces/htmlDropDownMenu.jspx 2009-04-21 17:01:08 UTC (rev 13743)
@@ -18,7 +18,7 @@
if (!menu.isDisabled()) {]]>
</jsp:scriptlet>
<div id="#{clientId}" style="#{component.attributes['style']}"
- class="dr-menu-label dr-menu-label-unselect rich-ddmenu-label rich-ddmenu-label-unselect #{component.attributes['styleClass']}"
+ class="dr-menu-label dr-menu-label-unselect rich-ddmenu-label rich-ddmenu-label-unselect #{component.attributes['styleClass']} #{component.attributes['labelClass']}"
onmouseover="#{component.attributes['onmouseover']}"
onmouseout="#{component.attributes['onmouseout']}"
onmousemove="#{component.attributes['onmousemove']}">
15 years, 8 months
JBoss Rich Faces SVN: r13742 - trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2009-04-21 12:01:58 -0400 (Tue, 21 Apr 2009)
New Revision: 13742
Modified:
trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
Log:
https://jira.jboss.org/jira/browse/RF-6884
Modified: trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
===================================================================
--- trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js 2009-04-21 15:54:23 UTC (rev 13741)
+++ trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js 2009-04-21 16:01:58 UTC (rev 13742)
@@ -679,14 +679,14 @@
// days bar creation
var styleClass;
var bottomStyleClass;
- var htmlTextWeekDayBar='';
+ var htmlTextWeekDayBar=[];
var context;
var eventsStr = this.params.disabled || this.params.readonly ? '' : 'onclick="'+tempStr+'eventCellOnClick(event, this);" onmouseover="'+tempStr+'eventCellOnMouseOver(event, this);" onmouseout="'+tempStr+'eventCellOnMouseOut(event, this);"';
if (this.params.showWeekDaysBar)
{
- var htmlTextWeekDayBar = '<tr id="'+this.params.weekDayBarId+'">';
- if (this.params.showWeeksBar) htmlTextWeekDayBar+='<td class="rich-calendar-days"><br/></td>';
+ htmlTextWeekDayBar.push('<tr id="'+this.params.weekDayBarId+'">');
+ if (this.params.showWeeksBar) htmlTextWeekDayBar.push('<td class="rich-calendar-days"><br/></td>');
var weekDayCounter = this.params.firstWeekDay;
for (var i=0;i<7;i++)
{
@@ -700,25 +700,25 @@
styleClass += " rich-calendar-weekends";
}
if (i==6) styleClass += " rich-right-cell";
- htmlTextWeekDayBar+='<td class="'+styleClass+'" id="'+context.elementId+'">'+weekDayHtml+'</td>';
+ htmlTextWeekDayBar.push('<td class="'+styleClass+'" id="'+context.elementId+'">'+weekDayHtml+'</td>');
}
- htmlTextWeekDayBar+='</tr>\n';
+ htmlTextWeekDayBar.push('</tr>\n');
}
// week & weekNumber creation
- var htmlTextWeek='';
+ var htmlTextWeek=[];
var p=0;
this.dayCellClassName = [];
for (k=1;k<7;k++)
{
bottomStyleClass = (k==6 ? "rich-bottom-cell " : "");
- htmlTextWeek+='<tr id="'+this.params.weekNumberBarId+k+'">';
+ htmlTextWeek.push('<tr id="'+this.params.weekNumberBarId+k+'">');
if (this.params.showWeeksBar)
{
context = {weekNumber: k, elementId:this.WEEKNUMBER_ELEMENT_ID+k, component:this};
var weekNumberHtml = this.evaluateMarkup(this.params.weekNumberMarkup, context );
- htmlTextWeek+='<td class="rich-calendar-week '+bottomStyleClass+'" id="'+context.elementId+'">'+weekNumberHtml+'</td>';
+ htmlTextWeek.push('<td class="rich-calendar-week '+bottomStyleClass+'" id="'+context.elementId+'">'+weekNumberHtml+'</td>');
}
// day cells creation
@@ -729,12 +729,12 @@
if (i==6) styleClass+=" rich-right-cell";
this.dayCellClassName.push(styleClass);
- htmlTextWeek+='<td class="'+styleClass+'" id="'+this.DATE_ELEMENT_ID+p+'" '+
+ htmlTextWeek.push('<td class="'+styleClass+'" id="'+this.DATE_ELEMENT_ID+p+'" '+
eventsStr+
- '>'+(this.customDayListMarkup ? '<div class="rich-calendar-cell-div'+(this.params.dayCellClass ? ' '+this.params.dayCellClass : '')+'"></div>' : '')+'</td>';
+ '>'+(this.customDayListMarkup ? '<div class="rich-calendar-cell-div'+(this.params.dayCellClass ? ' '+this.params.dayCellClass : '')+'"></div>' : '')+'</td>');
p++;
}
- htmlTextWeek+='</tr>';
+ htmlTextWeek.push('</tr>');
}
var obj = $(this.POPUP_ID).nextSibling;
@@ -756,7 +756,7 @@
{
var div = obj;
obj = obj.previousSibling;
- Element.replace(div, htmlTextHeader+htmlHeaderOptional+htmlControlsHeader+htmlTextWeekDayBar+htmlTextWeek+htmlControlsFooter+htmlFooterOptional+htmlTextFooter);
+ Element.replace(div, htmlTextHeader+htmlHeaderOptional+htmlControlsHeader+htmlTextWeekDayBar.join('')+htmlTextWeek.join('')+htmlControlsFooter+htmlFooterOptional+htmlTextFooter);
break;
}
} while (obj = obj.nextSibling);
@@ -1152,6 +1152,10 @@
},
doExpand: function(e) {
+ if (!this.isRendered) {
+ this.isRendered = true;
+ this.render();
+ }
this.skipEventOnCollapse = false;
if (e && e.type=='click') this.skipEventOnCollapse = true;
if (!this.params.popup || this.isVisible) return;
@@ -1436,7 +1440,10 @@
this.daysData = null;
}
- this.render();
+ this.isRendered = false;
+ if (this.isVisible) {
+ this.render();
+ };
if (typeof this.afterLoad=='function')
{
@@ -1510,6 +1517,7 @@
render:function() {
//var _d=new Date();
+ this.isRendered = true;
this.todayDate = new Date();
var currentYear = this.getCurrentYear();
15 years, 8 months
JBoss Rich Faces SVN: r13741 - trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-04-21 11:54:23 -0400 (Tue, 21 Apr 2009)
New Revision: 13741
Modified:
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
Log:
https://jira.jboss.org/jira/browse/RF-6618
Modified: trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
===================================================================
--- trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2009-04-21 15:39:27 UTC (rev 13740)
+++ trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2009-04-21 15:54:23 UTC (rev 13741)
@@ -674,6 +674,7 @@
add: function(elt) {
if (this.disabled) return;
+ if (!elt.value) return;
if (!this.checkFileType(elt.value) || !this.checkDuplicated(elt)) {
var fileName = elt.value;
15 years, 8 months
JBoss Rich Faces SVN: r13740 - trunk/docs/realworld_app_guide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2009-04-21 11:39:27 -0400 (Tue, 21 Apr 2009)
New Revision: 13740
Modified:
trunk/docs/realworld_app_guide/en/src/main/docbook/modules/hiw.xml
Log:
RF-5768: Real World Demo Application Tutorial Update for 3.3.1 release
Modified: trunk/docs/realworld_app_guide/en/src/main/docbook/modules/hiw.xml
===================================================================
--- trunk/docs/realworld_app_guide/en/src/main/docbook/modules/hiw.xml 2009-04-21 15:36:50 UTC (rev 13739)
+++ trunk/docs/realworld_app_guide/en/src/main/docbook/modules/hiw.xml 2009-04-21 15:39:27 UTC (rev 13740)
@@ -408,5 +408,394 @@
</section>
+ <section>
+ <title>Slide show</title>
+
+ <para>The slide-show feature in the Photo Album Demo can be enabled by clicking "Start Slideshow" link from two different places in the application:
+ 1) from user's album preview (<code>/web/src/main/webapp/image/albumInfo.xhtml</code>) and 2) from a particular photo preview (<code>src/main/webapp/image/imageInfo.xhtml</code>).
+ Both of two mentioned XHTML files include slideshow with the help of Facelets <<emphasis role="bold"><property>ui:include</property></emphasis> tag
+ (for more information about <<emphasis role="bold"><property>ui:include</property></emphasis> see Facelets Reference Guide —
+ <ulink url="http://www.jsftoolbox.com/documentation/facelets/01-Introduction/index.jsf">http://www.jsftoolbox.com/documentation/facelets/01-Introduction/index.jsf</ulink>).
+ </para>
+
+ <para>
+ The <code>startSlideshow()</code> method of <code>SlideshowManager.java</code> has two implementations.
+ The first implementation is designed to activate the slide-show from an album preview (<code>/image/albumInfo.xhtml</code>) when no photo is selected in the current image list.
+ The method iterates over all photos of a particular album starting from the first one in the list. Look at the <code>SlideshowManager.java</code> listing below:
+ </para>
+ <programlisting role="JAVA"><![CDATA[...
+public void startSlideshow(){
+ active = true;
+ this.slideshowIndex = 0;
+ if(model.getImages() == null || model.getImages().size() < 1){
+ stopSlideshow();
+ Events.instance().raiseEvent(Constants.ADD_ERROR_EVENT, "No images for slideshow!");
+ return;
+ }
+ this.selectedImage = model.getImages().get(this.slideshowIndex);
+ this.selectedImage.getAlbum().visitImage(selectedImage, true);
+}
+...]]></programlisting>
+
+ <para>
+ The second implementation of the <code>startSlideshow()</code> method is activated when a link to slide-show is clicked from a particular photo preview.
+ This method iterates over the rest of photos starting from the current selected one:
+ </para>
+ <programlisting role="JAVA"><![CDATA[...
+public void startSlideshow(Image selectedImage){
+ active = true;
+ if(model.getImages() == null || model.getImages().size() < 1){
+ stopSlideshow();
+ Events.instance().raiseEvent(Constants.ADD_ERROR_EVENT, "No images for slideshow!");
+ return;
+ }
+ this.slideshowIndex = model.getImages().indexOf(selectedImage);
+ this.selectedImage = selectedImage;
+ this.selectedImage.getAlbum().visitImage(selectedImage, true);
+}
+...]]></programlisting>
+
+ <para>
+ Both implementations of <code>startSlideshow()</code> method set active property to true.
+ This <code>true</code> makes two important slide-show parts (slide-show modal panel and slide-show poller) render.
+ </para>
+ <para>
+ The slide-show modal panel is kept in the <code>web/src/main/webapp/includes/image/slideshow.xhtml</code> file and referred from the corresponding pages with the help of <emphasis role="bold"><property><ui:include></property></emphasis> Facelets tag:
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+<ui:include src="/includes/image/slideshow.xhtml"/>
+...]]></programlisting>
+
+ <para>
+ Have a look at <code>web/src/main/webapp/includes/image/slideshow.xhtml</code> file:
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"...>
+ <rich:modalPanel showWhenRendered="#{slideshow.active}"
+ domElementAttachment="parent"
+ id="slideShowModalPanel"
+ width="650"
+ onshow="showPictureEffect();"
+ height="650">
+ <f:facet name="controls">
+ <h:panelGroup>
+ <h:graphicImage value="/img/modal/close.png" style="cursor:pointer" id="hidelink">
+ <a4j:support event="onclick" actionListener="#{slideshow.stopSlideshow}" reRender="slideShowForm, mainArea, tree" />
+ </h:graphicImage>
+ </h:panelGroup>
+ </f:facet>
+ ...
+ </rich:modalPanel>
+</ui:composition>
+...]]></programlisting>
+
+ <para>
+ The modal panel is always rendered on the page in a hidden state.
+ Activating the slide-show renders the main area, so the slide-show modal panel appears in the closest to an observer layer.
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+<a4j:commandLink styleClass="slideshow-link"
+ actionListener="#{slideshow.startSlideshow()}"
+ reRender="slideShowForm, mainArea">
+ ...
+</a4j:commandLink>
+...]]></programlisting>
+ <para>
+ Slide-show poller is enabled if the slide-show is activated:
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:richx="http://richfaces.org/richx">
+ <a4j:form id="slideShowForm">
+ <a4j:poll reRender="slideshowImage"
+ actionListener="#{slideshow.showNextImage()}"
+ interval="#{slideshow.interval}"
+ enabled="#{slideshow.active}"
+ onsubmit="hidePictureEffect()"
+ oncomplete="showPictureEffect();"/>
+ </a4j:form>
+</ui:composition>
+...]]></programlisting>
+ <para>
+ The slide-show poller sends the request for the next image (<code>showNextImage()</code> method) each four seconds.
+ The interval is defined in the interval property of the <code>SlideshowManager.java</code> and refers to a <code>INITIAL.DELAY</code> constant (<code>constants.java</code>).
+ When the <emphasis role="bold"><property><a4j:poll></property></emphasis> component receives a new image it renders the slideShowImage area (<code>/web/src/main/webapp/image/slideshow.xhtml</code>):
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<h:panelGroup id="slideshowImage">
+ <a4j:mediaOutput id="imgSlideShow"
+ element="img"
+ styleClass="main-image"
+ createContent="#{imageLoader.paintImage}"
+ style="opacity: 0.1"
+ value="#{slideshow.selectedImage != null? fileManager.transformPath(slideshow.selectedImage.path, '_medium'):null}">
+ <rich:toolTip followMouse="true"
+ direction="top-right"
+ showDelay="500"
+ styleClass="tooltip">
+ <span style="white-space: nowrap"> #{slideshow.selectedImage.description} </span>
+ </rich:toolTip>
+ </a4j:mediaOutput>
+</h:panelGroup>
+...]]></programlisting>
+
+ <para>
+ The <emphasis role="bold"><property>a4j:mediaOtuput</property></emphasis> component has a value attribute that takes a path to photos as a value and renders photos with the help of a <emphasis><property>createContent</property></emphasis> attribute. The showNextImage works cyclically.
+ </para>
+
+ <para>
+ There is <emphasis role="bold"><property>rich:effect</property></emphasis> that makes rendering process look more effective (<code>web/src/main/webapp/includes/image/slideshow.xhtml</code>):
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<rich:effect name="hidePictureEffect" type="Opacity" params="duration:0.4, from:1.0, to:0.0" for="imgSlideShow" />
+<rich:effect name="showPictureEffect" type="Opacity" params="duration:0.4, from:0.1, to:1.0" for="imgSlideShow" />
+...]]></programlisting>
+
+ <para>
+ The described above implements a modal panel with photos that change each other in order they store in an album.
+ </para>
+ <figure>
+ <title>Slide show</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/slide_show.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ To quit the slide-show user clicks "Close window" button on the slide-show panel and <code>stopSlideshow()</code> method is activated.
+ </para>
+ <programlisting role="JAVA"><![CDATA[...
+@Observer("stopSlideshow")
+ public void stopSlideshow(){
+ active = false;
+ this.selectedImage = null;
+ this.slideshowIndex = 0;
+ }
+...]]></programlisting>
+
+ </section>
+ <section>
+ <title>Image Size control</title>
+
+ <section>
+ <title>Building the control with <rich:inputNumberSlider></title>
+ <para>
+ The <emphasis role="bold"><property>rich:inputNumberSlider</property></emphasis> component in the Photo Album Demo is used as a control that helps a user to change photos size while previewing an album.
+ A handler position on the slider track corresponds to a particular value of image size.
+ The component is included into the page with the help of <emphasis role="bold"><property>ui:include</property></emphasis>:
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<ui:include src="/includes/misc/inputNumberSlider.xhtml"/>
+...]]></programlisting>
+
+ <para>
+ Now let's have a look at <code>src/main/webapp/includes/misc/inputNumberSlider.xhtml</code> file:
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<ui:composition ...>
+ <div>
+ <rich:inputNumberSlider value="#{imageSizeHelper.value}"
+ minValue="80"
+ maxValue="200"
+ step="40"
+ enableManualInput="false"
+ showArrows="false"
+ showBoundaryValues="true"
+ showInput="false">
+ <a4j:support event="onchange" reRender="userAlbumImages"/>
+ </rich:inputNumberSlider>
+ </div>
+</ui:composition>
+...]]></programlisting>
+ <para>
+ On each slider position change the <emphasis role="bold"><property>a4j:support</property></emphasis> component invokes an Ajax request that passes a new set value into the <code>ImageSizeHelper.java</code> class.
+ This class saves new photo dimensions, processes and assigns new values to photo related attributes (a CSS class for new photo size, postfix for a new file name, image background):
+ </para>
+ <programlisting role="JAVA"><![CDATA[...
+ public static enum ImageDimension {
+
+ SIZE_80(80), SIZE_120(120), SIZE_160(160), SIZE_200(200);
+
+ final static String CSS_CLASS = "preview_box_photo_";
+ final static String FILE_POSTFIX = "_small";
+ final static String IMAGE_BG = "/img/shell/frame_photo_%1$d.png";
+ final static String IMAGE_BG_STYLE = "width: %1$dpx; height: %1$dpx";
+
+ int x;
+ String bgStyle;
+ String cssClass;
+ String imageBgSrc;
+ String filePostfix;
+
+ private ImageDimension(int x) {
+ this.x = x;
+ this.bgStyle = String.format(IMAGE_BG_STYLE, x + 20);
+ cssClass = CSS_CLASS + x;
+ imageBgSrc = String.format(IMAGE_BG, (x == 160) ? 200 : x);
+ filePostfix = FILE_POSTFIX + x;
+ }
+ ...]]></programlisting>
+
+ <para>
+ After the <code>ImageSizeHelper.java</code> is worked out the <emphasis role="bold"><property>a4j:support</property></emphasis> component renders user photos
+ (more exactly, the <emphasis role="bold"><property>h:panelGroup</property></emphasis> with <code>userAlbumImages</code> id that contains user photos)
+ correspondingly to a new set value. Here is <code>web/src/main/webapp/includes/image/imageList.xhtml</code>:
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<h:panelGroup id="userAlbumImages">
+ <a4j:repeat id="imageList" value="#{model.images}" var="image" rows="20">
+ <h:panelGroup layout="block" styleClass="#{imageSizeHelper.currentDimension.cssClass}">
+ <h:graphicImage styleClass="pr_photo_bg" style="#{imageSizeHelper.currentDimension.imageBgStyle}" value="#{imageSizeHelper.currentDimension.imageBg}" />
+ <h:panelGrid cellpadding="0">
+ <h:panelGroup>
+ <a4j:commandLink actionListener="#{controller.showImage(image)}" reRender="mainArea, tree">
+ <a4j:mediaOutput id="img" element="img"
+ createContent="#{imageLoader.paintImage}"
+ style="border : 1px solid #FFFFFF;"
+ value="#{fileManager.transformPath(image.fullPath, imageSizeHelper.currentDimension.filePostfix)}">
+ <f:param value="#{imageSizeHelper.currentDimension.x}" name="x" />
+ <rich:dragSupport rendered="#{controller.isUserImage(image)}" reRender="mainArea, tree" id="dragSource" dragIndicator="dragIndicator"
+ dragType="image" dragValue="#{image}">
+ <rich:dndParam id="dragParam" name="label" value="#{image.name}" />
+ </rich:dragSupport>
+ <ui:include src="/includes/contextMenu/CMForImage.xhtml" >
+ <ui:param name="image" value="#{image}" />
+ </ui:include>
+ </a4j:mediaOutput>
+ </a4j:commandLink>
+ <br/>
+ </h:panelGroup>
+ </h:panelGrid>
+ <h:panelGroup layout="block" styleClass="photo_name">#{image.name} </h:panelGroup>
+ <h:panelGroup layout="block" styleClass="photo_data">
+ <h:outputText value="#{image.created}">
+ <f:convertDateTime />
+ </h:outputText>
+ </h:panelGroup>
+ </h:panelGroup>
+ </a4j:repeat>
+</h:panelGroup>
+...]]></programlisting>
+
+ <para>
+ When the <emphasis role="bold"><property><rich:inputNumberSlider<</property></emphasis> is rendered at first its default value for image size is 120 px.
+ </para>
+
+ <figure>
+ <title>Image size control</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/image_size.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section>
+ <title>Links in Photo Album Demo. Using the <a4j:commandLink></title>
+ <para>
+ The main difference between <emphasis role="bold"><property><h:commandLink></property></emphasis> component is a) Ajax request that is generated on a click and b) dynamic rerendering of the page after a response comes back.
+ It's not necessary to plug any support into the component, as Ajax support is already built-in.
+ </para>
+ <para>
+ The <emphasis role="bold"><property><a4j:commandLink></property></emphasis> component is used widely in the application.
+ In the following example clicking on the <Edit> link will rerender the main ares (watching area) of the application and open an album edit form.
+ Each album has its owner and only owner can edit the album contents.
+ The link <Edit> will be rendered only if the current logged-in user is the owner of this album: the <emphasis><property>"rendered"</property></emphasis> attribute refers to the owner id and compares it with the current user id:
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<a4j:commandLink rendered="#{model.selectedAlbum.owner.id == user.id}"
+ value="#{messages['album.edit']} "
+ actionListener="#{controller.startEditAlbum(model.selectedAlbum)}"
+ reRender="mainArea">
+</a4j:commandLink>
+...]]></programlisting>
+ <para>
+ The <emphasis><property><value></property></emphasis> attribute (text that will appear on the link) is picked up from the <code>messages_en.properties</code> file.
+ Such property files are very useful e.g. for multi language applications.
+ Each property is saved in the format "name—value".
+ Let's have a look at this file in the JBDS:
+ </para>
+ <figure>
+ <title>Image size control</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/messages_en_property.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section>
+ <title>Error Reports in the Real World Demo</title>
+ <para>The main page of the application <code>web/src/main/webapp/index.xhtml</code> includes <code>web/src/main/webapp/includes/misc/errorPanel.xhtml</code>.
+ The error panel itself is always rendered but hidden if no error appears. The listing below shows the part of <code>errorPanel.xhtml</code> page:
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<a4j:outputPanel id="errors" ajaxRendered="true">
+ <h:panelGroup rendered="#{errorHandlerBean.errorExist}">
+ <rich:modalPanel id="errorPanel"
+ showWhenRendered="true"
+ minWidth="300"
+ minHeight="200"
+ autosized="true">
+ ...
+ </rich:modalPanel>
+ </h:panelGroup>
+</a4j:outputPanel>
+...]]></programlisting>
+ <para>
+ Error checking happens each time the Ajax request is invoked by user activity.
+ The <emphasis role="bold"><property>rich:modalPanel</property></emphasis> which wrapped with <emphasis role="bold"><property><h:panelGroup></property></emphasis> is rendered in case an error occurs,
+ its <emphasis><property>"rendered"</property></emphasis> attribute is binded with <code>isErrorExist</code> boolean method of <code>errorHandlerBean</code> class.
+ </para>
+ <programlisting role="XML"><![CDATA[...
+package org.richfaces.realworld.ui;
+...
+@Name("errorHandlerBean")
+(a)Scope(ScopeType.EVENT)
+@AutoCreate
+public class ErrorHandlerBean {
+ private List<String> errors = new ArrayList<String>();
+
+ public List<String> getErrors() {
+ return errors;
+ }
+
+ public boolean isErrorExist(){
+ return errors.size() > 0 ;
+ }
+
+ @Observer(Constants.ADD_ERROR_EVENT)
+ public void addToErrors(String e){
+ errors.add(e);
+ }
+}
+...]]></programlisting>
+
+ <para>
+ The <code>addToErrors</code> method is annotated with <code>@Observer</code> annotation which observes all methods in the application with <code>ADD_ERROR_EVENT</code> annotation.
+ </para>
+
+ </section>
+
+
+
+ </section>
+
+
</chapter>
15 years, 8 months
JBoss Rich Faces SVN: r13738 - in trunk/examples/photoalbum/web/src/main/webapp: scripts and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-04-21 11:28:19 -0400 (Tue, 21 Apr 2009)
New Revision: 13738
Added:
trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml
trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js
trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css
Removed:
trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml
trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js
trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css
Log:
merge from current stream
Deleted: trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml
===================================================================
--- trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml 2009-04-21 15:13:30 UTC (rev 13737)
+++ trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml 2009-04-21 15:28:19 UTC (rev 13738)
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE facelet-taglib PUBLIC
- "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
- "facelet-taglib_1_0.dtd">
-<facelet-taglib>
- <namespace>http://richfaces.org/richx</namespace>
- <tag>
- <tag-name>commandButton</tag-name>
- <source>templates/button.xhtml</source>
- </tag>
- <tag>
- <tag-name>actionMapper</tag-name>
- <handler-class>org.richfaces.photoalbum.util.ActionMapperTagHandler</handler-class>
- </tag>
-</facelet-taglib>
\ No newline at end of file
Copied: trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml (from rev 13737, trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml)
===================================================================
--- trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml (rev 0)
+++ trunk/examples/photoalbum/web/src/main/webapp/WEB-INF/tags/photoalbum-taglib.xml 2009-04-21 15:28:19 UTC (rev 13738)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE facelet-taglib PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
+ "facelet-taglib_1_0.dtd">
+<facelet-taglib>
+ <namespace>http://richfaces.org/richx</namespace>
+ <tag>
+ <tag-name>commandButton</tag-name>
+ <source>templates/button.xhtml</source>
+ </tag>
+ <tag>
+ <tag-name>actionMapper</tag-name>
+ <handler-class>org.richfaces.photoalbum.util.ActionMapperTagHandler</handler-class>
+ </tag>
+</facelet-taglib>
\ No newline at end of file
Deleted: trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js
===================================================================
--- trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js 2009-04-21 15:13:30 UTC (rev 13737)
+++ trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js 2009-04-21 15:28:19 UTC (rev 13738)
@@ -1,25 +0,0 @@
-function selectPopularTag(tag, target) {
- if(target) {
- var value = target.value.strip();
- if(value.indexOf(tag) == -1) {
- target.value = value.length != 0 ? value + ", " + tag : tag;
- }
- }
-}
-
-function applyModalPanelEffect(panelId, effectFunc, params) {
- if (panelId && effectFunc) {
-
- var modalPanel = $(panelId);
-
- if (modalPanel && modalPanel.component) {
- var component = modalPanel.component;
- var div = component.getSizedElement();
-
- Element.hide(div);
-
- effectFunc.call(this, Object.extend({targetId: div.id}, params || {}));
- }
-
- }
-}
\ No newline at end of file
Copied: trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js (from rev 13737, trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js)
===================================================================
--- trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js (rev 0)
+++ trunk/examples/photoalbum/web/src/main/webapp/scripts/photoalbum.js 2009-04-21 15:28:19 UTC (rev 13738)
@@ -0,0 +1,25 @@
+function selectPopularTag(tag, target) {
+ if(target) {
+ var value = target.value.strip();
+ if(value.indexOf(tag) == -1) {
+ target.value = value.length != 0 ? value + ", " + tag : tag;
+ }
+ }
+}
+
+function applyModalPanelEffect(panelId, effectFunc, params) {
+ if (panelId && effectFunc) {
+
+ var modalPanel = $(panelId);
+
+ if (modalPanel && modalPanel.component) {
+ var component = modalPanel.component;
+ var div = component.getSizedElement();
+
+ Element.hide(div);
+
+ effectFunc.call(this, Object.extend({targetId: div.id}, params || {}));
+ }
+
+ }
+}
\ No newline at end of file
Deleted: trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css
===================================================================
--- trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css 2009-04-21 15:13:30 UTC (rev 13737)
+++ trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css 2009-04-21 15:28:19 UTC (rev 13738)
@@ -1,972 +0,0 @@
-.main-body {
- margin: 0px;
- background: url(../img/shell/page_bg.gif) repeat-x #D7D7D7;
- height: 100%;
-}
-
-.header-panel {
- height: 116px;
- border: none;
- padding: 0px;
- background: none;
-}
-
-.header-panel-body {
- padding: 0px;
-}
-
-.header-content-div {
- height: 79px;
- position: relative;
-}
-
-.user-info-div {
- position: absolute;
- font-weight: bold;
- color: #ffffff;
- right: 20px;
- top: 45px;
-}
-
-.top-right-menu {
- position: absolute;
- right: 8px;
- top: 14px;
-}
-
-.top-right-menu-toolbar {
- background: none;
- border: none;
-}
-
-.top-right-menu-item {
- vertical-align: top;
- padding: 0px;
-}
-
-
-
-.top-right-menu-item a{
- font-size: 11px;
- color: #ffffff;
- text-decoration: none;
- font-weight: normal;
-
-}
-
-.top-right-menu-item-padding {
- padding: 0px 8px 0px 15px;
-}
-.main-menu-panel {
- height: 37px;
- position: relative;
- border: none;
- padding: 0px;
- background: url(../img/shell/general_panelbar_bg.gif) repeat-x #A84807;
-}
-
-.main-menu-panel-body {
- border: none;
- padding: 0px;
-}
-
-.body-main-bg {
- background: url(../img/shell/general_panel_bg.gif) right top repeat-y;
-}
-
-.body-main-panel {
-
- height: 100%;
- padding: 0px;
- border: none;
- background-color: transparent;
-}
-
-.body-main-panel-header {
- height: 15px;
- background: url(../img/shell/general_panel_header_bg.gif) right top;
- font-size: 1px;
- padding: 0px;
- border: none;
-}
-
-.avatarUpload .file-upload-stop-button{
- display:none;
-}
-
-.file-upload-button{
- background:#B34801;
- color: #FFFFFF;
- border:1px solid #888888;
-}
-
-
-.avatarUpload .rich-fileupload-ico {
-padding-left:7px;
-}
-.avatarUpload .rich-fileupload-toolbar-decor {
-width:100%;
-background-color:#D7D7D7;
-border-bottom:0px;
-border-left:0px;
-border-top:0px;
-padding:0px;
-}
-
-.avatarUpload .rich-fileupload-ico-add {
-background-image:none;
-}
-
-.avatarUpload .rich-fileupload-button-border{
-border:0px ;
-margin:0px;
-}
-
-.avatarUpload .rich-fileupload-list-decor {
-width:100%;
-background-color:D7D7D7;
-border-bottom:0px;
-border-left:0px;
-border-top:0px;
-padding:0px;
-}
-.avatarUpload .rich-fileupload-button-light{
- padding:0px;
- background:#B34801;
- cursor:pointer;
- border:1px solid #B34801;
- }
-
- .avatarUpload .rich-fileupload-button{
- padding:0px;
- background:#B34801;
- border:1px solid #888888;
- }
-
-.footer-panel {
- height: 82px;
- position: relative;
- background: url(../img/shell/footer_bg.gif) repeat-x #000000;
- border: none;
- padding: 0px;
-}
-
-.footer-panel-content {
- position: absolute;
- left: 8px;
- top: 51px;
-}
-
-.body-main-panel-body{
- padding: 15px 35px 15px 15px;
-}
-
-.bottom-right-menu-item {
- vertical-align: top;
- padding: 0px 15px 0px 8px;
-}
-
-.bottom-right-menu-item-content {
- font-size: 11px;
- color: #ffffff;
- text-decoration: none;
-}
-
-.logged-user {
- color: #FF7D2A;
- padding:0 8px 0 0;
-}
-
-.main-menu-toolbar {
- background: none;
- border: none;
-}
-
-.main-menu-toolbar-content a {
- color: #FFFFFF;
- font-size: 11px;
- font-weight: bold;
- text-decoration: none;
-}
-
-.main-menu-toolbar-content{
- width: 100%;
-}
-
-.table-boby-column1{
- vertical-align: top;
-}
-
-.table-boby-column2{
- vertical-align: top;
-}
-
-.main-menu-table{
- width: 100%;
-}
-
-.menu-cloumn1{
- width: 90%
-}
-.menu-cloumn2{
- width: 10%
-}
-
-.login-panel{
- width: 400px;
-}
-
-input[type='submit'], input[type='button'], button {
- background: #414141;
- color: white;
- margin: 5px;
- border-color: black;
-}
-
-.login-table-col{
- text-align: center;
-}
-
-.login-table-col2{
- text-align: left;
-}
-
-.login-body-table-col{
- align: middle;
- vertical-align: middle;
- height: 100%;
-}
-
-.main-image{
- border: none;
-}
-
-.slider-image {
- opacity: 0.1;
- filter: opacity=10;
-}
-
-.all-images{
- border: none;
-}
-
-.message {
- border: 1px solid #FFCC00;
- padding: 5px;
- margin-top: 5px;
- margin-bottom: 5px;
- background-color: #F0F8FF;
- font-size: 12px;
- color: red;
-}
-
-.name {
- font-weight: bold;
- width: 115px;
- padding: 5px;
- margin-top: 3px;
-}
-.value {
- padding: 5px;
-}
-
-.error {
- padding: 5px;
- color: red;
-}
-.errors {
- color: red;
- vertical-align: middle;
-}
-img.errors {
- padding-right: 5px;
-}
-.errors input {
- border: 1px solid red;
-}
-.errors textarea {
- border: 1px solid red;
-}
-
-.required {
- color: red;
- padding-left: 2px;
-}
-
-.rich-stglpanel-body {
- overflow: auto;
-}
-.top {
- vertical-align: top;
-}
-.info {
- height: 202px;
- overflow: auto;
-}
-
-.a4j-status {
- border: 1px solid white;
- padding: 5px;
- position: absolute;
- z-index: 3;
- left: 50%;
- top: 40px;
-}
-
-a{color : #DF6400;}
-h1{font-size : 175%; font-weight : normal; margin : 0px;}
-.h1-style{
- font-size : 175%; font-weight : normal; margin : 0px;
-}
-
-.content_box {padding : 15px 35px 15px 35px;}
-.content_box p {margin : 0px 0px 5px 0px; FONT-SIZE : 12PX}
-
-.preview_box_album_80 {width : 100px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_album_80 img.pr_album_bg {width : 100px; height : 100px; position : absolute; border: 0px;}
-.preview_box_album_80 table{position : relative; width : 100px; height : 100px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_album_80 table img{margin: 0px 0px 2px 0px;}
-.preview_box_album_80 div.album_name {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_album_80 div.album_data {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-.preview_box_album_120 {width : 140px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_album_120 img.pr_album_bg {width : 140px; height : 140px; position : absolute; border: 0px;}
-.preview_box_album_120 table{position : relative; width : 140px; height : 140px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_album_120 table img{margin: 0px 0px 2px 0px;}
-.preview_box_album_120 div.album_name {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_album_120 div.album_data {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-.preview_box_album_160 {width : 180px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_album_160 img.pr_album_bg {width : 180px; height : 180px; position : absolute; border: 0px;}
-.preview_box_album_160 table{position : relative; width : 180px; height : 180px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_album_160 table img{margin: 0px 0px 1px 1px;}
-.preview_box_album_160 div.album_name {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_album_160 div.album_data {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-
-
-.preview_box_photo_80 {width : 100px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_photo_80 img.pr_photo_bg {width : 100px; height : 100px; position : absolute; border: 0px;}
-.preview_box_photo_80 table{position : relative; width : 100px; height : 100px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_photo_80 table img{margin: 0px 0px 0px 0px;}
-.preview_box_photo_80 div.photo_name {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_photo_80 div.photo_data {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-.preview_box_photo_120 {width : 140px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_photo_120 img.pr_photo_bg {width : 140px; height : 140px; position : absolute; border: 0px;}
-.preview_box_photo_120 table{position : relative; width : 140px; height : 140px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_photo_120 table img{margin: 0px 0px 0px 0px;}
-.preview_box_photo_120 div.photo_name {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_photo_120 div.photo_data {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-.preview_box_photo_160 {width : 180px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_photo_160 img.pr_photo_bg {width : 180px; height : 180px; position : absolute; border: 0px;}
-.preview_box_photo_160 table{position : relative; width : 180px; height : 180px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_photo_160 table img{margin: 0px 0px 0px 0px;}
-.preview_box_photo_160 div.photo_name {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_photo_160 div.photo_data {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-.preview_box_photo_200 {width : 220px; position : relative; float : left; margin : 0px 10px 10px 0px;}
-.preview_box_photo_200 img.pr_photo_bg {width : 220px; height : 220px; position : absolute; border: 0px;}
-.preview_box_photo_200 table{position : relative; width : 220px; height : 220px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_photo_200 table img{margin: 0px 0px 0px 0px;}
-.preview_box_photo_200 div.photo_name {text-align : center; overflow : hidden; width : 220px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
-.preview_box_photo_200 div.photo_data {text-align : center; overflow : hidden; width : 220px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
-
-
-.preview_box_photo_nav {width : 100px; height : 100px; position : relative; float : left; margin : 0px 2px 0px 0px;}
-.preview_box_photo_nav img.pr_photo_bg {width : 100px; height : 100px; position : absolute; border: 0px;}
-.preview_box_photo_nav table{position : relative; width : 100px; height : 100px; text-align : center; vertical-align : middle; border-collapse : collapse;}
-.preview_box_photo_nav table img{margin: 0px 0px 0px 0px; border : 1px solid #FFFFFF;}
-.preview_box_photo_current table img{margin: 0px 0px 0px 0px; border : 3px solid #DF6400;}
-
-.preview_box_photo_default table {
- cursor: pointer;
-}
-
-.image-scroller {
- position: relative;
- left: 0px;
- top: 0px;
-}
-
-.image-scroller table {
- position: absolute;
- left: 0px;
- top: 0px;
- width: 100%;
-}
-
-.image-scroller, .image-scroller * {
- border-style: none;
- background-color: transparent;
-}
-
-.image-scroller-left-arrow {
- position: absolute;
- top: 80px;
- left: -35px;
- z-index: 2;
-}
-
-.image-scroller-right-arrow {
- position: absolute;
- top: 80px;
- right: -33px;
- z-index: 2;
-}
-
-.search-div {
- height: 65px;
- width: 339px;
- position: absolute;
- top: 64px;
- right: 0px;
- margin-right: 0px;
-}
-
-.search-img-bg {
- position: absolute;
- top: 0px;
- left: 0px;
-}
-
-.search-label {
- position: absolute;
- color: rgb(255, 255, 255);
- font-weight: bold;
- top: 22px;
- left: 20px;
-}
-
-.search-find-button {
- position: absolute;
- color: rgb(255, 255, 255);
- font-weight: bold;
- top: 21px;
- left: 277px;
- text-decoration: none;
-}
-
-.search-input {
- border: 0px none ;
- background: transparent none repeat scroll 0% 0%;
- width: 176px;
- height: 17px;
- position: absolute;
- top: 20px;
- left: 73px;
- -moz-background-clip: -moz-initial;
- -moz-background-origin: -moz-initial;
- -moz-background-inline-policy: -moz-initial;
- font-weight: bold;
-}
-
-.search-img {
- width: 61px;
- height: 18px;
- position: absolute;
- top: 20px;
- left: 261px;
-}
-
-.search-option-div {
- position: absolute;
- top: 41px;
- left: 197px;
-}
-
-.search-option-link {
- color: rgb(255, 255, 255);
- text-decoration: none;
-}
-
-.search-options {
- background: transparent none repeat scroll 0% 0%;
- overflow: hidden;
- height: 110px;
- width: 327px;
- position: absolute;
- top: 107px;
- right: 5px;
- -moz-background-clip: -moz-initial;
- -moz-background-origin: -moz-initial;
- -moz-background-inline-policy: -moz-initial;
-}
-
-.search-option-img {
- position: absolute;
- bottom: 0px;
- left: 0px;
-}
-
-.search-options-div1 {
- position: absolute;
- color: white;
- top: 7px;
- left: 45px;
-}
-
-.search-options-div2 {
- border-top: 1px solid rgb(56, 56, 56);
- position: absolute;
- color: white;
- top: 32px;
- padding-top: 3px;
- left: 38px;
-}
-
-.search-hide-options-div {
- position: absolute;
- bottom: 5px;
- left: 163px;
-}
-
-.search-hide-options-link {
- color: rgb(255, 255, 255);
- text-decoration: none;
-}
-
-.dr-tree-h-text {
- white-space: normal;
-}
-
-.tree-selected-node{
- font-weight: bold;
- background: #F1F1F1;
- border: #FFFFFF 1px solid;
-}
-
-.dr-tree-h-ic-div {
- margin: 0px;
- padding-left: 0px;
- padding-bottom: 5px;
-}
-
-.avatar {
- width: 100px;
-}
-
-.rich-tree-node rich-cm-attached {
- padding-top: 3px;
-}
-
-.dr-tree-h-ic-img{
- width: 25px;
-}
-
-.dr-insldr-vert-spacer {
- padding: 0px;
-}
-
-.shelf-header-table{
- border-collapse : collapse;
- margin-bottom : 15px;
-}
-
-.shelf-header-table h1{
- margin-bottom : 4px;
-}
-
-.shelf-header-table-col2{
- padding : 8px 0px 0px 20px;
- vertical-align : top;
- white-space : nowrap;
-}
-
-.additional-info-text{
- color : #666666;
-}
-
-.additional-info-avatar {
- width: 80px;
- height: 80px;
- border:0px;
-}
-
-.additional-info-comment-del {
- float : right;
- cursor : pointer
-}
-
-.album-header-table{
- border-collapse : collapse;
- margin-bottom : 15px;
-}
-
-.album-header-table h1{
- margin-bottom : 4px;
-}
-
-.album-header-table-col2{
- padding : 8px 0px 0px 20px;
- vertical-align : top;
- white-space : nowrap;
-}
-
-.album-cover-image{
- border : 1px solid #FFFFFF;
-}
-
-.image-header-table{
- border-collapse : collapse;
- margin-bottom : 15px;
-}
-
-.image-header-table h1{
- margin-bottom : 4px;
-}
-
-.image-header-table-col2{
- padding : 8px 0px 0px 20px;
- vertical-align : top;
- white-space : nowrap;
-}
-
-.image-cover-image{
- border : 2px solid #FFFFFF;
-}
-
-.mainImage-div{
- padding-top : 10px;
-}
-
-.mainImage-table{
- border-collapse : collapse;
- margin-bottom : 5px;
-}
-
-.mainImage-table-col1{
- padding-right : 10px;
- padding-left : 30px;
- text-align : right;
-}
-
-.mainImage-table-col3{
- padding-bottom : 5px
-}
-
-.buttons-body{
- cursor : pointer;
- margin : 0px 0px 0px 0px;
- position : relative;
- width : 103px;
- height : 28px;
-}
-
-.buttons-body-image{
- position : absolute;
- top : 0px;
- left : 0px;
- border: 0px;
-}
-.buttons-body-text-div{
- position : absolute;
- color : #ffffff;
- top : 7px;
- left : 8px;
-}
-.buttons-body-spacer-image{
- position : absolute;
- top : 0px;
- left : 0px;
- border: 0px;
-}
-
-.slideshow-outerdiv{
- cursor : pointer;
- margin-bottom : 7px
-}
-
-.comment-table{
- border-collapse : collapse;
- margin-bottom : 20px;
-}
-.comment-deleteLink{
- margin : 1px 0px 7px 0px;
- background : #f1f1f1;
- padding : 3px 4px 4px 4px;
-}
-.comment-text{
- margin : 0px 0px 10px 0px;
- padding : 0px 4px 0px 4px;
-}
-
-.image-edit-div{
- margin : 10px 0px 30px 30px;
- width : 504px;
- background : #f1f1f1;
-}
-.image-edit-div-table{
- border-collapse : collapse;
-}
-
-.image-edit-label {
- padding-top : 8px;
-}
-
-.image-edit-photo-input {
- border : 1px solid #999999;
- width : 350px;
-}
-
-.image-edit-calendar {
- border : 1px solid #999999;
- width : 80px;
-}
-
-.image-edit-description-input {
- border : 1px solid #999999;
- width : 350px;
- height : 150px;
-}
-
-.image-edit-tags-input {
- border : 1px solid #999999;
- width : 150px;
- margin-bottom : 4px;
-}
-
-.image-edit-direct-link {
- border : 0px;
- background : none;
- width : 350px
-}
-
-.main-menu-icons-outer-div {
- cursor: pointer;
- float: left;
- padding: 4px 2px 0px 2px;
-}
-
-.main-menu-icons-left-div {
- height: 23px;
- float: left;
-}
-
-.main-menu-icons-middle-div {
- height: 23px;
- float: left;
- background: url(../img/shell/informer_bg.png) top left no-repeat;
- color: #FFFFFF;
- padding: 4px 0px 0px 0px;
-}
-
-.main-menu-icons-right-div {
- height : 23px;
- float : left;
- width : 10px;
- overflow : hidden;
- position : relative;
-}
-.main-menu-icons-backgroung-img {
- position : absolute;
- top : 0px;
- right : 0px;
- border: 0px;
-}
-.main-menu-separator-img{
- float:left;
- margin : 8px 15px 0px 15px;
- border : 0px;
-}
-.main-menu-add-icons-img{
- padding : 4px 0px 0px 5px;
- border : 0px;
-}
-
-.rich-tabpanel-content{
- border: none;
- background: none;
-}
-.rich-tabhdr-side-cell{
- border: none;
-}
-.rich-tabhdr-side-border{
- border: none;
- background: none;
-}
-.rich-tab-bottom-line{
- border: none;
- background: none;
-}
-
-.rich-tab-active{
- border-right: 1px solid;
- border-right-color: black;
- border-left: 0px;
- border-top: 0px;
- font-size : 175%;
- background: none;
- font-weight : normal;
- margin : 4px;
-}
-
-.rich-tab-inactive{
- border-right: 1px solid;
- border-right-color: black;
- border-left: 0px;
- border-top: 0px;
- background: none;
- color : #DF6400;
- text-decoration: underline;
- cursor: pointer;
-}
-
-.top-right-bottom-menu-item {
- vertical-align: top;
- padding: 0px;
-}
-
-.top-right-bottom-menu-item-link a{
- font-size: 11px;
- color: #ffffff;
- text-decoration: none;
- font-weight: normal;
- padding: 0px 0px 0px 15px;
-}
-.slideshow-link{
- color:black;
- text-decoration:none;
-}
-
-
-.photoalbumButton {
- margin: 0px 0px 0px 0px;
- position: relative;
- width: 103px;
- height: 28px;
- cursor: pointer;
-}
-
-.photoalbumButton input, .photoalbumButton img {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 103px;
- height: 28px;
-}
-
-.photoalbumButton img {
- border-width: 0px;
-}
-
-.photoalbumButton input {
- outline-style: none;
-}
-
-.photoalbumButton div {
- position: absolute;
- color: #ffffff;
- top: 7px;
- left: 0px;
- width: 103px;
- text-align: center;
-}
-
-.album-edit-field {
- padding-top : 8px
-}
-
-.album-edit-calendar {
- border : 1px solid #999999;
- width : 80px
-}
-
-.album-edit-input {
- border : 1px solid #999999;
- width : 350px
-}
-
-.album-edit-area {
- border : 1px solid #999999;
- width : 350px;
- height : 150px;
-}
-
-.search-criteria {
- color: #666666;
-}
-
-.shelf-edit {
- margin : 10px 0px 30px 30px;
- width : 504px;
- background : #f1f1f1;
-}
-
-.shelf-edit-calendar {
- border : 1px solid #999999;
- width : 80px;
-}
-
-.shelf-edit-input {
- border : 1px solid #999999;
- width : 350px;
-}
-
-.shelf-edit-area {
- border : 1px solid #999999;
- width : 350px;
- height : 150px
-}
-
-.tag-panel {
- border: 0px;
- background: none;
- overflow: auto;
-}
-
-.tag-table {
- float: left;
- margin: 0px 10px 10px 0px;
-}
-
-.tag-table-td {
- text-align: center;
- vertical-align: middle;
- background: white;
- border: 1px solid #909090;
-}
-
-.reg-table{
- padding : 0px 10px 10px 0px;
-}
-
-.reg-table-col1{
- vertical-align : top;
-}
-.reg-table-col3{
- vertical-align : top;
-}
-.reg-table-input{
- border : 1px solid #909090;
- height : 19px;
- width : 155px
-}
-.reg-table-output{
- height : 19px;
- width : 155px;
- padding: 5px;
- font-weight: bold;
-}
-
-.slideshow-table{
- width: 100%;
- height: 100%;
-}
-
-.slideshow-table-col{
- text-align: center;
-}
-
-.slideshow-table-row{
- vertical-align: middle;
-}
-
-.rich-menu-item-icon img{
- border:0px;
-}
-
-.rich-inplace {
- font-size: inherit;
-}
\ No newline at end of file
Copied: trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css (from rev 13737, trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css)
===================================================================
--- trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css (rev 0)
+++ trunk/examples/photoalbum/web/src/main/webapp/stylesheet/photoalbum.css 2009-04-21 15:28:19 UTC (rev 13738)
@@ -0,0 +1,972 @@
+.main-body {
+ margin: 0px;
+ background: url(../img/shell/page_bg.gif) repeat-x #D7D7D7;
+ height: 100%;
+}
+
+.header-panel {
+ height: 116px;
+ border: none;
+ padding: 0px;
+ background: none;
+}
+
+.header-panel-body {
+ padding: 0px;
+}
+
+.header-content-div {
+ height: 79px;
+ position: relative;
+}
+
+.user-info-div {
+ position: absolute;
+ font-weight: bold;
+ color: #ffffff;
+ right: 20px;
+ top: 45px;
+}
+
+.top-right-menu {
+ position: absolute;
+ right: 8px;
+ top: 14px;
+}
+
+.top-right-menu-toolbar {
+ background: none;
+ border: none;
+}
+
+.top-right-menu-item {
+ vertical-align: top;
+ padding: 0px;
+}
+
+
+
+.top-right-menu-item a{
+ font-size: 11px;
+ color: #ffffff;
+ text-decoration: none;
+ font-weight: normal;
+
+}
+
+.top-right-menu-item-padding {
+ padding: 0px 8px 0px 15px;
+}
+.main-menu-panel {
+ height: 37px;
+ position: relative;
+ border: none;
+ padding: 0px;
+ background: url(../img/shell/general_panelbar_bg.gif) repeat-x #A84807;
+}
+
+.main-menu-panel-body {
+ border: none;
+ padding: 0px;
+}
+
+.body-main-bg {
+ background: url(../img/shell/general_panel_bg.gif) right top repeat-y;
+}
+
+.body-main-panel {
+
+ height: 100%;
+ padding: 0px;
+ border: none;
+ background-color: transparent;
+}
+
+.body-main-panel-header {
+ height: 15px;
+ background: url(../img/shell/general_panel_header_bg.gif) right top;
+ font-size: 1px;
+ padding: 0px;
+ border: none;
+}
+
+.avatarUpload .file-upload-stop-button{
+ display:none;
+}
+
+.file-upload-button{
+ background:#B34801;
+ color: #FFFFFF;
+ border:1px solid #888888;
+}
+
+
+.avatarUpload .rich-fileupload-ico {
+padding-left:7px;
+}
+.avatarUpload .rich-fileupload-toolbar-decor {
+width:100%;
+background-color:#D7D7D7;
+border-bottom:0px;
+border-left:0px;
+border-top:0px;
+padding:0px;
+}
+
+.avatarUpload .rich-fileupload-ico-add {
+background-image:none;
+}
+
+.avatarUpload .rich-fileupload-button-border{
+border:0px ;
+margin:0px;
+}
+
+.avatarUpload .rich-fileupload-list-decor {
+width:100%;
+background-color:D7D7D7;
+border-bottom:0px;
+border-left:0px;
+border-top:0px;
+padding:0px;
+}
+.avatarUpload .rich-fileupload-button-light{
+ padding:0px;
+ background:#B34801;
+ cursor:pointer;
+ border:1px solid #B34801;
+ }
+
+ .avatarUpload .rich-fileupload-button{
+ padding:0px;
+ background:#B34801;
+ border:1px solid #888888;
+ }
+
+.footer-panel {
+ height: 82px;
+ position: relative;
+ background: url(../img/shell/footer_bg.gif) repeat-x #000000;
+ border: none;
+ padding: 0px;
+}
+
+.footer-panel-content {
+ position: absolute;
+ left: 8px;
+ top: 51px;
+}
+
+.body-main-panel-body{
+ padding: 15px 35px 15px 15px;
+}
+
+.bottom-right-menu-item {
+ vertical-align: top;
+ padding: 0px 15px 0px 8px;
+}
+
+.bottom-right-menu-item-content {
+ font-size: 11px;
+ color: #ffffff;
+ text-decoration: none;
+}
+
+.logged-user {
+ color: #FF7D2A;
+ padding:0 8px 0 0;
+}
+
+.main-menu-toolbar {
+ background: none;
+ border: none;
+}
+
+.main-menu-toolbar-content a {
+ color: #FFFFFF;
+ font-size: 11px;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+.main-menu-toolbar-content{
+ width: 100%;
+}
+
+.table-boby-column1{
+ vertical-align: top;
+}
+
+.table-boby-column2{
+ vertical-align: top;
+}
+
+.main-menu-table{
+ width: 100%;
+}
+
+.menu-cloumn1{
+ width: 90%
+}
+.menu-cloumn2{
+ width: 10%
+}
+
+.login-panel{
+ width: 400px;
+}
+
+input[type='submit'], input[type='button'], button {
+ background: #414141;
+ color: white;
+ margin: 5px;
+ border-color: black;
+}
+
+.login-table-col{
+ text-align: center;
+}
+
+.login-table-col2{
+ text-align: left;
+}
+
+.login-body-table-col{
+ align: middle;
+ vertical-align: middle;
+ height: 100%;
+}
+
+.main-image{
+ border: none;
+}
+
+.slider-image {
+ opacity: 0.1;
+ filter: opacity=10;
+}
+
+.all-images{
+ border: none;
+}
+
+.message {
+ border: 1px solid #FFCC00;
+ padding: 5px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ background-color: #F0F8FF;
+ font-size: 12px;
+ color: red;
+}
+
+.name {
+ font-weight: bold;
+ width: 115px;
+ padding: 5px;
+ margin-top: 3px;
+}
+.value {
+ padding: 5px;
+}
+
+.error {
+ padding: 5px;
+ color: red;
+}
+.errors {
+ color: red;
+ vertical-align: middle;
+}
+img.errors {
+ padding-right: 5px;
+}
+.errors input {
+ border: 1px solid red;
+}
+.errors textarea {
+ border: 1px solid red;
+}
+
+.required {
+ color: red;
+ padding-left: 2px;
+}
+
+.rich-stglpanel-body {
+ overflow: auto;
+}
+.top {
+ vertical-align: top;
+}
+.info {
+ height: 202px;
+ overflow: auto;
+}
+
+.a4j-status {
+ border: 1px solid white;
+ padding: 5px;
+ position: absolute;
+ z-index: 3;
+ left: 50%;
+ top: 40px;
+}
+
+a{color : #DF6400;}
+h1{font-size : 175%; font-weight : normal; margin : 0px;}
+.h1-style{
+ font-size : 175%; font-weight : normal; margin : 0px;
+}
+
+.content_box {padding : 15px 35px 15px 35px;}
+.content_box p {margin : 0px 0px 5px 0px; FONT-SIZE : 12PX}
+
+.preview_box_album_80 {width : 100px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_album_80 img.pr_album_bg {width : 100px; height : 100px; position : absolute; border: 0px;}
+.preview_box_album_80 table{position : relative; width : 100px; height : 100px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_album_80 table img{margin: 0px 0px 2px 0px;}
+.preview_box_album_80 div.album_name {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_album_80 div.album_data {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+.preview_box_album_120 {width : 140px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_album_120 img.pr_album_bg {width : 140px; height : 140px; position : absolute; border: 0px;}
+.preview_box_album_120 table{position : relative; width : 140px; height : 140px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_album_120 table img{margin: 0px 0px 2px 0px;}
+.preview_box_album_120 div.album_name {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_album_120 div.album_data {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+.preview_box_album_160 {width : 180px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_album_160 img.pr_album_bg {width : 180px; height : 180px; position : absolute; border: 0px;}
+.preview_box_album_160 table{position : relative; width : 180px; height : 180px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_album_160 table img{margin: 0px 0px 1px 1px;}
+.preview_box_album_160 div.album_name {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_album_160 div.album_data {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+
+
+.preview_box_photo_80 {width : 100px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_photo_80 img.pr_photo_bg {width : 100px; height : 100px; position : absolute; border: 0px;}
+.preview_box_photo_80 table{position : relative; width : 100px; height : 100px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_photo_80 table img{margin: 0px 0px 0px 0px;}
+.preview_box_photo_80 div.photo_name {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_photo_80 div.photo_data {text-align : center; overflow : hidden; width : 100px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+.preview_box_photo_120 {width : 140px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_photo_120 img.pr_photo_bg {width : 140px; height : 140px; position : absolute; border: 0px;}
+.preview_box_photo_120 table{position : relative; width : 140px; height : 140px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_photo_120 table img{margin: 0px 0px 0px 0px;}
+.preview_box_photo_120 div.photo_name {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_photo_120 div.photo_data {text-align : center; overflow : hidden; width : 140px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+.preview_box_photo_160 {width : 180px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_photo_160 img.pr_photo_bg {width : 180px; height : 180px; position : absolute; border: 0px;}
+.preview_box_photo_160 table{position : relative; width : 180px; height : 180px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_photo_160 table img{margin: 0px 0px 0px 0px;}
+.preview_box_photo_160 div.photo_name {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_photo_160 div.photo_data {text-align : center; overflow : hidden; width : 180px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+.preview_box_photo_200 {width : 220px; position : relative; float : left; margin : 0px 10px 10px 0px;}
+.preview_box_photo_200 img.pr_photo_bg {width : 220px; height : 220px; position : absolute; border: 0px;}
+.preview_box_photo_200 table{position : relative; width : 220px; height : 220px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_photo_200 table img{margin: 0px 0px 0px 0px;}
+.preview_box_photo_200 div.photo_name {text-align : center; overflow : hidden; width : 220px; white-space : nowrap; margin-top : 3px; text-overflow: ellipsis; height : 14px;}
+.preview_box_photo_200 div.photo_data {text-align : center; overflow : hidden; width : 220px; white-space : nowrap; text-overflow: ellipsis; color : #666666; font-size : 10px; height : 14px}
+
+
+.preview_box_photo_nav {width : 100px; height : 100px; position : relative; float : left; margin : 0px 2px 0px 0px;}
+.preview_box_photo_nav img.pr_photo_bg {width : 100px; height : 100px; position : absolute; border: 0px;}
+.preview_box_photo_nav table{position : relative; width : 100px; height : 100px; text-align : center; vertical-align : middle; border-collapse : collapse;}
+.preview_box_photo_nav table img{margin: 0px 0px 0px 0px; border : 1px solid #FFFFFF;}
+.preview_box_photo_current table img{margin: 0px 0px 0px 0px; border : 3px solid #DF6400;}
+
+.preview_box_photo_default table {
+ cursor: pointer;
+}
+
+.image-scroller {
+ position: relative;
+ left: 0px;
+ top: 0px;
+}
+
+.image-scroller table {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ width: 100%;
+}
+
+.image-scroller, .image-scroller * {
+ border-style: none;
+ background-color: transparent;
+}
+
+.image-scroller-left-arrow {
+ position: absolute;
+ top: 80px;
+ left: -35px;
+ z-index: 2;
+}
+
+.image-scroller-right-arrow {
+ position: absolute;
+ top: 80px;
+ right: -33px;
+ z-index: 2;
+}
+
+.search-div {
+ height: 65px;
+ width: 339px;
+ position: absolute;
+ top: 64px;
+ right: 0px;
+ margin-right: 0px;
+}
+
+.search-img-bg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+
+.search-label {
+ position: absolute;
+ color: rgb(255, 255, 255);
+ font-weight: bold;
+ top: 22px;
+ left: 20px;
+}
+
+.search-find-button {
+ position: absolute;
+ color: rgb(255, 255, 255);
+ font-weight: bold;
+ top: 21px;
+ left: 277px;
+ text-decoration: none;
+}
+
+.search-input {
+ border: 0px none ;
+ background: transparent none repeat scroll 0% 0%;
+ width: 176px;
+ height: 17px;
+ position: absolute;
+ top: 20px;
+ left: 73px;
+ -moz-background-clip: -moz-initial;
+ -moz-background-origin: -moz-initial;
+ -moz-background-inline-policy: -moz-initial;
+ font-weight: bold;
+}
+
+.search-img {
+ width: 61px;
+ height: 18px;
+ position: absolute;
+ top: 20px;
+ left: 261px;
+}
+
+.search-option-div {
+ position: absolute;
+ top: 41px;
+ left: 197px;
+}
+
+.search-option-link {
+ color: rgb(255, 255, 255);
+ text-decoration: none;
+}
+
+.search-options {
+ background: transparent none repeat scroll 0% 0%;
+ overflow: hidden;
+ height: 110px;
+ width: 327px;
+ position: absolute;
+ top: 107px;
+ right: 5px;
+ -moz-background-clip: -moz-initial;
+ -moz-background-origin: -moz-initial;
+ -moz-background-inline-policy: -moz-initial;
+}
+
+.search-option-img {
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
+}
+
+.search-options-div1 {
+ position: absolute;
+ color: white;
+ top: 7px;
+ left: 45px;
+}
+
+.search-options-div2 {
+ border-top: 1px solid rgb(56, 56, 56);
+ position: absolute;
+ color: white;
+ top: 32px;
+ padding-top: 3px;
+ left: 38px;
+}
+
+.search-hide-options-div {
+ position: absolute;
+ bottom: 5px;
+ left: 163px;
+}
+
+.search-hide-options-link {
+ color: rgb(255, 255, 255);
+ text-decoration: none;
+}
+
+.dr-tree-h-text {
+ white-space: normal;
+}
+
+.tree-selected-node{
+ font-weight: bold;
+ background: #F1F1F1;
+ border: #FFFFFF 1px solid;
+}
+
+.dr-tree-h-ic-div {
+ margin: 0px;
+ padding-left: 0px;
+ padding-bottom: 5px;
+}
+
+.avatar {
+ width: 100px;
+}
+
+.rich-tree-node rich-cm-attached {
+ padding-top: 3px;
+}
+
+.dr-tree-h-ic-img{
+ width: 25px;
+}
+
+.dr-insldr-vert-spacer {
+ padding: 0px;
+}
+
+.shelf-header-table{
+ border-collapse : collapse;
+ margin-bottom : 15px;
+}
+
+.shelf-header-table h1{
+ margin-bottom : 4px;
+}
+
+.shelf-header-table-col2{
+ padding : 8px 0px 0px 20px;
+ vertical-align : top;
+ white-space : nowrap;
+}
+
+.additional-info-text{
+ color : #666666;
+}
+
+.additional-info-avatar {
+ width: 80px;
+ height: 80px;
+ border:0px;
+}
+
+.additional-info-comment-del {
+ float : right;
+ cursor : pointer
+}
+
+.album-header-table{
+ border-collapse : collapse;
+ margin-bottom : 15px;
+}
+
+.album-header-table h1{
+ margin-bottom : 4px;
+}
+
+.album-header-table-col2{
+ padding : 8px 0px 0px 20px;
+ vertical-align : top;
+ white-space : nowrap;
+}
+
+.album-cover-image{
+ border : 1px solid #FFFFFF;
+}
+
+.image-header-table{
+ border-collapse : collapse;
+ margin-bottom : 15px;
+}
+
+.image-header-table h1{
+ margin-bottom : 4px;
+}
+
+.image-header-table-col2{
+ padding : 8px 0px 0px 20px;
+ vertical-align : top;
+ white-space : nowrap;
+}
+
+.image-cover-image{
+ border : 2px solid #FFFFFF;
+}
+
+.mainImage-div{
+ padding-top : 10px;
+}
+
+.mainImage-table{
+ border-collapse : collapse;
+ margin-bottom : 5px;
+}
+
+.mainImage-table-col1{
+ padding-right : 10px;
+ padding-left : 30px;
+ text-align : right;
+}
+
+.mainImage-table-col3{
+ padding-bottom : 5px
+}
+
+.buttons-body{
+ cursor : pointer;
+ margin : 0px 0px 0px 0px;
+ position : relative;
+ width : 103px;
+ height : 28px;
+}
+
+.buttons-body-image{
+ position : absolute;
+ top : 0px;
+ left : 0px;
+ border: 0px;
+}
+.buttons-body-text-div{
+ position : absolute;
+ color : #ffffff;
+ top : 7px;
+ left : 8px;
+}
+.buttons-body-spacer-image{
+ position : absolute;
+ top : 0px;
+ left : 0px;
+ border: 0px;
+}
+
+.slideshow-outerdiv{
+ cursor : pointer;
+ margin-bottom : 7px
+}
+
+.comment-table{
+ border-collapse : collapse;
+ margin-bottom : 20px;
+}
+.comment-deleteLink{
+ margin : 1px 0px 7px 0px;
+ background : #f1f1f1;
+ padding : 3px 4px 4px 4px;
+}
+.comment-text{
+ margin : 0px 0px 10px 0px;
+ padding : 0px 4px 0px 4px;
+}
+
+.image-edit-div{
+ margin : 10px 0px 30px 30px;
+ width : 504px;
+ background : #f1f1f1;
+}
+.image-edit-div-table{
+ border-collapse : collapse;
+}
+
+.image-edit-label {
+ padding-top : 8px;
+}
+
+.image-edit-photo-input {
+ border : 1px solid #999999;
+ width : 350px;
+}
+
+.image-edit-calendar {
+ border : 1px solid #999999;
+ width : 80px;
+}
+
+.image-edit-description-input {
+ border : 1px solid #999999;
+ width : 350px;
+ height : 150px;
+}
+
+.image-edit-tags-input {
+ border : 1px solid #999999;
+ width : 150px;
+ margin-bottom : 4px;
+}
+
+.image-edit-direct-link {
+ border : 0px;
+ background : none;
+ width : 350px
+}
+
+.main-menu-icons-outer-div {
+ cursor: pointer;
+ float: left;
+ padding: 4px 2px 0px 2px;
+}
+
+.main-menu-icons-left-div {
+ height: 23px;
+ float: left;
+}
+
+.main-menu-icons-middle-div {
+ height: 23px;
+ float: left;
+ background: url(../img/shell/informer_bg.png) top left no-repeat;
+ color: #FFFFFF;
+ padding: 4px 0px 0px 0px;
+}
+
+.main-menu-icons-right-div {
+ height : 23px;
+ float : left;
+ width : 10px;
+ overflow : hidden;
+ position : relative;
+}
+.main-menu-icons-backgroung-img {
+ position : absolute;
+ top : 0px;
+ right : 0px;
+ border: 0px;
+}
+.main-menu-separator-img{
+ float:left;
+ margin : 8px 15px 0px 15px;
+ border : 0px;
+}
+.main-menu-add-icons-img{
+ padding : 4px 0px 0px 5px;
+ border : 0px;
+}
+
+.rich-tabpanel-content{
+ border: none;
+ background: none;
+}
+.rich-tabhdr-side-cell{
+ border: none;
+}
+.rich-tabhdr-side-border{
+ border: none;
+ background: none;
+}
+.rich-tab-bottom-line{
+ border: none;
+ background: none;
+}
+
+.rich-tab-active{
+ border-right: 1px solid;
+ border-right-color: black;
+ border-left: 0px;
+ border-top: 0px;
+ font-size : 175%;
+ background: none;
+ font-weight : normal;
+ margin : 4px;
+}
+
+.rich-tab-inactive{
+ border-right: 1px solid;
+ border-right-color: black;
+ border-left: 0px;
+ border-top: 0px;
+ background: none;
+ color : #DF6400;
+ text-decoration: underline;
+ cursor: pointer;
+}
+
+.top-right-bottom-menu-item {
+ vertical-align: top;
+ padding: 0px;
+}
+
+.top-right-bottom-menu-item-link a{
+ font-size: 11px;
+ color: #ffffff;
+ text-decoration: none;
+ font-weight: normal;
+ padding: 0px 0px 0px 15px;
+}
+.slideshow-link{
+ color:black;
+ text-decoration:none;
+}
+
+
+.photoalbumButton {
+ margin: 0px 0px 0px 0px;
+ position: relative;
+ width: 103px;
+ height: 28px;
+ cursor: pointer;
+}
+
+.photoalbumButton input, .photoalbumButton img {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 103px;
+ height: 28px;
+}
+
+.photoalbumButton img {
+ border-width: 0px;
+}
+
+.photoalbumButton input {
+ outline-style: none;
+}
+
+.photoalbumButton div {
+ position: absolute;
+ color: #ffffff;
+ top: 7px;
+ left: 0px;
+ width: 103px;
+ text-align: center;
+}
+
+.album-edit-field {
+ padding-top : 8px
+}
+
+.album-edit-calendar {
+ border : 1px solid #999999;
+ width : 80px
+}
+
+.album-edit-input {
+ border : 1px solid #999999;
+ width : 350px
+}
+
+.album-edit-area {
+ border : 1px solid #999999;
+ width : 350px;
+ height : 150px;
+}
+
+.search-criteria {
+ color: #666666;
+}
+
+.shelf-edit {
+ margin : 10px 0px 30px 30px;
+ width : 504px;
+ background : #f1f1f1;
+}
+
+.shelf-edit-calendar {
+ border : 1px solid #999999;
+ width : 80px;
+}
+
+.shelf-edit-input {
+ border : 1px solid #999999;
+ width : 350px;
+}
+
+.shelf-edit-area {
+ border : 1px solid #999999;
+ width : 350px;
+ height : 150px
+}
+
+.tag-panel {
+ border: 0px;
+ background: none;
+ overflow: auto;
+}
+
+.tag-table {
+ float: left;
+ margin: 0px 10px 10px 0px;
+}
+
+.tag-table-td {
+ text-align: center;
+ vertical-align: middle;
+ background: white;
+ border: 1px solid #909090;
+}
+
+.reg-table{
+ padding : 0px 10px 10px 0px;
+}
+
+.reg-table-col1{
+ vertical-align : top;
+}
+.reg-table-col3{
+ vertical-align : top;
+}
+.reg-table-input{
+ border : 1px solid #909090;
+ height : 19px;
+ width : 155px
+}
+.reg-table-output{
+ height : 19px;
+ width : 155px;
+ padding: 5px;
+ font-weight: bold;
+}
+
+.slideshow-table{
+ width: 100%;
+ height: 100%;
+}
+
+.slideshow-table-col{
+ text-align: center;
+}
+
+.slideshow-table-row{
+ vertical-align: middle;
+}
+
+.rich-menu-item-icon img{
+ border:0px;
+}
+
+.rich-inplace {
+ font-size: inherit;
+}
\ No newline at end of file
15 years, 8 months
JBoss Rich Faces SVN: r13737 - in trunk: ui/datascroller/src/main/resources/org/richfaces/renderkit/html/scripts and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-04-21 11:13:30 -0400 (Tue, 21 Apr 2009)
New Revision: 13737
Modified:
trunk/samples/datascroller-sample/src/main/webapp/pages/index.jsp
trunk/ui/datascroller/src/main/resources/org/richfaces/renderkit/html/scripts/datascroller.js
Log:
https://jira.jboss.org/jira/browse/RF-6887
Modified: trunk/samples/datascroller-sample/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/datascroller-sample/src/main/webapp/pages/index.jsp 2009-04-21 15:07:12 UTC (rev 13736)
+++ trunk/samples/datascroller-sample/src/main/webapp/pages/index.jsp 2009-04-21 15:13:30 UTC (rev 13737)
@@ -112,7 +112,9 @@
<h:panelGrid columns="1">
<h:outputLink onclick="$('form:jsAPIDs').component.first(); return false;">first</h:outputLink>
<h:outputLink onclick="$('form:jsAPIDs').component.previous(); return false;">previous</h:outputLink>
+ <h:outputLink onclick="$('form:jsAPIDs').component.fastRewind(); return false;">fastRewind</h:outputLink>
<h:outputLink onclick="$('form:jsAPIDs').component.switchToPage(2); return false;">switchToPage(2)</h:outputLink>
+ <h:outputLink onclick="$('form:jsAPIDs').component.fastForward(); return false;">fastForward</h:outputLink>
<h:outputLink onclick="$('form:jsAPIDs').component.next(); return false;">next</h:outputLink>
<h:outputLink onclick="$('form:jsAPIDs').component.last(); return false;">last</h:outputLink>
</h:panelGrid>
Modified: trunk/ui/datascroller/src/main/resources/org/richfaces/renderkit/html/scripts/datascroller.js
===================================================================
--- trunk/ui/datascroller/src/main/resources/org/richfaces/renderkit/html/scripts/datascroller.js 2009-04-21 15:07:12 UTC (rev 13736)
+++ trunk/ui/datascroller/src/main/resources/org/richfaces/renderkit/html/scripts/datascroller.js 2009-04-21 15:13:30 UTC (rev 13737)
@@ -39,5 +39,13 @@
last: function() {
this.switchToPage("last");
+ },
+
+ fastForward: function() {
+ this.switchToPage("fastforward");
+ },
+
+ fastRewind: function() {
+ this.switchToPage("fastrewind");
}
});
\ No newline at end of file
15 years, 8 months
JBoss Rich Faces SVN: r13736 - trunk/docs/realworld_app_guide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2009-04-21 11:07:12 -0400 (Tue, 21 Apr 2009)
New Revision: 13736
Removed:
trunk/docs/realworld_app_guide/en/src/main/docbook/modules/how_it_works.xml
trunk/docs/realworld_app_guide/en/src/main/docbook/modules/rw_itself.xml
Log:
Deleted: trunk/docs/realworld_app_guide/en/src/main/docbook/modules/how_it_works.xml
===================================================================
--- trunk/docs/realworld_app_guide/en/src/main/docbook/modules/how_it_works.xml 2009-04-21 15:00:48 UTC (rev 13735)
+++ trunk/docs/realworld_app_guide/en/src/main/docbook/modules/how_it_works.xml 2009-04-21 15:07:12 UTC (rev 13736)
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="how_it_works" xreflabel="how_it_works">
- <?dbhtml filename="how_it_works.html"?>
- <chapterinfo>
- <keywordset>
- <keyword>RichFaces</keyword>
-
- </keywordset>
- </chapterinfo>
-
- <title>How it works</title>
- <section><title>Application Overview</title>
- <section><title>Used Technologies</title>
- <para>The Photo Album is based on the following technologies and frameworks:</para>
- <itemizedlist>
- <listitem><para>Java Server Faces (JSF), technology that provides a single, standard, productive way to use Java technologies to build Web-based applications;</para></listitem>
- <listitem><para>Facelets, the technology that combines the power of UI components and the flexibility of XML to accelerate JavaServer Faces development. Facelets presents a compelling alternative to JSP as the markup technology of choice for next-generation JSF applications;</para></listitem>
- <listitem><para>Asynchronous JavaScript and XML (AJAX), several incorporated technologies. Ajax binds together standards-based presentation using XHTML and CSS, dynamic display and interaction using the DOM, data interchange and manipulation using XML and XSLT, asynchronous data retrieval using XMLHttpRequest and JavaScript;</para></listitem>
- <listitem><para>Seam technology that integrates previous mentioned technologies with Java Persistence (JPA), Enterprise Java Beans (EJB 3.0) and Business Process Management (BPM) into a unified full-stack solution;</para></listitem>
- <listitem><para>RichFaces, a framework and library of Ajax-capable UI components for JSF framework that had been evolved from Ajax4JSF framework (merge of Ajax and JavaServer Faces technologies).</para></listitem>
- </itemizedlist>
- <para>One of the main goals for the PhotoAlbum Demo is to demonstrate the RichFaces.</para>
- </section>
-
- <section>
- <title>Benefits of RichFaces</title>
- <para>The RichFaces has a set of benefits distinguishing this library and framework from a wide range of similar libraries.
- All the RichFaces benefits are fully described in the <ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/...">Introduction to the RichFaces</ulink>.
- The <Photo Album> covers some of the most important of them and demonstrates: </para>
- <itemizedlist>
- <listitem><para><emphasis>wide variety of UI components</emphasis>, which provides Lego-like way of building user interfaces for web applications;</para></listitem>
- <listitem><para><emphasis>built-in Ajax capability</emphasis>, which offers both component-wide and a lot more flexible page-wide Ajax support;</para></listitem>
- <listitem><para><emphasis>highly customizable look-and-feel</emphasis> (the RichFaces have special feature called
- "<ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/...">Skinnability</ulink>").</para></listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>The main structure and organization of the PhotoAlbum</title>
- <para>Since the application uses Facelets technology the main page <code>index.xhtml</code> represents an <include> (or facelet) wrapped with the <emphasis role="bold"><ui:composition></emphasis> tag.
- This tag is used to trim unnecessary markup in the facelet. Any content outside of <emphasis role="bold"><ui:composition></emphasis> tag will be ignored by the Facelets view handler.
- A facelet can be incorporated into another page or facelet with the help of <emphasis role="bold"><ui:define></emphasis> and <emphasis role="bold"><ui:include></emphasis> tags pointed to by the <emphasis role="bold"><ui:include></emphasis> "src" attribute.
- The facelet may simply contains a fragment of XHTML or XML to be included.</para>
-
- <para>Here is <code>index.xhtml</code> page source code:</para>
- <programlisting role="XML"><![CDATA[<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:s="http://jboss.com/products/seam/taglib"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:rich="http://richfaces.org/rich"
- xmlns:a4j="http://richfaces.org/a4j"
- xmlns:richx="http://richfaces.org/richx"
- template="layout/template.xhtml">
-
- <ui:define name="searchWidget">
- <ui:include src="includes/search/searchWidget.xhtml" />
- </ui:define>
-
- <ui:define name="menu">
- <ui:include src="/includes/index/menu.xhtml" />
- </ui:define>
-
- <ui:define name="tree">
- <ui:include src="/includes/index/tree.xhtml" />
- </ui:define>
-
- <ui:define name="body">
- <h:panelGroup id="mainArea" layout="block">
- <h:panelGroup styleClass="content_box" layout="block">
- <ui:include src="#{model.mainArea.template}" />
- </h:panelGroup>
- <ui:include src="includes/misc/errorPanel.xhtml" />
- </h:panelGroup>
- </ui:define>
-
-</ui:composition>]]>
- </programlisting>
-
- <para>The snippet above shows that the <code>index.xhtml</code> page does not contain sources for application functional parts but includes them as templates that are rendered depending on conditions and events taking place during user interaction with the PhotoAlbum.
- The illustration below shows <code>index.xhtml</code> page schematically with it "includes" and paths to them:</para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/indexxhtml.png"/>
- </imageobject>
- </mediaobject>
-
- </section>
- </section>
- </chapter>
-
Deleted: trunk/docs/realworld_app_guide/en/src/main/docbook/modules/rw_itself.xml
===================================================================
--- trunk/docs/realworld_app_guide/en/src/main/docbook/modules/rw_itself.xml 2009-04-21 15:00:48 UTC (rev 13735)
+++ trunk/docs/realworld_app_guide/en/src/main/docbook/modules/rw_itself.xml 2009-04-21 15:07:12 UTC (rev 13736)
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="getting_started" xreflabel="getting_started">
- <?dbhtml filename="getting_started.html"?>
- <chapterinfo>
- <keywordset>
- <keyword>RichFaces</keyword>
-
- </keywordset>
- </chapterinfo>
-
- <title>The Real World main features</title>
- <para>The "Photo Album" is a desktop-like online photo manager that provides social service with pictures uploading, preview, storage, management and sharing features.
-It allows to create own albums, upload photos there, share the albums with other users, search albums.
-For newcomers the system allows "Anonymous regime" that may be used to search and view others albums, but no personal albums, no possibility to mark favorite photos and friends albums are available.
- </para>
-
- <section>
- <title>Used components</title>
-
- <para>Below there is a list of components used in "Photo album".</para>
- <table>
- <title>Components used in "Photo album"</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>a4j:commandLink</entry>
- <entry>The component is very similar to the <h:commandLink> component, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back. It's not necessary to plug any support into the component, as Ajax support is already built in.</entry>
- </row>
- <row>
- <entry>a4j:commandButton</entry>
- <entry>The component is very similar to the <h:commandButton> component, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back. It's not necessary to plug any support into the component, as Ajax support is already built in.</entry>
- </row>
- <row>
- <entry>a4j:push</entry>
- <entry>The component periodically perform Ajax request to server, to simulate 'push' data.</entry>
- </row>
- <row>
- <entry>a4J:poll</entry>
- <entry>The component allows periodical sending of Ajax requests to a server and is used for a page updating according to a specified time interval.</entry>
- </row>
- <row>
- <entry>rich:calendar</entry>
- <entry>The component is used for creating monthly calendar elements on a page.</entry>
- </row>
- <row>
- <entry>rich:contextMenu</entry>
- <entry>The component is used for creation multileveled context menus that are activated after a user defines an event ("onmouseover", "onclick", etc.) on any element on the page.</entry>
- </row>
- <row>
- <entry>rich:dataGrid</entry>
- <entry>The component to render data as a grid that allows choosing data from a model and obtains built-in support of Ajax updates.</entry>
- </row>
- <row>
- <entry>rich:datascroller</entry>
- <entry>The component designed for providing the functionality of tables scrolling using Ajax requests.</entry>
- </row>
- <row>
- <entry>rich:fileUpload</entry>
- <entry>The component designed to perform Ajax-ed files upload to server.</entry>
- </row>
- <row>
- <entry>rich:inplaceInput</entry>
- <entry>The component is an input component used for displaying and editing data inputted. </entry>
- </row>
- <row>
- <entry>rich:inplaceSelect</entry>
- <entry>The component is used for creation select based inputs: it shows the value as text in one state and enables editing the value, providing a list of options in another state.</entry>
- </row>
- <row>
- <entry>rich:mediaOutput</entry>
- <entry>The component implements one of the basic features specified in the framework. The component is a facility for generating images, video, sounds and other binary resources defined by you on-the-fly.</entry>
- </row>
- <row>
- <entry>rich:modalPanel</entry>
- <entry>The component implements a modal dialog window. All operations in the main application window are locked out while this window is active. Opening and closing the window is done through client JavaScript code.</entry>
- </row>
- <row>
- <entry>rich:progressBar</entry>
- <entry>The component is designed for displaying a progress bar which shows the current status of the process. </entry>
- </row>
- <row>
- <entry>rich:tree</entry>
- <entry>The component is designed for hierarchical data presentation and is applied for building a tree structure with a drag-and-drop capability. The component also uses built-in drag and drop.</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Main views</title>
- <para>The following section contains some most importants screenshots provided with additional comments.
- </para>
- <para>Starting page of the "Photo album" contains some basic information about RichFaces an log-in fields:
- </para>
- <figure>
- <title>"Photo album" start page</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/rw_its_start.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Three users where created for test purposes. Their names, passes and albums are listed in the table below:</para>
- <table>
- <title>Components used in "Photo album"</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Pass</entry>
- <entry>Albums</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>amarkhel</entry>
- <entry>12345</entry>
- <entry>Cars, Tetki</entry>
- </row>
- <row>
- <entry>root</entry>
- <entry>12345</entry>
- <entry>Football</entry>
- </row>
- <row>
- <entry>qqqq</entry>
- <entry>12345</entry>
- <entry>Japan, Music</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>Not registered users should proceed with registration. The registration requires following fields:
- <itemizedlist>
- <listitem><para>First name</para></listitem>
- <listitem><para>Second name</para></listitem>
- <listitem><para>Login</para></listitem>
- <listitem><para>Password</para></listitem>
- <listitem><para>Confirm</para></listitem>
- <listitem><para>Email</para></listitem>
- <listitem><para>Birth Date</para></listitem>
- <listitem><para>Avatar</para></listitem>
-
-
- </itemizedlist>
-
- </para>
-
- <para>After loging in the user gets to his personal page. It interface consists of menu bar, albums panels and working area.
- </para>
- <figure>
- <title>Personal page</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/rw_its_pers.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>The system "Message" service:
- </para>
- <figure>
- <title>Personal page</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/rw_its_mess.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <note>
- <title>Note:</title>
- <para>The work on "Photo Album is in progress". The guide will be augumented with inforamtion.</para>
- </note>
- </section>
-
-
-
-
-
-
-</chapter>
-
15 years, 8 months
JBoss Rich Faces SVN: r13735 - trunk/docs/realworld_app_guide/en/src/main/resources/images.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2009-04-21 11:00:48 -0400 (Tue, 21 Apr 2009)
New Revision: 13735
Added:
trunk/docs/realworld_app_guide/en/src/main/resources/images/messages_en_property.png
Log:
RF-5768: Real World Demo Application Tutorial Update for 3.3.1 release
Added: trunk/docs/realworld_app_guide/en/src/main/resources/images/messages_en_property.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/realworld_app_guide/en/src/main/resources/images/messages_en_property.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 8 months