需求:如果在我们的系统中要实现一个打印功能,它类似于会议上每个嘉宾面前折叠树立的名片,要制作这样的名片,需要在一张纸上实现文字的倒立功能。
oracle adf有自己的skins,这包括一套images图片,和一些css样式,如果我们想改变oracle adf框架原有的样式时,该怎么办呢?让我们来分析一下:
1、在jspx文件里直接加入css引用不太现实,因为里面根本不支持css引用的标签嵌入。
2、直接使用jsp,在jsp中使用css,这种方法经过测试可行。
那么,根据分析1,我们是否也可用实现css的引用呢,其实oracle adf有自己的css引用机制,我们可用按照下面步骤进行自定义css(当然,你的css中用到图片,你还需将图片也拷贝到你的项目中)
1、在项目里创建public_html\skins\javaeduSkin\javaedu.css,并在其中加入如下css内容:
.upsideDown{
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); /* IE6,IE7 */
ms-filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); /* IE8 */
-moz-transform: rotate(-180deg); /* FF3.5+ */
-o-transform: rotate(-180deg); /* Opera 10.5 */
-webkit-transform: rotate(-180deg); /* Safari 3.1+, Chrome */
position: absolute;
font-size:100px; text-align:center;
}
2、在WEB-INF下创建trinidad-skins.xml,在其中加入如下代码:
<skins xmlns="http://myfaces.apache.org/trinidad/skin">
<skin>
<id>javaedu.desktop</id>
<family>javaeduSkin</family>
<extends>blafplus-rich.desktop</extends>
<render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
<style-sheet-name>skins/javaeduSkin/javaedu.css</style-sheet-name>
</skin>
</skins>
3、在WEB-INF下创建trinidad-config.xml,在其中加入如下代码:
<trinidad-config xmlns="http://myfaces.apache.org/trinidad/config">
<skin-family>javaeduSkin</skin-family>
</trinidad-config>
3、创建public_html\pages\javaedu-font.jspx,其中重点内容如下:
<af:panelSplitter id="ps1" orientation="vertical" splitterPosition="300"
collapsed="false" disabled="true"
inlineStyle="margin-top:50px;">
<f:facet name="first">
<af:outputText value="redhacker.iteye.com" id="otww3" styleClass="upsideDown"/>
</f:facet>
<f:facet name="second">
<af:outputText value="redhacker.iteye.com" id="ot3"
inlineStyle="font-size:100px; text-align:center;"/>
</f:facet>
</af:panelSplitter>
其中,
styleClass="upsideDown"就是引用了我们自己定义的css。
4、将javaedu-font.jspx拖入adfc-config.xml中,产生一个view组件,如下图:
5、通过http://127.0.0.1:7101/Demo-zcUI-context-root/faces/javaedu-font,将可用预览自动的css效果,如下图:
关于分析2的,这里就不在累述,因为跟我们普通的使用方法是一样的,呵呵。
补充说明:如果我们要重写oracle adf框架默认的skins,需要在javaedu.css里将所有组件的默认样式重新定义一遍。