• Welcome
  • About
    • Leadership
    • Blogroll
  • Force-Squared Blog
  • Support
    • Knowledge Base
    • Log a Case
  • Is It Dreamforce Yet?
  • Welcome
  • About
    • Leadership
    • Blogroll
  • Force-Squared Blog
  • Support
    • Knowledge Base
    • Log a Case
  • Is It Dreamforce Yet?
  • Tips and Tricks
  • Configuration
  • Development
You are here: Home / Archives for Visualforce

Overload Apex Class to be Controller AND Extension

July 24, 2009 by David Schach 2 Comments

Coding the new premium version of Mass Update Contacts (details to come), I replaced the two parts of the page with Apex Components. This will allow the app to support custom address fields and international address formats. I didn't want to write one ControllerExtension for the main page, a CustomController for the view section component, and another CustomController for the pageblocktable component. So here is the overloaded class constructor. Note that this works because an extension passes the StandardController to the constructor, and a CustomController passes nothing:

Filed Under: Apex, Development, Visualforce, X-Squared On Demand Tagged With: Apex, Eclipse IDE, Force.com Platform, New Features, Projects, Visualforce

Filed Under: Apex, Development, Visualforce, X-Squared On Demand Tagged With: Apex, Eclipse IDE, Force.com Platform, New Features, Projects, Visualforce

Email Inbox Version 2

July 15, 2009 by David Schach 1 Comment

Well, it took about ten minutes from the release of Email Inbox Version 1 for people to request additional features, screenshots, etc. Version 2 includes some neat icons, and this post has the multiple-times-requested screenshots we promised. First, a teaser screenshot. (There's a better one below the code.) Here's the updated Visualforce code:
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<apex:page controller="EmailMessageController" action="{!ViewData}">
    <apex:sectionHeader title="Email Messages" subtitle=""></apex:sectionHeader>
    <apex:pageblock id="emailblock">
        <apex:facet name="header">
            <apex:form >
                <apex:panelGrid styleClass="list"
                    columnClasses="pbTitle,pbButton,pbHelp" columns="3" border="0"
                    cellpadding="0" cellspacing="0">
                    <apex:outputLabel ><h3>Messages</h3></apex:outputLabel>
                    <apex:commandButton value=" Refresh " styleClass="btn"
                        action="{!ViewData}" rerender="emailblock"></apex:commandButton>
                    <apex:SelectList value="{!wheretext}" size="1"  id="controllerselectlist">
                        <apex:actionSupport event="onchange" action="{!ViewData}"
                            reRender="emailblock"></apex:actionSupport>
                        <apex:selectOptions value="{!views}" />
                    </apex:SelectList>
                </apex:panelGrid>
            </apex:form>
        </apex:facet>
        <apex:form >
            <apex:pageblocktable value="{!Messages}" var="e" id="emailtable"
                bgcolor="#F3F3EC" styleClass="list" rowClasses="dataRow"
                onRowMouseOver="hiOn(this);" onRowMouseOut="hiOff(this);">
                <apex:column >
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="{!$ObjectType.EmailMessage.fields.Subject.label}{!IF(sortExpression=='Subject',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="Subject" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                    <apex:outputLink value="/{!e.Id}" target="_blank">{!e.Subject}</apex:outputLink>
                </apex:column>
                <apex:column >
                    <apex:facet name="header">
                    {!$ObjectType.Contact.fields.Name.label}
                    </apex:facet>
                    <apex:outputLink value="/{!e.Parent.ContactId}" target="_blank"
                        rendered="{!IF(e.Parent.ContactId != '',true,false)}">{!e.FromName}</apex:outputLink>
                    <apex:outputtext value="{!e.FromName}"
                        rendered="{!IF(e.Parent.ContactId != '',false,true)}" />
                </apex:column>
                <apex:column >
                    <apex:facet name="header">
                    {!$ObjectType.Account.fields.Name.label}
                    </apex:facet>
                    <apex:outputLink value="/{!e.Parent.AccountId}" target="_blank">{!e.Parent.Account.Name}</apex:outputLink>
                </apex:column>
                <apex:column value="{!e.FromAddress}">
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="{!$ObjectType.EmailMessage.fields.FromAddress.label}{!IF(sortExpression=='FromAddress',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="FromAddress" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                </apex:column>
                <apex:column value="{!e.Status}">
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="{!$ObjectType.EmailMessage.fields.Status.label}{!IF(sortExpression=='Status',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="Status" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                </apex:column>
                <apex:column value="{!e.MessageDate}">
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="{!$ObjectType.EmailMessage.fields.MessageDate.label}{!IF(sortExpression=='MessageDate',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="MessageDate" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                </apex:column>
                <apex:column >
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="Inbound/Outbound{!IF(sortExpression=='Incoming',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="Incoming" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                    <apex:image url="/img/emailInbound.gif" rendered="{!e.Incoming}" />
                    <apex:image url="/img/emailOutbound.gif" rendered="{!NOT(e.Incoming)}" />
                    <!--<apex:outputfield value="{!e.Incoming}" rendered="{!NOT(e.Incoming)}" />-->
                </apex:column>
                <apex:column >
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="Attachment{!IF(sortExpression=='HasAttachment',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="HasAttachment" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                    <apex:image url="/img/emailHasAttach.gif" rendered="{!e.HasAttachment}"/>
                    <apex:outputfield value="{!e.HasAttachment}" rendered="{!NOT(e.HasAttachment)}" />
                </apex:column>
                <apex:column >
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="{!$ObjectType.Case.fields.CaseNumber.label}{!IF(sortExpression=='ParentId',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="ParentId" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                    <apex:outputLink value="/{!e.ParentId}">{!e.Parent.CaseNumber}</apex:outputLink>
 
                </apex:column>
                <apex:column value="{!e.ToAddress}">
                    <apex:facet name="header">
                        <apex:commandLink action="{!ViewData}"
                            value="{!$ObjectType.EmailMessage.fields.ToAddress.label}{!IF(sortExpression=='ToAddress',
                            IF(sortDirection='ASC','▼','▲'),'')}">
                            <apex:param value="ToAddress" name="column"
                                assignTo="{!sortExpression}"></apex:param>
                        </apex:commandLink>
                    </apex:facet>
                </apex:column>
            </apex:pageblocktable>
        </apex:form>
    </apex:pageblock>
</apex:page>
The […]

Filed Under: Apex, Development, Salesforce, Visualforce Tagged With: Apex, Projects, Visualforce, X-Squared On Demand

Filed Under: Apex, Development, Salesforce, Visualforce Tagged With: Apex, Projects, Visualforce, X-Squared On Demand

Visualforce Email Inbox

July 14, 2009 by David Schach 4 Comments

Sonny Cloward, SysAd at Rainforest Alliance, approached us about writing a Visualforce page to display all incoming emails for a given Case Queue. This led to quite a few interesting discoveries. Here's how we handled the project:

Filed Under: Apex, Development, Salesforce, Visualforce, X-Squared On Demand Tagged With: Configuration, Projects, Visualforce

Filed Under: Apex, Development, Salesforce, Visualforce, X-Squared On Demand Tagged With: Configuration, Projects, Visualforce

Checkbox Formula Field in Visualforce

May 21, 2009 by David Schach Leave a Comment

In keeping with the theme of checkboxes and formulas, we provide an easy way to create a checkbox formula field using Visualforce: the checkbox tag with the disabled attribute:

Filed Under: Apex, Development, Salesforce, Visualforce Tagged With: Apex, Visualforce

Filed Under: Apex, Development, Salesforce, Visualforce Tagged With: Apex, Visualforce

Flexible Field Labels

March 23, 2009 by David Schach Leave a Comment

While making a Visualforce page to display a Zip/Country -> City, State, County application, it became obvious that labeling fields manually will not satisfy all users, especially international ones. There are a few ways to include a field and its label on a Visualforce page. The simplest, using OutputField: VF Page (simple):
XHTML
1
2
3
4
5
6
7
<apex:page standardcontroller="Account">
<apex:pageblock>
<apex:pageblocksection>
<apex:outputfield value="{!Account.Name}" />
</apex:pageblocksection>
</apex:pageblock>
</apex:page>
The most […]

Filed Under: Configuration, Native Application, Salesforce, Visualforce Tagged With: Configuration, Force.com Platform, Visualforce

Filed Under: Configuration, Native Application, Salesforce, Visualforce Tagged With: Configuration, Force.com Platform, Visualforce

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • Next Page »

Is it Dreamforce Yet?

Find out!

Find us on the AppExchange

Mass Update Contacts Pro

Get It Now



Mass Update Contact Address

Get It Now


Recent Posts

  • Lightning Component With Running User Information
  • ChatterBINGO is Now Open-Source
  • Display Only My Role’s Records on a Report
  • Chatter Publisher Actions (Part 2): Object Custom Action
  • Chatter Publisher Actions (Part 1): Create a Record

Post Categories

Salesforce Blogs

  • Embracing the Cloud
  • Arrowpointe
  • Technology, Coding and Bears… OH MY!
  • Salesforce Source
  • Force Monkey
  • Decoding Salesforce
  • Vertical Coder
  • The Silver Lining
  • TehNerd
  • MK Partners

Popular Tags

#df09 #df10 Akismet Apex AppBuilder AppExchange Appirio Astadia Blogs Chatter Configuration Content DreamFactory Dreamforce Eclipse IDE Enterprise Force.com Builder Force.com Platform Google Infowelders Integration Just for fun Lightning New Developments New Features Partner Program PersonAccount Projects Publisher Salesforce Salesforce1 Salesforce for Google Apps sfdcverse Sites Visualforce Web-to X-Squared On Demand

Like Us on Facebook

Like Us on Facebook

Share This Page

Find Us Online

  • Twitter
  • Facebook
  • LinkedIn
  • Google Plus
  • X-Squared G+ Page
  • RSS

Subscribe

RSS Feed Comments

Subscribe via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 5,089 other subscribers

Copyright © 2008–2021 X-Squared On Demand · Genesis Framework by StudioPress · WordPress · Log in