En varias ocasiones necesitamos invocar un dialogo desde un controller en base a determinadas condiciones.
Definimos un dialogo en la pagina xhtml y lo invocamos desde el controller.
<div class="form-group row">
<div class="col-xs-4">
<p:commandButton value="#{app['button.login']}" class="btnn btnn-primary login-btn"
action="#{loginController.doLogin()}" update=":form:growl"/>
</div>
</div>
<p:confirmDialog widgetVar="sessionDialog" closable="false" global="true" showEffect="fade" hideEffect="fade"
message="Hay una sesion creada en este navegador se procedera a cerrarla.">
<p:commandButton value="Cerrar" oncomplete="PF('sessionDialog').hide();"
update=":form" styleClass="ui-confirmdialog-yes"
action="#{loginController.invalidateCurrentSession()}" />
</p:confirmDialog>
Indicar el widgetVar="sessionDialog" que fue definido en el confirmDialog.
RequestContext.getCurrentInstance().execute("PF('sessionDialog').show();");