HTML EDITOR COMPONENT
User Manual
Oracle Forms
SWT / Eclipse
JavaFX manual
XML features
FAQ
Download
Screenshots
Licensing & Prices
HTML EDITOR APPLET
User Manual
FAQ
Drupal Integration
SAKAI Integration
IBM Lotus Notes
Download
Screenshots
Licensing & Prices
PDF GENERATOR
User Manual
Oracle Forms
Licensing & Prices
HTML BROWSER
User Manual
Download
Licensing & Prices
EQUATION/MATHML EDITOR
User Manual
FAQ
Download
Screenshots
Licensing & Prices
PDFEXPORT ADD-ON
User Manual
On-line store
Customers
Contacts

Sferyx JSyndrome HTML Editor Component Edition
Java Swing HTML Editor Integration FAQ



What's new in version 23.0>>

General questions / System configurations

Demo version questions

Publishing content

Custom XML tags

Customization/Internationalization features

Content manipulation features

  1. How can I enable the text folding functionalities?
  2. How can I access the document's DOM structure easily and edit the element attributes and styles?

Application integration features

  1. How to disable the Main Menu?
  2. How to disable the Toolbars?
  3. How to disable the Statusbar?
  4. How to change the icons on the toolbars?
  5. How can I implement my own toolbar buttons instead of the default ones - also can I use different toolbar and move everything elsewhere?
  6. How to show/hide the rulers in the visual editor?


Oracle Forms Integration

  1.  

Licensing questions

Customization services

Customer support questions

Add-ons / Additional features

  1. Is there CSS (Style Sheet) editor component?
  2. Is there a PDF Export component?
  3. How do I enable the EquationEditor inside the HTML Editor?
  4. How to enable the PDF Export inside the HTML Editor?

 

 

 

General questions / System configurations

  1. What is the Sferyx JSyndrome HTML Editor Component Edition?
    - Sferyx JSyndrome HTMLEditor is a Java Bean component suitable for use in any Java application which needs HTML/XHTML document authoring. It allows the creation of complex HTML documents visually and contains a huge API and entire SDK which permits java developers to customize it easily and integrate it in their applications and services. Back to top

  2. For whom is intended the Component Edition?
    - The Component Edition is designed especially for java developers who have the necessary programming skills to operate with. It has extensive API and allows full customization and integration with existing java application. In case you are web designer without specific java programming experience you may consider the Applet Edition which is ready for use java applet easily configurable through applet parameters. Back to top

  3. How can I customize the editor in order to integrate it with my application?
    - You can use the API available in the retail product to fully customize the editor's UI, functionalities and end user experience. The retail product comes with Users manual, Javadoc documentation, sample code and our 30 days startup support in order to resolve any possible integration issues you may encounter. Back to top

  4. How can I provide my own dialogs for browsing images and hyperlinks?
    - The HTMLEditor exposes a special interface sferyx.administration.editors.extensions.BrowsableComponent which allows custom dialogs to be integrated easily with only a few lines of code and replace the existing browse features for images, hyperlinks etc.

    public class CustomHyperlinkDialog extends javax.swing.JDialog implements sferyx.administration.editors.extensions.BrowsableComponent
    {
    .....
    }


    with this are sufficient only few lines to bind your dialog to the editor:

    sferyx.administration.editors.HTMLEditor htmlEditor=new sferyx.administration.editors.HTMLEditor();
    htmlEditor.setHyperlinkCustomBrowsableComponent(new CustomHyperlinkDialog(null,true));


    The entire sample program listing could be found in the examples folder of the downloadable demo version.
    Back to top

  5. What system configurations are supported?
    - Virtually is supported any system with compatible Java runtime v. 1.3 / 1.4 / 1.5 / 1.6 / 1.7 / 1.8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 /19 / 20 / 21 / 22 or greater. Among the directly supported operating systems are Microsoft Windows 95/98/ME, NT, 2000, XP, Vista, Windows 7, Windows 8, Windows 10,  Windows 11, Mac OS X 10.3 or greater, Linux, Solaris, Free BSD and also Oracle Forms - designer and runtime. You can consult also the browser/OS compatibility matrix for further details Back to top

  6. What JDK/JRE versions are supported?
    - Any subversion of the following JRE/JDKs are supported 1.3 / 1.4 / 1.5 / 1.6 / 1.7 / 1.8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 /19 / 20 / 21 / 22 or higher. We do recommend when possible to install the latest java releases for optimal performance and best user experience. Back to top

Demo version questions

  1. What are the limitations of the demo version?
    - The demo version for the Component Edition is generally obfuscated and contains only a few of the hundreds of the methods and functionalities available. It also is setup to expire after 30 days. If you may need extended trial version please contact support@sferyx.com . You can consult the supplied documentation, this FAQ and the executable examples and program listings for to evaluate better the available functionalities. Back to top

  2. Does the retail product display a splash screen and other messages?
    - No the retail product does not contain the splash screen, the nag screens and other evaluation messages. Those are present only in the demo versions. Back to top

  3. I have some questions regarding my evaluation - what should I do?
    - In case you may have questions about the product, evaluation etc. do not hesitate to contact our customer support at support@sferyx.com . They will be happy to assist you. Back to top

  4. Is it possible to receive a fully functional evaluation version?
    - Currently we do not ship plain class evaluation versions as direct downloads since many have abused with this in the past, however decisions on that is be taken on per case basis, so if you are interested in receiving full evaluation please contact sales@sferyx.com . In any case you will receive response to your inquiry. Back to top

Publishing content

  1. How can I upload files using the editor?
    If you want to retrieve the editor content including all document images embedded inside the document   encoded as strings and create self contained standards compliant document you should use the following methods:

    htmlEditor.setEmbedAllImagesInsideTheDocument(true);

    For retrieving the current state of embedding images you can use this method:

    public boolean isEmbedAllImagesInsideTheDocument()

    After that it is sufficient to use getContent() or getBodyContent() to retrieve the editor content as a String including all the images inside.
    Otherwise you can consider also the uploading features described below in in the section "How can I configure multipart form uploads in order to publish content and files through the editor?"
    All linked files in the document such as images, objects, hyperlink targets like pdf,doc etc. can be published easily in a way absolutely transparent for the end user. These automatic uploads can be configured easily through the built-in "save remote" of the editor. the editor can publish content though HTTP multipart form upload or WebDav. Back to top

  2. How can I configure WebDav in order to publish content and files through the editor?
    - this is quite simple:

    htmlEditor.setUploadedObjectsTranslationPath("http://your_server_translation_path");
    htmlEditor.setPublishContentUsingWebDAV(true);
    htmlEditor.saveToLocation("http://yourhost.com/webdav_enabled_dir",true);

    The setUploadedObjectsTranslationPath method is needed in order to indicate how the uploaded images and objects paths should be translated by the editor in order to match the server path for correct display after upload.

  3. How can I configure multipart form uploads in order to publish content and files through the editor?

    htmlEditor.setUploadContentAsMultipartFormData(true);
    htmlEditor.saveToLocation("http://yourhost.com/yourscript_which_receives_uploads",true);

    Back to top
     
     
  4. How can I save the content of the editor as a MIME E-mail message ?

    String emailContent=htmlEditor.getContentAsMultipartMimeMessage();
     
    This method will return the entire content as an e-mail multipart message - it will include also all images inside the document already embedded inside. Please note that this to work properly the embedding of inline images should be turned off - htmlEditor.setEmbedAllImagesInsideTheDocument(false)  - otherwise all images will be included as Base64 encode images and not in the MIME format.
     
    public void writeContentAsMultipartMimeMessageToStream(OutputStream os) throws Exception - Writes the content of the editor as multipart MIME e-mail message format data including all images.


    public String getContentAsMultipartMimeMessage() - returns a String with the content of the editor as multipart MIME e-mail message format data including all images


    public void writeMultipartContentToStream(OutputStream os, boolean entireFile) throws Exception - Writes the multipart form data generated by the editor to be written to an arbitrary stream.
    entireFile parameter indicates whether the entire html content to be written or only the body part of it.
    The developer should take care about the handling of open/close of the stream in a proper way.


    public int getMultipartMimeMessageContentLength() - Returns the length of the content as multipart MIME e-mail message format data.


    public String getMultipartMimeMessageContentPortion(int offset, int length) - Returns portion of the content as multipart MIME e-mail message format data - this should be used in environments where is impossible the whole content at once due to some limitations such as the case of Oracle Forms. This should be used in conjunction with getContentLength() and make cycle for retrieving all pieces through getMultipartMimeMessageContentPortion(int start, in length)


    Methods in HTMLEditorOracleBean:

    public int getMultipartMimeMessageContentLength() - returns the length of the content as multipart MIME e-mail message format data.


    public String getMultipartMimeMessageContentPortion(int offset, int length) - returns portion of the content as multipart MIME e-mail message format data - this should be used in environments where is impossible the whole content at once due to some limitations such as the case of Oracle Forms. This should be used in conjuction with getContentLength() and make cycle for retirieving all pieces through getMultipartMimeMessageContentPortion(int start, in length)


    public boolean writeContentAsMultipartMessageToFile(String fileName) - writes into the specified file the entire content as multipart MIME e-mail message format data. If you use file extension .eml you can open the file in e-mail clients like Outlook, Windows Mail, Thunderbird etc.
     
     
  5. How can I generate self-contained HTML document with all images embedded inside as Base64 encoded strings?

    htmlEditor.setEmbedAllImagesInsideTheDocument(true);

    String selfContainedDocument=htmlEditor.getContent()
    -  will return a String containing the whole document including all images inside. It can be displayed in any modern web browser.
     
     
    setEmbedAllImagesInsideTheDocument(boolean embed) - this method enables the editor to embed all document images inside the HTML code which is retrieved using getContent(), getBodyContent() methods. This way is possible to create fully self contained documents to be saved as simple strings inside database fields (for example CLOB or similar) or even simple text files. You can even retrieve the entire documents easily in a client-server environment by simply getting the document content. This feature can also be very useful in the creation of e-mail like applications for embedding all images inside the message body.

    public void setEmbedAllImagesInsideTheDocument(boolean embed)  - if this is set to true, you can retrieve the document HTML and all the images by simply using getContent() or getBodyContent().

    isEmbedAllImagesInsideTheDocument() - returns whether the embedding of images is enabled.

     
     
  6. How can I retrieve the content as FO XML formatted content for direct conversion using for example Apache FOP?

    The methods for retrieving FO XML content both for the HTMLEditor and HTMLEditoOracleBean class are as follows:

    public String getFOXMLContent() - Returns the entire content of the element as FO XML string.

    public int getFOXMLContentLenght() - Returns the length of the  FO XML content - it will include in the count also all the  FO XML markup

    public String getFOXMLContentPortion(int offset, int length) - Returns portion of the FO XML content - this should be used in environments where is impossible the whole content at once due to some limitations such as the case of Oracle Forms. This should be used in conjunction with getFOXMLContentLength() and make loop for retrieving all pieces.

    These methods will return directly the converted content and formatted as FO XML which is ready to be converted in PDF or RTF using Apache FOP for example or the same in Oracle BI Publisher



    Back to top

     
     


Custom XML tags

  1. Custom XML tags are supported - how can I use them?
    - Custom tags are supported in the Enterprise version of the editor component. You can create easily your own grammar specification for handling custom tags or turn on the automatic grammar builder which will inspect the document and create automatically the grammar for you. This can be done the following way:

    htmlEditor.setXMLMode(true);

    for manual tag handling see question #3 below.

    Back to top
  2. How can I provide my own property dialogs for my custom XML tags and associate action with them?
    - This is illustrated in the example provided in the demo version in the folder examples/custom tags . You can provide your own component which responds to actions and displays custom dialogs. This is fully customizable behavior.

    Back to top
  3. How can I create my own custom XML grammar?
    - You can manually specify for each tag how to be handled - block, inline or empty tags. Additionally you can manage the rendering of the block and inline tags through style sheets and/or associate custom components and actions to the empty tags.

    sferyx.administration.editors.CustomXMLTagsGrammarSpecification.registerCustomXMLTag("my_empty_tag",true); - will register empty tag
    sferyx.administration.editors.CustomXMLTagsGrammarSpecification.registerCustomXMLTag("my_custom_block_tag",false); - will register block tag
    sferyx.administration.editors.CustomXMLTagsGrammarSpecification.registerEmptyCustomXMLTagComponentRepresentation
    ("my_empty_tag","MyCustomEmptyTag");
    - will associate the class MyCustomEmptyTag with the <my_emtpy_tag>. Additionally you can add actions to MyCustomEmptyTag component. You can find the entire example in the examples/custom tags folder in the demo version.

    sferyx.administration.editors.CustomXMLTagsGrammarSpecification.registerCustomXMLTagRenderingType("my_custom_block_tag", CustomXMLTagsGrammarSpecification.INLINE_TAG) - this will cause the <my_custom_block_tag> to be rendered as inline tag while the following method call

    CustomXMLTagsGrammarSpecification.setTreatAllBlockTagsAsBlocks(true); will cause all block tags to be rendered automatically as blocks.

    Note that this will work with the Enterprise version only.
  4. How can I provide custom rendering for my XML tags?

    Back to top

Customization/Internationalization features

  1. How do I provide custom objects (<object> tag) rendering and how do I associate my own property dialogs with them?
    - You can provide your own rendering for your <object> tags - for example if you whish to provide a custom icon to be displayed simply specify the ""editor_icon"" attribute like this: <object editor_icon="http://your_icon.gif"> . This will cause the editor to render the object tag with your icon.
    If you need to provide a component representation then you can use the classid attribute and provide a class to be loaded and used for rendering of the <object> tag like this:
    <object use_custom_object_rendering="true" classid="mypackage.MyComponentClass"> - this will result in loading and instantiating of you class.
    If you need to associate a custom property dialog then you can use the following approach:
    <object classid_property_dialog="mypackage.MyCustomDialogClass"> - this will cause when clicking on the "Properties" menu to be displayed your property dialog. You can integrate it with the editor implementing the methods initDialogFields() and getNewAttributes(). Please see the sample file for detailed information on how to do that.
     
    <object use_custom_object_rendering="true" classid_property_dialog="com.test.PropertiesDialog" name="mc1" classid="com.test.TestButton" text="test button1">
    </object>
    - this examples show how to use custom component for rendering and also to set custom property dialog.  You can also pass some property through the attributes such as names, label, text etc.


    Back to top

  2. How can I translate the UI of the editor?

    - htmlEditor.loadInterfaceLanguageFile("http://yourhost/german.txt") - If you use this method, the editor will load the language file and will initialize the entire user interface with the new language setting. This way the editor interface can be localized in any language as needed. See the supplied "sample-german-translation.txt" file as an example for the format of the UI language files. This method will seek first for an url and subsequently in the class path for the file. This now allows not only URLs to be specified as parameters but also resources.

    If you see some labels missing you simply can add the translation in the language file respecting this simple rule:
    Convert the text in English in lowercase and replace the whitespaces with "_" . This way add new entry in the language file with the correct translation.

    Example:

    Label "Find what" - should be added an entry like this:

    find_what=your translation in your language

    Also for the "Whole words only"

    whole_words_only=your translation in your language

    If you save your translation file in a specific encoding such as UTF-8 for example, you should insert the following key in the translation file:

    ui_file_encoding=UTF-8

    Currently, translation files are available in French, German, Spanish, Catalan, Italian, Portuguese, Czech, Polish, Russian, Slovak, Swedish, Norwegian, Turkish, Arabic and also other languages. In case you need specific language, you may contact us at support@sferyx.com .

    Back to top

  3. How can I specify my own dictionary for the spellchecker?

    - htmlEditor.loadExternalDictionary("http://yourhost/your_dictionary_file.dict") - If you use this method, the editor will load the dictionary file and will use it for further spellchecking operations. This method will seek first for an url and subsequently in the class path for the file. This now allows not only URLs to be specified as parameters but also resources. Dictionary can be plain text or compressed - this will be recognized automatically by the editor upon loading.

    The dictionary should be plain text in the following semicolon delimited format:

    A=;aa;aaaa;aaaaaa;.....etc;
    B=;bb;bbb;bbbbb;bbbbbbb;......;
    C=;ccc;cccc;ccccc;ccccc;....;

    Each line contains all words for a given letter, for example the first line contains all the words beginning with A, the second with B etc.

    All the words should be in lower case, note the initial and end delimiters. There shouldn't be any white spaces.

    If you save your dictionary file in a specific encoding such as UTF-8 for example, you should specify the encoding using the following method before loading the dictionary:

    htmlEditor.setExternalDictionaryEncoding("utf-8");
    htmlEditor.setExternalDictionary("file:///path_to_dictionry/your_dict.dict");

    Currently, dictionaries are available in English US, English UK, French, German, Spanish, Italian, Portuguese, Czech, Polish, Russian, Slovak, Swedish,  Greek, Hungarian, Dutch and also other languages. In case you need specific dictionary, you may contact us at support@sferyx.com .

    Back to top

