Last active
August 29, 2015 14:25
-
-
Save adtennant/ce37dc7dc68978862fb3 to your computer and use it in GitHub Desktop.
Code snippets from: http://adtennant.co.uk/blog/2014/07/14/component-controller-communication-using-interfaces-part-2/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class InnerClassCounterPageController { | |
private Boolean showAlert; | |
public InnerClassCounterPageController() { | |
showAlert = false; | |
} | |
public Boolean getShowAlert() { | |
return showAlert; | |
} | |
public CounterComponentListener getComponentListener() { | |
return new InnerClassComponentListener(this); | |
} | |
private class InnerClassComponentListener implements CounterComponentListener { | |
private InnerClassCounterPageController controller; | |
public InnerClassComponentListener(InnerClassCounterPageController controller) { | |
this.controller = controller; | |
} | |
public void onChange(Integer newValue) { | |
controller.showAlert = (newValue > 2); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<apex:page controller="InnerClassCounterPageController"> | |
<apex:pageMessage severity="warning" strength="3" summary="It's over 2!" rendered="{!ShowAlert}"/> | |
<c:CounterComponent componentListener="{!ComponentListener}"/> | |
</apex:page> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MultipleCounterPageController { | |
private class ComponentListener1 implements CounterComponentListener { | |
private Boolean overTwo; | |
public void onChange(Integer newValue) { | |
overTwo = (newValue > 2); | |
} | |
} | |
private class ComponentListener2 implements CounterComponentListener { | |
private Boolean equalsOne; | |
public void onChange(Integer newValue) { | |
equalsOne = (newValue == 1); | |
} | |
} | |
private ComponentListener1 listener1; | |
private ComponentListener2 listener2; | |
public MultipleCounterPageController() { | |
listener1 = new ComponentListener1(); | |
listener2 = new ComponentListener2(); | |
} | |
public Boolean getShowAlert1() { | |
return listener1.overTwo; | |
} | |
public Boolean getShowAlert2() { | |
return listener2.equalsOne; | |
} | |
public CounterComponentListener getComponentListener1() { | |
return listener1; | |
} | |
public CounterComponentListener getComponentListener2() { | |
return listener2; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<apex:page controller="MultipleCounterPageController"> | |
<apex:pageMessage severity="warning" strength="3" summary="It's over 2!" rendered="{!ShowAlert1}"/> | |
<c:CounterComponent componentListener="{!ComponentListener1}"/> | |
<apex:pageMessage severity="error" strength="3" summary="ONE!!!!" rendered="{!ShowAlert2}"/> | |
<c:CounterComponent componentListener="{!ComponentListener2}"/> | |
</apex:page> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment