UE
.
commands
[
'tabbg'
]
=
{
queryCommandState
:
function
()
{
var
rng
=
this
.
selection
.
getRange
();
return
domUtils
.
findParentByTagName
(
rng
.
startContainer
,
'table'
,
true
)
?
0
:-
1
;
},
execCommand
:
function
(
cmd
,
color
)
{
if
(
color
==
"default"
)
color
=
""
;
var
rng
=
this
.
selection
.
getRange
();
var
table
=
domUtils
.
findParentByTagName
(
rng
.
startContainer
,
'table'
,
true
);
if
(
table
)
{
// console.log('tab = ', table);
var
sels
=
table
.
getElementsByClassName
(
"selectTdClass"
);
if
(
sels
.
length
==
0
){
var
prtTd
=
domUtils
.
findParentByTagName
(
rng
.
startContainer
,
'td'
,
true
);
sels
=[
prtTd
];
}
for
(
var
i
=
0
,
n
=
sels
.
length
;
i
<
n
;
i
++){
// console.log('e = ', sels[i]);
sels
[
i
].
style
.
backgroundColor
=
color
;
}
}
this
.
selection
.
clearRange
();
}
};
editorui
.
tabbg
=
function
(
editor
){
window
.
ed
=
editor
;
var
ui
=
new
editorui
.
ColorButton
({
className
:
'edui-for-tabbg'
,
color
:
'default'
,
title
:
'单元格背景色'
,
editor
:
editor
,
onpickcolor
:
function
(
t
,
color
)
{
// console.log('onpickcolor->', t, color);
editor
.
execCommand
(
"tabbg"
,
color
);
},
onpicknocolor
:
function
()
{
// console.log('onpicknocolor-> nil');
editor
.
execCommand
(
"tabbg"
,
'default'
);
this
.
setColor
(
'transparent'
);
this
.
color
=
'default'
;
},
onbuttonclick
:
function
()
{
// console.log('onbuttonclick-> nil');
editor
.
execCommand
(
"tabbg"
,
this
.
color
);
}
});
editorui
.
buttons
[
"tabbg"
]
=
ui
;
editor
.
addListener
(
'selectionchange'
,
function
()
{
ui
.
setDisabled
(
editor
.
queryCommandState
(
"tabbg"
)
==
-
1
);
});
return
ui
;
}