Content manipulation features

  1. How can I import external style sheets?
    - use the following method:
    htmlEditor.loadExternalStyleSheet("http://your_css_file") ; This method will seek first for an url and subsequently in the class path for the file. This now allows not only URLs to be specified as parameters but also resources. The generic CSS file format is fully supported. This will load the CSS file and will refresh the editor content applying the new style sheet. The style dropdowns will reflect the newly loaded style classes. You can use any combination of externally loaded classes, in-document style definitions like <style> tags and linked style sheets through <link> tags or @import statements.

    Back to top
  2. How can I specify default fonts without using style sheets?
    - This is easy. Simply use the following:
    htmlEditor.setDefaultInitialFont("verdana,sans-serif");
    htmlEditor.setDefaultInitialFontSize("10");

    This will cause the editor by default to generate <font> tags setting automatically the specified font without the need style sheets to be loaded.


    Back to top
  3. How can I set the editor's content?
    - There are a plenty of ways to set the content of the editor. The most common are:

    htmlEditor.setContent("<htm>some htmlcontent</html>"); - will set the content of the editor

    htmlEditor.insertContent("<b>some htmlcontent</b>");
    - will insert arbitrary content at the caret position

    htmlEditor.appnedContent("<b>some htmlcontent</b>");
    - will append the content to the existing content of the editor

    htmlEditor.openLocation("http://your_location");
    - will open the file at the give location

    htmlEditor.openLocation(URL location);
    - will open the file at the give location

    htmlEditor.openFile(URL file);
    - will open the file.

    Here we insert some content using content buffer:
    -------------------------------------------------------------------
    htmlEditor.openContentBuffer();
    htmlEditor.appendContentToContentBuffer("This is ");
    htmlEditor.appendContentToContentBuffer("some sample content");
    htmlEditor.appendContentToContentBuffer(" long engouh to be tested...");

    Close the buffer and insert it in the editor
    -------------------------------------------------------
    htmlEditor.closeBufferAndInsert();


    Back to top

  4. How can I get the editor's content?
    When using the component, you can get the content of the editor:

    htmleditor.getContent()
    - will return the entire content of the page

    htmleditor.getBodyContent() - will return only the content of the body

    Other methods for retrieving the content of the editor are the following:

    htmlEditor.saveFile(); - will display File dialog and save the file

    htmlEditor.saveToLocation("http://your_location"); - this will send the content of the editor using POST by default. You can specify alternative publishing methods as WebDav or Multipart Form uploads.

    htmlEditor.setSaveEntireDocumentTree(true|false); - this will cause the editor to save the entire document tree in a specified folder - this will include all linked images and object.

    htmlEditor.setLinkedObjectsFolderName("images"); - this method is used to retrieve the folder name where all linked objects should be moved upon save. This is used in conjunction with setSaveEntireDocumentTree(). This will cause all linked objects to be moved in a relative to the document folder which will contain all external objects - images, link targets etc.

    htmlEditor.saveEntireDocumentTree() - will save the entire document tree as specified in the methods described above.

    Back to top

  5. How can I specify read-only sections within the document?
    You can mark sections of the document as read-only simply putting a readonly attribute like this:

    <p readonly="true">
    ...some content
    </p>

    or

    <div readonly="true">
    ...some content
    </div>

    or

    <table readonly="true">
    ...some content
    </table>

    Note that the attribute readonly="true" should be specified in lowercase.

    All page elements containing such an attribute will be treated as read-only and thus not editable.

    Back to top

  6. What pasting operations are supported?
    public void setPreferredPasteOperation(int preferredPasteOperation)

    public int getPreferredPasteOperation()

    You can switch between the default operations as follows:

    PASTE_FORMATTED_TEXT=0;
    PASTE_PLAIN_TEXT=1;
    PASTE_FORMATTED_PARAGRAPHS_WITHOUT_STYLE=2;
    PASTE_FILTERED_FORMATTED_TEXT=3;

    That means you can do the following:

    setPreferredPasteOperation(HTMLEditor.PASTE_PLAIN_TEXT);

    or simply

    setPreferredPasteOperation(1);


    Back to top

  7. What symbols can be inserted in the editor in edit time?
    - Through the built-in Insert Symbol dialog on the Insert menu you can insert any available symbol on your platform. Additionally through insertContent() you can insert any kind on html content and thus all supported html entities.

    Back to top
  8. How can I apply style classes to the different document elements?
    - Through the quick style dropdown menu on the toolbar to all text elements. Additionally on all property dialogs there are style dropdowns for applying an manipulating the style classes of all document elements such as paragraphs, lists, tables, table cells, images, form elements etc.

    Back to top
  9. How can I retrieve document elements easily?
    The Enterprise version provides an additional package which is the Javascript Emulation Engine which allows document elements to be referenced in a javascript like manner from your java application like this:

    This will work both on Visual editor and Preview automatically reflecting the state of the editor.

    Now you can easily access all document and form elements in a javascript like manner.

    Example on accessing form elements:

    JavaScriptEmulatorEngine jsEngine=new JavaScriptEmulatorEngine(hTMLEditor1);

    DocumentElement[] elements=jsEngine.getDocument().forms[0].elements;


    for(int i=0;i<elements.length;i++)
    {
    System.out.println("------Element Start---------");
    System.out.print(elements[i]);
    System.out.println("------Element End---------");
    }

    To access easily the attributes as Strings you can now use directly
    element.getAttributes() or element.getAttribute(attributeName)


    Example on referencing the document elements by ID

    JavaScriptEmulatorEngine jsEngine=new JavaScriptEmulatorEngine(hTMLEditor1);
    DocumentElement element=jsEngine.getDocument().getElementById("3246");

    System.out.println("------Element Start---------");
    System.out.print(element);
    System.out.println("------Element End---------");

    Example on referencing the document elements by ID and adding Mouse listener to it.

    JavaScriptEmulatorEngine jsEngine=new JavaScriptEmulatorEngine(hTMLEditor1);
    DocumentElement element=jsEngine.getDocument().getElementById("3246");

    JComponent component=SferyxUtilities.getJavaFormItemComponent(element,
    hTMLEditor1);
    System.out.println("Adding Mouse Listener to :"+component);
    component.addMouseListener(this);

    Example on referencing the document elements by Tag Name

    JavaScriptEmulatorEngine jsEngine=new JavaScriptEmulatorEngine(hTMLEditor1);
    DocumentElement[] elements=jsEngine.getDocument().getElementsByTagName("INPUT");

    for(int i=0;i<elements.length;i++)
    {
    System.out.println("------Element Start---------");
    System.out.print(elements[i]);
    System.out.println("------Element End---------");
    }

    @See ReferencingDocumentElements.java example for major details.

  10. How can I enable the text folding functionalities?
    If you would like to enable text folding on a certain document elements, you will need to add the following attributes:

    <div textfolding="true" initialstate="collapsed | expanded"><h1>Some heading</h1>
    <p>The rest of the text here</p>
    </div>

  11. How can I access the document's DOM structure easily and edit the element attributes and styles??

    The methods for easy manipulation of the document's content using JavaScript-like String methods for referencing the document's elements and for accessing the document's element attributes and styles:

    public void setElementAttribute(Element element, String attributeName, String value) - This method is provided to facilitate the process of setting/adding of the element attributes. This method will add/set the given attribute to the element. It will first try to see if the attribute is a CSS attribute, after that if it is HTML attribute and at the end will insert it as a string attribute

    Example:
       
    Element element=htmlEditor.getElementOfType("div",htmlEditor.getCaretPosition());
        htmlEditor.setElementAttribute(element, "background-color", "red");
        htmlEditor.setElementAttribute(element, "color", "yellow");

    This method allows to modify the element properties very easily and will work both for the Visual Editor and the Preview section.

    public String getElementAttribute(Element element, String attributeName)
    - This method is provided to facilitate the process of setting/adding of the elements attributes. This method will add/set the given attribute to the element. It will first try to see if the attribute is a CSS attribute, after that if it is HTML attribute and at the end will insert it as a string attribute. The attribute names are like background-color, color, width etc.

    Example:
       System.out.println(htmlEditor.getElementAttribute(element, "background-color"));
       System.out.println(htmlEditor.getElementAttribute(element, "color"));
       System.out.println(htmlEditor.getElementAttribute(element, "border"));

    This method allows to retrieve the element properties very easily and will work both for the Visual Editor and the Preview section.

    public String[] getElementAttributeNames(Element element) - This method is intended to provide easy access to the element's attributes names. It will return an array String[] containing all attributes names like "background-color","color" etc..

    Example:
     
    String[] names=htmlEditor.getElementAttributeNames(element);
      for(int i=0;i<names.length;i++)
        {
             System.out.println("Attribute Names:"+names[i]+"="+htmlEditor.getElementAttribute(element,names[i]));
        }

    This method allows to retrieve all the element's properties very easily and will work both for the Visual Editor and the Preview section.

    public void removeElementAttribute(Element element, String attributeName) - This method is provided to facilitate the process of removing of the element attributes. This method will remove the given attribute from the element. It will first try to see if the attribute is a CSS attribute, after that if it is HTML attribute and at the end will remove it as a string attribute

    public void setElementStyleAttribute(Element element, String value)
    - This method is provided to facilitate the process of setting/adding style attribute to the element.

    public String getElementStyleAttribute(Element element) - This method is provided to provide easy access to the element's STYLE attribute. It will return a String like "background-color:yellow;color:red" etc..

    public Element getElementAtPosition(int position) - This method will return the topmost element for the given position - you can get the the position of the caret for example. This will work automatically for the selected editor component - visual editor or preview. If the source editor is selected will return null.

    public Element[] getElementsAtPosition(int position) - This method will return an array of all elements at the specified document position. The elements are ordered from the topmost to the bottommost box of the viewport - you can get the position of the caret for example. This will work automatically for the selected editor component - visual editor or preview. If the source editor is selected will return null.

    public Element getElementOfType(String tag, int pos) - This method will return the element for the given tag if defined in the element tree at the specified caret position in the selected visual editor or the preview. It will return null if the source editor is selected. The method will return null if the tag is not defined in he element tree of the given position.

    public Element getBlockElement(int position) - Returns the block element such as body, div, table cell etc. at the specified position below the current paragraph element from the currently active visual editor or the preview. If the source editor is currently selected will return null. It will return null if there is no block element found at the specified position.

    public String getElementTextContent(Element element) - Returns the text content of the element as string.

    public String getInnerHTML(Element element) - Returns the content of the element as HTML string without the tags of the element.

    public String getOuterHTML(Element element) - Returns the entire content of the element as HTML string including the tags of the element.

    public Element getElementAtPoint(int x, int y)
     - This method will return the topmost element for the given position - you can get the coordinates from the mouse release event for example.

    public Element[] getElementsAtPoint(int x, int y) - This method will return an array of all elements at the specified coordinates. The elements are ordered from the topmost to the bottommost box of the viewport - you can get the coordinates from the mouse release event for example.

    public Element[] getElementsByTagName(String tag) - Returns the elements by the specified tag name from the currently active visual editor or the preview. If the source editor is currently selected will return null.

    public Element[] getElementsByClassName(String className) - Returns the elements by the specified class name from the currently active visual editor or the preview. If the source editor is currently selected will return null.

    public int getCaretPosition() - Returns the caret position of the currently active editor component like visual editor, source or preview.

    public void setCaretPosition(int caretPos) - Sets the caret position of the currently active editor component like visual editor, source or preview.

    public Element getElementById(String id) - Returns the element by the specified ID attribute from the currently active visual editor or the preview. If the source editor is currently selected will return null.

    public void setInnerHTML(Element elem, String htmlContent) - Inserts the specified HTML string inside the given element - this method will replace the content of the element with the specified HTML string. This is not applicable to leaf elements.

    public void setOuterHTML(Element elem, String htmlContent) - Inserts the specified HTML string in the place of the given element - this method will wrap the HTML string around the element and will replace it.

    public void insertAfterEnd(Element elem,String htmlString) - Inserts the specified HTML string after the the end of the given element.

    public void insertBeforeEnd(Element elem,String htmlString) - Inserts the specified HTML string before the the end of the given element. This is not applicable to leaf elements.

    public void insertBeforeStart(Element elem,String htmlString) - Inserts the specified HTML string before the the start of the given element.

    public void insertAfterStart(Element elem,String htmlString) - Inserts the specified HTML string after the the start of the given element. This is not applicable to leaf elements.



    Back to top

