B4A Library RichEditor view

Discussion in 'Additional libraries, classes and official updates' started by somed3v3loper, Apr 27, 2016.

  1. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    Hello all ,

    A wrapper for this library https://github.com/wasabeef/richeditor-android


    SMMRichEditor
    Author:
    SMM
    Version: 0.05
    • SMMRichEditor
      Events:
      • _textchanged (new As String)
      Fields:
      • ba As BA
      Methods:
      • AddToParent (Parent As ViewGroup, left As Int, top As Int, width As Int, height As Int)
      • BringToFront
      • DesignerCreateView (base As PanelWrapper, lw As LabelWrapper, props As Map)
      • Initialize (EventName As String)
      • Invalidate
      • Invalidate2 (arg0 As Rect)
      • Invalidate3 (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
      • IsInitialized As Boolean
      • RemoveView
      • RequestFocus As Boolean
      • SendToBack
      • SetBackgroundImage (arg0 As Bitmap)
      • SetColorAnimated (arg0 As Int, arg1 As Int, arg2 As Int)
      • SetLayout (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int)
      • SetLayoutAnimated (arg0 As Int, arg1 As Int, arg2 As Int, arg3 As Int, arg4 As Int)
      • SetVisibleAnimated (arg0 As Int, arg1 As Boolean)
      • clearFocusEditor
      • focusEditor
      • insertImage (path As String, alt As String)
      • insertLink (url As String, text As String)
      • insertTodo
      • loadCSS (cssFile As String)
      • redo
      • removeFormat
      • setAlignCenter
      • setAlignLeft
      • setAlignRight
      • setBlockquote
      • setBold
      • setBullets
      • setIndent
      • setItalic
      • setNumbers
      • setOutdent
      • setPadding (left As Int, top As Int, width As Int, height As Int)
      • setStrikeThrough
      • setSubscript
      • setSuperscript
      • setUnderline
      • undo
      Properties:
      • Background As Drawable
      • Color As Int [write only]
      • EditorBackgroundColor As Int [write only]
      • EditorFontColor As Int [write only]
      • EditorFontSize As Int [write only]
      • EditorHeight As Int [write only]
      • Enabled As Boolean
      • FontSize As Int [write only]
        Font size should have a value between 1-7
      • Heading As Int [write only]
      • Height As Int
      • Html As String
      • Left As Int
      • Padding()() As Int
      • Parent As Object [read only]
      • Placeholder As String [write only]
      • Tag As Object
      • TextBackgroundColor As Int [write only]
      • TextColor As Int [write only]
      • Top As Int
      • Visible As Boolean
      • Width As Int


    Note : You have to add files in CopytoAssetsFolder.zip to your project's Assets (Add to IDE File tab)


    I do not understand html images very well :D but to insert from Assets use this line

    Code:
    re.insertImage("file:///android_asset"&"/txt.png","text")
    re is SMMRichEditor

    V 2 adds a method (re.Html) to setting or getting HTML
    V 0.03 adds TextColor (not tested) requested in post #25

    V0.04 added loadCSS(String cssFile) , setBullets() , setNumbers(), focusEditor() , clearFocusEditor()


    V0.05 (I have updated library references above :))
     

    Attached Files:

    Last edited: Jul 1, 2017
  2. apty

    apty Active Member Licensed User

    Thank you very much. Can you please make a small example showing how to use the library?
     
  3. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    It is simple like any other view
    Code:
    Dim re as SMMRichEditor
    re.Initialize(
    "re")
    Activity.Addview(re, 0,0,100%x,100%y)
    re.EditorBackgroundColor=
    colors.Yellow
    Text related methods like bold seem to have effect if some text is selected . you might want to add buttons for them.
    And for textchanged listener, you add the following Sub
    Code:
    Sub re_textchanged(new as string)
    Log(new)
    End sub
     
  4. apty

    apty Active Member Licensed User

    Thanks a lot. Sorry for the long questions, but please show me how to add a button that changes selected text to italics..I have tried
    Code:
    dim bn as Button
    bn.Initialize(
    "bn")
    bn.Text=
    "Italic"
    re.AddToParent(bn,
    10dip,10dip,100dip,50dip)
    But it gives me an error
     
  5. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    AddToParent adds richeditor to a panel or activity, you can't add views to this richeditor view .
    You should replace this line with Activity.AddView(bn,…..)
    And add sub bn_click to handle button clicks
    For example
    Code:
    Sub bn_click
         re.setItalic
    End sub
     
  6. apty

    apty Active Member Licensed User

    Sorry...i managed to do it. Was adding it to wrong view
     
  7. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    You need to move Dim re as SMMRichEditor line to Sub Globals
     
  8. apty

    apty Active Member Licensed User

    Thanks a lot again
     
  9. apty

    apty Active Member Licensed User

    Is it possible to save the editor values to a html file?
     
  10. apty

    apty Active Member Licensed User

    Have found the way do to it...Thanks
     
  11. tsteward

    tsteward Active Member Licensed User

    Any chance showing how you did this
     
  12. tsteward

    tsteward Active Member Licensed User

    Infact any help using this library would be good, I dont understand how to load text into the editor, extract text from editor and then save as html
     
  13. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    I uploaded a new version that adds Html function to set or get editor html .
     
  14. tsteward

    tsteward Active Member Licensed User

    That's cool thank you,
    Managing to get it working, how can I set Heading H1 H2 etc.
     
  15. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    re.Heading = 1 or 2 ?
    I just wrote the wrapper with no knowledge of HTML and CSS .
     
  16. tsteward

    tsteward Active Member Licensed User

    Ok so I don't know anything about wraping code but as it's supported by the original github code I thought it would get wrapped as well.
     
  17. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    which method from original github project are you trying to use ?
     
  18. tsteward

    tsteward Active Member Licensed User

    See the attached in mage it shows they support Header 1, Header 2 etc.

    I assume like re.setbold there would be a .setheader1 or similar.
    Or do I just not understand.

    Also whats ba used for?

    Thanks
    Tony
     

    Attached Files:

  19. somed3v3loper

    somed3v3loper Well-Known Member Licensed User

    Did you try something like this?
    Code:
    dim re as SMMRichEditor
    re.Initialize(
    "")
    re.Heading = 
    1
    Ignore ba it is used by wrapper
     
  20. tsteward

    tsteward Active Member Licensed User

    OK thanks that works
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice