Html editor in swing

can anyone tell ,if it is possible to get the html page from the link(like www.sun.com) in the textbox in a GUI made from swing because not much information is their in the html editor thing of swing.

maybe this is useful
EdP= new JEditorPane();
EdP.setContentType( "text/html" );
EdP.setPage( "http://mindprod.com" );havent tested uit

Similar Messages

  • Java Swing HTML Editor

    Hi,
    I am doing a HTML Editor in java.I want to insert a <div> </div> for every new line entered.If I insert a div tag using
    new HTMLEditorKit().insertHTML(doc,offset,"<div> </div>",1,0,HTML.Tag.DIV);.
    It's inserting two new line characters..
    Help!

    Hi !
    I�m writing an HTML Online Editor! I didn�t tried div yet, but i insert functionality for background, color chooser, links, ......
    If you would like, I could put my Applet on my Server and you can take look at it.
    It�s for open source, so you could see me actual source too. I also would be very interested in seeing yours.
    Let me know, my email is [email protected]
    Thnx
    Ren�

  • Help to show a HTML file in Swing

    Hiiiiiiiiiii,
    During my development Me in a problem . Please help me out.
    As per my current context of the project I have to develop a HTML page with Help of CSS and all other things. After that I have to Show the HTML file through Swing. I know how to attach a file with help of URL but need some help to show a HTML file in Swing.
    *help to show a HTML file in Swing*

    As camickr said Javascript support is not available. If you want to support you have to write code for that. Up to an extent CSS support is provided.
    Sample code to display HTML pages in JTexPane (you can use JEditorPane as well):
    Construct the URL:
    URL url = YourClass.class.getResource("resources/Hello.html");
    // If YourClass is in package test.html, then your html page must be available in .....test/html/resources directory.
    // And your CSS files must be accessible from your HTML page. This you can test by simply opening the html
    // page in your favorite browser.And then call setPage() method of HelpDataPane. Note that, HelpDataPane supports hyperlink activation.
    import java.io.IOException;
    import java.net.URL;
    import javax.swing.JTextPane;
    import javax.swing.event.HyperlinkEvent;
    import javax.swing.event.HyperlinkListener;
    * A pane to display help pages. Help pages are accessed as URL and displayed
    * in this pane.
    * @author Mrityunjoy Saha
    * @version 1.0
    public class HelpDataPane extends JTextPane {
         * Creates a new instance of {@code HelpDataPane}.
        public HelpDataPane() {
            super();
            this.addHyperlinkListener(new HyperlinkListener() {
                public void hyperlinkUpdate(HyperlinkEvent e) {
                    if (e.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) {
                        setPage(e.getURL());
         * Sets the current URL being displayed.  The content type of the
         * pane is set, and if the editor kit for the pane is
         * non-{@code null}, then
         * a new default document is created and the URL is read into it.
         * @param page The URL to be displayed.
        @Override
        public void setPage(URL page) {
            try {
                super.setPage(page);
            } catch (IOException ex) {
                try {
                    URL blankURL = YourClass.class.getResource("resources/Blank.html");
                    super.setPage(blankURL);
                } catch (IOException ioe) {
                    ioe.printStackTrace();
    }Thanks,
    Mrityunjoy

  • Build a xml editor using swing

    I would like to know a simple way to build a xml editor using swing. The editor should present the xml in a tree structure, THe user should be able to modify the xml in the editor and save it.

    Try reading this from [The XML Tutorial|http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPDOM4.html#wp64247] for discovering how to display the XML tree first, this is the first point to build a XMLNotepad like solution.

  • HTML Editor

    Well, Howard Kistler has certainly already signed with an editor to sell its HTML Editor Applet. So instead of being parasites and begging for code, why not spit in our hands and code it by ourselves ?
    I've made some tries yesterday for a HTML editor application. So far, there is an appli where one can edit text, and set it bold or italic with a menu. One can also dump the HTML code to stdout.
    Here is the code, it's very simple, and after that I'll have some questions for you.
    import javax.swing.*;
    import javax.swing.text.*;
    import javax.swing.text.html.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    public class Bla extends JFrame {
        JEditorPane jep;
        Hashtable actions;
        private Action getActionByName(String name) {
            return (Action)(actions.get(name));
        public Bla() {
            jep = new JEditorPane();
            jep.setContentType ("text/html");
            // shouldn't insert HTML test not done with a JEditorPane
            // jep.setText ("This is a <b>test</b> !!");
            // store and display available actions for this Editor Kit
            actions = new Hashtable();
            Action[] actionsArray = jep.getEditorKit().getActions();
            for (int i = 0; i < actionsArray.length; i++) {
                Action a = actionsArray;
    actions.put(a.getValue(Action.NAME), a);
    System.out.println (a.getValue(Action.NAME) + " = " + a);
    System.out.println ("TEST : " + HTMLEditorKit.BOLD_ACTION); // --> "html-bold-action" !!
    // builds menu bar
    JMenuBar jmb = new JMenuBar();
    setJMenuBar (jmb);
    JMenu jm = new JMenu("commands");
    jmb.add (jm);
    jm.add (getActionByName ("font-bold"));
    jm.add (getActionByName ("font-italic"));
    JMenuItem out = new JMenuItem("output text");
    jm.add (out);
    out.addActionListener (new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    System.out.println ("CONTENT : " + jep.getText ());
    // insert editor to a scroller and add all that to our frame
    JScrollPane scroller = new JScrollPane();
         JViewport port = scroller.getViewport();
         port.add(jep);
    getContentPane().add (scroller, BorderLayout.CENTER);
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    pack();
    setSize (400, 400);
    show ();
    public static void main (String args[]) {
    new Bla();
    Questions :
    1) When we display HTMLEditorKit.BOLD_ACTION, the result is "html-action-bold" but this action does not exist in the action list that we got from the EditorPane ! Is it a bug or just something I didn't understand ?
    2) Is it a comprehensive list of all available actions on an EditorPane ?
    3) If you try to set the HTML text by yourself, the Editor won't like it unless it is perfectly structured (usage of <p>, by example). Strange behaviour and bugs will occur if you try it.
    4) When the HTML content is sent back, it is enclosed in <html><head></head><body>...</body></html>. What part of the architecure generates this code and how to get rid of it (not by String manipulations, of course).
    Thanks for your help. And see you soon for the next version !
    Matthieu

    I use TextWrangler and I think it rocks - it is completely free, very fast and just nice to use in general. The URL to download is:
    http://www.barebones.com/products/textwrangler/download.shtml
    Martin Bradford-Gago
    Apple Newbie Blog: http://aurora7795.blogspot.com
    MacBook, Intel Mac Mini, iMac G3   Mac OS X (10.4.8)   Using Parallels Desktop to connect to Windows XP

  • Embeded html editor

    Hello there:
    In my project I wanted to add rich text support for the editor thus I used DefaultStyledDocument. It works fine, as it supports Bold/Italic/underline, foreground/background, etc, and I can save the data as the binary files. However, I was impressed by the online html editor like this: http://www.interspire.com/devedit/
    I think Swing should be able to implement something like this. I don't really want my users able to access the html code, I just want my application to provide a WYSIWYG environment and the app is going to save the data as HTML files in the background.
    I noticed there is a class extending DefaultStyledDocument, HTMLDocument, I am not sure if this class can help me reach my goal.
    Any suggestions? Or link to some sample code?
    Thanks a lot,
    Sway

    Benjamin wrote:
    > Hi,
    > I found in page http://wiki.eclipse.org/index.php/ATF/JSDT, it says there
    > will be translator interface in wtp3.1 for embedded javascript editor to
    > other languages, does the translator interface ready in wtp 3.1?
    Hi Benjamin,
    I believe the translator interface being talked about is IJsTranslation.
    That may be a good place to start looking. It can be found in
    org.eclipse.wst.jsdt.web.core.
    The main JSDT specific extension point you'll probably use is:
    org.eclipse.wst.jsdt.web.core.javascriptPreProcessor - where you specify
    your translator.
    Take a look in org.eclipse.wst.jsdt.web.core and
    org.eclipse.wst.jsdt.web.ui to see how JSDT support gets added to the HTML
    and JSP editors.
    Thanks,
    Chris

  • HTML Editor Kit adding extra characters...urgent

    I am facing a strange problem in using HTML Editor Kit. I am using JTextPane to display the HTML data, which will support bold, italic and underline formatting.
    The problem is, when I
         1]Enter some text of length more than 71, with some spaces inside it ( Do not press enter key explicitly).
         2] And try to read that data from the editor kit.
    I find some new line characters inside the data as shown below in the example.
    Example :
    =========
    I entered "Testing the HTML Editor Kit functionality .. as well as Apply functionality too.. as these are giving some problems. what can be the reason. try to find out that..." in the Editor Pane and Editor Kit is generating the following HTML for it.
    <html>
    <head>
    </head>
    <body>
    <p name="Normal">
    Testing the HTML Editor Kit functionality .. as well as Apply
    functionality too.. as these are giving some problems. what can be the
    reason. try to find out that...
    </p>
    </body>
    </html>
    Although I haven't entered any new line between the paragraph tags, still you can find that the editor kit is adding some new line characters and 6 spaces from line to line. One consistency about this behavior is that it enters this stuff after 71 characters only with some special cases.
    How can we change this behavior. What all I need is I want the data in a simple string like
    "<html><head></head><body><p name="Normal">Testing the HTML Editor Kit functionality .. as well as Apply
    functionality too.. as these are giving some problems. what can be the reason. try to find out that...
    </p></body></html>"
    Any solution???
    Thanks
    Priyatam

    That's strange isn't it? Class HTMLWriter sets the line length for HTML output to 80 chars per line. Strangely JEditorPane seems not to ignore these newline chars although the actual newline is not performed within JEditorPane.
    See http://java.sun.com/j2se/1.3/docs/api/javax/swing/text/AbstractWriter.html#setLineLength(int)
    about how to set the line length.
    Hope that helps
    Cheers
    Ulrich

  • Suggest a HTML Editor component

    Hi ,
    We need a Swing based (ready to use) HTML Editor component to be integrated into our application.Does anyone of this kind component?I have been searching for Swing based HTML Editor component for the last days in vain.Plz suggest any components or atleast tips regarding this.
    Thank you
    Sunil G

    You never know..!! Reveler might visit his question or might have assigned alert to this post.
    I have already posted similar question in Swing Forum and still looking forward to get imput.
    You seems very agresive in your statements, I would like to understand the concern in detail. What is it that is bothering you. A dead post activated by me? Or you know it for sure that Reveler will never reply.
    Thanks,
    ~Advait

  • How to create a WYSIWIG HTML editor

    I need to create a WYSIWIG HTML editor and I'm thinking of using Swing.
    I realise many have done this before and that there are products already on the market ranging from Coffee Cup to Dreamweaver.
    However, this will be for a specific application where my users will need to drop some composite objects on to the web page -- these objects will generate chunks of HTML containing some of my own attributes with a special syntax. These objects might be as simple as a textbox with a label, or something more complex.
    So the idea is that the user selects the object they wish to create by clicking a particular icon in a palette. The cursor changes to a cross-hair as the mouse is moved across some sort of canvas pane. The user clicks where they want the top left-hand corner of the object to be (rubber banding not necessary). A dialogue pops up asking for some context-sensitive properties for the object. At this point, the system can work out the HTML object it needs to create, i.e. tags, attributes, etc.
    So far the canvas pane has acted as a simple drawing surface, perhaps with a set of grid lines to aid the user in positioning. But at this point, know that we know the HTML object required, I want it to be rendered on the pane as HTML.
    Is it possible for a pane to be both a canvas an an HTML renderer like this, so that I can achieve a true WYSIWYG effect ? Does anyone understand what I'm talking about ?! Are there any examples of how I would go about this ?
    Thanks

    Is it possible for a pane to be both a canvas an an HTML renderer like this, so that I can achieve a true WYSIWYG effect ? Does anyone understand what I'm Check out JEditorPane and JTextPane for HTML support. You have to do JEditorPane.setEditable(false) to make it render html. It also SUCKS as a web container - no support for style sheets, forms, javascript, etc.
    It is definitely possible to add components into or over the JEditorPane to show lines and other things. I'm just not sure what the point of this is.

  • Creating a PHP/HTML Editor

    I'm doing a school project on a PHP/HTML Editor.
    I'm looking for some help on finding a good tutorial on changing properties to a JEditorPane. I want to set up the indent size, colors for tags, comments, statements, etc...
    anyone help??

    Here, I stole this code from the advanced forum on Saturday and tried to develop it, though gave up when I couldn't get setTabs or load file to work and tooltips was too damn slow.
    I had an idea that I could use it to run javac and to execute Frames and Applets with it ... right now I'm reconfiguring the design and thinking about dropping the highlighter altogether, but thats my story. Still it may be useful /may give you ideas /may be just the base or platform you're looking for.import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.text.*;
    import java.io.*;
    class Highlighter extends DefaultStyledDocument{
         private DefaultStyledDocument doc;
         private Element rootElement;
         private boolean multiLineComment;
         private MutableAttributeSet normal;
         private MutableAttributeSet keyword;
         private MutableAttributeSet comment;
         private MutableAttributeSet quote;
         private MutableAttributeSet tabSpace;
         private Hashtable keywords;
    public Highlighter(){
           doc = this;
         rootElement = doc.getDefaultRootElement();
         putProperty(DefaultEditorKit.EndOfLineStringProperty, "\n" );
         normal = new SimpleAttributeSet();
         StyleConstants.setForeground(normal, Color.black);
         comment = new SimpleAttributeSet();
         StyleConstants.setForeground(comment, Color.green);
         StyleConstants.setItalic(comment, true);
         keyword = new SimpleAttributeSet();
         StyleConstants.setForeground(keyword, Color.blue);
         quote = new SimpleAttributeSet();
         StyleConstants.setForeground(quote, Color.red);
         Object dummyObject = new Object();
         keywords = new Hashtable();
         keywords.put( "abstract", dummyObject );
         keywords.put( "boolean", dummyObject );
         keywords.put( "break", dummyObject );
         keywords.put( "byte", dummyObject );
         keywords.put( "byvalue", dummyObject );
         keywords.put( "case", dummyObject );
         keywords.put( "cast", dummyObject );
         keywords.put( "catch", dummyObject );
         keywords.put( "char", dummyObject );
         keywords.put( "class", dummyObject );
         keywords.put( "continue", dummyObject );
         keywords.put( "default", dummyObject );
         keywords.put( "do", dummyObject );
         keywords.put( "double", dummyObject );
         keywords.put( "else", dummyObject );
         keywords.put( "extends", dummyObject );
         keywords.put( "false", dummyObject );
         keywords.put( "final", dummyObject );
         keywords.put( "finally", dummyObject );
         keywords.put( "float", dummyObject );
         keywords.put( "for", dummyObject );
         keywords.put( "if", dummyObject );
         keywords.put( "implements", dummyObject );
         keywords.put( "import", dummyObject );
         keywords.put( "instanceof", dummyObject );
         keywords.put( "int", dummyObject );
         keywords.put( "interface", dummyObject );
         keywords.put( "long", dummyObject );
         keywords.put( "new", dummyObject );
         keywords.put( "null", dummyObject );
         keywords.put( "package", dummyObject );
         keywords.put( "private", dummyObject );
         keywords.put( "protected", dummyObject );
         keywords.put( "public", dummyObject );
         keywords.put( "return", dummyObject );
         keywords.put( "short", dummyObject );
         keywords.put( "static", dummyObject );
         keywords.put( "super", dummyObject );
         keywords.put( "switch", dummyObject );
         keywords.put( "synchronized", dummyObject );
         keywords.put( "this", dummyObject );
         keywords.put( "throw", dummyObject );
         keywords.put( "throws", dummyObject );
         keywords.put( "transient", dummyObject );
         keywords.put( "true", dummyObject );
         keywords.put( "try", dummyObject );
         keywords.put( "void", dummyObject );
         keywords.put( "volatile", dummyObject );
         keywords.put( "while", dummyObject );
    * Override to apply syntax highlighting after the document has been updated
       public void insertString(int offset, String str, AttributeSet a)
                                            throws BadLocationException{
              if (str.equals("{"))
              str = addMatchingBrace(offset);
              super.insertString(offset, str, a);
              processChangedLines(offset, str.length());
    * Override to apply syntax highlighting after the document has been updated
       public void remove(int offset, int length) throws BadLocationException{
              super.remove(offset, length);
              processChangedLines(offset, 0);
    * Determine how many lines have been changed,
    * then apply highlighting to each line
       private void processChangedLines(int offset, int length)
                                    throws BadLocationException {
              String content = doc.getText(0, doc.getLength());
              // The lines affected by the latest document update
              int startLine = rootElement.getElementIndex( offset );
              int endLine = rootElement.getElementIndex( offset + length );
              // Make sure all comment lines prior to the start line are commented
              // and determine if the start line is still in a multi line comment
              setMultiLineComment( commentLinesBefore( content, startLine ) );
              // Do the actual highlighting
                   for (int i = startLine; i <= endLine; i++){
                        applyHighlighting(content, i);
          // Resolve highlighting to the next end multi line delimiter
              if (isMultiLineComment())commentLinesAfter(content, endLine);
              else highlightLinesAfter(content, endLine);
    * Highlight lines when a multi line comment is still 'open'
    * (ie. matching end delimiter has not yet been encountered)
         private boolean commentLinesBefore(String content, int line){
              int offset = rootElement.getElement( line ).getStartOffset();
              // Start of comment not found, nothing to do
              int startDelimiter = lastIndexOf( content, getStartDelimiter(), offset-2);
              if (startDelimiter < 0)return false;
              // Matching start/end of comment found, nothing to do
              int endDelimiter = indexOf( content, getEndDelimiter(), startDelimiter );
              if (endDelimiter < offset & endDelimiter != -1)return false;
              // End of comment not found, highlight the lines
              doc.setCharacterAttributes(startDelimiter, offset - startDelimiter + 1, comment, false);
              return true;
    * Highlight comment lines to matching end delimiter
         private void commentLinesAfter(String content, int line){
              int offset = rootElement.getElement( line ).getEndOffset();
              // End of comment not found, nothing to do
              int endDelimiter = indexOf( content, getEndDelimiter(), offset );
              if (endDelimiter < 0) return;
              // Matching start/end of comment found, comment the lines
              int startDelimiter = lastIndexOf( content, getStartDelimiter(), endDelimiter );
                   if (startDelimiter < 0 || startDelimiter <= offset){
                        doc.setCharacterAttributes(offset, endDelimiter - offset + 1, comment, false);
    * Highlight lines to start or end delimiter
         private void highlightLinesAfter(String content, int line)
                                                                throws BadLocationException{
              int offset = rootElement.getElement( line ).getEndOffset();
              // Start/End delimiter not found, nothing to do
              int startDelimiter = indexOf( content, getStartDelimiter(), offset );
              int endDelimiter = indexOf( content, getEndDelimiter(), offset );
              if (startDelimiter < 0)     startDelimiter = content.length();
              if (endDelimiter < 0)endDelimiter = content.length();
              int delimiter = Math.min(startDelimiter, endDelimiter);
              if (delimiter < offset)return;
              // Start/End delimiter found, reapply highlighting
              int endLine = rootElement.getElementIndex( delimiter );
                   for (int i = line + 1; i < endLine; i++){
                        Element branch = rootElement.getElement( i );
                        Element leaf = doc.getCharacterElement( branch.getStartOffset() );
                        AttributeSet as = leaf.getAttributes();
                        if ( as.isEqual(comment) )applyHighlighting(content, i);
    * Parse the line to determine the appropriate highlighting
         private void applyHighlighting(String content, int line)
                                                             throws BadLocationException{
              int startOffset = rootElement.getElement( line ).getStartOffset();
              int endOffset = rootElement.getElement( line ).getEndOffset() - 1;
              int lineLength = endOffset - startOffset;
              int contentLength = content.length();
                   if (endOffset >= contentLength)endOffset = contentLength - 1;
              // check for multi line comments
              // (always set the comment attribute for the entire line)
                 if (endingMultiLineComment(content, startOffset, endOffset)
                ||isMultiLineComment()||startingMultiLineComment(content, startOffset, endOffset)){
                         doc.setCharacterAttributes(startOffset, endOffset - startOffset + 1, comment, false);
                         return;
              // set normal attributes for the line
              doc.setCharacterAttributes(startOffset, lineLength, normal, true);
              // check for single line comment
              int index = content.indexOf(getSingleLineDelimiter(), startOffset);
                   if ( (index > -1) && (index < endOffset) ){
                        doc.setCharacterAttributes(index, endOffset - index + 1, comment, false);
                        endOffset = index - 1;
              // check for tokens
              checkForTokens(content, startOffset, endOffset);
    * Does this line contain the start delimiter
         private boolean startingMultiLineComment(String content, int startOffset, int endOffset)
                                                                                                              throws BadLocationException{
              int index = indexOf( content, getStartDelimiter(), startOffset );
                   if ( (index < 0) || (index > endOffset) )return false;
                   else{
                        setMultiLineComment( true );
                        return true;
    * Does this line contain the end delimiter
         private boolean endingMultiLineComment(String content, int startOffset, int endOffset)
                                                                                                             throws BadLocationException{
              int index = indexOf( content, getEndDelimiter(), startOffset );
                   if ( (index < 0) || (index > endOffset) )return false;
                   else{
                        setMultiLineComment( false );
                        return true;
    * We have found a start delimiter
    * and are still searching for the end delimiter
         private boolean isMultiLineComment(){
              return multiLineComment;
         private void setMultiLineComment(boolean value){
              multiLineComment = value;
    * Parse the line for tokens to highlight
         private void checkForTokens(String content, int startOffset, int endOffset){
              while (startOffset <= endOffset){
              // skip the delimiters to find the start of a new token
                   while (isDelimiter(content.substring(startOffset, startOffset+1))){
                        if (startOffset < endOffset)startOffset++;
                        else return;
              // Extract and process the entire token
              if (isQuoteDelimiter( content.substring(startOffset, startOffset + 1)))
                   startOffset = getQuoteToken(content, startOffset, endOffset);
              else startOffset = getOtherToken(content, startOffset, endOffset);
         private int getQuoteToken(String content, int startOffset, int endOffset){
              String quoteDelimiter = content.substring(startOffset, startOffset + 1);
              String escapeString = getEscapeString(quoteDelimiter);
              int index;
              int endOfQuote = startOffset;
              // skip over the escape quotes in this quote
              index = content.indexOf(escapeString, endOfQuote + 1);
                   while ( (index > -1) && (index < endOffset) ){
                        endOfQuote = index + 1;
                        index = content.indexOf(escapeString, endOfQuote);
              // now find the matching delimiter
              index = content.indexOf(quoteDelimiter, endOfQuote + 1);
                   if ( (index < 0) || (index > endOffset) )endOfQuote = endOffset;
                   else endOfQuote = index;
              doc.setCharacterAttributes(startOffset, endOfQuote-startOffset+1, quote, false);
         return endOfQuote + 1;
         private int getOtherToken(String content, int startOffset, int endOffset){
              int endOfToken = startOffset + 1;
              while (endOfToken <= endOffset ){
                   if (isDelimiter(content.substring(endOfToken, endOfToken+1)))break;
                   endOfToken++;
              String token = content.substring(startOffset, endOfToken);
                   if ( isKeyword( token ) )
                        doc.setCharacterAttributes(startOffset, endOfToken-startOffset, keyword, false);
              return endOfToken + 1;
    * Assume the needle will the found at the start/end of the line
         private int indexOf(String content, String needle, int offset){
              int index;
                   while ( (index = content.indexOf(needle, offset)) != -1 ){
                        String text = getLine( content, index ).trim();
                             if (text.startsWith(needle) || text.endsWith(needle))break;
                             else offset = index + 1;
              return index;
    * Assume the needle will the found at the start/end of the line
         private int lastIndexOf(String content, String needle, int offset){
              int index;
              while ( (index = content.lastIndexOf(needle, offset)) != -1 ){
                   String text = getLine( content, index ).trim();
                        if (text.startsWith(needle) || text.endsWith(needle))break;
                        else offset = index - 1;
              return index;
         private String getLine(String content, int offset){
              int line = rootElement.getElementIndex( offset );
              Element lineElement = rootElement.getElement( line );
              int start = lineElement.getStartOffset();
              int end = lineElement.getEndOffset();
              return content.substring(start, end - 1);
    * Override for other languages
         protected boolean isDelimiter(String character){
              String operands = ";:{}()[]+-/%<=>!&|^~*";
                   if (Character.isWhitespace( character.charAt(0) ) ||
                                            operands.indexOf(character)!= -1 ) return true;
                   else return false;
    * Override for other languages
         protected boolean isQuoteDelimiter(String character){
              String quoteDelimiters = "\"'";
                   if (quoteDelimiters.indexOf(character) < 0) return false;
                   else return true;
    * Override for other languages
         protected boolean isKeyword(String token){
              Object o = keywords.get( token );
              return o == null ? false : true;
    * Override for other languages
         protected String getStartDelimiter(){
              return "/*";
    * Override for other languages
         protected String getEndDelimiter(){
              return "*/";
    * Override for other languages
         protected String getSingleLineDelimiter(){
              return "//";
    * Override for other languages
         protected String getEscapeString(String quoteDelimiter){
              return "\\" + quoteDelimiter;
         protected String addMatchingBrace(int offset) throws BadLocationException{
              StringBuffer whiteSpace = new StringBuffer();
              int line = rootElement.getElementIndex( offset );
              int i = rootElement.getElement(line).getStartOffset();
                   while (true){
                        String temp = doc.getText(i, 1);
                             if (temp.equals(" ") || temp.equals("\t")){
                                  whiteSpace.append(temp);
                                i++;
                             else break;
              return "{\n" + whiteSpace.toString() + "\t\n" + whiteSpace.toString() + "}";
    public class MyJavac extends JFrame implements ActionListener{
       JPanel top, main;
         JEditorPane edit = new JEditorPane();
       Highlighter syntax = new Highlighter();
       JButton []buts = new JButton[7];
       String theText="";
    public MyJavac(){
       super("Java Based Text Editor");
       getContentPane().setLayout(new BorderLayout() );
       String []str = {"New","Open","Save","Save As","Compile","J/Frame","Applet"};
       String []tooltips = {"<html><center>Open a new <br>java file</center></html>",
                            "<html><center>Open an existing<br>java file</center></html>",
                            "<html><center>Save java<br>file</center></html>",
                            "<html><center>Save java file<br>with new filename</center></html>",
                            "<html><center>Run the javac<br>DOS compiler</center></html>",
                            "<html><center>Run java JFrame<br>or Frame application</center></html>",
                            "<html><center>Run java Applet<br>html application</center></html>"};
       top = new JPanel();
       top.setLayout(new GridLayout(1,7,5,0) );
       JPanel east = new JPanel();
       JPanel west = new JPanel();
          for(int i=0; i<buts.length; i++){
             buts[i] = new JButton(str);
    buts[i].setToolTipText(tooltips[i]);
    buts[i].addActionListener(this);
    top.add(buts[i]);
    main = new JPanel();
    main.setLayout(new GridLayout(1,1) );
         edit.setEditorKit(new StyledEditorKit());
         edit.setDocument(syntax);
         JScrollPane scroll=new JScrollPane(edit);
    main.add(scroll);
    getContentPane().add("North",top);
    getContentPane().add("Center",main);
    public void actionPerformed(ActionEvent e){
    String option = e.getActionCommand();
    if(option.equals("New")){}
    if(option.equals("Open")) {
    JFileChooser chooser = new JFileChooser();
    int returnVal = chooser.showOpenDialog(this);
    if(returnVal == JFileChooser.APPROVE_OPTION);
    try {
    getFromFile();
    catch(Exception f){
    String error1= "Error opening the file ";
    String error2 = "or the file was not found";
    JOptionPane.showMessageDialog(null, error1 +"\n" + error2);
    edit.setText(theText);
    public void getFromFile() throws Exception{
    int reader = 0;
    theText = "";
    FileReader in = new FileReader("junk.txt");
    do {
    reader = in.read();
    theText += (char)reader;
    } while (reader != -1);
    in.close();
    public static void main(String args[]){
    MyJavac jav = new MyJavac();
         Image onFrame = Toolkit.getDefaultToolkit().getImage("flag.gif") ;
    jav.setIconImage(onFrame);
         jav.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
         jav.setSize(600,400);
         jav.setVisible(true);

  • Creating a WYSIWYG HTML editor

    quick question:
    I'm creating an HTML editor using JTextPane for my GUI and an HTMLEditorKit in the back. I'm just running a simple test with the following html file:
    <html>
      <head>
      </head>
      <body>
        <p>
          let's make a web page
        </p>
        <p>
        </p>
        <p>
          <b>just to see if this works</b>
        </p>
      </body>
    </html>I'm calling
    HTMLEditorKit editorKit = new HTMLEditorKit();
    HTMLDocument doc = (HTMLDocument) editorKit.createDefaultDocument();
    editorKit.read(m_reader, this.getDoc(), 0);where m_reader is a FileReader linked to the above file.
    Then I'm using that as the content for my JTextPane by saying
    textPane = new JTextPane(doc);Then when I do a System.out.print(textPane.getText()), I get:
    <html>
      <head>
      </head>
      <body>
        <p>
        </p>
      </body>
    </html>any ideas?

    Originally posted by: aullah.thinkanalytics.com
    Jai Kejriwal wrote:
    > I am trying to create a WYSIWYG HTML editor. For text boxes, I thought it
    > would
    > be best to use the swt text widget that could be dragged and dropped.
    > However,
    > the text widget needs to have a Composite that it can be added on to. Does
    > this
    > mean that I will have to create my own visual representation of a text
    > widget by
    > extending the Figure class?
    > Also, if you all have any experience/ideas of how I should proceed with
    > creating a WYSIWYG
    > HTML editor, I welcome your input. Particularly, what layout should I use
    > for the base page,
    > and how should I handle code generation. I am a newbie so the help means a
    > lot.
    I'd create my own Draw2D figure to render text boxes and other html
    elements. SWT widgets can't (as far as I know) be embedded in the GEF
    GrapicalViewer's main (SWT) control. You're building blocks are Draw2D
    figures. A nice emulated lightweight solution (c.f swing).
    The other great advantage, is that a figure based TextField gives you the
    the ability to style the appearance of the textbox, ie border, colour, etc.
    You could create a base figure styling interface.
    The TextField or TextBox, could be based on a draw2d.text FlowFigure.
    You're also going to need to have some form of FlowLayout for the page,
    to emulate how elements flow on a HTML page in a browser.
    I guess the Logic Diagram labels are a good place to start looking.

  • Textarea with HTML editor is not working

    Hi all,
    This is producing me a real headache.
    I created the simplest application in the world with one Textarea with HTML editor, and the editor control does not show the usual tool bar for fonts, color, alignment, etc. Just a ordinary textarea.
    Moreover, this was working before... I moved to another location in my work (me, not the server). Yes, I thought about the Internet Explorer, but Firefox has the same issue.
    So any idea I can try to make this work?
    I have another applications already in production with the same issue.
    Need help!!!!!!!!!
    Thanks in advance.
    Lukas.
    Application Express 2.1.0.00.39
    Oracle Database 10g Express Edition Release 10.2.0.1.0
    Internet Explorer 7.0.5730.11
    Firefox 1.5.0.11
    Windows XP Service Pack 2
    1 G Ram
    Pentium D CPU 2.80GHz

    Lukas,
    I would go and integrate FCKEDITOR (http://www.fckeditor.net/ ) into your application.
    Here are instructions on how to achieve this (sorry but only in German):
    http://www.oracle.com/global/de/community/tipps/einbinden_fckeditor/index.html
    It basically means:
    1) copying the files from fckeditor under the /images directory
    (you can use the instructions here: http://daust.blogspot.com/2006/03/where-are-images-of-application.html)
    2) creating two shortcuts INCLUDE_EDITOR_SCRIPTS and EDITOR
    3) placing the shortcut INCLUDE_EDITOR_SCRIPTS into the page html header and
    4) placing the shortcut EDITOR into the post element text of your plain textarea element
    That's it.
    BTW, FCKEDITOR has been included in Apex 3.0 as a standard item type.
    Regards,
    ~Dietmar.

  • Creating a small HTML-Editor using JEditorPane

    Hello! I'm trying to create a small HTML-Editor. Via this editor users shall be capable to create formatted text (bold, italic, underlined, different sizes, different fonts, different colors). Furthermore, if the user pushes the enter-button a new line-break (<br>) shall be inserted. Basically my editor is working but with some big problems:
    1. When I create an instance of my editor, I initialize it with some html-code.
    this.m_EditorPane.setText("<html><head></head><body></body></html>"); Without this initialization between the <body> and </body> <p> and </p> will be inserted, what I don't want. But if I push now the enter-button at the beginning, <br>-tag will not be inserted in the <body>-area but in the <head>-area.
    2. Styling text is working really good, but when I insert a line-break (via enter-button), the <br>-tag is inserted after the (e.g.) closing bold-tag (</b>). So, in the next line, this style-property must be reselected.
    Can anybody help me to change this behavior?
    Kind regards, Stefan
    P.S. The way I insert the <br>-tag:
    JEditorPane editor = getEditor(ae);
    HTMLDocument doc = getHTMLDocument(editor);
    HTMLEditorKit kit = getHTMLEditorKit(editor);
    editor.replaceSelection("");
    int offset = editor.getCaretPosition();
    kit.insertHTML(doc, offset, "<br>", 0, 0, HTML.Tag.BR);
    editor.getCaret().setDot(editor.getCaretPosition());P.P.S. Sorry for my bad english :-/

    Hello! I'm trying to create a small HTML-Editor. Via this editor users shall be capable to create formatted text (bold, italic, underlined, different sizes, different fonts, different colors). Furthermore, if the user pushes the enter-button a new line-break (<br>) shall be inserted. Basically my editor is working but with some big problems:
    1. When I create an instance of my editor, I initialize it with some html-code.
    this.m_EditorPane.setText("<html><head></head><body></body></html>"); Without this initialization between the <body> and </body> <p> and </p> will be inserted, what I don't want. But if I push now the enter-button at the beginning, <br>-tag will not be inserted in the <body>-area but in the <head>-area.
    2. Styling text is working really good, but when I insert a line-break (via enter-button), the <br>-tag is inserted after the (e.g.) closing bold-tag (</b>). So, in the next line, this style-property must be reselected.
    Can anybody help me to change this behavior?
    Kind regards, Stefan
    P.S. The way I insert the <br>-tag:
    JEditorPane editor = getEditor(ae);
    HTMLDocument doc = getHTMLDocument(editor);
    HTMLEditorKit kit = getHTMLEditorKit(editor);
    editor.replaceSelection("");
    int offset = editor.getCaretPosition();
    kit.insertHTML(doc, offset, "<br>", 0, 0, HTML.Tag.BR);
    editor.getCaret().setDot(editor.getCaretPosition());P.P.S. Sorry for my bad english :-/

  • Who can help me with replacing the standard HTML editor in WPC?

    Hi all,
    We have chosen to replace the standard HTML Editor in the Web Page Composer by the TinyMCE Editor. I have worked my way through the document written by Boris Magocsi (https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f04b5c5d-3fd2-2a10-8ab0-8fa90e3ac162) and the TinyMCE Editor is diplayed when we add or edit a paragraph.
    However, we can not type any text in the input field anymore and we can not click any of the buttons in the TinyMCE editor. Can anybody help a total Javascript newby with fixing this? Full points will be awarded obviuosly. Thanks in advance!
    Best regards,
    Jan
    Note: We are on NW 7.0 SP 15 and the WPC component is not patched yet. We are trying to complete that today and patch it to patch level 1.

    Snippet from the default trace:
    #1.#005056A13EB000880001D90400005EBC000452C3D2595400#1216900908012#com.sap.engine.services.connector.resource.impl.MCEventHandl
    er#sap.com/irj#com.sap.engine.services.connector.resource.impl.MCEventHandler#JALAROS#631##192.168.17.45_POD_3367950#JALAROS#ef
    efb1f0597211ddc652005056a13eb0#SAPEngine_Application_Thread[impl:3]_25##0#0#Debug##Java###>>> com.sap.engine.services.connector
    .resource.impl.MCEventHandler15c015c --> 5(locTrSupp:false).cleanup({0}), shared: {1},  destroyed {2}, invoked from: {3}#4#tru
    e#false#false#java.lang.Exception
            at java.lang.Throwable.<init>(Throwable.java:58)
            at com.sap.engine.services.connector.Log.getStackTrace(Log.java:61)
            at com.sap.engine.services.connector.resource.impl.MCEventHandler.cleanup(MCEventHandler.java:267)
            at com.sap.engine.services.connector.resource.impl.MCEventHandler.connectionClosed(MCEventHandler.java:524)
            at com.sap.engine.services.dbpool.spi.LocalTXManagedConnectionImpl.removeConnectionHandle(LocalTXManagedConnectionImpl.
    java:322)
            at com.sap.engine.services.dbpool.cci.ConnectionHandle.close(ConnectionHandle.java:278)
            at com.sap.netweaver.config.store.CommonJDBCConfigPersistence.getProperty(CommonJDBCConfigPersistence.java:1120)
            at com.sap.netweaver.config.store.ConfigNode.getProperty(ConfigNode.java:61)
            at com.sap.netweaver.portal.prt.config.cmsource.CMStoreSource.getInternalTimestamp(CMStoreSource.java:1111)
            at com.sap.netweaver.portal.prt.config.cmsource.CMStoreSource.shouldRefresh(CMStoreSource.java:997)
            at com.sap.netweaver.portal.prt.config.cmsource.CMStoreSource.refreshObjects(CMStoreSource.java:1187)
            at com.sap.netweaver.portal.prt.config.cmsource.CMStoreSource.getTimeStamp(CMStoreSource.java:1331)
            at com.sapportals.config.fwk.meta.ConfigurableSourceSynchronizer.synchronizeListeners(ConfigurableSourceSynchronizer.ja
    va:124)
            at com.sapportals.config.fwk.data.ConfigPlugin.synchronizeConfigurablesCache(ConfigPlugin.java:1216)
            at com.sapportals.config.fwk.data.ConfigPlugin.getConfigurables(ConfigPlugin.java:362)
            at com.sap.nw.wpc.km.service.editor.EditorService.getStringConfig(EditorService.java:1119)
            at com.sap.nw.wpc.km.service.editor.EditorService.getImageLayoutSet(EditorService.java:1096)
            at com.sap.nw.wpc.km.service.editor.component.ImageSelectComponent.getCompoundComponent(ImageSelectComponent.java:213)
            at com.sap.nw.wpc.km.service.editor.component.ImageSelectComponent.initializeFromPageContext(ImageSelectComponent.java:
    135)
            at com.sap.nw.wpc.km.service.editor.component.EditorComponentFactory.getComponent(EditorComponentFactory.java:69)
            at com.sap.nw.wpc.km.service.editor.document.AbstractEditorObject.getComponent(AbstractEditorObject.java:162)
            at pagelet.editor._sapportalsjsp_editor.subDoContent(_sapportalsjsp_editor.java:1045)
            at pagelet.editor._sapportalsjsp_editor.doContent(_sapportalsjsp_editor.java:58)
            at pagelet.editor._sapportalsjsp_editor.service(_sapportalsjsp_editor.java:38)
            at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:360)
            at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)
            at com.sapportals.portal.prt.component.AbstractComponentResponse.include(AbstractComponentResponse.java:89)
            at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:232)
            at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
            at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:129)
            at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
            at com.sap.nw.wpc.editor.EditorTool.doContent(EditorTool.java:54)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
            at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
            at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
            at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
            at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
            at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:524)
            at java.security.AccessController.doPrivileged(AccessController.java:231)
            at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:407)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
            at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
            at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
            at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
            at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
            at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
            at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
            at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
            at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionM
    essageListener.java:33)
            at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
            at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
            at java.security.AccessController.doPrivileged(AccessController.java:207)
            at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
            at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
    #1.#005056A13EB000880001D90500005EBC000452C3D25AFC5C#1216900908121#com.sap.engine.services.connector.resource.impl.HandleWrappe
    r#sap.com/irj#com.sap.engine.services.connector.resource.impl.HandleWrapper#JALAROS#631##192.168.17.45_POD_3367950#JALAROS#efef
    b1f0597211ddc652005056a13eb0#SAPEngine_Application_Thread[impl:3]_25##0#0#Debug##Plain###>>> com.sap.engine.services.connector.
    jca.ConnectionManagerImpl3fa63fa6.allocateConnection(mcf: com.sap.engine.services.dbpool.spi.ManagedConnectionFactoryImpla986
    92e1, reqInfo: null)#

  • Run script in HTML editor in WebView WP8.1

    I am developing an app in which I need to give HTML editing facility to the user. So I tried different HTML editors but finally TinyMCE was able to show controls for editing. But I am not able to set the contents of Editor. It gives Exception Exception
    from HRESULT: 0x80020101. And I tried all different solutions but could not figure it out. Here is link to my project
        string tinyMice = "<script type='text/javascript'> function myfun() {tinymce.execCommand('mceInsertContent', false, getQueryStrings());}myfun()</script>";
                        await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(1));
                        await webview_demo.InvokeScriptAsync("eval", new string[] { tinyMice });
    Can somebody help?

    hey,
    I am not sure what you exactly want to do but I took a look at the project you uploaded.
    First of all, you better use the NavigationCompleted or
    FrameNavigationCompleted event for executing onload functions.
    I have no idea about the tinymce js plugin but here is what I did to create a similar scenario.
    1) First, create a js function in the removeformat.html to return a string (replacing your getQueryStrings functions)
    function returnMessageValue() {
    return "Hello JS World";
    2) then create a script notify event handler and wire it up to the page so we can get alerts from the html page loaded.
    In NavigationCompleted event:
    string result = await this.webview_demo.InvokeScriptAsync("eval", new string[] { "window.alert = function (AlertMessage) {window.external.notify(AlertMessage)}" });
    this will notify the webview about window.alert's. So we subscribe to the Script notify event:
    webview_demo.ScriptNotify += (sender, args) =>
    MessageDialog m = new MessageDialog(args.Value);
    m.ShowAsync();
    and finally the code execution for our function:
    await webview_demo.InvokeScriptAsync("eval", new[] { "window.alert(returnMessageValue())" });
    // await webview_demo.InvokeScriptAsync("eval",
    // new[] { "tinymce.execCommand(\"mceInsertContent\", false, getQueryStrings())" });
    result:
    hope it helps
    Can Bilgin
    Blog
    Samples CompuSight

Maybe you are looking for

  • COMPUTERS AND ITUNES WILL NOT RECOGNIZ MY IPOD NANO

    MY NANO IPOD IS NOT RECOGNIZED BY MY COMPUTERS OR ITUNES.   WHEN I TRY TO SYNC IT IS IN GREY AND WILL NOT LET ME SYNC

  • PB G4 detects VGA projector but not 20" ACD

    I'm having a strange problem when connecting my 15" PowerBook G4 Ti DVI to a new 20" ACD. When I first got the display, I was able to connect just fine for about 8 weeks. I went on a trip and since my return, the PB won't detect the display. I took t

  • To load a object created with 3D Studio Max

    Hello, I am a new Java user. I have to realize an interactive presentation in Java of a three-dimensional object created with 3D Studio Max. I would like to know how I can load this object in my java project. I should, in fact, allow the customer to

  • Advance pricing Query

    No.     Price Range      ListPrice     No$al Price     Nett Price     Special Deal     Special Deal 2      Qty/Value Range     -     0 - 10pcs     11 - 99pcs     100 - 149pcs 150pcs & above No.1     ABC Part number     10.00      $10 - 10%     $10 -

  • How to connect to MS SQL server using JSP?

    Hi, i am new to JSP so i would like to know what is the code to create a connection to MS SQL server. I am using jakarta-tomcat 4 as my server. sorry for any inconvenient.... pls help me....