Application integration features

  1. Can I embed easily the editor in my application?
    - Yes, nothing easier than this. We have provided all the necessary customization features and API calls for to provide the easiest possible integration. However in case you may need help with your integration do not hesitate to contact our customer support at support@sferyx.com

    Back to top

  2. How can I specify my own style sheets, language files and dictionaries in order to redistribute them easily with the editor?
    You can bundle your resources in a jar file together with your classes and the HTMLEditor. We have done the possible to make this process easy - style sheets, language files and dictionaries can be loaded from the classpath of your application directly without the need to make any additional efforts. The editor automatically will search for the specified resources. See also the Customization/Internationalization features chapter above.

    Back to top
  3. How can I use multiple editors on the same HTML page or within the same application window?
    - Absolutely no problems with that - simply instantiate the editors in your page or application window and it will work out of the box without any additional configuration.

    Back to top

  4. How can I provide my own toolbar for multiple editor instances?
    - You can do that very easy - check the examples folder for sample program listings.

    Back to top

  5. How can I make the editor transparent?

    htmlEditor.setSourceEditorVisible(false);
    htmlEditor.setPreviewVisible(false);
    htmlEditor.setEditorTransparent(true);


    This will make the editor to run in a fully transparent mode and can be used in applications as a floating box. See the examples folder of the downloadable demo for sample program listings.

    Back to top

  6. How can I use the editor in read-only mode like a browser for displaying pages?
    This will work in the Enterprise version only. Do the following:

    hTMLEditor.setBrowsingInPreviewEnabled(true); - this will enable hyperlinks in the preview section and when you click on them you will able to navigate through the pages.

    hTMLEditor.setVisualEditorFollowsPreview(true); - if you use this method in conjunction with the one above, the visual editor will follow the preview. This way will be possible to navigate to a certain page in the preview and after that switching to the visual editor edit it directly.

    hTMLEditor.setPreviewModeOnly(true); - if you use this method in conjunction with the setBrowsingInPreviewEnabled(true), will be shown only the preview section, thus converting the editor in a browser.

    Back to top
  7. How to enable hyperlink following when in browser mode ?

    hTMLEditor.setBrowsingInPreviewEnabled(true);
    - this will enable hyperlinks in the preview section and when you click on them you will able to navigate through the pages.

    See the above question for major details.

    Back to top
  8. How can I display the editor in HTML Source mode only?

    hTMLEditor.setSourceCodeModeOnly(true);
    - this will show only the HTML Source Editor turning the HTML editor into a HTML markup text editor with syntax highlighting, search/replace etc.

    Back to top

  9. How to remove unwanted menu items?

    Removing menu items:

    setRemovedMenuItems("openLocationMenuItem, printFileMenuItem, closeFileMenuItem,...") - Indicates which menu items should be removed from the menus. This list contains comma separated names of the menu items contained within the editor to be removed. This allows the full customization of the dropdown menus inside the main menu. The full list is:

    File Menu

    newFileMenuItem - new file menu item on the "File" menu
    openFileMenuItem - open file menu item on the "File" menu
    openLocationMenuItem - open location menu item on the "File" menu
    closeFileMenuItem - close file menu item on the "File" menu
    saveFileMenuItem - save file menu item on the "File" menu
    saveasFileMenuItem - save remote file menu item on the "File" menu
    printFileMenuItem - print file menu item on the "File" menu
    exitFileMenuItem - close file menu item on the "File" menu
    saveasDocxFileMenuItem - save as MS Word docx menu item on the "File" menu
    saveasMailFileMenuItem - save as Outlook .eml e-mail file menu item on the "File" menu
    openDocxFileMenuItem - open MS Word docx file menu item on the "File" menu

    Edit Menu
    copyMenuItem -copy menu item on the "Edit" menu
    cutMenuItem - cut menu item on the "Edit" menu
    pasteMenuItem - paste menu item on the "Edit" menu
    copyFormattedTextMenuItem - copy formatted text menu item on the "Edit" menu
    pasteFormattedTextMenuItem- paste formatted text menu item on the "Edit" menu
    selectAllMenuItem - select all menu item on the "Edit" menu
    findMenuItem - find menu item on the "Edit" menu - professional version
    replaceMenuItem - replace menu item on the "Edit" menu - professional version
    Insert Menu
    insertBreakMenuItem - insert break menu item on the "Insert" menu
    insertParagraphMenuItem - insert paragraph menu item on the "Insert" menu
    insertSpaceMenuItem - insert space menu item on the "Insert" menu
    horizontalLineMenuItem - insert horizontal line menu item on the "Insert" menu
    insertDateMenuItem - insert date menu item on the "Insert" menu
    insertSymbolMenuItem - insert symbol menu item on the "Insert" menu
    insertFormFieldTextBoxMenuItem - insert text box menu item on the "Insert -> Form" menu
    insertFormFieldTextAreaMenuItem - insert text area menu item on the "Insert -> Form" menu
    insertFormFieldCheckBoxMenuItem - insert check box menu item on the "Insert -> Form" menu
    insertFormFieldRadioButtonMenuItem - insert radio button menu item on the "Insert -> Form" menu
    insertFormFieldDropDownMenuItem - insert drop down menuitem on the "Insert -> Form" menu
    insertFormFieldPushButtonMenuItem - insert push button menu item on the "Insert -> Form" menu
    insertFormFieldImageButtonMenuItem - insert image button menu item on the "Insert -> Form" menu
    insertInsertImageMenuItem - insert image menu item on the "Insert" menu
    insertInsertHyperlinkMenuItem - insert hyperlink menu item on the "Insert " menu
    Table Menu
    insertTableMainMenuItem - insert table menu item on the "Table" menu
    insertTableRowMainMenuItem - insert table row menu item on the "Table" menu
    insertTableColumnMainMenuItem - insert table column menu item on the "Table" menu
    deleteTableCellsItem - delete table column menu item on the "Table" menu
    selectTableMenuItem - select table menu item on the "Table" menu
    selectTableColumnMenuItem - select table column menu item on the "Table" menu
    selectTableRowMenuItem - select table row menu item on the "Table" menu
    selectTableCellMenuItem - select table cell menu item on the "Table" menu
    splitTableCellMenuItem - split table cell menu item on the "Table" menu
    mergeTableCellMenuItem - merge table cell menu item on the "Table" menu
    tablePropertiesMainMenuItem - table properties menu item on the "Table" menu
    tableCellPropertiesMainMenuItem - table cell properties menu item on the "Table" menu
    Window Menu
    newWindowMenuItem - new window menu item on the "Window" menu
    Format Menu
    fontPropertiesMainMenuItem - font properties menu item on the "Format" menu
    pagePropertiesMainMenuItem - page properties menu item on the "Format" menu
    menuChangeCase  - the menu containing all submenus for changing the case.
    upperCaseMenuItem
    - convert to upper case menu item
    lowerCaseMenuItem
     - convert to lower case menu item
    titleCaseMenuItem
    - convert to title case menu item
    sentenceCaseMenuItem
    - convert to sentence case menu item

    View Menu
    viewStatusBarMenuItem - view status bar menu item on the "View" menu
    viewToolBarMenuItem - view tool bar menu item on the "View" menu - professional version
    viewSourceEditorMenuItem - view source editor menu item on the "View" menu - professional version
    viewPagePreviewMenuItem - view preview menu item on the "View" menu - professional version
    Help Menu
    aboutFileMenuItem - about menu item on the "Help" menu
  10. How to remove unwanted toolbar items?

    Removing toolbar items:

    setRemovedToolbarItems("fontUnderlineButton,fontItalicButton,alignRightButton,fontsList,...") - Indicates which toolbar items should be removed from the tool bars. This list contains comma separated names of the toolbar items contained within the editor's tool bars to be removed. This allows the full customization of the tool bars of the editor. The full list of the tool bar items is:

    insertImageButton - the insert image toolbar button;
    tableBtn - the insert table toolbar button;
    undoButton - the undo toolbar button;
    redoButton - the redo toolbar button;
    insertHyperlinkButton - the insert hyperlink toolbar button;
    increaseIndentButton - the increase indent toolbar button;
    decreaseIndentButton - the decrease indent toolbar button;
    fontSizeButton - the font properties button;
    setForegroundButton - the font foreground toolbar button;
    unorderedListButton - the unordered list toolbar button;
    orderedListButton - the ordered list toolbar button;
    newFileButton - the new file toolbar button;
    openFileButton - the open file toolbar button;
    saveFileButton - the save file button;
    printFileButton - the print file button;
    pasteButton - the paste toolbar button;
    copyButton - the copy toolbar button;
    cutButton - the cut toolbar button;
    alignRightButton - the align right toolbar button;
    alignCenterButton - the align center toolbar button;
    alignLeftButton - the align left toolbar button;
    fontUnderlineButton - the font underline toolbar button;
    fontStrikethroughButton - the strikethrough button on the toolbar.
    fontItalicButton - the font italic toolbar button;
    fontBoldButton - the font bold toolbar button;
    copyFormattingButton - the copy formatting toolbar button;
    fontsList - the fonts list toolbar combo box;
    fontSizes - the font sizes toolbar combo box;
    headingStyles - the headings toolbar combo box;
    insertTableButton - insert table toolbar button
    insertTableRowButton - insert row toolbar button
    insertTableColumnButton - insert column toolbar button
    deleteTableCellsButton - delete table cells toolbar button
    selectTableButton - select table toolbar button
    selectTableColumnButton - select table column toolbar button
    selectTableRowButton - select table row toolbar button
    selectTableCellButton - select table cell toolbar button
    splitTableCellButton - split table cell toolbar button
    mergeTableCellButton - merge table cell toolbar button
    tablePropertiesButton - table properties toolbar button
    tableCellPropertiesButton - table cell properties toolbar button
    styleClasses - the style classes toolbar combo box
    showParagraphsButton - the button for revealing paragraphs
    fontBackgroundButton - font background (text highlight) button
    insertEquationButton - the button for inserting mathematical equations through Sferyx EquationEditor
     

    alignJustifyButton - the button for align justify paragraphs
    superscriptButton -
    the button for superscipt
    subscriptButton -
    the button for subscript
    insertSymbolButton
    the button for inserting symbols

    tableToolbarSeparator- the separator between the table items
    pasteToolbarSeparator-
    the separator between the pasting items
    undoToolbarSeparator-
    the separator between the undo items
    saveToolbarSeparator-
    the separator between save items

    tableInsertItemsToolbarSeparator - the separator between the table insert items
    tableSelectItemsToolbarSeparator - the separator between the table select items

    printToolbarSeparator - the separator before the print item
    fontToolbarSeparator -
    the separator between formatting items
    fontStyleToolbarSeparator
    the separator before the style combo
    alignmentToolbarSeparator -
    the separator before the paragraph alignment items
    listsToolbarSeparator-
    the separator before the list items

    zoomoutTextButton - the text zoom out button
    zoominTextButton -
    the text zoom in button
    pdfExportButton -
    the PDF export toolbar button when enabled

    imageMapRectButton - the image map insert rectangle button
    imageMapCircleButton -
    the image map insert circle button
    imageMapPolyButton -
    the image map insert polygon button

    replaceTextButton - replace text toolbar button
    findTextButton -
    find text toolbar button
    bordersToolbarButton -
    edit borders toolbar button

    increaseFontSizeButton - the increase font size button
    decreaseFontSizeButton - the decrease font size button
    spellCheckerButton - the spellchecker button
    spellCheckerAYTButton - the as-you-type spellchecker button
    printPreviewButton - the print preview button
    pageLayoutButton
    - the page layout button

    saveasDocxButton - save as MS docx file button on the toolbar
    openDocxButton - open MS docx file button on the toolbar

     

     

  11. How to remove unwanted menus?

    Removing entire menus:

    setRemovedMenus("menuTools, menuHelp,..") - Indicates which menus should be removed from the main menu bar. This list contains comma separated names of the menus contained within the editor's main menu bar to be removed. This allows the full customization of the menus inside the main menu bar. The full list of the menus is:

    Main Menus:

    menuFile - the File menu on the main menu bar - will remove the entire menu;
    menuEdit - the Edit menu on the main menu bar - will remove the entire menu;
    menuView - the View menu on the main menu bar - will remove the entire menu;
    menuInsert - the Insert menu on the main menu bar - will remove the entire menu;
    menuFormat - the Format menu on the main menu bar - will remove the entire menu;
    menuTools - the Tools menu on the main menu bar - will remove the entire menu;
    menuTable - the Table menu on the main menu bar - will remove the entire menu;
    menuWindow - the Window menu on the main menu bar - will remove the entire menu;
    menuHelp - the Help menu on the main menu bar - will remove the entire menu;
    Submenus:
    menuInsertTable - the Insert menu inside the Table main menu - will remove the entire menu;
    menuSelectTable - the Select menu inside the Table main menu - will remove the entire menu;
    menuPropertiesTable - the Properties menu inside the Table main menu - will remove the entire menu;
    menuForm - the Form menu inside the Insert main menu - will remove the entire menu;
  12. How to remove items from the popup menu?

    setRemovedPopupMenuItems("listPropertiesMenuItem,insertTableRowMenuItem...") - Indicates which toolbar items should be removed from the main popup menu. This list contains comma separated names of the popup menu items contained within the editor's main popup bar to be removed. This allows the full customization of the tools inside the main popup menu. The full list of the items is:
    listPropertiesMenuItem - list properties popup menu item, appears when the cursor is placed over a list
    insertTableRowMenuItem - insert table row popup menu item
    insertTableCellMenuItem - insert table cell popup menu item
    insertTableMenuItem - insert table row popup menu item
    imagePropertiesMenuItem - image properties popup menu item, appears when there is an image selected
    imageButtonFieldPropertiesMenuItem - image button properties popup menu item, appears when there is an image button selected
    formPropertiesMenuItem - form button properties popup menu item, appears when there is a form
    buttonFieldPropertiesMenuItem - button properties popup menu item, appears when there is a button selected
    radioButtonFieldPropertiesMenuItem - radio button properties popup menu item, appears when there is a radio button selected
    checkBoxFieldPropertiesMenuItem - check box properties popup menu item, appears when there is a check box selected
    textFieldPropertiesMenuItem - text field properties popup menu item, appears when there is a text field selected
    textAreaFieldPropertiesMenuItem - text area properties popup menu item, appears when there is a text area selected
    selectFieldPropertiesMenuItem - select(list) field properties popup menu item, appears when there is a select field(list) selected
    tablePropertiesMenuItem - table properties popup menu item, appears when there is a table at the cursor position
    tableCellPropertiesMenuItem - table cell properties popup menu item, appears when there is a table at the cursor position
    pagePropertiesMenuItem - page properties popup menu item
    mergeItem - merge table cells properties popup menu item, appears when there is a table at the cursor position
    splitItem - split table cell properties popup menu item, appears when there is a table at the cursor position
    hyperlinkPropertiesPopupMenuItem - hyperlink properties popup menu item
    fontPropertiesMenuItem - font properties popup menu item
    objectPropertiesMenuItem - object properties popup menu item
    paragraphPropertiesPopupMenuItem - paragraph properties popup menu item
    copyItem - copy formatted text popup menu item
    copyPlainTextMenuItem - copy plain text popup menu item
    pasteItem - paste formatted text popup menu item
    copyPopupMenuItem - copy popup menu item
    pastePopupMenuItem - paste popup menu item
    cutPopupMenuItem - cut popup menu item
    boldPopupMenuItem - bold popup menu item
    italicPopupMenuItem - italic popup menu item
    underlinePopupMenuItem - underline popup menu item
    alignLeftPopupMenuItem - align left popup menu item
    alignCenterPopupMenuItem - align center popup menu item
    alignRightPopupMenuItem - align right popup menu item
    insertParagraphPopupMenuItem - insert paragraph popup menu item

    formattingPopupMenuSeparator - the sparator before the formatting items.
    alignmentPopupMenuSeparator
    - the separator before the alignment items.
    paragraphsPopupMenuSeparator
    - the separator before the paragraph properties items.
    tablePopupMenuSeparator
    - the separator before the table properties items.

     





  13. How to disable the popup menu?

    htmlEditor.setPopupMenuVisible();

    Back to top

  14. How to enable/disable the as-you-type spellchecker?

    htmlEditor.setAsYouTypeSpellcheckingEnabled(true|false);

    Back to top
  15. How to add my own buttons on the toolbar?


    There are several ways for doing this:

    1) Using the built-in createMenuButton function like this:


    JButton myToolbarButton=htmlEditor.createMenuButton(htmlEditor.getEditingToolBar(), "Click me", "Click me", htmlEditor.getSharedIcon("sferyx-logo"));


    class my_listener implements ActionListener
    {

    public void actionPerformed(ActionEvent evt)
    {

    JOptionPane.showMessageDialog(htmlEditor, "Now we will insert the following string into the editor:\n<h1>This is a HTML content inserted from a custom button</h1>");

    htmlEditor.setContent("<h1>This is a HTML content inserted from a custom button</h1>");
    }


    }

    myToolbarButton.addActionListener(new my_listener());


    2) Retireving the toolbars and adding whatever you want on them:

    JToolbar editingToolbar=htmlEditor.getEditingToolBar();
    - will return the editing toolbar

    JToolbar formattingToolbar=htmlEditor.getFormattingToolBar();
    - will return the formatting toolbar

  16. How to provide my own browsing dialogs for images and hyperlinks?

    See How can I provide my own dialogs for browsing images and hyperlinks?

    Back to top

  17. How to specify default charset?
    You can do this two ways:

    htmlEditor.setDefaultCharset("utf-8");

    or use inside the document

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

    Back to top

  18. How to configure preferred past operations?

    See What pasting operations are supported . The user can choose paste operation from the "Edit" menu. Back to top
  19. How to configure save operations?

    See the "Publishing content " section for more details.

    Back to top
  20. How can I save the entire page including all images and objects in a relative to the page folder?

    You can use html.saveEntireDocumentTree(); functionality. You can get more details on its usage here: How can I get the editor's content?

    Back to top
  21. How to disable the HTML Source editor?

    htmlEditor.setSourceEditorVisible(true|false);

    Back to top
  22. How to disable the HTML Preview?

    htmlEditor.setPreviewVisible(true|false);

    Back to top
  23. How to disable the Main Menu?

    htmlEditor.setMainMenuVisible(boolean visible) - Indicates if the entire main menu is visible or not. The default value is true

    Back to top

     

  24. How to disable the Toolbars?

    htmlEditor.setToolBarVisible(boolean visible) - Indicates if the entire main toolbar is visible or not. The default value is true

    htmlEditor.setFormattingToolbarVisible(boolean visible) - Will show/hide the formatting toolbar - to be used when only one part of the toolbar needs to be disabled

    htmlEditor.setShortcutToolbarVisible(boolean visible) - Will show/hide the shortcuts toolbar - to be used when only one part of the toolbar needs to be disabled.

    Back to top

     

  25. How to disable the Statusbar

    htmlEditor.setStatusBarVisible(boolean visible)
    - Sets the status bar section of the editor visible and active or not. It could be changed at runtime.

    Back to top
     
  26. How to change the icons on the Toolbar buttons

    One easy way for fully customizing each button can be done the following way:
    JComponent getToolbarItemByName(String toolbarItemName) - Returns a toolbar item by its name - this allows the full customization of the toolbars of the editor - you can change icons, size, add listeners etc. The full list of the toolbar items can be found in the user manual or in the FAQ. An example of customization is as follows:
     
    JComponent comp = htmlEditor.getToolbarItemByName("fontBoldButton");
         if(comp instanceof JButton)
         {
          ((JButton)comp).setIcon(new ImageIcon(new URL("file:///c:/your_icon.png")));
         }
     
    Further you can change any property of the item in question as size, text, color etc.
     
    Another alternative way for changing the icons is changing directly the preloaded icons like this:_
     
     
    htmlEditor.setSharedIcon("file-save",new ImageIcon(.....)); - Changes a default icon with new image.  After you invoke updateUI the new icons will be visible
    htmlEditor.updateUI();

    The names of all icons can be found here:

    table-insert
    insert-image
    undo
    redo
    spellchecker
    hyperlink
    font-properties
    increase-indent
    decrease-indent
    font-foreground
    copy-to-clipboard
    copy-style
    paste-from-clipboard
    cut-to-clipboard
    font-bold
    font-italic
    font-underline
    left-justify
    center-justify
    right-justify
    insert-ordered-list
    insert-unordered-list
    file-open
    file-save
    file-new
    file-print
    delete-cells
    merge-cells
    split-cells
    form
    text-field
    text-area
    check-box
    radio-button
    push-button
    list
    dragdropcursor
    dragcopycursor
    select-row
    select-col

    table-select-column
    table-select-table
    table-select-row
    table-select-cell
    table-insert-row
    table-insert-column

    table-properties
    table-cell-properties
    font-background
    show-paragraphs

    subscript
    superscript
    page-properties

    align-justify
    equation

    zoomin-text
    zoomout-text
    pdfexport
    insert-symbol
    image-map-rect
    image-map-circle
    image-map-poly
    draw-cursor

    find-text
    replace-text
    strikethrough
    spellchecker-ayt
    increase-font
    decrease-font
    print-preview
    edit-borders
    file-save-docx
    file-open-docx
    file-save-mail
     
     
     
  27. How can I implement my own toolbar  buttons instead of the default ones - also can I use different toolbar and move everything elsewhere?
    Absolutely yes, you can do this quite easily by using the action commands of the existing buttons  - here below is a list of the default action commands which you can set on your own buttons placed anywhere and you can add to them action listener which is actually the editor itself like this:
     
    myButton.setActionCommand("file-open");
    myButton.addActionListener(htmlEditor)
     - This way the action command triggered by your button will be handled by the editor
     
    Here below is the list of the action commands:
     
    "increase-indent" - increases the indent of the paragraph at the caret position
    "decrease-indent" - decreases the indent of the paragraph at the caret position
    "picture-properties" - shows the picture properties dialog box which allows change of the picture parameters at the caret position or does nothing if there is no picture.
    "imagebutton-properties" - shows the image button form field properties dialog box which allows change of its parameters or does nothing if there is no image button.
    "page-properties" - shows the page properties dialog box which allows change of the page parameters such as title, background etc.
    "table-select" - selects the table at the caret position or does nothing if there is no table.
    "table-row-select" - selects the table row at the caret position or does nothing if there is no table.
    "design-table" - shows the design table popup of the toolbar.
    "table-insert-row" - inserts new table row in the table at the caret position or does nothing if there is no table
    "table-insert-column" - inserts new table column in the table at the caret position or does nothing if there is no table
    "table-insert" - shows the insert table dialog which allows the selection of the number of rows and columns and inserts new table
    "start-spellchecker" - starts the spellchecker and begins the check of the document.
    "selectall-action" - selects the entire document.
    "find-action" - shows the find/search dialog.
    "replace-action" - shows the find/replace dialog.
    "table-properties" - shows the table properties dialog which allows the customization of the table at the caret position or does nothing if there is no table
    "cell-properties" - shows the table cell properties dialog which allows the customization of the selected table cells or does nothing if there is no table cells selected
    "table-cell-merge" - merges the selected table cells and.
    "table-cell-split" - splits the cell at the caret position into two cells horizontally.
    "hyperlink-properties" - shows the hyperlink properties dialog and modifies or inserts new hyperlink on the selected text
    "form-properties" - shows the form properties dialog for the form at the caret position or does nothing if there is no form.
    "button-properties" - shows the button form field properties dialog for the form at the caret position or does nothing if there is no button form field.
    "radiobutton-properties" - shows the radio button form field properties dialog for the form at the caret position or does nothing if there is no radio button form field.
    "checkbox-properties" - shows the checkbox form field properties dialog for the form at the caret position or does nothing if there is no checkbox form field.
    "textfield-properties" - shows the textfield form field properties dialog for the form at the caret position or does nothing if there is no textfield form field.
    "textarea-properties" - shows the textarea form field properties dialog for the form at the caret position or does nothing if there is no textarea form field.
    "selectfield-properties" - shows the select (dropdown menu or list) form field properties dialog for the form at the caret position or does nothing if there is no select (dropdown menu or list) form field.
    "font-foreground" - sets the selected text's font foreground color visualizing the ColorChooser
    "font-family" - sets the selected text's font family from the combobox on the toolbar
    "font-size" - sets the font size
    "insert-textfield" - inserts new textfield form field. If there is no form at the current caret position, creates new one.
    "insert-textarea" - inserts new textarea form field. If there is no form at the current caret position, creates new one.
    "insert-checkbox" - inserts new checkbox form field. If there is no form at the current caret position, creates new one.
    "insert-radiobutton" - inserts new radiobutton form field. If there is no form at the current caret position, creates new one.
    "insert-pushbutton" - inserts new pushbutton form field. If there is no form at the current caret position, creates new one.
    "insert-select" - inserts new select (dropdown menu/list) form field. If there is no form at the current caret position, creates new one.
    "insert-imagebutton" - inserts new imagebutton form field visualizing the file dialog to select the image URL. If there is no form at the current caret position, creates new one.
    "insert-hr" - inserts new horizontal line <hr> at the caret position.
    "insert-br" - inserts line break at the caret position.
    "insert-p" - inserts new paragraph at the caret position.
    "insert-space" - inserts white space at the caret position.
    "insert-image" - inserts new image at the caret position, visualizing the file dialog.
    "font-properties" - shows the font properties dialog.
    "file-print" - shows the print dialog and prints out the current page.
    "file-save" - saves the current page, visualizing the file dialog.
    "file-open" - opens a new file showing the file dialog.
    "location-open" - opens a new file (URL) showing open location dialog.
    "file-new" - creates new empty file.
    "file-exit" - exits from the editor, using System.exit() asking to save the changes
    "help-about" - exits from the editor, using System.exit() asking to save the changes
    "copy-action" - performs copy formatted text action and copies the selection as formatted paragraphs, ready to be pasted into tables.
    "paste-action" - performs paste formatted text action.
    "new-editor-window" - creates new editor frame
    "text-uppercase" - convert text to uppercase
    "text-lowercase" - convert text to lowercase
    "text-titlecase" - convert text to title case
    "text-sentencecase"  - convert text to sentence case
    "increase-font"  - increase font size
    "decrease-font" - descrease font size
    "add-word-to-dictionary" - adds word to the custom dictionary
    "edit-hotspot" - modifies image map hotspot
    "image-map-rect" - inserts restangle image map hotspot
    "image-map-circle" - inserts circle image map hotspot
    "image-map-poly" - inserts polygon image map hotspot
    "pdfexport" - exports document as PDF through the PDFExport plug-in
    "zoomin-text" -increases the zoom of the page
    "zoomout-text" - decreases the zoom of the page
    "insert-equation" - inserts equation through the equation editor plug-in
    "edit-equation" - edits equation through the equation editor plug-in
    "strikethrough" - strikethough the selected text
    "font-underline" - underline  the selected text
    "subscript" - converts text to subscript
    "superscript" - converts text to superscript
    "preview-go-backward" - go back on the preview pane
    "preview-go-forward" - go forward on the preview pane
    "show-paragraphs" - shows the paragraphs inside the document
    "file-save-docx" - saves the content of the editor as MS Word Docx file.
    "file-save-mail"- saves the content of the editor as standard e-mail format and creates .eml file which can be opened in MS Outlook, Thunderbird etc.
  28. How to show/hide rulers in the visual editor?

    htmlEditor.setShowRulers(false)
    - this will hide the rulers inside the visual editor. There are the following methods:
     
    public void setShowRulers(boolean visible) - shows/hides the rulers inside the visual editor.
     
    public boolean isShowRulers()  - returns the status of the rulers
    Back to top
     

Oracle Forms Integration

  1. How can I integrate the editor in Oracle Forms?
    As any other java bean is integrated in Oracle Forms designer. Please the jar file in the designer's classpath and it will be automatically detected by the Oracle Forms Designer. You can add it after that easily as a bean area.

    Back to top


  2. How to get the content of the editor in OracleForms?
    Invoking a function from PL/SQL:

    Declare
    vString VarChar2(2000);
    Begin
    vString := FBean.Invoke_Char('HTMLEDITOR_AREA',1,'getBodyContent');
    :block3.TEXT_AREA := vString;
    End;

    For complete manual on using the editor component with Oracle Forms please consult the Oracle Forms manual here


    Back to top

  3. How to set the content of the editor in Oracle Forms?

    Declare
    hArgs FBEAN.ARGLIST;
    Begin
    hArgs:=FBEAN.CREATE_ARGLIST;
    FBEAN.ADD_ARG(hArgs,'some, text');
    FBean.Invoke('HTML_EDITOR',1,'setContent',hArgs);

    Back to top

  4. How to enable copy/paste from/to the editor in Oracle Forms?

    The component is already signed with the Sferyx Trusted security certificate and copy an d paste in Oracle Forms works out of the box. We deliver both signed and non-signed  versions with the retail product.
     
     
  5. How to remove toolbar/menu items in Oracle Forms?
    Declare
    hArgs2 FBEAN.ARGLIST;
    --Here we remove the unwanted toolbar items using arglist
    hArgs2:=FBEAN.CREATE_ARGLIST;
    FBEAN.ADD_ARG(hArgs2,'newFileButton,openFileButton,saveFileButton');
    FBean.Invoke('HTML_EDITOR',1,'setRemovedToolbarItems',hArgs2);
    End;
     
     
     
  6. General tips for integration with Oracle Forms?
     
    Keep in mind that the mapping of String objects in Oracle Forms is to Varchar2- it does not allow transfers with beans greater than 4096 chars. That's why we have provided to our Oracle customers the following methods as a workaround in order to retrieve or set the content in smaller chunks. You may use this approach for handling of content with unlimited length and adapt the following java code for use in OracleForms as demonstrated with the examples for invoking methods above.

    Insert operations

       public void openContentBuffer()

       public void appendContentToContentBuffer(String content)

       public void closeBufferAndInsert()

    Retrieve operations

       public int getBodyContentLenght()  for bodyContent only

       public int getContentLenght() for entire content

       public String getBodyContentPortion(int offset, int length) for bodyContent only

       public String getContentPortion(int offset, int length) for entire content


    Sample code:

    Here we insert some content:
    --------------------------------------
         htmlEditor.openContentBuffer();
         htmlEditor.appendContentToContentBuffer("This is ");
         htmlEditor.appendContentToContentBuffer("some sample content");
         htmlEditor.appendContentToContentBuffer(" long engouh to be tested...");

    Close the buffer and insert it in the editor
    --------------------------------------
        htmlEditor.closeBufferAndInsert();


    Retrieve the content in small pieces
    ---------------------------------------
        int length=htmlEditor.getBodyContentLenght();
        int portionLength=5;
        int i=0;
        while(i+portionLength<length)
        {
            System.out.println(htmlEditor.getBodyContentPortion(i,portionLength<length-i?portionLength:length-i));
            i=i+portionLength;
        }

