Hi All
I need to create custom tag like <media> that JEditorPane should understand. The requirement is that i have a button on click of which <media></media> tag should be generated in backgound and some UI should be displayed in JEditorPane for eg: A Button. I am totally confused with all this. I have writtern the following code on click of button
here htmlkit is custom EditorKit that i have created. The code is attached belowCode:String text="<media name=media>test</media>"; htmlkit.insertHTML(htmldoc, jEditorPane.getCaretPosition(), "temp", 0,0,XeHTML.XeHTMLTag.MEDIA);
my custom made XeHTML file has this codeCode:public class MyEditorKit extends HTMLEditorKit { public ViewFactory getViewFactory() { return new XeHTMLFactory(); } public Document createDefaultDocument() { StyleSheet styles = getStyleSheet(); StyleSheet ss = new StyleSheet(); ss.addStyleSheet(styles); XeDocument doc = new XeDocument(ss); doc.setParser(getParser()); doc.setAsynchronousLoadPriority(4); doc.setTokenThreshold(100); return doc; } public static class XeHTMLFactory extends HTMLEditorKit.HTMLFactory implements ViewFactory{ /*public XeHTMLFactory(){ super(); }*/ public View create(Element ele){ ele.getAttributes().getAttribute(StyleConstants.NameAttribute); if (attr instanceof XeHTML.XeHTMLTag | attr instanceof HTML.Tag){ //Start processing for the custom tag if(ele.getName().equals("media")){ return new ComponentView(ele){ protected Component createComponent(){ String text ="### how to get the text between the button tags???? ###"; JButton button = new JButton("Button : " + text); button.setBackground(Color.RED); return button; } }; }else { System.out.println("Inside else"); return super.create(ele); } }else{ return null; } } }//end inner static class }
Please help since i am totally confused as to how to proceed ahead. I think i am making some mistake in registering the tag. I have attached my entire source code belowCode:public class XeHTML extends HTML { public static class XeHTMLTag extends Tag{ protected XeHTMLTag(String id){ super(id); } protected XeHTMLTag(String id,boolean causesbreak,boolean isblock){ super(id,causesbreak,isblock); } public static final Tag MEDIA=new UnknownTag("media"); } }


Reply With Quote


Bookmarks