Class InplaceEditorRendererAdapter
- java.lang.Object
-
- ro.sync.ecss.extensions.api.editor.InplaceEditorRendererAdapter
-
- All Implemented Interfaces:
InplaceEditor
,InplaceRenderer
,Extension
@API(type=EXTENDABLE, src=PUBLIC) public abstract class InplaceEditorRendererAdapter extends java.lang.Object implements InplaceRenderer, InplaceEditor
Convenience implementation of theInplaceRenderer
andInplaceEditor
. By extending this adapter you are protected if any new methods are added insideInplaceRenderer
orInplaceEditor
.- Since:
- 14.1
-
-
Constructor Summary
Constructors Constructor Description InplaceEditorRendererAdapter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEditingListener(InplaceEditingListener editingListener)
Adds a listener to receive edit notifications: -InplaceEditingListener.editingCanceled()
to remove the editor and cancel the edit operation.void
cancelEditing()
Cancels the editing process.void
commitValue()
Commit the given value inside the document without stopping the editing.CursorType
getCursorType(int x, int y)
Get a cursor to be used when the user hovers with the mouse over this renderer.CursorType
getCursorType(AuthorInplaceContext context, int x, int y)
Get a cursor to be used when the user hovers with the mouse over this renderer.java.lang.String
getDescription()
java.lang.Object
getEditorComponent(AuthorInplaceContext context, Rectangle allocation, Point mouseLocation)
Prepare and return the editor component.java.lang.Object
getRendererComponent(AuthorInplaceContext context)
Initialize the renderer with the given context and returns the component.RendererLayoutInfo
getRenderingInfo(AuthorInplaceContext context)
Returns the rendering layout info.Rectangle
getScrollRectangle()
Returns a rectangle that should be made visible after the editor is shown.java.lang.String
getTooltipText(AuthorInplaceContext context, int x, int y)
Gets a tooltip text to be presented when the cursor is over this renderer.java.lang.Object
getValue()
Gets the value that the user entered.void
removeEditingListener(InplaceEditingListener editingListener)
Removes a listener that receives editing events.void
requestFocus()
Requests focus inside the editing component.void
stopEditing()
Stops the editing and commits the current value.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ro.sync.ecss.extensions.api.editor.InplaceEditor
allowsRepostingEvents, insertContent, refresh
-
-
-
-
Method Detail
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescription
in interfaceExtension
- Returns:
- The description of the extension.
- See Also:
Extension.getDescription()
-
getRendererComponent
public java.lang.Object getRendererComponent(AuthorInplaceContext context)
Description copied from interface:InplaceRenderer
Initialize the renderer with the given context and returns the component. It's up to the caller to use the renderer to paint.- Specified by:
getRendererComponent
in interfaceInplaceRenderer
- Parameters:
context
- The editing context.- Returns:
- The renderer. A java.awt.Component implementation.
- See Also:
InplaceRenderer.getRendererComponent(ro.sync.ecss.extensions.api.editor.AuthorInplaceContext)
-
getRenderingInfo
public RendererLayoutInfo getRenderingInfo(AuthorInplaceContext context)
Description copied from interface:InplaceRenderer
Returns the rendering layout info. This contains information about the baseline and the size in a certain context. The baseline is measured from the top of the component. Because a renderer is reused, when this call is received, the renderer must re-initialize itself from the given context.- Specified by:
getRenderingInfo
in interfaceInplaceRenderer
- Parameters:
context
- The editing context.- Returns:
- The rendering layout info.
- See Also:
InplaceRenderer.getRenderingInfo(ro.sync.ecss.extensions.api.editor.AuthorInplaceContext)
-
getTooltipText
public java.lang.String getTooltipText(AuthorInplaceContext context, int x, int y)
Description copied from interface:InplaceRenderer
Gets a tooltip text to be presented when the cursor is over this renderer. Because a renderer is reused, when this called is received, the renderer must re-initialize itself from the given context.- Specified by:
getTooltipText
in interfaceInplaceRenderer
- Parameters:
context
- The editing context.x
- The x coordinate relative to the renderer bounds.y
- The y coordinate relative to the renderer bounds.- Returns:
- A tooltip text or
null
if no tooltip. - See Also:
InplaceRenderer.getTooltipText(ro.sync.ecss.extensions.api.editor.AuthorInplaceContext, int, int)
-
getEditorComponent
public java.lang.Object getEditorComponent(AuthorInplaceContext context, Rectangle allocation, Point mouseLocation)
Description copied from interface:InplaceEditor
Prepare and return the editor component.- Specified by:
getEditorComponent
in interfaceInplaceEditor
- Parameters:
context
- The context where the editor will be used.allocation
- The bounds where the editor will be shown. This is normally the bounds of the box in which the value being edited is rendered. If the editor requires to be presented in different bounds it should alter this parameter. The X,Y coordinates are relative to the parent in which the editor will be added.mouseLocation
- if the editor was requested using the mouse this parameter represents the X,Y location where the event took place. It is relative to the parent in which the editor will be added.null
if the editor wasn't requested through mouse interaction.
OBS: This is the very first call received by an editor. This ensures that the editor is properly initialized for the subsequent calls (like aInplaceEditor.requestFocus()
call).
OBS: An editor implementation will have to add listeners onto itself like:- a
KeyListener
for handling key events like: ENTER to stop editing (by callingInplaceEditingListener.editingStopped(EditingEvent)
) and ESCAPE to cancel it (by callingInplaceEditingListener.editingCanceled()
). - a
FocusListener
to stop editing when the focus is given to a component that is not part of the editor (by callingInplaceEditingListener.editingStopped(EditingEvent)
). - a
DocumentListener
to fireInplaceEditingListener.editingOccured()
events (If the editor has a document).
- a
- Returns:
- The component that performs the editing. For the Standalone distribution this should be a java.awt.JComponent implementation. For the Eclipse plugin distribution, an org.eclipse.swt.widgets.Control is expected.
- See Also:
InplaceEditor.getEditorComponent(ro.sync.ecss.extensions.api.editor.AuthorInplaceContext, ro.sync.exml.view.graphics.Rectangle, ro.sync.exml.view.graphics.Point)
-
getScrollRectangle
public Rectangle getScrollRectangle()
Description copied from interface:InplaceEditor
Returns a rectangle that should be made visible after the editor is shown. The coordinate should be relative to the editor itself. The default behavior is to make the entire editor visible but if the editor is bigger than the viewport the visible part might not be the right one. For example is the editor is a text field the caret might not be visible. This is when this method is useful. The caret rectangle should be returned so that the part of the editor with the caret is presented.- Specified by:
getScrollRectangle
in interfaceInplaceEditor
- Returns:
- A rectangle to be made visible or
null
to make the entire editor visible. - See Also:
InplaceEditor.getScrollRectangle()
-
addEditingListener
public void addEditingListener(InplaceEditingListener editingListener)
Description copied from interface:InplaceEditor
Adds a listener to receive edit notifications: -InplaceEditingListener.editingCanceled()
to remove the editor and cancel the edit operation. -InplaceEditingListener.editingOccured()
to signal modification in the editor. This event marks the editor as dirty and it's value will be committed when aInplaceEditingListener.editingStopped(EditingEvent)
is received. -InplaceEditingListener.editingStopped(EditingEvent)
to end editing and commit it's value if needed. The value is usually committed ONLY if aInplaceEditingListener.editingOccured()
was fired. SeeInplaceEditingListener.editingStopped(EditingEvent)
for more information.- Specified by:
addEditingListener
in interfaceInplaceEditor
- Parameters:
editingListener
- Editing listener.- See Also:
InplaceEditor.addEditingListener(ro.sync.ecss.extensions.api.editor.InplaceEditingListener)
-
requestFocus
public void requestFocus()
Description copied from interface:InplaceEditor
Requests focus inside the editing component.- Specified by:
requestFocus
in interfaceInplaceEditor
- See Also:
InplaceEditor.requestFocus()
-
getValue
public java.lang.Object getValue()
Description copied from interface:InplaceEditor
Gets the value that the user entered.- Specified by:
getValue
in interfaceInplaceEditor
- Returns:
- The value that the user entered.
- See Also:
InplaceEditor.getValue()
-
stopEditing
public void stopEditing()
Description copied from interface:InplaceEditor
Stops the editing and commits the current value. The editor should release any held resources and notifyInplaceEditingListener.editingStopped(EditingEvent)
. OBS: The current value will be committed only if at least oneInplaceEditingListener.editingOccured()
event was issued before this moment.- Specified by:
stopEditing
in interfaceInplaceEditor
- See Also:
InplaceEditor.stopEditing()
-
cancelEditing
public void cancelEditing()
Description copied from interface:InplaceEditor
Cancels the editing process. The editor should release any held resources and notifyInplaceEditingListener.editingCanceled()
.- Specified by:
cancelEditing
in interfaceInplaceEditor
- See Also:
InplaceEditor.cancelEditing()
-
removeEditingListener
public void removeEditingListener(InplaceEditingListener editingListener)
Description copied from interface:InplaceEditor
Removes a listener that receives editing events.- Specified by:
removeEditingListener
in interfaceInplaceEditor
- Parameters:
editingListener
- Editing listener.- See Also:
InplaceEditor.removeEditingListener(ro.sync.ecss.extensions.api.editor.InplaceEditingListener)
-
getCursorType
public CursorType getCursorType(AuthorInplaceContext context, int x, int y)
Description copied from interface:InplaceRenderer
Get a cursor to be used when the user hovers with the mouse over this renderer. For a more complex renderer, the given X,Y coordinates can be used to decide what cursor to return.- Specified by:
getCursorType
in interfaceInplaceRenderer
- Parameters:
context
- The editing context. Useful if the renderer is a more complex one, like a text field with an associated button and wants to provide different cursors when the cursor is over the textfield or over the button. In this case the renderer will have to initialize itself with this context in order to decide what the cursor is hovering.x
- The x coordinate relative to the renderer bounds.y
- The y coordinate relative to the renderer bounds.- Returns:
- The type of cursor to be used or
null
to let the viewport decide. - See Also:
InplaceRenderer.getCursorType(ro.sync.ecss.extensions.api.editor.AuthorInplaceContext, int, int)
-
getCursorType
public CursorType getCursorType(int x, int y)
Description copied from interface:InplaceRenderer
Get a cursor to be used when the user hovers with the mouse over this renderer. For a more complex renderer, the given X,Y coordinates can be used to decide what cursor to return. We recommend usingInplaceRenderer.getCursorType(AuthorInplaceContext, int, int)
as you can use the provided context to get additional information.- Specified by:
getCursorType
in interfaceInplaceRenderer
- Parameters:
x
- The x coordinate relative to the renderer bounds.y
- The y coordinate relative to the renderer bounds.- Returns:
- The type of cursor to be used or
null
to let the viewport decide. - See Also:
InplaceRenderer.getCursorType(int, int)
-
commitValue
public void commitValue()
Description copied from interface:InplaceEditor
Commit the given value inside the document without stopping the editing. Will only commit if a new string value is provided and only if the value that must be committed is different from the current value.- Specified by:
commitValue
in interfaceInplaceEditor
- See Also:
InplaceEditor.commitValue()
-
-