Licensing questions

  1. Can I redistribute the HTMLEditor Component Edition with my application?
    Yes, the redistribution of the component with your applications and services is royalty free after purchasing the license for development

    Back to top
  2. What types of licenses are available?
    There are available the following licenses:
    - Single Developer License - for one developer seat
    - Company License - company wide license for all developer within the same company
    - Source code license - the full source code of the product

    The current prices can be found here . You can purchase licenses directly from our on-line store

    Back to top
  3. Should my users register when using the editor?
    No, no one of your customers will be ever asked to register in order to use the editor.

    Back to top
  4. Do you have maintenance contracts?
    Yes, we do offer maintenance contracts. Please check the pricing page for major details.

    Back to top
  5. Do you have support contracts?
    Yes, we do offer priority support contracts. Please check the pricing page for major details.

    Back to top
  6. Can I purchase the Source code?
    Yes, we do offer Source code license - it includes the full source code of the product with the right to create and redistribute derivative products. Please check the pricing page for major details and contact sales@sferyx.com in case you are interested in purchasing the Source code license.

    Back to top

Customization services

  1. I need a special feature - can you provide it for me?

    We do execute customization features upon customer request. Please contact sales@sferyx.com and you will get a quote for requested features. In many cases the features our customers are looking for already exist, so do not hesitate to contact us if you have any doubts.

    Back to top

