Skip to content
Snippets Groups Projects
Commit ccf7a7de authored by Nils Christian Ehmke's avatar Nils Christian Ehmke
Browse files

Updated some libs; Added the remaining charts to a XYPLot display

parent 5e272601
No related branches found
No related tags found
No related merge requests found
...@@ -138,12 +138,12 @@ ...@@ -138,12 +138,12 @@
<dependency> <dependency>
<groupId>com.sun.faces</groupId> <groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId> <artifactId>jsf-api</artifactId>
<version>2.1.7</version> <version>2.1.22</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.faces</groupId> <groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId> <artifactId>jsf-impl</artifactId>
<version>2.1.7</version> <version>2.1.22</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
......
...@@ -25,10 +25,8 @@ import java.util.concurrent.atomic.AtomicLong; ...@@ -25,10 +25,8 @@ import java.util.concurrent.atomic.AtomicLong;
import javax.faces.application.Application; import javax.faces.application.Application;
import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent; import javax.faces.component.UIComponent;
import javax.faces.component.UISelectItem;
import javax.faces.component.html.HtmlOutputText; import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import kieker.analysis.AnalysisController; import kieker.analysis.AnalysisController;
import kieker.analysis.model.analysisMetaModel.MIDisplayConnector; import kieker.analysis.model.analysisMetaModel.MIDisplayConnector;
...@@ -50,7 +48,6 @@ import org.primefaces.component.chart.line.LineChart; ...@@ -50,7 +48,6 @@ import org.primefaces.component.chart.line.LineChart;
import org.primefaces.component.chart.metergauge.MeterGaugeChart; import org.primefaces.component.chart.metergauge.MeterGaugeChart;
import org.primefaces.component.dashboard.Dashboard; import org.primefaces.component.dashboard.Dashboard;
import org.primefaces.component.panel.Panel; import org.primefaces.component.panel.Panel;
import org.primefaces.component.selectcheckboxmenu.SelectCheckboxMenu;
import org.primefaces.component.tagcloud.TagCloud; import org.primefaces.component.tagcloud.TagCloud;
import org.primefaces.model.DashboardColumn; import org.primefaces.model.DashboardColumn;
import org.primefaces.model.DashboardModel; import org.primefaces.model.DashboardModel;
...@@ -476,6 +473,7 @@ public class CurrentCockpitBean { ...@@ -476,6 +473,7 @@ public class CurrentCockpitBean {
// Add the corresponding model // Add the corresponding model
tagCloudModel = new DefaultTagCloudModel(); tagCloudModel = new DefaultTagCloudModel();
tagCloud.setModel(tagCloudModel); tagCloud.setModel(tagCloudModel);
tagCloud.setStyle("width: 100%; Height: 100%;");
component.getChildren().clear(); component.getChildren().clear();
component.getChildren().add(tagCloud); component.getChildren().add(tagCloud);
...@@ -485,7 +483,6 @@ public class CurrentCockpitBean { ...@@ -485,7 +483,6 @@ public class CurrentCockpitBean {
final Object displayObj = this.projectService.getDisplay(this.projectName, this.activeView.getName(), displayConnectorName); final Object displayObj = this.projectService.getDisplay(this.projectName, this.activeView.getName(), displayConnectorName);
final Map<String, AtomicLong> counters = (Map<String, AtomicLong>) new Mirror().on(displayObj).invoke().method("getCounters").withoutArgs(); final Map<String, AtomicLong> counters = (Map<String, AtomicLong>) new Mirror().on(displayObj).invoke().method("getCounters").withoutArgs();
System.out.println(counters);
tagCloudModel.clear(); tagCloudModel.clear();
for (final Map.Entry<String, AtomicLong> counter : counters.entrySet()) { for (final Map.Entry<String, AtomicLong> counter : counters.entrySet()) {
tagCloudModel.addTag(new DefaultTagCloudItem(counter.getKey(), (int) counter.getValue().get())); tagCloudModel.addTag(new DefaultTagCloudItem(counter.getKey(), (int) counter.getValue().get()));
...@@ -574,61 +571,55 @@ public class CurrentCockpitBean { ...@@ -574,61 +571,55 @@ public class CurrentCockpitBean {
private void updateXYPlotDisplay(final UIComponent component, final String displayConnectorName) { private void updateXYPlotDisplay(final UIComponent component, final String displayConnectorName) {
final boolean isAlreadyCorrectlyInitialized = (component.getChildCount() == 1) && (component.getChildren().get(0) instanceof LineChart); final boolean isAlreadyCorrectlyInitialized = (component.getChildCount() == 1) && (component.getChildren().get(0) instanceof LineChart);
final LineChartSeries lineChartSeries; final LineChart lineChart;
final SelectCheckboxMenu selectCheckboxMenu; final CartesianChartModel linearModel;
// Avoid unnecessary component creation. Use the existing components if they are already existing and from the correct type. // Avoid unnecessary component creation. Use the existing components if they are already existing and from the correct type.
if (isAlreadyCorrectlyInitialized) { if (isAlreadyCorrectlyInitialized) {
final LineChart lineChart = (LineChart) component.getChildren().get(0); lineChart = (LineChart) component.getChildren().get(0);
lineChartSeries = (LineChartSeries) ((CartesianChartModel) lineChart.getValue()).getSeries().get(0); linearModel = (CartesianChartModel) lineChart.getValue();
selectCheckboxMenu = (SelectCheckboxMenu) component.getChildren().get(1);
} else { } else {
final FacesContext facesContext = FacesContext.getCurrentInstance(); final FacesContext facesContext = FacesContext.getCurrentInstance();
final Application application = facesContext.getApplication(); final Application application = facesContext.getApplication();
// Create the Primefaces chart component // Create the Primefaces chart component
final LineChart lineChart = (LineChart) application.createComponent(facesContext, "org.primefaces.component.chart.LineChart", lineChart = (LineChart) application.createComponent(facesContext, "org.primefaces.component.chart.LineChart",
"org.primefaces.component.chart.LineChartRenderer"); "org.primefaces.component.chart.LineChartRenderer");
lineChart.setTitle(displayConnectorName); lineChart.setTitle(displayConnectorName);
lineChart.setLegendPosition("e");
// Add the corresponding model // Add the corresponding model
final CartesianChartModel linearModel = new CartesianChartModel(); linearModel = new CartesianChartModel();
lineChartSeries = new LineChartSeries();
lineChartSeries.setLabel("Series");
linearModel.addSeries(lineChartSeries);
lineChart.setValue(linearModel); lineChart.setValue(linearModel);
// Create the Primefaces drop box
selectCheckboxMenu = (SelectCheckboxMenu) application.createComponent(facesContext, "org.primefaces.component.SelectCheckboxMenu",
"org.primefaces.component.SelectCheckboxMenuRenderer");
component.getChildren().clear(); component.getChildren().clear();
component.getChildren().add(lineChart); component.getChildren().add(lineChart);
component.getChildren().add(selectCheckboxMenu);
} }
try { try {
final Object displayObj = this.projectService.getDisplay(this.projectName, this.activeView.getName(), displayConnectorName); final Object displayObj = this.projectService.getDisplay(this.projectName, this.activeView.getName(), displayConnectorName);
final Set<String> keys = (Set<String>) new Mirror().on(displayObj).invoke().method("getKeys").withoutArgs(); final Set<String> keys = (Set<String>) new Mirror().on(displayObj).invoke().method("getKeys").withoutArgs();
selectCheckboxMenu.getChildren().clear(); lineChart.setLegendCols((int) (Math.ceil(keys.size() / 10.0)));
for (final String key : keys) { linearModel.clear();
final UISelectItem item = new UISelectItem();
item.setValue(new SelectItem(key));
selectCheckboxMenu.getChildren().add(item);
}
if (keys.isEmpty()) { if (keys.isEmpty()) {
lineChartSeries.set(0, 0); final LineChartSeries series = new LineChartSeries();
series.set(0, 0);
linearModel.addSeries(series);
} else { } else {
final Map<Object, Number> entries = (Map<Object, Number>) new Mirror().on(displayObj).invoke().method("getEntries").withArgs(keys.iterator().next()); for (final String key : keys) {
final Map<Object, Number> entries = (Map<Object, Number>) new Mirror().on(displayObj).invoke().method("getEntries").withArgs(key);
final LineChartSeries lineChartSeries = new LineChartSeries();
lineChartSeries.setLabel(key);
if (entries.isEmpty()) { if (entries.isEmpty()) {
lineChartSeries.set(0, 0); lineChartSeries.set(0, 0);
} else { } else {
lineChartSeries.setData(entries); lineChartSeries.setData(entries);
} }
linearModel.addSeries(lineChartSeries);
}
} }
} catch (final DisplayNotFoundException ex) { } catch (final DisplayNotFoundException ex) {
CurrentCockpitBean.LOG.warn("Display not found.", ex); CurrentCockpitBean.LOG.warn("Display not found.", ex);
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<!-- This parameter determines the current stage of the project. --> <!-- This parameter determines the current stage of the project. -->
<context-param> <context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name> <param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value> <param-value>Production</param-value>
</context-param> </context-param>
<!-- This parameter makes sure that the primefaces theme chooser will work. --> <!-- This parameter makes sure that the primefaces theme chooser will work. -->
......
...@@ -367,6 +367,6 @@ public class CockpitLayoutTest { ...@@ -367,6 +367,6 @@ public class CockpitLayoutTest {
Assert.assertEquals("Invalid layout", displayConnector2, layout1.get(0).get(1)); Assert.assertEquals("Invalid layout", displayConnector2, layout1.get(0).get(1));
Assert.assertEquals("Invalid layout", displayConnector3, layout1.get(0).get(2)); Assert.assertEquals("Invalid layout", displayConnector3, layout1.get(0).get(2));
Assert.assertEquals("Invalid layout", displayConnector4, layout2.get(0).get(0)); Assert.assertEquals("Invalid layout", displayConnector4, layout2.get(0).get(0));
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment