You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by au...@vectorsoftware.ro on 2009/04/01 09:34:40 UTC
Re: Mobile Agents (Blackberry)
Hi Tadashi,
Thank you for your post . It's very helpful . But I have two 2 questions (I have more , but 2 is enough).
1. What simulators do you use ? I put you this question because I find very hard to use the ones from the blackberry . I read some times ago about an add on for mozilla for changing user-agent . Do you know more about this?
2. How I do tracing of my JSF applications ? I interested more about the 2 jars trinidad-api.jar and trinidad-impl.jar . I love to read logs . There I can see many JSF internals.
I am interested more in charting . This is area where I want to insist .
Of course I want everything you can share with me - documentation,articles,code samples
Thanks again.
Best Regards,
Aurel
--- Original Message ---
> Hi Aurel,
>
> Trinidad groups BlackBerry devices to two major groups.
> BlackBerry 4.5.x
> or lower (e.g. Curve and Pearl) or BlackBerry 4.6 (Bold) or
> higher
> (Storm is 4.7).
> BlackBerry 4.5.x or lower does not support XMLHttpRequest
> (needed to run
> Ajax) and some capabilities are more restrictive than BlackBerry
> 4.6 or
> higher. The most significant restriction is the performance.
> Once
> JavaScript is used on these devices, the page load will take
> much longer
> and usability suffers from it. Not to mention the transfer
> time to
> download Trinidad's large JavaScript file. (Though it is cached
> and it
> is not a problem on subsequent page load, the initial page
> load will
> give negative user experience.) It was our decision not to use
>
> JavaScript fir BlackBerry 4.5.x or lower. (see
> http://myfaces.apache.org/trinidad/devguide/mobile.html#Basic_XHTML_Browser_Support,
>
> and
> http://myfaces.apache.org/trinidad/devguide/mobile.html#BlackBerry_4.5_Lower)
> On the other hand, Blackberry 4.6 and higher has better
> performance. It
> supports XMLHttpRequest. Its JavaScript and DOM support are
> good. So we
> decided to enable JavaScript and Ajax partial page rendering.
> It is
> basically as functional as iPhone or even desktop browsers.
>
> There are some Trinidad renderer logic that is specific to
> BlackBerty in
> order to supplement lack of JavaScript and CSS implementation
> in the
> BlackBerry browsers, but they are transparent to the application.
>
> I have created some sample demo apps to test Trinidad mobile
> support. I
> did not need to do anything special, except for designing the
> UI to fit
> in a small screen - that is always the case for mobile UI
> development.
> There are some techniques/snippets that can be used for mobile
> web page
> development I can share with you if you are interested.
>
> Use of skinning for different device types is useful in mobile
>
> development. See
> http://myfaces.apache.org/trinidad/devguide/mobile.html#Skinning
> for
> more info.
>
> General info is at http://myfaces.apache.org/trinidad/devguide/mobile.html.
>
> I have developed some sample demo apps. There are some techniques
> that
> may be useful in mobile application development. Below is an
> example of
> it. If you are interested, I can share more, but let me know
> if you have
> specific problem/areas you want to work on.
>
> Thanks,
> Tadashi
>
> Note that the table contains 1 column. In the column several
> fields are
> rendered. This is one of the technique effective on small
> screen.
>
> <?xml version='1.0' encoding='windows-1252'?>
> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:trh="http://myfaces.apache.org/trinidad/html"
> xmlns:tr="http://myfaces.apache.org/trinidad">
> <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
> doctype-system="http://www.w3.org/TR/html4/loose.dtd"
> doctype-public="-//W3C//DTD HTML 4.01
> Transitional//EN"/>
> <jsp:directive.page contentType="text/html;charset=windows-1252"/>
> <f:view>
> <trh:html>
> <trh:head title="mybank Online">
> <meta http-equiv="Content-Type"
> content="text/html; charset=windows-1252"/>
> <f:verbatim rendered="#{AgentUtil.phoneFamily ==
> 'BB4_6Family' ?
> 'true' : 'false'}">
> <meta name="viewport" content="width=device-width;
>
> initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
> </f:verbatim>
> <f:verbatim rendered="#{AgentUtil.phoneFamily ==
> 'iphoneFamily'
> ? 'true' : 'false'}">
> <meta name="viewport" content="width=320;
> initial-scale=1.0;
> maximum-scale=1.0; user-scalable=0;"/>
> </f:verbatim>
> </trh:head>
> <trh:body>
> <!--tr:messages/-->
> <h:form>
> <tr:image source="/images/mybankbandnarrow.gif"/>
> <tr:panelHeader styleClass="toolbar" text="Accounts">
> <tr:commandLink text="Sign Off" styleClass="button"
> action="signoff"></tr:commandLink>
> </tr:panelHeader>
> <div id="certlist" class="panelBase">
> <tr:commandButton styleClass="button1" text="Transfer.."
> action="transfer"/>
> <tr:spacer rendered="#{AgentUtil.needSpacer}"
> height="5" width="15"/>
> <tr:commandButton styleClass="button1" text="Billpay.."
> action="billpay"/>
>
> <tr:table value="#{bindings.AccountView1.collectionModel}"
> styleClass="multirowTable"
> horizontalGridVisible="false"
> var="row" rows="5"
> emptyText="#{bindings.AccountView1.viewable
> ? 'No
> data to display.' : 'Access Denied.'}"
> width="100%">
> <tr:column>
> <tr:panelGroupLayout
> layout="#{AgentUtil.phoneFamilyDebug=='minimalFamily' ?
> 'horizontal' :
> 'vertical'}"
> styleClass="listing">
> <tr:image styleClass="listingImage"
>
> source="#{row.bindings.TypeIconUrl.inputValue} != '' ?
> #{row.bindings.TypeIconUrl.inputValue} : "/>
> <tr:commandLink text="#{row.bindings.Name.inputValue}"
> action="detail"
> styleClass="listingLink">
> <tr:setActionListener
> from="#{row.bindings.AccountId.inputValue}"
> to="#{sessionScope.accountId}"/>
> </tr:commandLink>
> <tr:spacer rendered="#{AgentUtil.needSpacer}"
> height="5" width="5"/>
> <tr:outputText value="#{row.bindings.Balance.inputValue}"
> styleClass="listingDetails">
> <f:converter converterId="Bank10.amountConverter"/>
> </tr:outputText>
> </tr:panelGroupLayout>
> </tr:column>
> </tr:table>
> <tr:separator/>
>
> <tr:commandButton styleClass="button1" text="Find
> ATM"
> action="ATM"/>
>
> <tr:spacer rendered="#{AgentUtil.needSpacer}"
> height="5" width="15"/>
> <tr:commandButton styleClass="button1" text="Find
> Branch"
> action="branches"/>
> </div>
> <tr:image source="/images/mybankbandnarrow.gif"/>
> </h:form>
> </trh:body>
> </trh:html>
> </f:view>
> </jsp:root>
>
> AgentUtil.java
> import javax.faces.context.FacesContext;
> import javax.servlet.http.HttpServletRequest;
>
> public class AgentUtil {
> private String phoneFamily;
> private String BLACKBERRY4_2_SKIN = "BB4_2Family";
> private String BLACKBERRY4_6_SKIN = "BB4_6Family";
> /* We will use common skin for both 4_6 and 4_7
> */
> private String BLACKBERRY4_7_SKIN = "BB4_6Family";
> private String IPHONE_SKIN = "iphoneFamily";
> private String WINDOWS_FAMILY = "windowsFamily";
> private String SYMBIAN_SKIN = "symbianFamily";
> private String FIREFOX_SKIN = "firefoxFamily";
> private String DEFAULT_SKIN = "minimalFamily";
> private String phoneFamilyDebug;
> private boolean narrowScreen;
> private boolean forceWideScreen = false;
> private boolean supportsDVT_PNG;
> private boolean needSpacer;
>
> public AgentUtil() {
> phoneFamily = "";
> phoneFamily=getPhoneFamily();
> narrowScreen=getNarrowScreen();
> }
>
> /**
> * Used for skinning. Can be used in page definition for
> * agent specific rendering.
> */
> public String getPhoneFamily() {
> if (phoneFamily.isEmpty())
> {
> FacesContext fc = FacesContext.getCurrentInstance();
> HttpServletRequest req =
> (HttpServletRequest)fc.getExternalContext().getRequest();
> String agent = req.getHeader("User-Agent");
> System.out.println(agent);
>
> if (agent != null && agent.indexOf("iPhone") > -1)
> {
> phoneFamily = IPHONE_SKIN;
> } else if (agent != null && agent.indexOf("Symbian")
> > -1) {
> phoneFamily = SYMBIAN_SKIN;
> } else if (agent != null && agent.indexOf("iPhone")
> > -1) {
> phoneFamily = IPHONE_SKIN;
> } else if (agent != null && agent.indexOf("WebKit")
> > -1) {
> phoneFamily = IPHONE_SKIN;
> } else if (agent != null && agent.indexOf("BlackBerry95")
> >
> -1) {
> System.out.println("BlackBerry9x");
> phoneFamily = BLACKBERRY4_7_SKIN;
> } else if (agent != null && agent.indexOf("BlackBerry90")
> >
> -1) {
> System.out.println("BlackBerry9x");
> phoneFamily = BLACKBERRY4_6_SKIN;
> } else if (agent != null && agent.indexOf("BlackBerry88")
> >
> -1) {
> phoneFamily = DEFAULT_SKIN;
> forceWideScreen = true;
> } else if (agent != null && agent.indexOf("BlackBerry83")
> >
> -1) {
> phoneFamily = DEFAULT_SKIN;
> forceWideScreen = true;
> } else if (agent != null && agent.indexOf("BlackBerry")
> > -1) {
> phoneFamily = DEFAULT_SKIN;
> } else if (agent != null && agent.indexOf("Windows
> CE") > -1) {
> phoneFamily = WINDOWS_FAMILY;
> } else if (agent != null && agent.indexOf("Firefox")
> > -1) {
> phoneFamily = FIREFOX_SKIN;
> } else {
> phoneFamily = DEFAULT_SKIN;
> }
> }
> System.out.println(phoneFamily);
> return phoneFamily;
> }
>
> public void setPhoneFamily(String phoneFamily) {
> this.phoneFamily = phoneFamily;
> }
>
> public void setPhoneFamilyDebug(String phoneFamilyDebug)
> {
> this.phoneFamilyDebug = phoneFamilyDebug;
> }
>
> /**
> * @return
> */
> public String getPhoneFamilyDebug() {
> String _phoneFamily = getPhoneFamily();
> if (_phoneFamily.equals(FIREFOX_SKIN) ||
> (_phoneFamily.equals(DEFAULT_SKIN)))
> return DEFAULT_SKIN;
> else
> return _phoneFamily;
> }
>
> public void setNarrowScreen(boolean narrowScreen) {
> this.narrowScreen = narrowScreen;
> }
>
> public boolean getNarrowScreen() {
> return (forceWideScreen==false && getPhoneFamily()==DEFAULT_SKIN);
> }
>
> public void setSupportsDVT_PNG(boolean supportsDVT_PNG)
> {
> this.supportsDVT_PNG = supportsDVT_PNG;
> }
>
> public boolean getSupportsDVT_PNG() {
> String _phoneFamily = getPhoneFamily();
> if (_phoneFamily.equals(DEFAULT_SKIN)) {
> return false;
> }
> return true;
> }
>
> public void setNeedSpacer(boolean needSpacer) {
> this.needSpacer = needSpacer;
> }
>
> public boolean getNeedSpacer()
> {
> String _phoneFamily = getPhoneFamily();
>
> if ((_phoneFamily.equals(DEFAULT_SKIN)) &&
> !this.getNarrowScreen())
> {
> return true;
> }
> return false;
> }
> }
>
>
> aurel.sandu@vectorsoftware.ro wrote:
> > Hello,
> > I have read about rendering Trinidad apps to blackberry devices. Can you give me some links to read about this (some examples , some fragments code from implementation maybe)?
> > Best regards,
> > Aurel
> >
> >
>
Re: Mobile Agents (Blackberry)
Posted by Tadashi Enomori <ta...@oracle.com>.
Hi Aurel,
I use the ones I download from BlackBerry
(https://www.blackberry.com/Downloads/entry.do?code=060AD92489947D410D897474079C1477).
Most of them works fine, but you need to run Email and MDS simulators
4.1.4 (the version is very important) to run later model simulators.
You must go to
http://na.blackberry.com/eng/developers/browserdev/devtoolsdownloads.jsp
to find it.
Chart component does not work on BlackBerry.
Thanks,
Tadashi
aurel.sandu@vectorsoftware.ro wrote:
> Hi Tadashi,
> Thank you for your post . It's very helpful . But I have two 2 questions (I have more , but 2 is enough).
> 1. What simulators do you use ? I put you this question because I find very hard to use the ones from the blackberry . I read some times ago about an add on for mozilla for changing user-agent . Do you know more about this?
> 2. How I do tracing of my JSF applications ? I interested more about the 2 jars trinidad-api.jar and trinidad-impl.jar . I love to read logs . There I can see many JSF internals.
> I am interested more in charting . This is area where I want to insist .
> Of course I want everything you can share with me - documentation,articles,code samples
> Thanks again.
> Best Regards,
> Aurel
>
> --- Original Message ---
>
>> Hi Aurel,
>>
>> Trinidad groups BlackBerry devices to two major groups.
>> BlackBerry 4.5.x
>> or lower (e.g. Curve and Pearl) or BlackBerry 4.6 (Bold) or
>> higher
>> (Storm is 4.7).
>> BlackBerry 4.5.x or lower does not support XMLHttpRequest
>> (needed to run
>> Ajax) and some capabilities are more restrictive than BlackBerry
>> 4.6 or
>> higher. The most significant restriction is the performance.
>> Once
>> JavaScript is used on these devices, the page load will take
>> much longer
>> and usability suffers from it. Not to mention the transfer
>> time to
>> download Trinidad's large JavaScript file. (Though it is cached
>> and it
>> is not a problem on subsequent page load, the initial page
>> load will
>> give negative user experience.) It was our decision not to use
>>
>> JavaScript fir BlackBerry 4.5.x or lower. (see
>> http://myfaces.apache.org/trinidad/devguide/mobile.html#Basic_XHTML_Browser_Support,
>>
>> and
>> http://myfaces.apache.org/trinidad/devguide/mobile.html#BlackBerry_4.5_Lower)
>> On the other hand, Blackberry 4.6 and higher has better
>> performance. It
>> supports XMLHttpRequest. Its JavaScript and DOM support are
>> good. So we
>> decided to enable JavaScript and Ajax partial page rendering.
>> It is
>> basically as functional as iPhone or even desktop browsers.
>>
>> There are some Trinidad renderer logic that is specific to
>> BlackBerty in
>> order to supplement lack of JavaScript and CSS implementation
>> in the
>> BlackBerry browsers, but they are transparent to the application.
>>
>> I have created some sample demo apps to test Trinidad mobile
>> support. I
>> did not need to do anything special, except for designing the
>> UI to fit
>> in a small screen - that is always the case for mobile UI
>> development.
>> There are some techniques/snippets that can be used for mobile
>> web page
>> development I can share with you if you are interested.
>>
>> Use of skinning for different device types is useful in mobile
>>
>> development. See
>> http://myfaces.apache.org/trinidad/devguide/mobile.html#Skinning
>> for
>> more info.
>>
>> General info is at http://myfaces.apache.org/trinidad/devguide/mobile.html.
>>
>> I have developed some sample demo apps. There are some techniques
>> that
>> may be useful in mobile application development. Below is an
>> example of
>> it. If you are interested, I can share more, but let me know
>> if you have
>> specific problem/areas you want to work on.
>>
>> Thanks,
>> Tadashi
>>
>> Note that the table contains 1 column. In the column several
>> fields are
>> rendered. This is one of the technique effective on small
>> screen.
>>
>> <?xml version='1.0' encoding='windows-1252'?>
>> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
>> xmlns:f="http://java.sun.com/jsf/core"
>> xmlns:h="http://java.sun.com/jsf/html"
>> xmlns:trh="http://myfaces.apache.org/trinidad/html"
>> xmlns:tr="http://myfaces.apache.org/trinidad">
>> <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
>> doctype-system="http://www.w3.org/TR/html4/loose.dtd"
>> doctype-public="-//W3C//DTD HTML 4.01
>> Transitional//EN"/>
>> <jsp:directive.page contentType="text/html;charset=windows-1252"/>
>> <f:view>
>> <trh:html>
>> <trh:head title="mybank Online">
>> <meta http-equiv="Content-Type"
>> content="text/html; charset=windows-1252"/>
>> <f:verbatim rendered="#{AgentUtil.phoneFamily ==
>> 'BB4_6Family' ?
>> 'true' : 'false'}">
>> <meta name="viewport" content="width=device-width;
>>
>> initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
>> </f:verbatim>
>> <f:verbatim rendered="#{AgentUtil.phoneFamily ==
>> 'iphoneFamily'
>> ? 'true' : 'false'}">
>> <meta name="viewport" content="width=320;
>> initial-scale=1.0;
>> maximum-scale=1.0; user-scalable=0;"/>
>> </f:verbatim>
>> </trh:head>
>> <trh:body>
>> <!--tr:messages/-->
>> <h:form>
>> <tr:image source="/images/mybankbandnarrow.gif"/>
>> <tr:panelHeader styleClass="toolbar" text="Accounts">
>> <tr:commandLink text="Sign Off" styleClass="button"
>> action="signoff"></tr:commandLink>
>> </tr:panelHeader>
>> <div id="certlist" class="panelBase">
>> <tr:commandButton styleClass="button1" text="Transfer.."
>> action="transfer"/>
>> <tr:spacer rendered="#{AgentUtil.needSpacer}"
>> height="5" width="15"/>
>> <tr:commandButton styleClass="button1" text="Billpay.."
>> action="billpay"/>
>>
>> <tr:table value="#{bindings.AccountView1.collectionModel}"
>> styleClass="multirowTable"
>> horizontalGridVisible="false"
>> var="row" rows="5"
>> emptyText="#{bindings.AccountView1.viewable
>> ? 'No
>> data to display.' : 'Access Denied.'}"
>> width="100%">
>> <tr:column>
>> <tr:panelGroupLayout
>> layout="#{AgentUtil.phoneFamilyDebug=='minimalFamily' ?
>> 'horizontal' :
>> 'vertical'}"
>> styleClass="listing">
>> <tr:image styleClass="listingImage"
>>
>> source="#{row.bindings.TypeIconUrl.inputValue} != '' ?
>> #{row.bindings.TypeIconUrl.inputValue} : "/>
>> <tr:commandLink text="#{row.bindings.Name.inputValue}"
>> action="detail"
>> styleClass="listingLink">
>> <tr:setActionListener
>> from="#{row.bindings.AccountId.inputValue}"
>> to="#{sessionScope.accountId}"/>
>> </tr:commandLink>
>> <tr:spacer rendered="#{AgentUtil.needSpacer}"
>> height="5" width="5"/>
>> <tr:outputText value="#{row.bindings.Balance.inputValue}"
>> styleClass="listingDetails">
>> <f:converter converterId="Bank10.amountConverter"/>
>> </tr:outputText>
>> </tr:panelGroupLayout>
>> </tr:column>
>> </tr:table>
>> <tr:separator/>
>>
>> <tr:commandButton styleClass="button1" text="Find
>> ATM"
>> action="ATM"/>
>>
>> <tr:spacer rendered="#{AgentUtil.needSpacer}"
>> height="5" width="15"/>
>> <tr:commandButton styleClass="button1" text="Find
>> Branch"
>> action="branches"/>
>> </div>
>> <tr:image source="/images/mybankbandnarrow.gif"/>
>> </h:form>
>> </trh:body>
>> </trh:html>
>> </f:view>
>> </jsp:root>
>>
>> AgentUtil.java
>> import javax.faces.context.FacesContext;
>> import javax.servlet.http.HttpServletRequest;
>>
>> public class AgentUtil {
>> private String phoneFamily;
>> private String BLACKBERRY4_2_SKIN = "BB4_2Family";
>> private String BLACKBERRY4_6_SKIN = "BB4_6Family";
>> /* We will use common skin for both 4_6 and 4_7
>> */
>> private String BLACKBERRY4_7_SKIN = "BB4_6Family";
>> private String IPHONE_SKIN = "iphoneFamily";
>> private String WINDOWS_FAMILY = "windowsFamily";
>> private String SYMBIAN_SKIN = "symbianFamily";
>> private String FIREFOX_SKIN = "firefoxFamily";
>> private String DEFAULT_SKIN = "minimalFamily";
>> private String phoneFamilyDebug;
>> private boolean narrowScreen;
>> private boolean forceWideScreen = false;
>> private boolean supportsDVT_PNG;
>> private boolean needSpacer;
>>
>> public AgentUtil() {
>> phoneFamily = "";
>> phoneFamily=getPhoneFamily();
>> narrowScreen=getNarrowScreen();
>> }
>>
>> /**
>> * Used for skinning. Can be used in page definition for
>> * agent specific rendering.
>> */
>> public String getPhoneFamily() {
>> if (phoneFamily.isEmpty())
>> {
>> FacesContext fc = FacesContext.getCurrentInstance();
>> HttpServletRequest req =
>> (HttpServletRequest)fc.getExternalContext().getRequest();
>> String agent = req.getHeader("User-Agent");
>> System.out.println(agent);
>>
>> if (agent != null && agent.indexOf("iPhone") > -1)
>> {
>> phoneFamily = IPHONE_SKIN;
>> } else if (agent != null && agent.indexOf("Symbian")
>>
>>> -1) {
>>>
>> phoneFamily = SYMBIAN_SKIN;
>> } else if (agent != null && agent.indexOf("iPhone")
>>
>>> -1) {
>>>
>> phoneFamily = IPHONE_SKIN;
>> } else if (agent != null && agent.indexOf("WebKit")
>>
>>> -1) {
>>>
>> phoneFamily = IPHONE_SKIN;
>> } else if (agent != null && agent.indexOf("BlackBerry95")
>>
>> -1) {
>> System.out.println("BlackBerry9x");
>> phoneFamily = BLACKBERRY4_7_SKIN;
>> } else if (agent != null && agent.indexOf("BlackBerry90")
>>
>> -1) {
>> System.out.println("BlackBerry9x");
>> phoneFamily = BLACKBERRY4_6_SKIN;
>> } else if (agent != null && agent.indexOf("BlackBerry88")
>>
>> -1) {
>> phoneFamily = DEFAULT_SKIN;
>> forceWideScreen = true;
>> } else if (agent != null && agent.indexOf("BlackBerry83")
>>
>> -1) {
>> phoneFamily = DEFAULT_SKIN;
>> forceWideScreen = true;
>> } else if (agent != null && agent.indexOf("BlackBerry")
>>
>>> -1) {
>>>
>> phoneFamily = DEFAULT_SKIN;
>> } else if (agent != null && agent.indexOf("Windows
>> CE") > -1) {
>> phoneFamily = WINDOWS_FAMILY;
>> } else if (agent != null && agent.indexOf("Firefox")
>>
>>> -1) {
>>>
>> phoneFamily = FIREFOX_SKIN;
>> } else {
>> phoneFamily = DEFAULT_SKIN;
>> }
>> }
>> System.out.println(phoneFamily);
>> return phoneFamily;
>> }
>>
>> public void setPhoneFamily(String phoneFamily) {
>> this.phoneFamily = phoneFamily;
>> }
>>
>> public void setPhoneFamilyDebug(String phoneFamilyDebug)
>> {
>> this.phoneFamilyDebug = phoneFamilyDebug;
>> }
>>
>> /**
>> * @return
>> */
>> public String getPhoneFamilyDebug() {
>> String _phoneFamily = getPhoneFamily();
>> if (_phoneFamily.equals(FIREFOX_SKIN) ||
>> (_phoneFamily.equals(DEFAULT_SKIN)))
>> return DEFAULT_SKIN;
>> else
>> return _phoneFamily;
>> }
>>
>> public void setNarrowScreen(boolean narrowScreen) {
>> this.narrowScreen = narrowScreen;
>> }
>>
>> public boolean getNarrowScreen() {
>> return (forceWideScreen==false && getPhoneFamily()==DEFAULT_SKIN);
>> }
>>
>> public void setSupportsDVT_PNG(boolean supportsDVT_PNG)
>> {
>> this.supportsDVT_PNG = supportsDVT_PNG;
>> }
>>
>> public boolean getSupportsDVT_PNG() {
>> String _phoneFamily = getPhoneFamily();
>> if (_phoneFamily.equals(DEFAULT_SKIN)) {
>> return false;
>> }
>> return true;
>> }
>>
>> public void setNeedSpacer(boolean needSpacer) {
>> this.needSpacer = needSpacer;
>> }
>>
>> public boolean getNeedSpacer()
>> {
>> String _phoneFamily = getPhoneFamily();
>>
>> if ((_phoneFamily.equals(DEFAULT_SKIN)) &&
>> !this.getNarrowScreen())
>> {
>> return true;
>> }
>> return false;
>> }
>> }
>>
>>
>> aurel.sandu@vectorsoftware.ro wrote:
>>
>>> Hello,
>>> I have read about rendering Trinidad apps to blackberry devices. Can you give me some links to read about this (some examples , some fragments code from implementation maybe)?
>>> Best regards,
>>> Aurel
>>>
>>>
>>>
>
>