Customer support questions

  1. How long are the support response times?

    We do all the possible to respond to customer questions during the first 24 hours. However in some cases the response time may take longer due to the message queue on our side.

    Back to top
  2. I contacted the customer support via e-mail, but didn't receive any reply. What should I do?

    We always respond to e-mails. In case you do not receive answer within a reasonable amount of time please check the following:
    1) Verify that you do not have a mail filter which may block our messages.
    2) Do the possible to verify that we actually have received your message.

    In case that there are communication problems you can always send us a fax to ++390292140494 supplying additional contact information such as your phone and/or fax numbers. We will contact you asap.

    Back to top
  3. Do you have maintenance contracts?
    Yes, we do offer maintenance contracts. Please check the pricing page for major details.

    Back to top

  4. Do you have support contracts?
    Yes, we do offer priority support contracts. Please check the pricing page for major details.

    Back to top

 

Add-ons / Additional features

  1. Is there Equation (Math ML) editor component?
    Yes, we do have Equation Editor component - Sferyx Equation Editor - please contact support@sferyx.com  for major details.

  2. Is there CSS (Style Sheet) editor component?
    Yes, we do have CSS Editor component - - Sferyx CSS Editor - please contact support@sferyx.com  for major details.
  3. Is there PDF Export component?
    Yes, we do have PDF Export component  - Sferyx PDF Export Add-on for the Sferyx HTML Editor - please contact support@sferyx.com  for major details.
  4. How to enable the Equation Editor component inside the Sferyx HTML Editor?
    If you have purchased a bundle including the Sferyx EquationEditor or you have purchased a separate license for the EquationEditor, you can enable it inside the Sferyx HTMLEditor Component Edition by simply invoking the following method:

    htmlEditor.setEquationEditorIntegrationEnabled(true);
  5. How to enable the PDF Export component inside the Sferyx HTML Editor?
    If you have purchased a bundle including the Sferyx PDFExport component or you have purchased a separate license for the PDFExport, you can enable it inside the Sferyx HTMLEditor Component Edition by simply invoking the following method:

    htmlEditor.setPDFExportEnabled(true);