Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
c4c3fb49
Commit
c4c3fb49
authored
Dec 20, 2017
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
trigger click from treeview
parent
cafd9cf3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
12 deletions
+32
-12
TreeView.js
remix-debugger/src/ui/TreeView.js
+32
-12
No files found.
remix-debugger/src/ui/TreeView.js
View file @
c4c3fb49
...
@@ -25,9 +25,14 @@ var css = csjs`
...
@@ -25,9 +25,14 @@ var css = csjs`
width: 10px;
width: 10px;
}
}
`
`
var
remixLib
=
require
(
'remix-lib'
)
var
EventManager
=
remixLib
.
EventManager
class
TreeView
{
class
TreeView
{
constructor
(
opts
)
{
constructor
(
opts
)
{
this
.
event
=
new
EventManager
()
this
.
extractData
=
opts
.
extractData
||
this
.
extractDataDefault
this
.
extractData
=
opts
.
extractData
||
this
.
extractDataDefault
this
.
formatSelf
=
opts
.
formatSelf
||
this
.
formatSelfDefault
this
.
formatSelf
=
opts
.
formatSelf
||
this
.
formatSelfDefault
this
.
view
=
null
this
.
view
=
null
...
@@ -51,7 +56,7 @@ class TreeView {
...
@@ -51,7 +56,7 @@ class TreeView {
renderObject
(
item
,
parent
,
key
,
expand
,
keyPath
)
{
renderObject
(
item
,
parent
,
key
,
expand
,
keyPath
)
{
var
data
=
this
.
extractData
(
item
,
parent
,
key
)
var
data
=
this
.
extractData
(
item
,
parent
,
key
)
var
children
=
(
data
.
children
||
[]).
map
((
child
,
index
)
=>
{
var
children
=
(
data
.
children
||
[]).
map
((
child
,
index
)
=>
{
return
this
.
renderObject
(
child
.
value
,
data
,
child
.
key
,
expand
,
keyPath
+
'
,
'
+
child
.
key
)
return
this
.
renderObject
(
child
.
value
,
data
,
child
.
key
,
expand
,
keyPath
+
'
/
'
+
child
.
key
)
})
})
return
this
.
formatData
(
key
,
data
,
children
,
expand
,
keyPath
)
return
this
.
formatData
(
key
,
data
,
children
,
expand
,
keyPath
)
}
}
...
@@ -64,23 +69,32 @@ class TreeView {
...
@@ -64,23 +69,32 @@ class TreeView {
}
}
formatData
(
key
,
data
,
children
,
expand
,
keyPath
)
{
formatData
(
key
,
data
,
children
,
expand
,
keyPath
)
{
var
label
=
yo
`<div class=
"
${
css
.
label_tv
}
"><div class="fa fa-caret-right" class="
${
css
.
caret_tv
}
"
></div><span>
${
this
.
formatSelf
(
key
,
data
)}
</span></div>`
var
label
=
yo
`<div class=
${
css
.
label_tv
}
><div class="fa fa-caret-right" class=
${
css
.
caret_tv
}
></div><span>
${
this
.
formatSelf
(
key
,
data
)}
</span></div>`
var
renderedChildren
=
''
var
renderedChildren
=
null
if
(
children
.
length
)
{
if
(
data
.
isNode
||
children
.
length
)
{
renderedChildren
=
yo
`<ul class=
"
${
css
.
ul_tv
}
"
>
${
children
}
</ul>`
renderedChildren
=
yo
`<ul class=
${
this
.
ul_tv
}
>
${
children
}
</ul>`
renderedChildren
.
style
.
display
=
this
.
nodeIsExpanded
[
keyPath
]
!==
undefined
?
(
this
.
nodeIsExpanded
[
keyPath
]
?
'block'
:
'none'
)
:
(
expand
?
'block'
:
'none'
)
renderedChildren
.
style
.
display
=
this
.
nodeIsExpanded
[
keyPath
]
!==
undefined
?
(
this
.
nodeIsExpanded
[
keyPath
]
?
'block'
:
'none'
)
:
(
expand
?
'block'
:
'none'
)
label
.
firstElementChild
.
className
=
renderedChildren
.
style
.
display
===
'none'
?
'fa fa-caret-right'
:
'fa fa-caret-down'
label
.
firstElementChild
.
className
=
renderedChildren
.
style
.
display
===
'none'
?
'fa fa-caret-right'
:
'fa fa-caret-down'
var
self
=
this
if
(
children
.
length
)
{
label
.
onclick
=
function
()
{
var
self
=
this
this
.
firstElementChild
.
className
=
this
.
firstElementChild
.
className
===
'fa fa-caret-right'
?
'fa fa-caret-down'
:
'fa fa-caret-right'
label
.
onclick
=
function
()
{
var
list
=
this
.
parentElement
.
querySelector
(
'ul'
)
this
.
firstElementChild
.
className
=
this
.
firstElementChild
.
className
===
'fa fa-caret-right'
?
'fa fa-caret-down'
:
'fa fa-caret-right'
list
.
style
.
display
=
list
.
style
.
display
===
'none'
?
'block'
:
'none'
var
list
=
this
.
parentElement
.
querySelector
(
'ul'
)
self
.
nodeIsExpanded
[
keyPath
]
=
list
.
style
.
display
===
'block'
list
.
style
.
display
=
list
.
style
.
display
===
'none'
?
'block'
:
'none'
self
.
nodeIsExpanded
[
keyPath
]
=
list
.
style
.
display
===
'block'
}
}
else
{
label
.
onclick
=
()
=>
{
this
.
event
.
trigger
(
'nodeClick'
,
[
keyPath
,
renderedChildren
])
}
}
}
}
else
{
}
else
{
label
.
firstElementChild
.
style
.
visibility
=
'hidden'
label
.
firstElementChild
.
style
.
visibility
=
'hidden'
label
.
onclick
=
()
=>
{
this
.
event
.
trigger
(
'leafClick'
,
[
keyPath
,
renderedChildren
])
}
}
}
return
yo
`<li class=
"
${
css
.
li_tv
}
"
>
${
label
}${
renderedChildren
}
</li>`
return
yo
`<li class=
${
css
.
li_tv
}
>
${
label
}${
renderedChildren
}
</li>`
}
}
formatSelfDefault
(
key
,
data
)
{
formatSelfDefault
(
key
,
data
)
{
...
@@ -94,14 +108,20 @@ class TreeView {
...
@@ -94,14 +108,20 @@ class TreeView {
return
{
key
:
index
,
value
:
item
}
return
{
key
:
index
,
value
:
item
}
})
})
ret
.
self
=
'Array'
ret
.
self
=
'Array'
ret
.
isNode
=
true
ret
.
isLeaf
=
false
}
else
if
(
item
instanceof
Object
)
{
}
else
if
(
item
instanceof
Object
)
{
ret
.
children
=
Object
.
keys
(
item
).
map
((
key
)
=>
{
ret
.
children
=
Object
.
keys
(
item
).
map
((
key
)
=>
{
return
{
key
:
key
,
value
:
item
[
key
]}
return
{
key
:
key
,
value
:
item
[
key
]}
})
})
ret
.
self
=
'Object'
ret
.
self
=
'Object'
ret
.
isNode
=
true
ret
.
isLeaf
=
false
}
else
{
}
else
{
ret
.
self
=
item
ret
.
self
=
item
ret
.
children
=
[]
ret
.
children
=
[]
ret
.
isNode
=
false
ret
.
isLeaf
=
true
}
}
return
ret
return
ret
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment