diff --git a/src/java/beans/AvailablePluginsBean.java b/src/java/beans/AvailablePluginsBean.java new file mode 100644 index 0000000000000000000000000000000000000000..5d7ca41901c6925ea8e6e3e406caf74a7a449205 --- /dev/null +++ b/src/java/beans/AvailablePluginsBean.java @@ -0,0 +1,25 @@ +package beans; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.RequestScoped; +import javax.faces.bean.SessionScoped; +import org.primefaces.model.DefaultTreeNode; +import org.primefaces.model.TreeNode; + +/** + * + * @author Nils Christian Ehmke + */ +@ManagedBean +@SessionScoped +public class AvailablePluginsBean { + + public synchronized TreeNode getAvailablePluginsRoot() { + TreeNode root = new DefaultTreeNode("Root", null); + + final TreeNode readedNode = new DefaultTreeNode("Reader", root); + final TreeNode analysisPluginsNode = new DefaultTreeNode("AnalysisPlugins", root); + + return root; + } +} diff --git a/src/java/beans/ProjectsBean.java b/src/java/beans/ProjectsBean.java new file mode 100644 index 0000000000000000000000000000000000000000..a212f51c3b8f5cb2231dd25ca9be7efb81e55dde --- /dev/null +++ b/src/java/beans/ProjectsBean.java @@ -0,0 +1,44 @@ +package beans; + +import common.Project; +import java.util.ArrayList; +import java.util.List; +import javax.faces.bean.ApplicationScoped; +import javax.faces.bean.ManagedBean; +import org.primefaces.model.DefaultTreeNode; +import org.primefaces.model.TreeNode; + +/** + * + * @author Nils Christian Ehmke + */ +@ManagedBean +@ApplicationScoped +public final class ProjectsBean { + + private final List<Project> projects; + + public ProjectsBean() { + projects = new ArrayList<Project>(); + } + + public synchronized boolean addProject(final String projectName) { + return projects.add(new Project(projectName)); + } + + public synchronized TreeNode getProjectsRoot() { + TreeNode root = new DefaultTreeNode("Root", null); + + for (final Project project : projects) { + final TreeNode projectNode = new DefaultTreeNode(project.getName(), root); + final TreeNode dependenciesNode = new DefaultTreeNode("Dependencies", projectNode); + final TreeNode usedPluginsNode = new DefaultTreeNode("Used Plugins", projectNode); + + for (final String dependency : project.getDependencies()) { + final TreeNode dependencyNode = new DefaultTreeNode(dependency, dependenciesNode); + } + } + + return root; + } +} diff --git a/src/java/common/Project.java b/src/java/common/Project.java new file mode 100644 index 0000000000000000000000000000000000000000..ec842d4c503ebfe785c4914524078faabe2d0397 --- /dev/null +++ b/src/java/common/Project.java @@ -0,0 +1,31 @@ +package common; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author Nils Christian Ehmke + */ +public final class Project { + + private String name; + private List<String> dependencies; + + public Project(final String name) { + this.name = name; + this.dependencies = new ArrayList<String>(); + } + + public String getName() { + return name; + } + + public synchronized boolean addDependency(final String dependencyName) { + return this.dependencies.add(dependencyName); + } + + public synchronized List<String> getDependencies() { + return dependencies; + } +} diff --git a/web/main.xhtml b/web/main.xhtml index f92ee8c913cd600d4f31afeedabf6dea409ac952..681095a12dec94a94219d2adbf3220a5632f70ae 100644 --- a/web/main.xhtml +++ b/web/main.xhtml @@ -7,13 +7,17 @@ <title>Kieker.WebGUI</title> </h:head> <h:body> - <h:form> - + <h:form> <p:layout fullPage="true"> - - <p:layoutUnit position="top" height="115" collapsible="true"> + + <p:layoutUnit header="Current Project: n/a" position="top" height="115" collapsible="true"> <div style="padding-top:10px" align="center"> - <p:button value="New Project"/> + <p:spacer width="60" height="10" /> + <p:button value="New Project" onmousedown="#{projectsBean.addProject('Some Project')}" /> + <p:spacer width="35" height="10" /> + <p:button value="Add Dependency"/> + <p:spacer width="35" height="10" /> + <p:button value="Remove Dependency"/> <p:spacer width="35" height="10" /> <p:button value="Save Project"/> <p:spacer width="35" height="10" /> @@ -22,8 +26,8 @@ </p:layoutUnit> - <p:layoutUnit header="Projects" collapsible="true" scrollable="true" position="left" width="200" resizable="true" minWidth="100"> - <p:tree value="#{treeBean.root}" var="node" expanded="true" > + <p:layoutUnit header="Projects" collapsible="true" scrollable="true" position="left" width="200" resizable="true" minWidth="100"> + <p:tree style="font-size:15px" value="#{projectsBean.projectsRoot}" var="node" expanded="true" > <p:treeNode> <h:outputText value="#{node}"/> </p:treeNode> @@ -36,7 +40,7 @@ </p:panel> <p:draggable for="handlepnl" handle=".ui-panel-titlebar" grid="40,40"/> <p:resizable for="handlepnl" grid="40" /> - + <p:panel style="font-size:15px;width:350px" id="handlepn2" header="ResourceUtilizationPlugin"> <h:outputText value="CPU-Utilization" /> </p:panel> @@ -66,10 +70,14 @@ </p:panel> <p:draggable for="handlepn6" handle=".ui-panel-titlebar" grid="40,40"/> <p:resizable for="handlepn6" grid="40"/> + </p:layoutUnit> + + <p:layoutUnit position="bottom" height="150" scrollable="true" header="Properties" resizable="true" collapsible="true"> + </p:layoutUnit> <p:layoutUnit position="right" width="200" scrollable="true" header="Tool Palette" resizable="true" collapsible="true"> - <p:tree value="#{componentBean.root}" var="node" expanded="true" > + <p:tree style="font-size:15px" value="#{availablePluginsBean.availablePluginsRoot}" var="node" expanded="true" > <p:treeNode> <h:outputText value="#{node}"/> </p:treeNode>