Skip to content

Instantly share code, notes, and snippets.

@adtennant
Last active August 29, 2015 14:25
Show Gist options
  • Save adtennant/f16d9c9f228f2851c073 to your computer and use it in GitHub Desktop.
Save adtennant/f16d9c9f228f2851c073 to your computer and use it in GitHub Desktop.
public class CounterComponentController {
public CounterComponentListener listener { get; set; }
private Integer count;
public CounterComponentController() {
count = 0;
}
public Integer getCount() {
return count;
}
public PageReference increment() {
count++;
if(listener != null) {
listener.onChange(count);
}
return null;
}
}
<apex:component controller="CounterComponentController">
<apex:attribute name="componentListener"
description="The listener for this component."
type="CounterComponentListener"
assignTo="{!listener}"
/>
<apex:outputPanel id="output">
<apex:outputText value="{!count}"/>
</apex:outputPanel>
<apex:form>
<apex:commandButton action="{!increment}" value="Increment"/>
</apex:form>
</apex:component>
public interface CounterComponentListener {
void onChange(Integer newValue);
}
<apex:page controller="BasicCounterPageController">
<apex:pageMessage severity="warning" strength="3" summary="It's over 2!" rendered="{!ShowAlert}"/>
<c:CounterComponent componentListener="{!ComponentListener}"/>
</apex:page>
public class BasicCounterPageController implements CounterComponentListener {
private Boolean showAlert;
public BasicCounterPageController() {
showAlert = false;
}
public Boolean getShowAlert() {
return showAlert;
}
public CounterComponentListener getComponentListener() {
return this;
}
public void onChange(Integer newValue) {
showAlert = (newValue &gt; 2);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment