Wednesday, November 3, 2010

Enable/Disable Salesforce(visualforce page) tabPanel tabs through Java Script.

Visualforce page tab panel tabs enable/disable can easily controlled by client side java script.
I came through a requirement to allowing user to go back by clicking directly on tab and let change data and restart process from that tab.In this situation it require to disable all forward tabs. 
Following code , that can be change easily as per requirement.

/**
Method called on onclick event of tab and pass tab number.
It disable next tabs from the current tabs(clicked tab). In my case i have 4 tabs , code can be change accordingly.
@param e tab number
**/
function disabledNextTabs(e){
    if(e == '1'){ // use actual tab ID in all places.
        if(document.getElementById('page:tab_step2_shifted') != null){ // use actual tab ID
            document.getElementById('page:tab_step2_shifted').onclick=''; // use actual tab ID
        }
        if(document.getElementById('page:tab_step2_lbl') != null){ // use actual tab ID
            document.getElementById('page:tab_step2_lbl').className ='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-dsbl rich-tab-disabled';
            document.getElementById('page:tab_step2_lbl').onmouseover='';
            document.getElementById('page:tab_step2_lbl').onmouseout='';
        }
        if(document.getElementById('page:tab_step2_cell') != null){
            document.getElementById('page:tab_step2_cell').className ='dr-tbpnl-tbcell-dsbld rich-tabhdr-cell-disabled';
        }
        document.getElementById('page:tab_step3_shifted').onclick='';
        document.getElementById('page:tab_step3_cell').className ='dr-tbpnl-tbcell-dsbld rich-tabhdr-cell-disabled';
        document.getElementById('page:tab_step3_lbl').onmouseover='';
        document.getElementById('page:tab_step3_lbl').onmouseout='';
        document.getElementById('page:tab_step3_lbl').className ='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-dsbl rich-tab-disabled';
       
        document.getElementById('page:tab_step4_shifted').onclick='';              
        document.getElementById('page:tab_step4_lbl').className ='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-dsbl rich-tab-disabled';
        document.getElementById('page:tab_step4_lbl').onmouseover='';
        document.getElementById('page:tab_step4_lbl').onmouseout='';
        document.getElementById('page:tab_step4_cell').className ='dr-tbpnl-tbcell-dsbld rich-tabhdr-cell-disabled';
    }
    else if(e == '2'){
        document.getElementById('page:tab_step3_shifted').onclick='';
        document.getElementById('page:tab_step3_cell').className ='dr-tbpnl-tbcell-dsbld rich-tabhdr-cell-disabled';
        document.getElementById('page:tab_step3_lbl').onmouseover='';
        document.getElementById('page:tab_step3_lbl').onmouseout='';
        document.getElementById('page:tab_step3_lbl').className ='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-dsbl rich-tab-disabled';
       
        document.getElementById('page:tab_step4_shifted').onclick='';              
        document.getElementById('page:tab_step4_lbl').className ='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-dsbl rich-tab-disabled';
        document.getElementById('page:tab_step4_lbl').onmouseover='';
        document.getElementById('page:tab_step4_lbl').onmouseout='';
        document.getElementById('page:tab_step4_cell').className ='dr-tbpnl-tbcell-dsbld rich-tabhdr-cell-disabled';
    }else if(e == '3'){
        document.getElementById('page:tab_step4_shifted').onclick='';              
        document.getElementById('page:tab_step4_lbl').className ='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-dsbl rich-tab-disabled';
        document.getElementById('page:tab_step4_lbl').onmouseover='';
        document.getElementById('page:tab_step4_lbl').onmouseout='';
        document.getElementById('page:tab_step4_cell').className ='dr-tbpnl-tbcell-dsbld rich-tabhdr-cell-disabled';

    }
}

Tuesday, November 2, 2010

Vmforce a complete platform as service for Java Application with force.com services.


Vmforce = Java + Spring Java Platform + vCloud + SalesForce Database & force.com services.
Salesforce.com and VMware introduce VMforce the first enterprise cloud for Java developers. With VMforce, Java developers can build apps that are instantly social and available on mobile devices in real time. And it’s all in the cloud, so there’s no hardware to manage and no software stack to install, patch, tune, or upgrade.
To develop application in vmforce , you develop you Java web application using the leading Java development Spring framework and deploy this in single click into vmforce Clouds that has tc Server® runtime (Enterprise version of Apache Tomcat). 

Using Force.com Database :- using force.com database is very easy and configurable. Through JPA EntityManager is injected by spring DI and it is managed by spring, we require to change spring configuration file to access Force.com database. Injected Spring-managed EntityManager that connects to the Force.com database
 
Accessing Force.com platform services
Force.com platform services are accessed in the form of API calls (ws calls) and force.com org (Your salesforce.com account) custom and standard objects are JPA entities and as java developer , we find no difference. All of validation rules/triggered (salesforce side logic) we have on SFDC object are also run while Accesing them through JPA.



Getting Started with Salesforce DX

Salesforce DX is a great way to let multiple peoples work together and also make deployment much easier. Salesforce DX make release cycle m...