goog.Disposable | |
goog.events.EventTarget | goog.Disposable |
goog.editor.Plugin | goog.events.EventTarget |
goog.editor.plugins.BasicTextFormatter | goog.editor.Plugin |
![]()
Applies a background color to a selection when the browser can't do the job.
NOTE(nicksantos): If you think this is hacky, you should try applying
background color in Opera. It made me cry.
Arguments:
|
code » | |||||
![]()
Apply pre-execCommand fixes for Gecko.
Arguments:
|
code » | |||||
Apply pre-execCommand fixes for IE.
|
code » | |||||
Apply pre-execCommand fixes for Safari.
|
code » | |||||
![]()
Makes sure that superscript is removed before applying subscript, and vice
versa. Fixes
http://buganizer/issue?id=1173491 .
Arguments:
|
code » | |||||
Work around a Gecko bug that causes inserted lists to forget the current
font. This affects WebKit in the same way and Opera in a slightly different
way, but this workaround only works in Gecko.
WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=19653
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=439966
Opera bug: https://bugs.opera.com/show_bug.cgi?id=340392
TODO: work around this issue in WebKit and Opera as well.
Returns: boolean
Whether the workaround was applied.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
Fix a ridiculous Safari bug: the first letters of new headings
somehow retain their original font size and weight if multiple lines are
selected during the execCommand that turns them into headings.
The solution is to strip these styles which are normally stripped when
making things headings anyway.
|
code » | |||||
Convert BRs in the selection to divs.
This is only intended to be used in IE and Opera.
Returns: boolean
Whether any BR's were converted.
|
code » | |||||
Create a link out of the current selection. If nothing is selected, insert
a new link. Otherwise, enclose the selection in a link.
Arguments:
Returns: ?goog.editor.Link
The newly created link, or null if the link
couldn't be created.
|
code » | |||||
![]()
Perform an execCommand on the active document.
Arguments:
|
code » | |||||
Execute a user-initiated command.
Arguments:
|
code » | |||||
![]()
Changing an OL to a UL (or the other way around) will fail if the list
has a type attribute (such as "UL type=disc" becoming "OL type=disc", which
is visually identical). Most browsers will remove the type attribute
automatically, but IE doesn't. This does it manually.
|
code » | |||||
![]()
Prevent Safari from making each list item be "1" when converting from
unordered to ordered lists.
(see https://bugs.webkit.org/show_bug.cgi?id=19539, fixed by 2010-04-21)
|
code » | |||||
![]()
Focuses on the field.
|
code » | |||||
No description.
Returns: !Document
The document object associated with the currently active
field.
|
code » | |||||
No description.
Returns: goog.dom.AbstractRange
The closure range object that wraps the
current user selection.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
Workaround for Opera bug CORE-23903. Opera sometimes fails to invalidate
serialized CSS or innerHTML for the DOM after certain execCommands when
styleWithCSS is on. Toggling an inline style on the elements fixes it.
|
code » | |||||
Returns true if the current justification matches the justification
command for the entire selection.
|
code » | |||||
Returns true if a selection contained in the node should set the appropriate
toolbar state for the given nodeName, e.g. if the node is contained in a
strong element and nodeName is "strong", then it will return true.
|
code » | |||||
Whether the string corresponds to a command this plugin handles.
|
code » | |||||
![]()
Justify the text in the selection.
Arguments:
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
Helper function to perform queryCommand(Value|State).
Arguments:
|
code » | |||||
Wrapper for browser's queryCommandState.
|
code » | |||||
Gets the command value.
|
code » | |||||
Wrapper for browser's queryCommandValue.
|
code » | |||||
![]()
Removes inline font-size styles from elements fully contained in the
selection, so the font tags produced by execCommand work properly.
See .
|
code » | |||||
Toggle link for the current selection:
If selection contains a link, unlink it, return null.
Otherwise, make selection into a link, return the link.
Arguments:
Returns: ?goog.editor.Link
The resulting link, or null if a link was
removed.
|
code » |
No description.
Returns: boolean
If true, field will not disable the command
when the field becomes uneditable.
|
code » | ||||
![]()
Cleans the contents of the node passed to it. The node contents are modified
directly, and the modifications will subsequently be used, for operations
such as saving the innerHTML of the editor etc. Since the plugins act on
the DOM directly, this method can be very expensive.
This op is invoked even on disabled plugins.
Arguments:
|
code » | ||||
Cleans the html contents of Trogedit. Both cleanContentsDom and
and cleanContentsHtml will be called on contents extracted from Trogedit.
The inverse of prepareContentsHtml.
This op is invoked even on disabled plugins.
|
code » | ||||
![]()
Disables this plugin for the specified, registered field object.
Arguments:
|
code » | ||||
![]()
No description.
|
code » | ||||
![]()
Enables this plugin for the specified, registered field object. A field
object should only be enabled when it is loaded.
Arguments:
|
code » | ||||
![]()
Handles execCommand. This default implementation handles dispatching
BEFORECHANGE, CHANGE, and SELECTIONCHANGE events, and calls
execCommandInternal to perform the actual command. Plugins that want to
do their own event dispatching should override execCommand, otherwise
it is preferred to only override execCommandInternal.
This version of execCommand will only work for single field plugins.
Multi-field plugins must override execCommand.
Arguments:
Returns: *
The result of the execCommand, if any.
|
code » | ||||
![]()
Handles execCommand. This default implementation does nothing, and is
called by execCommand, which handles event dispatching. This method should
be overriden by plugins that don't need to do their own event dispatching.
If custom event dispatching is needed, execCommand shoul be overriden
instead.
Arguments:
Returns: *
The result of the execCommand, if any.
|
code » | ||||
No description.
Returns: ?goog.dom.DomHelper
The dom helper object associated with the
currently active field.
|
code » | ||||
Sets the field object for use with this plugin.
Returns: goog.editor.Field
The editable field object.
|
code » | ||||
No description.
Returns: string
The ID unique to this plugin class. Note that different
instances off the plugin share the same classId.
|
code » | ||||
Handles keydown. It is run before handleKeyboardShortcut and if it returns
true handleKeyboardShortcut will not be called.
Arguments:
Returns: boolean
Whether the event was handled and thus should *not* be
propagated to other plugins or handleKeyboardShortcut.
|
code » | ||||
Handles keypress. It is run before handleKeyboardShortcut and if it returns
true handleKeyboardShortcut will not be called.
Arguments:
Returns: boolean
Whether the event was handled and thus should *not* be
propagated to other plugins or handleKeyboardShortcut.
|
code » | ||||
Handles keyup.
Arguments:
Returns: boolean
Whether the event was handled and thus should *not* be
propagated to other plugins.
|
code » | ||||
Handles keyboard shortcuts. Preferred to using handleKey* as it will use
the proper event based on browser and will be more performant. If
handleKeyPress/handleKeyDown returns true, this will not be called. If the
plugin handles the shortcut, it is responsible for dispatching appropriate
events (change, selection change at the time of this comment). If the plugin
calls execCommand on the editable field, then execCommand already takes care
of dispatching events.
NOTE: For performance reasons this is only called when any key is pressed
in conjunction with ctrl/meta keys OR when a small subset of keys (defined
in goog.editor.Field.POTENTIAL_SHORTCUT_KEYCODES_) are pressed without
ctrl/meta keys. We specifically don't invoke it when altKey is pressed since
alt key is used in many i8n UIs to enter certain characters.
Arguments:
Returns: boolean
Whether the event was handled and thus should *not* be
propagated to other plugins. We also call preventDefault on the event if
the return value is true.
|
code » | ||||
Handles selection change.
Arguments:
Returns: boolean
Whether the event was handled and thus should *not* be
propagated to other plugins.
|
code » | ||||
No description.
Returns: boolean
Whether or not this plugin should automatically be disposed
when it's registered field is disposed.
|
code » | ||||
Returns whether this plugin is enabled for the field object.
Arguments:
Returns: boolean
Whether this plugin is enabled for the field object.
|
code » | ||||
No description.
|
code » | ||||
Whether the string corresponds to a command this plugin handles.
|
code » | ||||
Prepares the given HTML for editing. Strips out content that should not
appear in an editor, and normalizes content as appropriate. The inverse
of cleanContentsHtml.
This op is invoked even on disabled plugins.
|
code » | ||||
![]()
Gets the state of this command if this plugin serves that command.
Arguments:
Returns: *
The value of the command.
|
code » | ||||
![]()
Registers the field object for use with this plugin.
Arguments:
|
code » | ||||
![]()
Set if this plugin should automatically be disposed when the registered
field is disposed.
Arguments:
|
code » | ||||
![]()
Sets the field object for use with this plugin.
Arguments:
|
code » | ||||
![]()
Unregisters and disables this plugin for the current field object.
Arguments:
|
code » |
![]()
Use
#listen instead, when possible. Otherwise, use
goog.events.listen if you are passing Object
(instead of Function) as handler.
Adds an event listener to the event target. The same handler can only be
added once per the type. Even if you add the same handler multiple times
using the same type then it will only be called once when the event is
dispatched.
Arguments:
|
code » | |||||
![]()
Asserts that the event target instance is initialized properly.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
Removes listeners from this object. Classes that extend EventTarget may
need to override this method in order to remove references to DOM Elements
and additional listeners.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
Returns the parent of this event target to use for bubbling.
Returns: goog.events.EventTarget
The parent EventTarget or null if
there is no parent.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
Use
#unlisten instead, when possible. Otherwise, use
goog.events.unlisten if you are passing Object
(instead of Function) as handler.
Removes an event listener from the event target. The handler must be the
same object as the one added. If the handler has not been added then
nothing is done.
Arguments:
|
code » | |||||
![]()
Sets the parent of this event target to use for capture/bubble
mechanism.
Arguments:
|
code » | |||||
![]()
Sets the target to be used for
event.target when firing
event. Mainly used for testing. For example, see
goog.testing.events.mixinListenable .
Arguments:
|
code » | |||||
![]()
No description.
|
code » | |||||
![]()
No description.
|
code » |
![]()
Invokes a callback function when this object is disposed. Callbacks are
invoked in the order in which they were added.
Arguments:
|
code » | |||
![]()
Disposes of the object. If the object hasn't already been disposed of, calls
#disposeInternal . Classes that extend goog.Disposable should
override #disposeInternal in order to delete references to COM
objects, DOM nodes, and other disposable objects. Reentrant.
Returns: void
Nothing.
|
code » | |||
![]()
Deletes or nulls out any references to COM objects, DOM nodes, or other
disposable objects. Classes that extend
goog.Disposable should
override this method.
Not reentrant. To avoid calling it twice, it must only be called from the
subclass' disposeInternal method. Everywhere else the public
dispose method must be used.
For example:
mypackage.MyClass = function() { mypackage.MyClass.base(this, 'constructor'); // Constructor logic specific to MyClass. ... }; goog.inherits(mypackage.MyClass, goog.Disposable); mypackage.MyClass.prototype.disposeInternal = function() { // Dispose logic specific to MyClass. ... // Call superclass's disposeInternal at the end of the subclass's, like // in C++, to avoid hard-to-catch issues. mypackage.MyClass.base(this, 'disposeInternal'); }; |
code » | |||
Use
#isDisposed instead.
No description.
Returns: boolean
Whether the object has been disposed of.
|
code » | |||
No description.
Returns: boolean
Whether the object has been disposed of.
|
code » | |||
![]()
Associates a disposable object with this object so that they will be disposed
together.
Arguments:
|
code » |
![]()
Indicates if this plugin should be automatically disposed when the
registered field is disposed. This should be changed to false for
plugins used as multi-field plugins.
|
Code » | |
![]()
No description.
|
Code » | |
![]()
Whether this plugin is enabled for the registered field object.
|
Code » | |
The field object this plugin is attached to.
|
Code » | |
The logger for this plugin.
|
Code » |
The object to use for event.target. Useful when mixing in an
EventTarget to another object.
|
Code » | |
![]()
No description.
|
Code » | |
Maps of event type to an array of listeners.
|
Code » | |
Parent event target, used during event bubbling.
TODO(user): Change this to goog.events.Listenable. This
currently breaks people who expect getParentEventTarget to return
goog.events.EventTarget.
|
Code » |
![]()
Converts the block element containing the given node to use CSS text-align
instead of the align property.
Arguments:
|
code » | |||
![]()
Convert the given paragraph to being a div. This clobbers the
passed-in node!
This is only intended to be used in IE and Opera.
Arguments:
|
code » | |||
If this is a goog.editor.plugins.BasicTextFormatter.COMMAND,
convert it to something that we can pass into execCommand,
queryCommandState, etc.
TODO(user): Consider doing away with the + and converter completely.
|
code » | |||
Determines the justification for a given block-level element.
|
code » | |||
Get the toolbar state for the block-level elements in the given range.
Arguments:
Returns: ?string
The selection block state.
|
code » |
![]()
Regular expression to match BRs in HTML. Saves the BRs' attributes in $1 for
use with replace(). In non-IE browsers, does not match BRs adjacent to an
opening or closing DIV or P tag, since nonrendered BR elements can occur at
the end of block level containers in those browsers' editors.
|
Code » | |
![]()
Inverse map of execCommand strings to
goog.editor.plugins.BasicTextFormatter.COMMAND constants. Used to
determine whether a string corresponds to a command this plugin
handles in O(1) time.
|
Code » | |
![]()
Hash of suppoted justifications.
|
Code » | |
![]()
When the following commands are executed while the selection is
inside a blockquote, they hose the blockquote tag in weird and
unintuitive ways.
|
Code » | |
![]()
The following execCommands are "broken" in some way - in IE they allow
the nodes outside the contentEditable region to get modified (see
execCommand below for more details).
|
Code » | |
![]()
In WebKit, the following commands will modify the node with
contentEditable=true if there are no block-level elements.
|
Code » | |
![]()
In WebKit, the following commands can hang the browser if the selection
touches the beginning of the field.
https://bugs.webkit.org/show_bug.cgi?id=19735
|
Code » | |
![]()
Sane "type" attribute values for OL elements
|
Code » | |
![]()
No description.
|
Code » | |
![]()
Sane "type" attribute values for UL elements
|
Code » |
![]()
Commands implemented by this plugin.
Constants:
|
Code » |