-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
99 lines (93 loc) · 2.56 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
* @file mofron-comp-header-title/index.js
* @author simpart
*/
let mf = require('mofron');
let Menu = require('mofron-comp-menu');
mf.comp.BorderMenu = class extends Menu {
constructor (po) {
try {
super();
this.name('BorderMenu');
this.prmOpt(po);
} catch (e) {
console.error(e.stack);
throw e;
}
}
addChild (chd, idx) {
try {
this.borderPos(chd, this.child().length);
super.addChild(chd, idx);
} catch (e) {
console.error(e.stack);
throw e;
}
}
horizon (flg) {
try {
let ret = super.horizon(flg);
if (undefined !== flg) {
this.borderPos();
} else {
return ret;
}
} catch (e) {
console.error(e.stack);
throw e;
}
}
borderPos (cmp, idx) {
try {
if (undefined === cmp) {
let chd = this.child();
for (let cidx in chd) {
this.borderPos(chd[cidx], cidx);
}
} else {
cmp.style({
'border' : 'solid 1px',
'border-color' : this.color().getStyle(),
'position' : 'relative'
});
if (true === this.horizon()) {
cmp.style({
'left' : '-' + idx + 'px',
'top' : '0px'
});
} else {
cmp.style({
'top' : '-' + idx + 'px',
'left' : '0px'
});
}
}
} catch (e) {
console.error(e.stack);
throw e;
}
}
color (clr) {
try {
if (undefined === clr) {
/* getter */
return (undefined === this.m_color) ? new mf.Color(0,0,0) : this.m_color;
}
/* setter */
if (true !== mf.func.isInclude(clr, 'Color')) {
throw new Error('invalid parameter');
}
let chd = this.child();
for (let cidx in chd) {
chd[cidx].style({
'border-color' : clr.getStyle()
});
}
this.m_color = clr;
} catch (e) {
console.error(e.stack);
throw e;
}
}
}
module.exports = mf.comp.BorderMenu;