basic filter support
This commit is contained in:
parent
aeae866998
commit
09bdb7d61a
8 changed files with 246 additions and 38 deletions
lib
46
lib/gui.js
46
lib/gui.js
|
@ -1,13 +1,13 @@
|
|||
define([ "chroma-js", "map", "sidebar", "tabs", "container", "meshstats",
|
||||
"legend", "linklist", "nodelist", "simplenodelist", "infobox/main",
|
||||
"proportions", "forcegraph", "title", "about" ],
|
||||
"proportions", "forcegraph", "title", "about", "datadistributor",
|
||||
"filters/filtergui" ],
|
||||
function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
|
||||
Nodelist, SimpleNodelist, Infobox, Proportions, ForceGraph,
|
||||
Title, About) {
|
||||
Title, About, DataDistributor, FilterGUI) {
|
||||
return function (config, router) {
|
||||
var self = this
|
||||
var dataTargets = []
|
||||
var latestData
|
||||
var fanout = new DataDistributor()
|
||||
var content
|
||||
var contentDiv
|
||||
|
||||
|
@ -17,16 +17,13 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
|
|||
var buttons = document.createElement("div")
|
||||
buttons.classList.add("buttons")
|
||||
|
||||
function dataTargetRemove(d) {
|
||||
dataTargets = dataTargets.filter( function (e) { return d !== e })
|
||||
}
|
||||
|
||||
function removeContent() {
|
||||
if (!content)
|
||||
return
|
||||
|
||||
router.removeTarget(content)
|
||||
dataTargetRemove(content)
|
||||
fanout.remove(content)
|
||||
|
||||
content.destroy()
|
||||
|
||||
content = null
|
||||
|
@ -38,10 +35,7 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
|
|||
content = new K(config, linkScale, sidebar.getWidth, router, buttons)
|
||||
content.render(contentDiv)
|
||||
|
||||
if (latestData)
|
||||
content.setData(latestData)
|
||||
|
||||
dataTargets.push(content)
|
||||
fanout.add(content)
|
||||
router.addTarget(content)
|
||||
}
|
||||
|
||||
|
@ -82,15 +76,15 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
|
|||
var lostnodeslist = new SimpleNodelist("lost", "lastseen", router, "Verschwundene Knoten")
|
||||
var nodelist = new Nodelist(router)
|
||||
var linklist = new Linklist(linkScale, router)
|
||||
var statistics = new Proportions(config)
|
||||
var statistics = new Proportions(config, fanout)
|
||||
var about = new About()
|
||||
|
||||
dataTargets.push(meshstats)
|
||||
dataTargets.push(newnodeslist)
|
||||
dataTargets.push(lostnodeslist)
|
||||
dataTargets.push(nodelist)
|
||||
dataTargets.push(linklist)
|
||||
dataTargets.push(statistics)
|
||||
fanout.add(meshstats)
|
||||
fanout.add(newnodeslist)
|
||||
fanout.add(lostnodeslist)
|
||||
fanout.add(nodelist)
|
||||
fanout.add(linklist)
|
||||
fanout.add(statistics)
|
||||
|
||||
sidebar.add(header)
|
||||
header.add(meshstats)
|
||||
|
@ -99,6 +93,10 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
|
|||
overview.add(newnodeslist)
|
||||
overview.add(lostnodeslist)
|
||||
|
||||
var filterGUI = new FilterGUI(fanout)
|
||||
fanout.watchFilters(filterGUI)
|
||||
header.add(filterGUI)
|
||||
|
||||
sidebar.add(tabs)
|
||||
tabs.add("Aktuelles", overview)
|
||||
tabs.add("Knoten", nodelist)
|
||||
|
@ -114,13 +112,7 @@ function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
|
|||
|
||||
router.view("m")
|
||||
|
||||
self.setData = function (data) {
|
||||
latestData = data
|
||||
|
||||
dataTargets.forEach(function (d) {
|
||||
d.setData(data)
|
||||
})
|
||||
}
|
||||
self.setData = fanout.setData
|
||||
|
||||
return self
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue