From 478db60a9cce6174152f8e75e05db2c956c9c5f2 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Fri, 3 Aug 2012 21:14:50 +0200 Subject: [PATCH] Used "Managed properties" for better code --- .../beans/application/ProjectsBean.java | 12 -------- .../beans/view/CurrentAnalysisEditorBean.java | 14 ++++++++- .../view/CurrentAnalysisEditorBeanV2.java | 14 ++++++++- .../webgui/beans/view/CurrentCockpitBean.java | 14 ++++++++- .../beans/view/CurrentCockpitEditorBean.java | 13 ++++++++- .../beans/view/CurrentControllerBean.java | 13 ++++++++- .../converter/MIPluginStringConverter.java | 29 ++++++++++++------- .../converter/MIPortStringConverter.java | 29 ++++++++++++------- .../MIRepositoryStringConverter.java | 29 ++++++++++++------- .../webapp/dialogs/connectionDialog.xhtml | 10 +++---- 10 files changed, 122 insertions(+), 55 deletions(-) diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java index 7aa06289..5640055a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java @@ -27,7 +27,6 @@ import java.util.Date; import java.util.List; import javax.annotation.PostConstruct; -import javax.el.ELResolver; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ApplicationScoped; @@ -216,15 +215,4 @@ public final class ProjectsBean { private static void showMessage(final Severity severity, final String msg) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); } - - /** - * Delivers the one and only bean instance of the {@link ProjectsBean}. - * - * @return The bean instance. - */ - public static ProjectsBean getInstance() { - // Get the resolver and find the projects bean via name - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - return (ProjectsBean) el.getValue(FacesContext.getCurrentInstance().getELContext(), null, "projectsBean"); - } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java index 27a1a93a..f6169826 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java @@ -35,6 +35,7 @@ import java.util.Map; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; @@ -163,6 +164,9 @@ public final class CurrentAnalysisEditorBean { */ private final List<ConnectionFilterToRepository> filter2repositoryConnections = new ArrayList<ConnectionFilterToRepository>(); + @ManagedProperty(value = "#{projectsBean}") + private ProjectsBean projectsBean; + /** * Creates a new instance of this class. */ @@ -170,6 +174,14 @@ public final class CurrentAnalysisEditorBean { // No code necessary } + public ProjectsBean getProjectsBean() { + return this.projectsBean; + } + + public void setProjectsBean(final ProjectsBean projectsBean) { + this.projectsBean = projectsBean; + } + /** * This method delivers the project stored in this bean. * @@ -202,7 +214,7 @@ public final class CurrentAnalysisEditorBean { synchronized (this) { // Make sure that the initialization will only be done for the init request. if (!FacesContext.getCurrentInstance().isPostback()) { - this.project = ProjectsBean.getInstance().openProject(this.projectName); + this.project = this.projectsBean.openProject(this.projectName); this.getConnectionsFromProject(); if (this.project != null) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBeanV2.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBeanV2.java index b503efc2..fbd46a17 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBeanV2.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBeanV2.java @@ -34,6 +34,7 @@ import java.util.Map; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; @@ -176,6 +177,9 @@ public final class CurrentAnalysisEditorBeanV2 { */ private final List<ConnectionFilterToRepository> filter2repositoryConnections = new ArrayList<ConnectionFilterToRepository>(); + @ManagedProperty(value = "#{projectsBean}") + private ProjectsBean projectsBean; + /** * Creates a new instance of this class. */ @@ -194,6 +198,14 @@ public final class CurrentAnalysisEditorBeanV2 { } } + public ProjectsBean getProjectsBean() { + return this.projectsBean; + } + + public void setProjectsBean(final ProjectsBean projectsBean) { + this.projectsBean = projectsBean; + } + /** * This method sets the project stored within this bean and returns the new page for the navigation - depending on the given values. * @@ -209,7 +221,7 @@ public final class CurrentAnalysisEditorBeanV2 { public void initialize() { synchronized (this) { - this.project = ProjectsBean.getInstance().openProject(this.projectName); + this.project = this.projectsBean.openProject(this.projectName); this.getConnectionsFromProject(); if (this.project != null) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java index fc39b684..5ba3705a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java @@ -21,6 +21,7 @@ package kieker.webgui.beans.view; import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; @@ -60,6 +61,9 @@ public class CurrentCockpitBean { */ private MIView activeView; + @ManagedProperty(value = "#{projectsBean}") + private ProjectsBean projectsBean; + /** * Creates a new instance of this class. */ @@ -78,6 +82,14 @@ public class CurrentCockpitBean { } } + public ProjectsBean getProjectsBean() { + return this.projectsBean; + } + + public void setProjectsBean(final ProjectsBean projectsBean) { + this.projectsBean = projectsBean; + } + /** * This method sets the project stored within this bean and returns the new page for the navigation. * @@ -100,7 +112,7 @@ public class CurrentCockpitBean { // Make sure that the initialization will only be done for the init request. if (!FacesContext.getCurrentInstance().isPostback()) { // Remember the given parameters - this.project = ProjectsBean.getInstance().openProject(this.projectName); + this.project = this.projectsBean.openProject(this.projectName); } } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java index 7ea200d4..45e9fe51 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java @@ -29,6 +29,7 @@ import java.util.UUID; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.component.UIComponent; import javax.faces.component.UIInput; @@ -87,6 +88,8 @@ public class CurrentCockpitEditorBean { * This is the currently selected view. */ private MIView activeView; + @ManagedProperty(value = "#{projectsBean}") + private ProjectsBean projectsBean; /** * Creates a new instance of this class. @@ -95,6 +98,14 @@ public class CurrentCockpitEditorBean { // No code necessary } + public ProjectsBean getProjectsBean() { + return this.projectsBean; + } + + public void setProjectsBean(final ProjectsBean projectsBean) { + this.projectsBean = projectsBean; + } + /** * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by * JSF.</b> @@ -104,7 +115,7 @@ public class CurrentCockpitEditorBean { // Make sure that the initialization will only be done for the init request. if (!FacesContext.getCurrentInstance().isPostback()) { // Remember the given parameters - this.project = ProjectsBean.getInstance().openProject(this.projectName); + this.project = this.projectsBean.openProject(this.projectName); if (this.project != null) { // Remember the current time! This is important for the later comparison of the time stamps. this.resetTimeStamp(); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java index 2f430062..a48a002e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java @@ -25,6 +25,7 @@ import java.io.IOException; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; @@ -65,6 +66,8 @@ public class CurrentControllerBean { * This is the actual model instance. It is the in-memory-model of the current (session) user. */ private MIProject project; + @ManagedProperty(value = "#{projectsBean}") + private ProjectsBean projectsBean; /** * Creates a new instance of this class. @@ -73,6 +76,14 @@ public class CurrentControllerBean { // No code necessary } + public ProjectsBean getProjectsBean() { + return this.projectsBean; + } + + public void setProjectsBean(final ProjectsBean projectsBean) { + this.projectsBean = projectsBean; + } + /** * This method sets the project stored within this bean and returns the new page for the navigation. * @@ -95,7 +106,7 @@ public class CurrentControllerBean { // Make sure that the initialization will only be done for the init request. if (!FacesContext.getCurrentInstance().isPostback()) { // Remember the given parameters - this.project = ProjectsBean.getInstance().openProject(this.projectName); + this.project = this.projectsBean.openProject(this.projectName); } } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPluginStringConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPluginStringConverter.java index 615c4c27..2fd50aba 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPluginStringConverter.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPluginStringConverter.java @@ -20,7 +20,9 @@ package kieker.webgui.converter; -import javax.el.ELResolver; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.ViewScoped; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -35,6 +37,8 @@ import kieker.webgui.beans.view.CurrentAnalysisEditorBean; * @author Nils Christian Ehmke * @version 1.0 */ +@ViewScoped +@ManagedBean @FacesConverter(value = MIPluginStringConverter.NAME) public class MIPluginStringConverter implements Converter { /** @@ -42,6 +46,9 @@ public class MIPluginStringConverter implements Converter { */ public static final String NAME = "kieker.webgui.converter.MIPluginStringConverter"; + @ManagedProperty(value = "#{currentAnalysisEditorBean}") + private CurrentAnalysisEditorBean bean; + /** * Creates a new instance of this class. */ @@ -49,25 +56,25 @@ public class MIPluginStringConverter implements Converter { /* No code necessary. */ } + public CurrentAnalysisEditorBean getBean() { + return this.bean; + } + + public void setBean(final CurrentAnalysisEditorBean bean) { + this.bean = bean; + } + @Override public Object getAsObject(final FacesContext fc, final UIComponent uic, final String string) { - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final CurrentAnalysisEditorBean bean = (CurrentAnalysisEditorBean) el.getValue(FacesContext.getCurrentInstance().getELContext(), null, - "currentAnalysisEditorBean"); - - return bean.getPluginByID(string); + return this.bean.getPluginByID(string); } @Override public String getAsString(final FacesContext fc, final UIComponent uic, final Object o) { - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final CurrentAnalysisEditorBean bean = (CurrentAnalysisEditorBean) el.getValue(FacesContext.getCurrentInstance().getELContext(), null, - "currentAnalysisEditorBean"); - if (o == null) { return ""; } else { - return Integer.toString(bean.getPluginID((MIPlugin) o)); + return Integer.toString(this.bean.getPluginID((MIPlugin) o)); } } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPortStringConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPortStringConverter.java index e8370eb7..7394dce7 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPortStringConverter.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIPortStringConverter.java @@ -20,7 +20,9 @@ package kieker.webgui.converter; -import javax.el.ELResolver; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.ViewScoped; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -35,6 +37,8 @@ import kieker.webgui.beans.view.CurrentAnalysisEditorBean; * @author Nils Christian Ehmke * @version 1.0 */ +@ViewScoped +@ManagedBean @FacesConverter(value = MIPortStringConverter.NAME) public class MIPortStringConverter implements Converter { /** @@ -42,6 +46,9 @@ public class MIPortStringConverter implements Converter { */ public static final String NAME = "kieker.webgui.converter.MIPortStringConverter"; + @ManagedProperty(value = "#{currentAnalysisEditorBean}") + private CurrentAnalysisEditorBean bean; + /** * Creates a new instance of this class. */ @@ -49,25 +56,25 @@ public class MIPortStringConverter implements Converter { /* No code necessary. */ } + public CurrentAnalysisEditorBean getBean() { + return this.bean; + } + + public void setBean(final CurrentAnalysisEditorBean bean) { + this.bean = bean; + } + @Override public Object getAsObject(final FacesContext fc, final UIComponent uic, final String string) { - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final CurrentAnalysisEditorBean bean = (CurrentAnalysisEditorBean) el.getValue(FacesContext.getCurrentInstance() - .getELContext(), null, "currentAnalysisEditorBean"); - - return bean.getPortByID(string); + return this.bean.getPortByID(string); } @Override public String getAsString(final FacesContext fc, final UIComponent uic, final Object o) { - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final CurrentAnalysisEditorBean bean = (CurrentAnalysisEditorBean) el.getValue(FacesContext.getCurrentInstance().getELContext(), null, - "currentAnalysisEditorBean"); - if (o == null) { return ""; } else { - return Integer.toString(bean.getPortID((MIPort) o)); + return Integer.toString(this.bean.getPortID((MIPort) o)); } } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIRepositoryStringConverter.java b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIRepositoryStringConverter.java index 865b57ff..a0aea148 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIRepositoryStringConverter.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/converter/MIRepositoryStringConverter.java @@ -20,7 +20,9 @@ package kieker.webgui.converter; -import javax.el.ELResolver; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.ViewScoped; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; @@ -35,6 +37,8 @@ import kieker.webgui.beans.view.CurrentAnalysisEditorBean; * @author Nils Christian Ehmke * @version 1.0 */ +@ViewScoped +@ManagedBean @FacesConverter(value = MIRepositoryStringConverter.NAME) public class MIRepositoryStringConverter implements Converter { /** @@ -42,6 +46,9 @@ public class MIRepositoryStringConverter implements Converter { */ public static final String NAME = "kieker.webgui.converter.MIRepositoryStringConverter"; + @ManagedProperty(value = "#{currentAnalysisEditorBean}") + private CurrentAnalysisEditorBean bean; + /** * Creates a new instance of this class. */ @@ -49,25 +56,25 @@ public class MIRepositoryStringConverter implements Converter { /* No code necessary. */ } + public CurrentAnalysisEditorBean getBean() { + return this.bean; + } + + public void setBean(final CurrentAnalysisEditorBean bean) { + this.bean = bean; + } + @Override public Object getAsObject(final FacesContext fc, final UIComponent uic, final String string) { - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final CurrentAnalysisEditorBean bean = (CurrentAnalysisEditorBean) el.getValue(FacesContext.getCurrentInstance() - .getELContext(), null, "currentAnalysisEditorBean"); - - return bean.getRepositoryByID(string); + return this.bean.getRepositoryByID(string); } @Override public String getAsString(final FacesContext fc, final UIComponent uic, final Object o) { - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final CurrentAnalysisEditorBean bean = (CurrentAnalysisEditorBean) el.getValue(FacesContext.getCurrentInstance().getELContext(), null, - "currentAnalysisEditorBean"); - if (o == null) { return ""; } else { - return Integer.toString(bean.getRepositoryID((MIRepository) o)); + return Integer.toString(this.bean.getRepositoryID((MIRepository) o)); } } } diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/connectionDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/connectionDialog.xhtml index 6766a067..6eb68694 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/connectionDialog.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/connectionDialog.xhtml @@ -29,7 +29,7 @@ value="#{empty connection.source ? 'N/A' : connection.source.name}" /> </f:facet> <f:facet name="input"> - <p:selectOneMenu converter="kieker.webgui.converter.MIPluginStringConverter" + <p:selectOneMenu converter="#{mIPluginStringConverter}" value="#{connection.source}" effectDuration="100"> <f:selectItem value="#{null}" itemLabel="N/A" itemValue="#{null}" /> <f:selectItems @@ -49,7 +49,7 @@ </f:facet> <f:facet name="input"> <h:form id="outputPortsList"> - <p:selectOneMenu rendered="#{not empty connection.source}" converter="kieker.webgui.converter.MIPortStringConverter" + <p:selectOneMenu rendered="#{not empty connection.source}" converter="#{mIPortStringConverter}" value="#{connection.outputPort}" effectDuration="100"> <f:selectItem value="#{null}" itemLabel="N/A" itemValue="#{null}" /> @@ -69,7 +69,7 @@ value="#{empty connection.destination ? 'N/A' : connection.destination.name}" /> </f:facet> <f:facet name="input"> - <p:selectOneMenu converter="kieker.webgui.converter.MIPluginStringConverter" + <p:selectOneMenu converter="#{mIPluginStringConverter}" value="#{connection.destination}" effectDuration="100"> <f:selectItem value="#{null}" itemLabel="N/A" itemValue="#{null}" /> @@ -89,7 +89,7 @@ </f:facet> <f:facet name="input"> <h:form id="inputPortsList"> - <p:selectOneMenu rendered="#{not empty connection.destination}" converter="kieker.webgui.converter.MIPortStringConverter" + <p:selectOneMenu rendered="#{not empty connection.destination}" converter="#{mIPortStringConverter}" value="#{connection.inputPort}" effectDuration="100"> <f:selectItem value="#{null}" itemLabel="N/A" itemValue="#{null}" /> @@ -132,7 +132,7 @@ <h:outputText value="#{empty connection.destination ? 'N/A' : connection.destination.name}" /> </f:facet> <f:facet name="input"> - <p:selectOneMenu converter="kieker.webgui.converter.MIRepositoryStringConverter" + <p:selectOneMenu converter="#{mIRepositoryStringConverter}" value="#{connection.destination}" effectDuration="100"> <f:selectItem value="#{null}" itemLabel="N/A" itemValue="#{null}" /> -- GitLab