new (require("nmodule/webEditors/rc/fe/baja/BaseEditor"))( [params])
Base class for all webEditors
editors for Baja values. This editor
incorporates all the Widget
sugar from BaseWidget
and adds more
Baja-specific features on top. Most Niagara field editors should extend
from this class.
Extends:
Parameters:
Name | Type | Argument | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
params |
Object |
<optional> |
Same parameters as Properties
|
Methods
-
<static> typeToClass(type)
-
Convert a BajaScript Type to a corresponding CSS class.
Parameters:
Name Type Description type
String | Type spec
Returns:
- Type
- String
Example
expect(BaseEditor.typeToClass('baja:String')).toBe('type-baja-String');
-
applyParams( [params])
-
Can re-apply certain params that can also be passed to the constructor.
Parameters:
Name Type Argument Description params
Object <optional>
Properties
Name Type Argument Default Description readonly
Boolean <optional>
enabled
Boolean <optional>
true must explicitly set to false to
disableproperties
module:bajaux/Properties | Object <optional>
- Inherited From:
Returns:
promise to be resolved after any
setEnabled
/setReadonly
work is done. Note that these functions will not
be called if the value ofenabled
/readonly
is not actually changing.- Type
- Promise
-
destroy()
-
Removes all classes added during a call to #load. Emits a
destroyed
tinyevent.Returns:
call to module:bajaux/Widget#destroy
- Type
- Promise
-
generateId()
-
Generate a unique DOM ID. The ID will include the name of this editor's
constructor just for tracing/debugging purposes.- Inherited From:
Returns:
- Type
- String
-
getChildEditors( [params])
-
Same as
getChildWidgets
, but is limited to instances ofBaseEditor
.Parameters:
Name Type Argument Description params
Object <optional>
-
getChildWidgets( [params])
-
Returns an array of child widgets living inside this editor's DOM.
This method will specifically not return child widgets of child widgets- for instance, if this widget has one child editor for a
baja.Facets
,
you will only get a single widget back - it won't recurse down and give
you all the tag editors, type editors etc.
This is safer and easier than using
$.find()
, which recurses down,
or carefully managing strings of$.children()
calls.Pass in a
jQuery
instance to limit the child editor search to
a particular set of elements. Otherwise, will search all child elements
of this editor's DOM.If this editor has not initialized yet, you'll just get an empty array
back.The returned array will have some utility functions attached that return
promises. See example for details.Parameters:
Name Type Argument Description params
Object | jQuery <optional>
Properties
Name Type Argument Default Description dom
jQuery <optional>
this.jq().children() the dom element to search
type
function <optional>
the widget type to search for - pass in the
actual constructor, forinstanceof
checks- Inherited From:
Returns:
an array
of child editors- Type
- Array.<module:nmodule/webEditors/rc/fe/BaseWidget>
Examples
var kids = ed.getChildEditors(); kids.setAllEnabled(false).then(function () {}); kids.setAllModified(false).then(function () {}); kids.setAllReadonly(false).then(function () {}); kids.readAll().then(function (valuesArray) {}); kids.validateAll().then(function (valuesArray) {}); kids.saveAll().then(function () {}); kids.destroyAll().then(function () {});
var stringEditors = ed.getChildEditors({ type: StringEditor });
- for instance, if this widget has one child editor for a
-
initialize(dom)
-
Every
BaseWidget
will add theeditor
class to the element and emit aninitialized
tinyevent when initialized.Parameters:
Name Type Description dom
JQuery - Inherited From:
Returns:
call to module:bajaux/Widget#initialize
- Type
- Promise
-
load(value [, params])
-
Every
BaseEditor
will apply a number of CSS classes to a DOM element
when a value is loaded into it:editor
- If the loaded value is a Baja value, a number of CSS classes
corresponding to the value's Type and all superTypes. Classes will be
determined using typeToClass().
It will also emit a
loaded
tinyevent.Parameters:
Name Type Argument Description value
baja.Value | * params
Object <optional>
Returns:
call to module:bajaux/Widget#load
- Type
- Promise
-
requestFocus()
-
Attempts to place the cursor focus on this editor. For instance, if
showing a simple string editor in a dialog, it should request focus so
that the user can simply begin typing without having to move the mouse
over to it and click.Override this as necessary; by default, will place focus on the first
input
ortextarea
element in this editor's element.- Inherited From:
-
setFacets(facets)
-
Convert the given Facets into hidden, transient
bajaux Properties
and
apply them to this editor. In most cases you'll want to useproperties().setValue()
directly, but this method is useful when
applyingComplex
slot facets.Parameters:
Name Type Description facets
baja.Facets | Object (a
baja.Facets
instance or an object
literal to be converted tobaja.Facets
) -
shouldValidate( [flag])
-
This provides an extra hook for an editor to declare itself as needing to
be validated before saving or not. The default behavior is to return true
if this editor is modified, or if ashouldValidate
bajaux
Property
is present and truthy. If neither of these conditions is true, it will
check all known child editors, and return true if it has a child editor
that should validate.If
flag
is given, then the check against theshouldValidate
Property
will return true only if the value bitwise matches the
parameter. SeeBaseWidget.SHOULD_VALIDATE_ON_SAVE
, etc.Parameters:
Name Type Argument Description flag
Number <optional>
- Inherited From:
Returns:
- Type
- Boolean