Paginação com ADF Faces

Olá amigos

Utilizo JSF com componentes ADF e tenho uma duvida com o componente af:table:

  • Como fazer para que os itens de paginação apareçam tanto no topo da tabela como em baixo? Eu só consigo visualizar estes ítens no topo.

Abraços

Minha SKIN (a purple do exemplo que vem com o ADFDemo):


/** Change the colors to purple **/

/** All these styles/icons/properties are overrides of the simple skin */

/** :alias means that this class or icon is not used directly. It is included
in other component's style selectors or other component's icons. It is 
meant to be a fast way to change styles. The alternative is to style each 
component. **/
.AFInstructionText
{
  font-size: medium;
}

.AFDarkForeground:alias {color:#035D5C;}
.AFDarkBackground:alias {background-color:Purple;}

/** tables **/
.AFDetailDisclosedIcon:alias {content:url(/skins/purple/images/hsd.gif)}
.AFDetailUndisclosedIcon:alias {content:url(/skins/purple/images/hsu.gif)}



/** In the base styles, AFDarkBorder uses the background-color of 
    AFDarkBackground for its border color, so no need to set it directly. */
    
/* make up a color for hovering over menuTabs and menuBars */
/* put the extension :alias so it won't get written out to the final css file,
   cuz I know it won't be used directly. Instead it will be included in
   other style definions using the -ora-rule-ref property. */
.MyLinkHoverColor:alias { color:Lime; }


/* a teal color */
.AFLinkForeground:alias {color:#008080}

/** BUTTON STYLES. Notice the right to left icons are specified with the
:rtl pseudo-class. If :rtl icons are not specified, we default to non-:rtl icons. **/

/** use this to color the button background and text **/
.AFButtonServerText:alias {background-color:#CECFCE; color:#25009E}
/* antialias the text for our disabled buttons */
.AFButtonServerTextDisabled:alias {background-color:#F0F0F0; color:gray;-ora-text-antialias:true}


.AFButtonStartIcon:alias {content:url(/skins/purple/images/btns.gif); width:7px; height:18px}

.AFButtonStartIcon:alias:rtl {content:url(/skins/purple/images/btne.gif); width:7px; height:18px}

.AFButtonEndIcon:alias {content:url(/skins/purple/images/btne.gif); width:7px; height:18px}
.AFButtonEndIcon:alias:rtl {content:url(/skins/purple/images/btns.gif); width:7px; height:18px}

.AFButtonTopBackgroundIcon:alias {content:url(/skins/purple/images/btntb.gif); width:1px; height:2px}
.AFButtonTopBackgroundIcon:alias:rtl {content:url(/skins/purple/images/btntb.gif); width:1px; height:2px}

.AFButtonBottomBackgroundIcon:alias {content:url(/skins/purple/images/btnbb.gif); width:1px; height:2px}
.AFButtonBottomBackgroundIcon:alias:rtl {content:url(/skins/purple/images/btnbb.gif); width:1px; height:2px}

.AFButtonDisabledStartIcon:alias {content:url(/skins/purple/images/btnds.gif); width:7px; height:18px}
.AFButtonDisabledStartIcon:alias:rtl {content:url(/skins/purple/images/btnde.gif); width:7px; height:18px}
.AFButtonDisabledEndIcon:alias {content:url(/skins/purple/images/btnde.gif); width:7px; height:18px}
.AFButtonDisabledEndIcon:alias:rtl {content:url(/skins/purple/images/btnds.gif); width:7px; height:18px}

.AFButtonDisabledTopBackgroundIcon:alias {content:url(/skins/purple/images/btndtb.gif); width:1px; height:2px}

.AFButtonDisabledBottomBackgroundIcon:alias {content:url(/skins/purple/images/btndbb.gif); width:1px; height:2px}

/** generic background for light panelBox's or shuttles **/
.AFBoxBackground:alias {background-color:#E3E1E1;}

/** when the panelBox is dark, this is the background color */
.AFPanelBoxDarkBackground:alias {background-color:green}

/** showOneTab **/
/** ---------- **/
/** .AFShowOneTab:alias is included in af|showOneTab::orientation-top and 
    af|showOneTab::orientation-bottom which are the styles on the table. **/
.AFShowOneTab:alias {
  background-color:#BB95BB; 
  text-align:center;
}
/** make the top tab bar have a solid border underneath **/
af|showOneTab::orientation-top
{
  border-bottom: 3px solid black;
}
/** make the bottom tab bar have a solid border on top **/
af|showOneTab::orientation-bottom
{
  border-top: 3px solid black;
}

af|showOneTab::separator {
  margin-width:4px;
  border-top: #BB95BB; solid 4pt ;
  border-bottom: #BB95BB; solid 4pt ;
  BACKGROUND-COLOR: white;
  PADDING-LEFT: 1px;}

af|showOneTab::tab {
  font-weight:bold;
  font-family:Tahoma; 
  padding:2px 8px;
}

af|showOneTab::tab-selected {
  font-family:Tahoma;
  padding:2px 8px; 
  text-decoration: none; 
  background-color:white
}  

af|showOneTab::tab-link {
  color:white;
  text-decoration: none;
}

af|showOneTab::tab-link:hover
{
  -ora-rule-ref:selector(".MyLinkHoverColor:alias");
}

/* put some space in the
first cell */
af|showOneTab::cell-start {
  background-color:transparent; 
  padding-left:10px
}
/** put some space between the tabs and the body */
af|showOneTab::body
{
  padding: 10px;
}

/** panelPage's footer area **/
/** ----------------------- **/
.AFFooterMessageText:alias
{
  padding:2px 6px;
}

/** menuTabs **/
/** -------- **/
/** You can create borders, and have image-free tabs, or you can use the
    icon keys (e.g., af|menuTabs::selected-start-icon)to create tabs with
    rounded borders. The icons are used below,
    but you can comment them out if you want. */
/** this isn't needed when we are using icons for the tabs(but the padding helps!)
.AFTabBarItem:alias
{
  border-style:solid; 
  border-color:#5D025E;
  border-width: 3px 2px 0px 2px;
  padding:2px 6px;
  background-color: Purple;
}
**/
.AFTabBarItem:alias
{
  line-height:100%;
  padding:2px 6px;
}
/* Remove the text decoration from all tabBar links  */
.AFTabBarLink:alias
{
  text-decoration:none;
}
/* Make the selected tab bold */
af|menuTabs::selected-link
{
  font-weight: bold;
  font-size: 14pt;
  color: white;
}
af|menuTabs::enabled-link
{
  color: white;
}

af|menuTabs::enabled-link:hover
{
  -ora-rule-ref:selector(".MyLinkHoverColor:alias");
}


/** menuTabs that use icons are define like the following */
af|menuTabs::enabled-start-icon
{
  content:url(/skins/purple/images/menuTabsEnabledStart.gif); width:8px; height: 26px;
}
af|menuTabs::enabled-start-icon:rtl
{
  content:url(/skins/purple/images/menuTabsEnabledEnd.gif); width:8px; height: 26px;
}
af|menuTabs::enabled-end-icon
{
  content:url(/skins/purple/images/menuTabsEnabledEnd.gif); width:8px; height: 26px;
}
af|menuTabs::enabled-end-icon:rtl
{
  content:url(/skins/purple/images/menuTabsEnabledStart.gif); width:8px; height: 26px;
}
af|menuTabs::enabled-join-icon
{
  content:url(/skins/purple/images/menuTabsEnabledJoin.gif); width:15px; height: 26px;
}
af|menuTabs::enabled-background-icon
{
  content:url(/skins/purple/images/menuTabsEnabledBackgroundGrdt.gif); width:1px; height: 26px;
}

af|menuTabs::selected-enabled-join-icon
{
  content:url(/skins/purple/images/menuTabsSelectedEnabledJoin.gif); width:15px; height: 26px;
}
af|menuTabs::selected-enabled-join-icon:rtl
{
  content:url(/skins/purple/images/menuTabsEnabledSelectedJoin.gif); width:15px; height: 26px;
}
af|menuTabs::enabled-selected-join-icon
{
  content:url(/skins/purple/images/menuTabsEnabledSelectedJoin.gif); width:15px; height: 26px;
}
af|menuTabs::enabled-selected-join-icon:rtl
{
  content:url(/skins/purple/images/menuTabsSelectedEnabledJoin.gif); width:15px; height: 26px;
}


af|menuTabs::selected-start-icon
{
  content:url(/skins/purple/images/menuTabsSelectedStart.gif); width:8px; height: 26px;
}
af|menuTabs::selected-start-icon:rtl
{
  content:url(/skins/purple/images/menuTabsSelectedEnd.gif); width:8px; height: 26px;
}
af|menuTabs::selected-end-icon
{
  content:url(/skins/purple/images/menuTabsSelectedEnd.gif); width:8px; height: 26px;
}
af|menuTabs::selected-end-icon:rtl
{
  content:url(/skins/purple/images/menuTabsSelectedStart.gif); width:8px; height: 26px;
}

af|menuTabs::selected-join-icon
{
  content:url(/skins/purple/images/menuTabsSelectedJoin.gif); width:15px; height: 26px;
}
af|menuTabs::selected-join-icon
{
  content:url(/skins/purple/images/menuTabSelectedJoin.gif); width:15px; height: 26px;
}
af|menuTabs::selected-background-icon
{
  content:url(/skins/purple/images/menuTabsSelectedBackground.gif); width:1px; height: 26px;
}
/** menuBar **/
/** ------- **/
af|menuBar
{
  border-width: 3px 2px 0px 2px;
  border-style:solid;
  -ora-rule-ref:selector(".AFDarkBorder:alias");
  padding: 12px;
}

af|menuBar::selected-link
{
  font-weight:bold;
}
af|menuBar::enabled-link:hover
{
  -ora-rule-ref:selector(".MyLinkHoverColor:alias");
}
af|menuBar::separator
{
    padding: 0px 2px 0px 2px;
}

/** menuButtons **/
/** ----------- **/
.AFMenuButtons:alias
{
  padding:0px 2px 2px 4px;
}

/** panelBox **/
/*  ------------   */

af|panelBox::medium-header-start-icon
{
  content:url(/skins/purple/images/panelBoxStart.gif); 
  width:8px; 
  height:26px
}
af|panelBox::medium-header-end-icon
{
  content:url(/skins/purple/images/panelBoxEnd.gif);
  width:8px; 
  height:26px  
}

.AFPanelBoxBody:alias
{
  background-color: #E7E4EA;
  border-color: purple;
  border-style:solid;
  border-width:3px;
  margin:2px;
}

af|panelBox::header
{
  padding: 3px 3px;
  -ora-rule-ref: selector(".AFMediumFont:alias");
  font-weight: bold;
}
/* for panelBox without a header and shuttles */
.AFBoxContentBody:alias
{
  background-color: white;
  border-color: #E7E4EA;
  border-style:solid;
  border-width:3px;
  margin:2px; 
  padding:5px;
}

/** panelHeader **/
/** ----------- **/
af|panelHeader
{
  -ora-rule-ref:selector(".AFDarkAccentBorder:alias");
   border-width:0px 0px 1px 0px;
   border-style:solid;
   vertical-align:bottom;
   margin-bottom:3px;
   padding:0px 3px;
   font-weight:bolder;
   font-size:larger;
}

/** selectInputDate launch icon **/
af|selectInputDate::launch-icon
{
  content:url(/skins/purple/images/dateButtonPurple.gif); 
  width:19px; 
  height:24px
}
af|selectInputDate::launch-icon:rtl
{
  content:url(/skins/purple/images/dateButtonPurpleRTL.gif); 
  width:19px; 
  height:24px
}

/** processTrain **/
/** ------------ **/
/**  We override the AFTrainStation alias style to add some
       padding, and also to display the station indicator
       using a top border **/
.AFTrainStation:alias
{
  border-style:solid;
  border-width:3px 0px 0px 0px;
  padding:3pt;
}

/** selectBooleanCheckbox **/
/** ---------------------  **/
af|selectBooleanCheckbox::read-only-unchecked-icon
{
  content:url(/skins/purple/images/checkrn.gif);
}
af|selectBooleanCheckbox::read-only-checked-icon
{
  content:url(/skins/purple/images/checkrc.gif);
}

af|selectBooleanCheckbox::disabled-only-unchecked-icon
{
  content:url(/skins/purple/images/checkdn.gif);
}
af|selectBooleanCheckbox::disabled-only-checked-icon
{
  content:url(/skins/purple/images/checkdc.gif);
}

/* use special properties to change the ui **/
/* don't show the last item in menuPath (the default is to show it)*/
af|menuPath {-ora-show-last-item:false}

/** if, for some reason, you don't want an icon to show up, you
    can hide it like this (this feature will be more useful when skins can
    extends other skins besides simple)

af|menuPath::separator-icon {content:inhibit}    
*/

.AFHeaderErrorIcon:alias 
{
  content:url(/skins/purple/images/errorl.gif); width:18px; height: 18px;

}

af|messages
{
  -ora-rule-ref: selector("AFVeryDarkAccentBorder:alias");
  border-style:solid;
  border-width:1px;
  padding:5px;
  margin:5px 0px 0px;
}

af|messages::header
{
  -ora-rule-ref: selector("AFDarkAccentBorder:alias");
  border-width:0px 0px 1px 0px;
  border-style:solid;
  vertical-align:bottom;
  margin-bottom:3px;
  padding:0px 3px;
}

.AFHeaderText:alias
{
  -ora-rule-ref: selector("AFDarkForeground:alias");
  font-weight:bold;
  padding: 0px;
  margin: 0px;
}

/* custom styles that I made up and set on the styleClass attribute of various
adf faces components */
.adfFacesDemoSearchPanelGroup
{
  width:100%;
  background-color:#B1A9BC;
  padding:8px 0px 8px 12px;
  border-color:purple;border-style:solid; border-width:2px;
}


.welcomePanel
{
  padding-left:0px;
  width:100%;
  background-color:#E7E4EA;
  margin-bottom:10px;
  padding-bottom:10px;
  padding-top:10px;
  text-align:center;

}
.panelBoxHeader
{
  font-family: verdana,arial,helvetica,sans-serif; 
  color:#035D5C;
  font-weight:bold; 
  font-size:small;
}