Class SimpleURLChooserEditor
java.lang.Object
ro.sync.ecss.extensions.api.editor.AbstractInplaceEditor
ro.sync.ecss.extensions.commons.editor.SimpleURLChooserEditor
- All Implemented Interfaces:
InplaceEditor,InplaceRenderer,Extension
@API(type=INTERNAL,
src=PUBLIC)
public class SimpleURLChooserEditor
extends AbstractInplaceEditor
implements InplaceRenderer
Simple URL Chooser in-place editor.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCancels the editing process.voidCommit the given value inside the document without stopping the editing.protected JTextFieldCreates the text field used to display the selected URL and installs the UNDO support on it.getCursorType(int x, int y) Get a cursor to be used when the user hovers with the mouse over this renderer.getCursorType(AuthorInplaceContext context, int x, int y) Get a cursor to be used when the user hovers with the mouse over this renderer.getEditorComponent(AuthorInplaceContext context, Rectangle allocation, Point mouseLocation) Prepare and return the editor component.getRendererComponent(AuthorInplaceContext context) Initialize the renderer with the given context and returns the component.getRenderingInfo(AuthorInplaceContext context) Returns the rendering layout info.Returns a rectangle that should be made visible after the editor is shown.getTooltipText(AuthorInplaceContext context, int x, int y) Gets a tooltip text to be presented when the cursor is over this renderer.getValue()Gets the value that the user entered.booleaninsertContent(String content) An insert text event was received by the author page and redirected to this currently active form control.voidrefresh(AuthorInplaceContext context) While this editor is inside an editing session a document change was detected that didn't originated form this editor.voidRequests focus inside the editing component.voidStops the editing and commits the current value.Methods inherited from class ro.sync.ecss.extensions.api.editor.AbstractInplaceEditor
addEditingListener, fireCommitValue, fireEditingCanceled, fireEditingOccured, fireEditingStopped, fireNextEditLocationRequested, firePreviousEditLocationRequested, getBoolean, removeEditingListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ro.sync.ecss.extensions.api.editor.InplaceEditor
allowsRepostingEvents
-
Constructor Details
-
SimpleURLChooserEditor
public SimpleURLChooserEditor()Constructor.
-
-
Method Details
-
getDescription
- Specified by:
getDescriptionin interfaceExtension- Returns:
- The description of the extension.
- See Also:
-
getRendererComponent
Description copied from interface:InplaceRendererInitialize the renderer with the given context and returns the component. It's up to the caller to use the renderer to paint.- Specified by:
getRendererComponentin interfaceInplaceRenderer- Parameters:
context- The editing context.- Returns:
- The renderer. A java.awt.Component implementation.
- See Also:
-
getRenderingInfo
Description copied from interface:InplaceRendererReturns 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:
getRenderingInfoin interfaceInplaceRenderer- Parameters:
context- The editing context.- Returns:
- The rendering layout info.
- See Also:
-
getTooltipText
Description copied from interface:InplaceRendererGets 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:
getTooltipTextin 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
nullif no tooltip. - See Also:
-
getEditorComponent
public Object getEditorComponent(AuthorInplaceContext context, Rectangle allocation, Point mouseLocation) Description copied from interface:InplaceEditorPrepare and return the editor component.- Specified by:
getEditorComponentin 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.nullif 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
KeyListenerfor handling key events like: ENTER to stop editing (by callingInplaceEditingListener.editingStopped(EditingEvent)) and ESCAPE to cancel it (by callingInplaceEditingListener.editingCanceled()). - a
FocusListenerto stop editing when the focus is given to a component that is not part of the editor (by callingInplaceEditingListener.editingStopped(EditingEvent)). - a
DocumentListenerto 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:
-
getScrollRectangle
Description copied from interface:InplaceEditorReturns 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:
getScrollRectanglein interfaceInplaceEditor- Returns:
- A rectangle to be made visible or
nullto make the entire editor visible. - See Also:
-
requestFocus
public void requestFocus()Description copied from interface:InplaceEditorRequests focus inside the editing component.- Specified by:
requestFocusin interfaceInplaceEditor- See Also:
-
getValue
Description copied from interface:InplaceEditorGets the value that the user entered.- Specified by:
getValuein interfaceInplaceEditor- Returns:
- The value that the user entered.
- See Also:
-
stopEditing
public void stopEditing()Description copied from interface:InplaceEditorStops 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:
stopEditingin interfaceInplaceEditor- See Also:
-
commitValue
public void commitValue()Description copied from interface:InplaceEditorCommit 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:
commitValuein interfaceInplaceEditor- Overrides:
commitValuein classAbstractInplaceEditor- See Also:
-
cancelEditing
public void cancelEditing()Description copied from interface:InplaceEditorCancels the editing process. The editor should release any held resources and notifyInplaceEditingListener.editingCanceled().- Specified by:
cancelEditingin interfaceInplaceEditor- See Also:
-
createTextField
Creates the text field used to display the selected URL and installs the UNDO support on it.- Returns:
- The text field used to display the selected URL.
-
getCursorType
Description copied from interface:InplaceRendererGet 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:
getCursorTypein 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
nullto let the viewport decide. - See Also:
-
getCursorType
Description copied from interface:InplaceRendererGet 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:
getCursorTypein 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
nullto let the viewport decide. - See Also:
-
refresh
Description copied from interface:InplaceEditorWhile this editor is inside an editing session a document change was detected that didn't originated form this editor. In this situation it might be good for the editor to refresh the presented data.
Currently this method is called if:- This editor edits an attribute and the same attribute was externally modified. In this situation is recommended for the editor to update the current value.
- Specified by:
refreshin interfaceInplaceEditor- Overrides:
refreshin classAbstractInplaceEditor- Parameters:
context- An updated editing context for this editor.- See Also:
-
insertContent
Description copied from interface:InplaceEditorAn insert text event was received by the author page and redirected to this currently active form control. The form control should insert this text as it sees fit. For example a text field might insert it at the caret position. An example when this event comes is when the user uses the Character Map Dialog to insert characters directly into a form control.- Specified by:
insertContentin interfaceInplaceEditor- Overrides:
insertContentin classAbstractInplaceEditor- Parameters:
content- Content to be inserted.- Returns:
trueif the event was handled orfalseif the form control can do nothing with the string. For example a text field can insert the text inside it but a check box form control can do nothing with it. Iffalseis returned the form control editing session will be stopped and the author page will handle the event instead.- See Also:
-