Package ro.sync.ecss.component.editor
Class PopupCheckBoxEditor
- java.lang.Object
-
- ro.sync.ecss.extensions.api.editor.AbstractInplaceEditor
-
- ro.sync.ecss.component.editor.PopupCheckBoxEditor
-
- All Implemented Interfaces:
InplaceEditor
,Extension
@API(type=INTERNAL, src=PUBLIC) public class PopupCheckBoxEditor extends AbstractInplaceEditor
A panel with checkboxes that can be used to render boolean values but also lists of values.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_CHECKBOX_WIDTH
Default checkbox widthprotected static ro.sync.i18n.MessageBundle
messages
The messages resource bundle.
-
Constructor Summary
Constructors Constructor Description PopupCheckBoxEditor()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancelEditing()
Cancels the editing process.void
commitValue()
Commit the given value inside the document without stopping the editing.java.lang.String
getDescription()
java.lang.Object
getEditorComponent(AuthorInplaceContext context, Rectangle allocation, Point mouseLocation)
Prepare and return the editor component.Rectangle
getScrollRectangle()
Returns a rectangle that should be made visible after the editor is shown.java.lang.Object
getValue()
Gets the value that the user entered.void
refresh(AuthorInplaceContext context)
While this editor is inside an editing session a document change was detected that didn't originated form this editor.void
requestFocus()
Requests focus inside the editing component.void
stopEditing()
Stops 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, insertContent, removeEditingListener
-
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
-
-
-
-
Method Detail
-
getDescription
public java.lang.String getDescription()
- Returns:
- The description of the extension.
- See Also:
Extension.getDescription()
-
getEditorComponent
public java.lang.Object getEditorComponent(AuthorInplaceContext context, Rectangle allocation, Point mouseLocation)
Description copied from interface:InplaceEditor
Prepare and return the editor component.- 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)
-
requestFocus
public void requestFocus()
Description copied from interface:InplaceEditor
Requests focus inside the editing component.- See Also:
InplaceEditor.requestFocus()
-
getValue
public java.lang.Object getValue()
Description copied from interface:InplaceEditor
Gets the value that the user entered.- 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.- See Also:
InplaceEditor.stopEditing()
-
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
- Overrides:
commitValue
in classAbstractInplaceEditor
- See Also:
InplaceEditor.commitValue()
-
cancelEditing
public void cancelEditing()
Description copied from interface:InplaceEditor
Cancels the editing process. The editor should release any held resources and notifyInplaceEditingListener.editingCanceled()
.- See Also:
InplaceEditor.cancelEditing()
-
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.- Returns:
- A rectangle to be made visible or
null
to make the entire editor visible. - See Also:
InplaceEditor.getScrollRectangle()
-
refresh
public void refresh(AuthorInplaceContext context)
Description copied from interface:InplaceEditor
While 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:
refresh
in interfaceInplaceEditor
- Overrides:
refresh
in classAbstractInplaceEditor
- Parameters:
context
- An updated editing context for this editor.- See Also:
InplaceEditor.refresh(ro.sync.ecss.extensions.api.editor.AuthorInplaceContext)
-
-