# Interface Editable

All Known Implementing Classes:
  `AbstractEditorComponent, Accordion, Ads, ARView, AudioRecorderComponent, AutoCompleteTextComponent, AutoCompleteTextField, BannerAd, BaseSpinner, BrowserComponent, Button, ButtonList, Calendar, CameraView, ChartComponent, ChatBubble, ChatInput, ChatView, CheckBox, CheckBoxList, ClearableTextField, CodeEditor, CodeView, ComboBox, CommonProgressAnimations.CircleProgress, CommonProgressAnimations.EmptyAnimation, CommonProgressAnimations.LoadingTextAnimation, CommonProgressAnimations.ProgressAnimation, Component, ComponentGroup, Container, ContainerList, DateSpinner, DateTimeSpinner, DefaultListCellRenderer, Dialog, EditField, EditorView, EmbeddedContainer, FileTree, FloatingActionButton, FloatingHint, Form, GameSceneView, GameView, GenericSpinner, HTMLComponent, ImageViewer, InfiniteContainer, InfiniteProgress, InputComponent, InteractionDialog, InterFormContainer, Label, LikeButton, List, MapComponent, MapView, Media360View, MediaPlayer, MenuBar, MultiButton, MultiList, NativeMap, NumericSpinner, OnOffSwitch, OtpField, PeerComponent, Picker, PickerComponent, Progress, RadioButton, RadioButtonList, RenderView, RichTextArea, RichTextComponent, RichView, RSSReader, ScaleImageButton, ScaleImageLabel, Scene, ShareButton, Sheet, SideMenuBar, SignatureComponent, Slider, SliderBridge, SpanButton, SpanLabel, SpanMultiButton, SplitPane, StickyHeaderContainer, SwipeableContainer, Switch, SwitchList, Table, Tabs, TestRunnerComponent, TextArea, TextComponent, TextComponentPassword, TextField, TimeSpinner, Toolbar, Tree, VRView, WebBrowser`

public interface Editable
An interface that can be implemented to provide editing capabilities for any component in the UI. `Component` implements this interface, but only with empty methods. You can provide an alternative editing implementation for any Component by passing an Editable object to `Component#setEditingDelegate(com.codename1.ui.Editable)`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isEditable()`
  Checks whether the component is editable.
  `boolean`
  `isEditing()`
  Checks whether editing is currently in progress.
  `void`
  `startEditingAsync()`
  Starts editing the component.
  `void`
  `stopEditing(Runnable onComplete)`
  Stops editing the component.

- ## Method Details

  - ### isEditable

    boolean isEditable()
    Checks whether the component is editable.

  - ### isEditing

    boolean isEditing()
    Checks whether editing is currently in progress.

  - ### startEditingAsync

    void startEditingAsync()
    Starts editing the component.

  - ### stopEditing

    void stopEditing(Runnable onComplete)

    Stops editing the component.

    ###### Parameters

    - `onComplete`: @param onComplete Optional callback that will be called after the editing is finished (as stopping may take some time for the native side to do cleanup).