/*
* � Copyright IBM Corp. 2010, 2011
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout;
import com.ibm.xsp.extlib.renderkit.html_extended.layout.AbstractApplicationLayoutRenderer;
import com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout.tree.OneUIApplicationLinksRenderer;
import com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout.tree.OneUIFooterLinksRenderer;
import com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout.tree.OneUIPlaceBarActionsRenderer;
import com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout.tree.OneUISearchOptionsRenderer;
import com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout.tree.OneUITitleBarTabsRenderer;
import com.ibm.xsp.extlib.renderkit.html_extended.oneui.layout.tree.OneUIUtilityLinksRenderer;
import com.ibm.xsp.extlib.resources.OneUIResources;
/**
* One UI application renderer.
*
* @author priand
*/
public class OneUIApplicationLayoutRenderer extends AbstractApplicationLayoutRenderer {
// OneUI specific rendering properties
@Override
protected Object getProperty(int prop) {
switch(prop) {
case PROP_BLANKIMG: return OneUIResources.get().BLANK_GIF;
// -- Framework
case PROP_MAINFRAMETAG: return "div"; // $NON-NLS-1$
//case PROP_MAINFRAMESTYLE: return "";
case PROP_MAINFRAMECLASS: return "lotusFrame"; // $NON-NLS-1$
// -- Banner
case PROP_BANNERTAG: return "div"; // $NON-NLS-1$
//case PROP_BANNERSTYLE: return "";
case PROP_BANNERCLASS: return "lotusBanner"; // $NON-NLS-1$
case PROP_BANNERROLE: return "banner"; // $NON-NLS-1$
case PROP_BANNERINNER1CLASS: return "lotusRightCorner"; // $NON-NLS-1$
case PROP_BANNERINNER2CLASS: return "lotusInner"; // $NON-NLS-1$
case PROP_BANNERLINKACCESSKEY: return "S"; // $NLS-AbstractApplicationLayoutRenderer.banner_link_accesskey-1$;
case PROP_BANNERLINKALT: return "Skip to main content link. Accesskey S"; // $NLS-AbstractApplicationLayoutRenderer.SkiptomaincontentlinkAccesskeyS-1$;
case PROP_BANNERLINKHREF: return "#lotusMainContent"; // $NON-NLS-1$
case PROP_BANNERLINKCLASS: return "lotusAccess"; // $NON-NLS-1$
// -- Banner, Product Logo
case PROP_PRODUCTLOGOSTYLE: return "float:left;vertical-align:middle;margin-right: 5px;"; // For OneUI 2.1 $NON-NLS-1$
// -- Banner, Application Links
case PROP_APPLICATIONLINKSRENDERER: return new OneUIApplicationLinksRenderer();
// -- Banner, Utility Links
case PROP_UTILITYLINKSRENDERER: return new OneUIUtilityLinksRenderer();
// -- Title Bar (tabs area)
case PROP_TITLEBARLINKSRENDERER: return new OneUITitleBarTabsRenderer();
case PROP_TITLEBARTAG: return "div"; // $NON-NLS-1$
case PROP_TITLEBARCLASS: return "lotusTitleBar"; // $NON-NLS-1$
case PROP_TITLEBARTRAILINGCORNERCLASS: return "lotusRightCorner"; // $NON-NLS-1$
case PROP_TITLEBARINNERCLASS: return "lotusInner"; // $NON-NLS-1$
// note the titleBarNav area is only present in v3 & later
case PROP_TITLEBARNAVTAG: return "div"; // $NON-NLS-1$
case PROP_TITLEBARNAVARIALABEL: return null;
case PROP_TITLEBARNAVROLE: return "navigation"; // $NON-NLS-1$
case PROP_TITLEBARNAMECLASS: return "lotusEllipsis"; //$NON-NLS-1$
// -- Title Bar, Search
case PROP_SEARCHBAROPTIONSRENDERER: return new OneUISearchOptionsRenderer();
case PROP_SEARCHBARCLASS: return "lotusSearch"; // $NON-NLS-1$
// note role=search is only explicitly required by OneUIv3, but is added here anyway
case PROP_SEARCHBARROLE: return "search"; //$NON-NLS-1$
case PROP_SEARCHBARTABLELAYOUT: return 1; /*1 - always use table layout*/
case PROP_SEARCHBARTABLECLASS: return "lotusLayout"; // $NON-NLS-1$
case PROP_SEARCHBARTABLECELLSPACING: return "0"; // $NON-NLS-1$
case PROP_SEARCHBARTABLEROLE: return "presentation"; //$NON-NLS-1$
case PROP_SEARCHBOXCLASS: return "lotusText lotusInactive"; // $NON-NLS-1$
case PROP_SEARCHBOXINACTIVETEXT: return "Search..."; // $NLS-AbstractApplicationLayoutRenderer.searchInactiveText-1$
// set height:auto because OneUI forces it to 1.33em which makes it unaligned
case PROP_SEARCHBOXSTYLE: return "height: auto;"; // $NON-NLS-1$
case PROP_SEARCHBUTTONOUTERTAG: return "span"; //$NON-NLS-1$
case PROP_SEARCHBUTTONOUTERCLASS: return "lotusBtnImg"; // $NON-NLS-1$
// Note, the OneUI 2.1 spec has a title on the outer span,
// and has the same text as alt text, but they would be read out
// twice by a screen reader. Lotus Connections doesn't use the
// outer span title. So removing the outer title (2011-09-30).
case PROP_SEARCHBUTTONOUTERTITLE: return null;
// Note, the OneUI 2 spec uses an INPUT for the submit button,
// but this is using a link tag instead.
case PROP_SEARCHBUTTONUSELINK: return true;
case PROP_SEARCHBUTTONCLASS: return "lotusSearchButton"; // $NON-NLS-1$
case PROP_SEARCHBUTTONALT: return "submit search"; // $NLS-AbstractApplicationLayoutRenderer.submit_search_alt-1$
// -- Place Bar
case PROP_PLACEBARLINKSRENDERER: return new OneUIPlaceBarActionsRenderer();
case PROP_PLACEBARCLASS: return "lotusPlaceBar"; // $NON-NLS-1$
case PROP_PLACEBARTRAILINGCORNERCLASS: return "lotusRightCorner"; // $NON-NLS-1$
case PROP_PLACEBARINNERCLASS: return "lotusInner"; // $NON-NLS-1$
case PROP_PLACEBARNAMETAG: return "h2"; // $NON-NLS-1$
// This is set by lotusForm - reset it here...
case PROP_PLACEBARNAMESTYLE: return "margin:0px 0px 0px 0px"; // $NON-NLS-1$
case PROP_PLACEBARNAMECLASS: return null;
// -- Main Content
case PROP_MAINAREACLASS: return "lotusMain"; // $NON-NLS-1$
case PROP_COLUMNFIRSTCLASS: return "lotusColLeft"; // $NON-NLS-1$
case PROP_COLUMNLASTTAG: return "div"; //$NON-NLS-1$
case PROP_COLUMNLASTCLASS: return "lotusColRight"; // $NON-NLS-1$
case PROP_MAINCONTENTANCHORID: return "lotusMainContent"; // $NON-NLS-1$
case PROP_MAINCONTENTANCHORNAME: return "lotusMainContent"; // $NON-NLS-1$
case PROP_MAINCONTENTCLASS: return "lotusContent"; // $NON-NLS-1$
case PROP_MAINCONTENTROLE: return "main"; // $NON-NLS-1$
// -- Footer
case PROP_FOOTERLINKSRENDERER: return new OneUIFooterLinksRenderer();
case PROP_FOOTERTAG: return "div"; // $NON-NLS-1$
case PROP_FOOTERCLASS: return "lotusFooter"; // $NON-NLS-1$
case PROP_FOOTERROLE: return null; //$NON-NLS-1$
// -- Legal
case PROP_LEGALTABLECLASS: return "lotusLegal"; // $NON-NLS-1$
case PROP_LEGALTABLECELLSPACING: return "0"; // $NON-NLS-1$
case PROP_LEGALTABLEROLE: return "presentation"; // $NON-NLS-1$
case PROP_LEGALTEXTCLASS: return "lotusLicense"; // $NON-NLS-1$
}
return super.getProperty(prop);
}
}