Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F1130460
editors.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
editors.js
View Options
if
(
!
dojo
.
_hasResource
[
"dojox.grid._data.editors"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"dojox.grid._data.editors"
]
=
true
;
dojo
.
provide
(
"dojox.grid._data.editors"
);
dojo
.
provide
(
"dojox.grid.editors"
);
dojo
.
declare
(
"dojox.grid.editors.Base"
,
null
,
{
// summary:
// base grid editor class. Other grid editors should inherited from this class.
constructor
:
function
(
inCell
){
this
.
cell
=
inCell
;
},
//private
_valueProp
:
"value"
,
_formatPending
:
false
,
format
:
function
(
inDatum
,
inRowIndex
){
// summary:
// formats the cell for editing
// inDatum: anything
// cell data to edit
// inRowIndex: int
// grid row index
// returns: string of html to place in grid cell
},
//protected
needFormatNode
:
function
(
inDatum
,
inRowIndex
){
this
.
_formatPending
=
true
;
dojox
.
grid
.
whenIdle
(
this
,
"_formatNode"
,
inDatum
,
inRowIndex
);
},
cancelFormatNode
:
function
(){
this
.
_formatPending
=
false
;
},
//private
_formatNode
:
function
(
inDatum
,
inRowIndex
){
if
(
this
.
_formatPending
){
this
.
_formatPending
=
false
;
// make cell selectable
dojo
.
setSelectable
(
this
.
cell
.
grid
.
domNode
,
true
);
this
.
formatNode
(
this
.
getNode
(
inRowIndex
),
inDatum
,
inRowIndex
);
}
},
//protected
getNode
:
function
(
inRowIndex
){
return
(
this
.
cell
.
getNode
(
inRowIndex
)
||
0
).
firstChild
||
0
;
},
formatNode
:
function
(
inNode
,
inDatum
,
inRowIndex
){
// summary:
// format the editing dom node. Use when editor is a widget.
// inNode: dom node
// dom node for the editor
// inDatum: anything
// cell data to edit
// inRowIndex: int
// grid row index
if
(
dojo
.
isIE
){
// IE sux bad
dojox
.
grid
.
whenIdle
(
this
,
"focus"
,
inRowIndex
,
inNode
);
}
else
{
this
.
focus
(
inRowIndex
,
inNode
);
}
},
dispatchEvent
:
function
(
m
,
e
){
if
(
m
in
this
){
return
this
[
m
](
e
);
}
},
//public
getValue
:
function
(
inRowIndex
){
// summary:
// returns value entered into editor
// inRowIndex: int
// grid row index
// returns:
// value of editor
return
this
.
getNode
(
inRowIndex
)[
this
.
_valueProp
];
},
setValue
:
function
(
inRowIndex
,
inValue
){
// summary:
// set the value of the grid editor
// inRowIndex: int
// grid row index
// inValue: anything
// value of editor
var
n
=
this
.
getNode
(
inRowIndex
);
if
(
n
){
n
[
this
.
_valueProp
]
=
inValue
};
},
focus
:
function
(
inRowIndex
,
inNode
){
// summary:
// focus the grid editor
// inRowIndex: int
// grid row index
// inNode: dom node
// editor node
dojox
.
grid
.
focusSelectNode
(
inNode
||
this
.
getNode
(
inRowIndex
));
},
save
:
function
(
inRowIndex
){
// summary:
// save editor state
// inRowIndex: int
// grid row index
this
.
value
=
this
.
value
||
this
.
getValue
(
inRowIndex
);
//console.log("save", this.value, inCell.index, inRowIndex);
},
restore
:
function
(
inRowIndex
){
// summary:
// restore editor state
// inRowIndex: int
// grid row index
this
.
setValue
(
inRowIndex
,
this
.
value
);
//console.log("restore", this.value, inCell.index, inRowIndex);
},
//protected
_finish
:
function
(
inRowIndex
){
// summary:
// called when editing is completed to clean up editor
// inRowIndex: int
// grid row index
dojo
.
setSelectable
(
this
.
cell
.
grid
.
domNode
,
false
);
this
.
cancelFormatNode
(
this
.
cell
);
},
//public
apply
:
function
(
inRowIndex
){
// summary:
// apply edit from cell editor
// inRowIndex: int
// grid row index
this
.
cell
.
applyEdit
(
this
.
getValue
(
inRowIndex
),
inRowIndex
);
this
.
_finish
(
inRowIndex
);
},
cancel
:
function
(
inRowIndex
){
// summary:
// cancel cell edit
// inRowIndex: int
// grid row index
this
.
cell
.
cancelEdit
(
inRowIndex
);
this
.
_finish
(
inRowIndex
);
}
});
dojox
.
grid
.
editors
.
base
=
dojox
.
grid
.
editors
.
Base
;
// back-compat
dojo
.
declare
(
"dojox.grid.editors.Input"
,
dojox
.
grid
.
editors
.
Base
,
{
// summary
// grid cell editor that provides a standard text input box
constructor
:
function
(
inCell
){
this
.
keyFilter
=
this
.
keyFilter
||
this
.
cell
.
keyFilter
;
},
// keyFilter: object
// optional regex for disallowing keypresses
keyFilter
:
null
,
format
:
function
(
inDatum
,
inRowIndex
){
this
.
needFormatNode
(
inDatum
,
inRowIndex
);
return
'<input class="dojoxGrid-input" type="text" value="'
+
inDatum
+
'">'
;
},
formatNode
:
function
(
inNode
,
inDatum
,
inRowIndex
){
this
.
inherited
(
arguments
);
// FIXME: feels too specific for this interface
this
.
cell
.
registerOnBlur
(
inNode
,
inRowIndex
);
},
doKey
:
function
(
e
){
if
(
this
.
keyFilter
){
var
key
=
String
.
fromCharCode
(
e
.
charCode
);
if
(
key
.
search
(
this
.
keyFilter
)
==
-
1
){
dojo
.
stopEvent
(
e
);
}
}
},
_finish
:
function
(
inRowIndex
){
this
.
inherited
(
arguments
);
var
n
=
this
.
getNode
(
inRowIndex
);
try
{
dojox
.
grid
.
fire
(
n
,
"blur"
);
}
catch
(
e
){}
}
});
dojox
.
grid
.
editors
.
input
=
dojox
.
grid
.
editors
.
Input
;
// back compat
dojo
.
declare
(
"dojox.grid.editors.Select"
,
dojox
.
grid
.
editors
.
Input
,
{
// summary:
// grid cell editor that provides a standard select
// options: text of each item
// values: value for each item
// returnIndex: editor returns only the index of the selected option and not the value
constructor
:
function
(
inCell
){
this
.
options
=
this
.
options
||
this
.
cell
.
options
;
this
.
values
=
this
.
values
||
this
.
cell
.
values
||
this
.
options
;
},
format
:
function
(
inDatum
,
inRowIndex
){
this
.
needFormatNode
(
inDatum
,
inRowIndex
);
var
h
=
[
'<select class="dojoxGrid-select">'
];
for
(
var
i
=
0
,
o
,
v
;
(
o
=
this
.
options
[
i
])
&&
(
v
=
this
.
values
[
i
]);
i
++
){
h
.
push
(
"<option"
,
(
inDatum
==
o
?
' selected'
:
''
),
/*' value="' + v + '"',*/
">"
,
o
,
"</option>"
);
}
h
.
push
(
'</select>'
);
return
h
.
join
(
''
);
},
getValue
:
function
(
inRowIndex
){
var
n
=
this
.
getNode
(
inRowIndex
);
if
(
n
){
var
i
=
n
.
selectedIndex
,
o
=
n
.
options
[
i
];
return
this
.
cell
.
returnIndex
?
i
:
o
.
value
||
o
.
innerHTML
;
}
}
});
dojox
.
grid
.
editors
.
select
=
dojox
.
grid
.
editors
.
Select
;
// back compat
dojo
.
declare
(
"dojox.grid.editors.AlwaysOn"
,
dojox
.
grid
.
editors
.
Input
,
{
// summary:
// grid cell editor that is always on, regardless of grid editing state
// alwaysOn: boolean
// flag to use editor to format grid cell regardless of editing state.
alwaysOn
:
true
,
_formatNode
:
function
(
inDatum
,
inRowIndex
){
this
.
formatNode
(
this
.
getNode
(
inRowIndex
),
inDatum
,
inRowIndex
);
},
applyStaticValue
:
function
(
inRowIndex
){
var
e
=
this
.
cell
.
grid
.
edit
;
e
.
applyCellEdit
(
this
.
getValue
(
inRowIndex
),
this
.
cell
,
inRowIndex
);
e
.
start
(
this
.
cell
,
inRowIndex
,
true
);
}
});
dojox
.
grid
.
editors
.
alwaysOn
=
dojox
.
grid
.
editors
.
AlwaysOn
;
// back-compat
dojo
.
declare
(
"dojox.grid.editors.Bool"
,
dojox
.
grid
.
editors
.
AlwaysOn
,
{
// summary:
// grid cell editor that provides a standard checkbox that is always on
_valueProp
:
"checked"
,
format
:
function
(
inDatum
,
inRowIndex
){
return
'<input class="dojoxGrid-input" type="checkbox"'
+
(
inDatum
?
' checked="checked"'
:
''
)
+
' style="width: auto" />'
;
},
doclick
:
function
(
e
){
if
(
e
.
target
.
tagName
==
'INPUT'
){
this
.
applyStaticValue
(
e
.
rowIndex
);
}
}
});
dojox
.
grid
.
editors
.
bool
=
dojox
.
grid
.
editors
.
Bool
;
// back-compat
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jun 21, 15:42 (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26736
Default Alt Text
editors.js (6 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment