BaseTool Class
BaseTool provides essential functionality for Tools including handling of the activate toggle, setting busy state, injecting output float into the page,
and templating the output. It's not required to mixin BaseTool, but it's really helpful; and of course any of the BaseTool methods/properties can be overwritten
after mixining it in.
Call initToggle to initialize the tool.
Constructor
BaseTool
()
static
Item Index
Methods
Properties
Events
Methods
_wrapFileCallInPromise
-
readMethod
Helper function for wrapping File API calls in Promise objects. Used for building a series of helpers which call different file read methods.
Parameters:
-
readMethodStringa string indicating the FileReader method to call
Returns:
a function which accepts a {File} object and returns a Promise
activate
()
chainable
Activate the tool by triggering open method on the tool's popup handle.
Returns:
This tool
deactivate
()
chainable
Deactivate the tool by triggering close method on the tool's popup handle.
Returns:
This tool
displayOutput
-
output
Injects given tool output into the tool's float.
Parameters:
-
outputString | JObjectString or node collection to be injected into the tool output float.
Returns:
this tool
displayTemplateOutput
-
templateData -
[templateName]
Generates output to be injected into the tool's float given a template's name and data object.
Parameters:
Returns:
this tool
initToggle
-
selector -
d -
[options]
Initializes the tool and sets up popup to handle activating/deactivating of the tool. Tools should call this function on init,
unless they employ a different workflow and then need to handle all function activation/deactivation/working themselves.
Parameters:
-
selectorJObjecta target selector that serves as a toggle for the tool
-
dJObjecta Deferred object to be resolved after tool initiates
-
[options]Object optionalAdditional options
-
[target]JObject optionalTarget where the tool's float should be appended to
-
[outputFloatTemplate]String optionalTemplate name to generate the float container with
-
[outputFloatData]Object optionalData payload to be passed to the template engine when generate the float container
-
[workingLabelTemplate]String optionalTemplate name to generate the
busylabel -
[workingLabelData]Object optionalData payload to be passed to the template engine when generate the
busylabel -
[activate]Function optionalan activate function to be called when the toggle is clicked
-
[deactivate]Function optionala deactivate function to be called when the toggle is clicked
-
[defaultAction]Function optionalFunction to be executed when the
float-default-buttonis clicked
-
Returns:
this tool
newPopup
-
popupAttr
Create a new PopupBase object from the settings provided.
Parameters:
-
popupAttrPopupBaseSettingsPopup settings
Returns:
popup
working
-
state
Sets the tool into a specified state; if the tool is working, a working label is placed beside the cursor and injected into the tool output float.
Parameters:
-
stateBooleanindicates the state of the tool: working, idle
Returns:
This tool
Properties
event
Object
Event names published by the BaseTool
Default: null
Example:
{
ACTIVATE: "basetool-activate",
DEACTIVATE: "basetool-deactivate"
}
handle
JObject
Handle (popup handle) that triggers opening/closing of the tool.
Default: null
node
JObject
Node (button) the handle is attached too.
Default: null
outputFloat
JObject
Node representing the tool output float container.
Default: templates/tools_template.json:base_tool_float
Example:
<div class='advanced-output-section-container'>
<div class='advanced-output-section'>
<section class='float-content'></section>
<button class='button button-none float-default-button' >
<i class='fa fa-trash-o'></i><span class='on-right'>{%= o.clearMapButton %}</span>
</button>
<div class='clear'></div>
</div>
</div>
tooltip
JObject
Tooltip node that appears by the mouse cursor when tools is activated.
Default: $("#mainMap.map > .tooltip")
workingLabel
String
Template string representing working label shown when the tool is in busy state.
Default: templates/tools_template.json:working_label
Example:
<span class='tool-tooltip'><i class='fa fa-cog fa-spin'></i>{%= o.workingLabel %}</span>
Reusable Accessible Mapping Platform