Skip to content

Commit

Permalink
Move Detail component JS controller declaration inside component. Att…
Browse files Browse the repository at this point in the history
…empt to componentize components to minimize modification of App and other core files.
  • Loading branch information
chexxor committed May 21, 2012
1 parent 28d82c3 commit ff57267
Show file tree
Hide file tree
Showing 10 changed files with 75 additions and 26 deletions.
6 changes: 3 additions & 3 deletions Visualforce/src/classes/AppController.cls
Expand Up @@ -80,9 +80,9 @@ public class AppController extends BaseConfigController {
script.expressions.value = '{!URLFOR($Resource[\'ListComponentJS\'])}';
panel.childComponents.add(script);

script = new Component.Apex.IncludeScript();
script.expressions.value = '{!URLFOR($Resource[\'DetailComponentJS\'])}';
panel.childComponents.add(script);
//script = new Component.Apex.IncludeScript();
//script.expressions.value = '{!URLFOR($Resource[\'DetailComponentJS\'])}';
//panel.childComponents.add(script);

return panel;
}
Expand Down
11 changes: 9 additions & 2 deletions Visualforce/src/classes/DetailController.cls
Expand Up @@ -49,7 +49,10 @@ Once layout info is fetched, future calls are just query calls directly from SOb

public with sharing class DetailController extends SObjectController {

private final static String DETAIL_COMPONENT_JS = 'DetailComponentJS';

public virtual class DetailConfig extends SObjectConfig {
public Boolean debug { get; set; }
public String cntrl = getFullyQualifiedClassName(DetailController.class);
}

Expand All @@ -64,7 +67,11 @@ public with sharing class DetailController extends SObjectController {
public DetailConfig getConfig() {
return (DetailConfig)config;
}


public String getDetailComponentJS() {
return getConfig().debug ? DETAIL_COMPONENT_JS : (DETAIL_COMPONENT_JS + 'Min');
}

public class LayoutResponse extends RemoteResponse {
List<Layout> layouts;
public LayoutResponse(List<Layout> layouts) {
Expand Down Expand Up @@ -224,4 +231,4 @@ public with sharing class DetailController extends SObjectController {
return layouts;
}

}
}
2 changes: 1 addition & 1 deletion Visualforce/src/classes/ListController.cls
Expand Up @@ -121,4 +121,4 @@ public class ListController extends SObjectController {

return Database.query(soql);
}
}
}
2 changes: 1 addition & 1 deletion Visualforce/src/classes/SFDCApiClient.cls
Expand Up @@ -47,4 +47,4 @@ public with sharing class SFDCApiClient {

return soapClient.describeLayout(sObjectType, recordTypeIds);
}
}
}
2 changes: 1 addition & 1 deletion Visualforce/src/classes/TestClass.cls
Expand Up @@ -145,4 +145,4 @@ public class TestClass {
System.assert(user.get('orgId') != null, 'Expect orgId value for user');
System.assert(user.get('orgName') != null, 'Expect orgName value for user');
}
}
}
2 changes: 1 addition & 1 deletion Visualforce/src/components/App.component
Expand Up @@ -19,7 +19,7 @@

<apex:includeScript value="{!JqueryJsUrl}"/>
<apex:includeScript value="{!JqueryTemplateJsUrl}"/>
<apex:includeScript value="{!URLFOR($Resource[MobileSplitViewJs])}"/>
<apex:includeScript value="{!URLFOR($Resource[MobileSplitViewJs])}"/> <!-- This must be in the App level. -->
<apex:includeScript value="{!URLFOR($Resource[JqueryMobileJs])}"/>
<apex:includeScript value="{!URLFOR($Resource[MobileSDKJs])}"/>

Expand Down
5 changes: 3 additions & 2 deletions Visualforce/src/components/Detail.component
@@ -1,8 +1,9 @@
<apex:component controller="DetailController">

<apex:includeScript value="{!URLFOR($Resource[DetailComponentJS])}"/>
<apex:attribute name="sobject" type="String" required="true" assignTo="{!config.sType}" description="SObject for which list needs to be generated."/>
<apex:attribute name="compHandler" type="String" assignTo="{!config.compHandler}" default="$V.DetailComponent" description="Custom Javascript handler to managed client-side lifecycle and behavior"/>

<apex:attribute name="debug" type="Boolean" assignTo="{!config.debug}" default="false" description=""/>

<apex:outputPanel id="layout" layout="inline">
<apex:componentBody />
</apex:outputPanel>
Expand Down
53 changes: 44 additions & 9 deletions Visualforce/src/package.xml
@@ -1,24 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<members>AppController</members>
<members>AppUtil</members>
<members>BaseConfig</members>
<members>BaseConfigController</members>
<members>ContentController</members>
<members>DetailController</members>
<members>FooterController</members>
<members>HeaderController</members>
<members>ListController</members>
<members>NavController</members>
<members>PageController</members>
<members>RemoteRequest</members>
<members>RemoteResponse</members>
<members>SFDCApiClient</members>
<members>SFDCPartnerSoap</members>
<members>SFDCPartnerSoapFault</members>
<members>SObjectController</members>
<members>SObjectResponse</members>
<members>SchemaManager</members>
<members>TestClass</members>
<name>ApexClass</name>
</types>
<types>
<members>*</members>
<members>App</members>
<members>Content</members>
<members>Detail</members>
<members>Footer</members>
<members>Header</members>
<members>List</members>
<members>Nav</members>
<members>Page</members>
<name>ApexComponent</name>
</types>
<types>
<members>*</members>
<members>MobilePage</members>
<members>MobilePageWithComponents</members>
<members>SplitViewTemplate</members>
<name>ApexPage</name>
</types>
<types>
<members>*</members>
<name>ApexTrigger</name>
</types>
<types>
<members>*</members>
<members>DetailComponentJS</members>
<members>ListComponentJS</members>
<members>MobileVisualforceSDKImages</members>
<members>MobileVisualforceSDKcss</members>
<members>MobileVisualforceSDKjs</members>
<members>MobileVisualforceSDKjsMin</members>
<members>jqm11css</members>
<members>jqm11js</members>
<members>jqm11jsMin</members>
<members>jqmSVcss</members>
<members>jqmSVjs</members>
<members>jqmSVjsMin</members>
<name>StaticResource</name>
</types>
<version>20.0</version>
<version>23.0</version>
</Package>
16 changes: 11 additions & 5 deletions Visualforce/src/pages/MobilePage.page
Expand Up @@ -4,20 +4,26 @@
<apex:define name="menu">
<c:Page name="list" theme="touch">
<c:Header >
<h1 style="font-size: 20px; margin: 0px;">All Contacts</h1>
<h1 style="font-size: 20px; margin: 0px;">All Cases</h1>
</c:Header>
<c:Content >
<c:List sobject="Contact" labelField="Name" subLabelField="Account.Name" sortByField="FirstName" listFilter="true"/>
<c:List sobject="Case"
labelField="Owner.Name"
subLabelField="Priority"
sortByField="Priority"
listFilter="true"
filter="recent"/>
</c:Content>
</c:Page>
</apex:define>
<apex:define name="main">
<c:Page name="main" theme="touch">
<c:Header >
<h1 style="font-size: 22px; margin: 0px;">Contact Details</h1>
<h1 style="font-size: 22px; margin: 0px;">Case Details</h1>
</c:Header>
<c:Content >
<c:Detail sobject="Contact"/>
<c:Detail sobject="Case"
debug="true"/>
</c:Content>
</c:Page>
</apex:define>
Expand All @@ -31,4 +37,4 @@
font-family: Helvetica, Arial, sans-serif
}
</style>
</apex:page>
</apex:page>
2 changes: 1 addition & 1 deletion Visualforce/src/pages/MobilePageWithComponents.page
Expand Up @@ -54,4 +54,4 @@
font-family: Helvetica, Arial, sans-serif
}
</style>
</apex:page>
</apex:page>

0 comments on commit ff57267

Please sign in to comment.