Applet based Text Editor

Hi Genies
How can i create a Text Editor without using TextArea? I would like to use only AWT not Swing or Java 2. Any Idea ?
Shan

The AWT tools are woefully inadequete for creating a text editor. The AWT textarea does not support fonts, colors, custom line wrapping, line numbers, or anything else that would make a good text editor.
You could do it as an applet, but you would have to create your own text display by subclassing Canvas and writing text to specific locations. You would also have to write your own scrollbar, toolbar, button class that supports icons, etc.
It is usually just easier to make sure that people have swing installed. If you use a later version of Java, you can also do Java WebStart which will allow you to open and save files on the hard drive if the user chooses them. You can't do that easily with applets (requires signing your applet for $200 per year).
If you end up writing a text editor, I would suggest putting my syntax highlighting libraries into it:
http://ostermiller.org/syntax/
Stephen

Similar Messages

  • Basics for a Java based text editor.

    I want to try and write a simple java text editor I can upgrade as I learn more about java. Can anyone point me in the right direction or tell me the basic layout of a text editor?

    I want to try and write a simple java text editor I
    can upgrade as I learn more about java. Can anyone
    point me in the right direction or tell me the basic
    layout of a text editor?A text editor consists of three parts. User command interaction, text screen presentation and text data handling. Start with a small Java application with a GUI and check out the different Swing components and how they work. Internally the text can be held in a double-linked list where each blocks have space for 1000 characters or so. You'll also need some file handling to store the text externally.

  • Dynamic Text Editor

    I am making a dynamic text editor.
    Some of the fonts do not embed well? I have imported the
    fonts, put a linkage name, assigned data to the label.
    Some of the fonts change, but not on the server?
    I am using the setTextFormat?
    Does anyone have any ideas? It would be greatly appreciated,
    Emma

    Hello I am wondering if you can help me. I am sorry I have no
    answer for your problem.
    I am looking to also create a custom text editor in flash but
    I have no idea on how to do that. Would you happen to have a
    tutorial or can direct me to one on the web that I can learn how to
    create such a thing?
    I am looking for tutorials on this subject for both AS2 AND
    AS3 based text editor creation.
    Thank you.

  • Java Text Editor

    I have created an applet editor that will enable a user to break a text file down into a series of smaller html files. This does serve a purpose that is not really important at the moment and I don't want to bore you all.
    The problem I am having is that upon clicking the open button and the 2 save buttons, the applet opens file chooser where you can select a file. The problem is that once the file is open, the applet, for some reason starts the openfile() method again. The same happens when using the the 2 saveFile() methods. Can anyone help?
    package tagger;
    import java.awt.*;
    import java.applet.*;
    import javax.swing.JComboBox;
    import javax.swing.JPanel;
    import javax.swing.JButton;
    import javax.swing.text.Document;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.JScrollPane;
    import javax.swing.SwingConstants;
    import javax.swing.JLabel;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.net.*;
    import java.net.URL;
    import java.io.IOException;
    import java.io.DataInputStream;
    import javax.swing.filechooser.FileFilter;
    * <p>Title: Cheshire Parish Register Database Note Tagging System</p>
    * <p>Description: An online Text Editor and Note Creation Tool for use with
    * CPRDB</p>
    * <p>Copyright: </p>
    * <p>Company: The University Of Liverpool</p>
    * @author Mike Melling
    * @version 1.0
    public class NoteTagger extends Applet {
        public String fileName = null;
        boolean isStandalone = false;
        BorderLayout borderLayout1 = new BorderLayout();
        JPanel jPanel1 = new JPanel();
        BorderLayout borderLayout2 = new BorderLayout();
        JPanel jPanel2 = new JPanel();
        JPanel jPanel3 = new JPanel();
        JPanel jPanel4 = new JPanel();
        JPanel jPanel5 = new JPanel();
        JPanel jPanel6 = new JPanel();
        BorderLayout borderLayout3 = new BorderLayout();
        BorderLayout borderLayout4 = new BorderLayout();
        BorderLayout borderLayout6 = new BorderLayout();
        BorderLayout borderLayout7 = new BorderLayout();
        JScrollPane jScrollPane1 = new JScrollPane();
        JTextArea jTextArea1 = new JTextArea();
        JScrollPane jScrollPane2 = new JScrollPane();
        JTextArea jTextArea4 = new JTextArea();
        BorderLayout borderLayout8 = new BorderLayout();
        JPanel jPanel7 = new JPanel();
        JPanel jPanel8 = new JPanel();
        JPanel jPanel9 = new JPanel();
        JPanel jPanel10 = new JPanel();
        JPanel jPanel11 = new JPanel();
        JPanel jPanel13 = new JPanel();
        JPanel jPanel14 = new JPanel();
        BorderLayout borderLayout9 = new BorderLayout();
        JPanel jPanel15 = new JPanel();
        JPanel jPanel16 = new JPanel();
        JPanel jPanel17 = new JPanel();
        JPanel jPanel18 = new JPanel();
        JPanel jPanel19 = new JPanel();
        BorderLayout borderLayout10 = new BorderLayout();
        JButton jButton2 = new JButton();
        JButton jButton1 = new JButton();
        JPanel jPanel22 = new JPanel();
        BorderLayout borderLayout12 = new BorderLayout();
        JScrollPane jScrollPane5 = new JScrollPane();
        JTextArea jTextArea3 = new JTextArea();
        JLabel jLabel1 = new JLabel();
        BorderLayout borderLayout13 = new BorderLayout();
        BorderLayout borderLayout14 = new BorderLayout();
        FlowLayout flowLayout1 = new FlowLayout();
        BorderLayout borderLayout15 = new BorderLayout();
        JPanel jPanel27 = new JPanel();
        Document document1 = jTextArea1.getDocument();
        Document document2 = jTextArea3.getDocument();
        JFileChooser jFileChooser1 = new JFileChooser();
        String currFileName = null; // Full path and filename. null means new/untitled.
        JPanel jPanel20 = new JPanel();
        java.awt.BorderLayout borderLayout16 = new BorderLayout();
        JPanel jPanel24 = new JPanel();
        JTextField jTextField1 = new JTextField();
        JPanel jPanel25 = new JPanel();
        java.awt.BorderLayout borderLayout18 = new BorderLayout();
        JTextField jTextField2 = new JTextField();
        JPanel jPanel26 = new JPanel();
        JPanel jPanel12 = new JPanel();
        JPanel jPanel21 = new JPanel();
        JPanel jPanel23 = new JPanel();
        JPanel jPanel28 = new JPanel();
        java.awt.BorderLayout borderLayout5 = new BorderLayout();
        JButton jButton6 = new JButton();
        JButton jButton7 = new JButton();
        JFileChooser jFileChooser2 = new JFileChooser();
        String currFileName2 = null; //Full path and filename. null means new/untitled
        JButton jButton3 = new JButton();
        public String getParameter(String key, String def) {
            return isStandalone ? System.getProperty(key, def) :
                    (getParameter(key) != null ? getParameter(key) : def);
        //Construct the applet
        public NoteTagger() {
            try {
                jbInit();
            } catch (Exception ex) {
                ex.printStackTrace();
        //Initialize the applet
        public void init() {
            try {
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
        //Component initialization
        private void jbInit() throws Exception {
            jPanel1.setLayout(borderLayout2);
            jPanel5.setLayout(borderLayout3);
            jPanel2.setLayout(borderLayout13);
            jPanel6.setLayout(borderLayout14);
            jPanel3.setLayout(borderLayout6);
            jPanel4.setLayout(borderLayout7);
            jTextArea1.setLineWrap(true);
            jPanel3.setPreferredSize(new Dimension(700, 100));
            jPanel4.setBackground(Color.lightGray);
            jPanel4.setPreferredSize(new Dimension(700, 50));
            jTextArea4.setPreferredSize(new Dimension(700, 100));
            jTextArea4.setEditable(false);
            jTextArea4.setText("");
            jScrollPane2.setVerticalScrollBarPolicy(JScrollPane.
                                                    VERTICAL_SCROLLBAR_ALWAYS);
            jScrollPane2.setPreferredSize(new Dimension(700, 100));
            this.setLayout(borderLayout8);
            jPanel2.setBackground(Color.lightGray);
            jPanel2.setPreferredSize(new Dimension(700, 850));
            jPanel7.setBackground(Color.lightGray);
            jPanel8.setBackground(Color.lightGray);
            jPanel9.setBackground(Color.lightGray);
            jPanel10.setBackground(Color.lightGray);
            jPanel11.setBackground(Color.lightGray);
            jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
                                                    VERTICAL_SCROLLBAR_ALWAYS);
            jScrollPane1.setMinimumSize(new Dimension(300, 470));
            jScrollPane1.setPreferredSize(new Dimension(470, 470));
            jPanel13.setBackground(Color.lightGray);
            jPanel14.setBackground(Color.lightGray);
            jPanel14.setLayout(borderLayout9);
            jPanel15.setBackground(Color.lightGray);
            jPanel15.setLayout(borderLayout10);
            jPanel16.setBackground(Color.lightGray);
            jPanel16.setPreferredSize(new Dimension(10, 7));
            jPanel19.setBackground(Color.lightGray);
            jPanel18.setBackground(Color.lightGray);
            jPanel18.setPreferredSize(new Dimension(280, 33));
            jPanel18.setLayout(flowLayout1);
            jPanel17.setBackground(Color.lightGray);
            jButton2.setBackground(Color.lightGray);
            jButton2.setPreferredSize(new Dimension(83, 23));
            jButton2.setHorizontalAlignment(SwingConstants.CENTER);
            jButton2.setHorizontalTextPosition(SwingConstants.CENTER);
            jButton2.setText("Open");
            jButton2.addActionListener(new NoteTagger_jButton2_actionAdapter(this));
            jPanel5.setPreferredSize(new Dimension(500, 560));
            jPanel6.setBackground(Color.lightGray);
            jPanel6.setMinimumSize(new Dimension(217, 550));
            jPanel6.setPreferredSize(new Dimension(500, 560));
            jPanel22.setBackground(Color.lightGray);
            jPanel22.setLayout(borderLayout15);
            jScrollPane5.setHorizontalScrollBarPolicy(JScrollPane.
                                                      HORIZONTAL_SCROLLBAR_AS_NEEDED);
            jScrollPane5.setVerticalScrollBarPolicy(JScrollPane.
                                                    VERTICAL_SCROLLBAR_ALWAYS);
            jScrollPane5.setMaximumSize(new Dimension(32767, 245));
            jScrollPane5.setMinimumSize(new Dimension(300, 470));
            jScrollPane5.setPreferredSize(new Dimension(300, 470));
            jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 20));
            jLabel1.setToolTipText("");
            jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
            jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
            jLabel1.setText("Cheshire Parish Register Database Note Tagging System");
            jPanel27.setBackground(Color.lightGray);
            jTextArea3.setMaximumSize(new Dimension(2147483647, 2147483647));
            jTextArea1.setDocument(document1);
            jTextArea3.setMaximumSize(new Dimension(2147483647, 2147483647));
            jTextArea3.setDocument(document2);
            jButton1.setBackground(Color.lightGray);
            jButton1.setPreferredSize(new Dimension(83, 23));
            jButton1.setHorizontalAlignment(SwingConstants.CENTER);
            jButton1.setHorizontalTextPosition(SwingConstants.CENTER);
            jButton1.setText("Save");
            jButton1.addActionListener(new NoteTagger_jButton1_actionAdapter(this));
            jButton1.setEnabled(false);
            this.setBackground(Color.lightGray);
            jPanel1.setBorder(BorderFactory.createRaisedBevelBorder());
            jPanel1.setPreferredSize(new Dimension(1000, 750));
            jPanel20.setLayout(borderLayout16);
            jTextField1.setPreferredSize(new Dimension(62, 25));
            jTextField1.setText("");
            jPanel24.setBackground(Color.lightGray);
            jPanel24.setMaximumSize(new Dimension(10, 10));
            jPanel25.setLayout(borderLayout18);
            jTextField2.setMaximumSize(new Dimension(62, 25));
            jTextField2.setPreferredSize(new Dimension(62, 25));
            jTextField2.setText("");
            jPanel26.setBackground(Color.lightGray);
            jPanel26.setMaximumSize(new Dimension(10, 10));
            jPanel25.setPreferredSize(new Dimension(470, 505));
            jPanel12.setPreferredSize(new Dimension(300, 40));
            jPanel12.setLayout(borderLayout5);
            jPanel28.setBackground(Color.lightGray);
            jPanel21.setBackground(Color.lightGray);
            jPanel23.setBackground(Color.lightGray);
            jButton6.setBackground(Color.lightGray);
            jButton6.setPreferredSize(new Dimension(83, 23));
            jButton6.setText("Save");
            jButton6.setEnabled(false);
            jButton6.addActionListener(new NoteTagger_jButton6_actionAdapter(this));
            jButton7.setBackground(Color.lightGray);
            jButton7.setPreferredSize(new Dimension(83, 23));
            jButton7.setText("Query");
            jButton7.addActionListener(new NoteTagger_jButton7_actionAdapter(this));
            jFileChooser1.addChoosableFileFilter( new FileFilter1() );
            jFileChooser1.setAcceptAllFileFilterUsed( false );
            jFileChooser1.setMultiSelectionEnabled( false );
            jFileChooser1.setSelectedFile( null );
            jFileChooser2.addChoosableFileFilter( new FileFilter2() );
            jFileChooser2.setAcceptAllFileFilterUsed( false );
            jFileChooser2.setMultiSelectionEnabled( false );
            jFileChooser2.setSelectedFile( null );
            jButton3.setMaximumSize(new Dimension(83, 23));
            jButton3.setMinimumSize(new Dimension(83, 23));
            jButton3.setPreferredSize(new Dimension(83, 23));
            jButton3.setText("New");
            jButton3.addActionListener(new NoteTagger_jButton3_actionAdapter(this));
            jPanel1.add(jPanel2, java.awt.BorderLayout.CENTER);
            jPanel1.add(jPanel3, java.awt.BorderLayout.SOUTH);
            jScrollPane2.getViewport().add(jTextArea4);
            this.add(jPanel1, java.awt.BorderLayout.CENTER);
            jPanel3.add(jScrollPane2, java.awt.BorderLayout.CENTER);
            jPanel3.add(jPanel8, java.awt.BorderLayout.SOUTH);
            jPanel3.add(jPanel9, java.awt.BorderLayout.WEST);
            jPanel3.add(jPanel10, java.awt.BorderLayout.EAST);
            jPanel3.add(jPanel11, java.awt.BorderLayout.NORTH);
            jPanel5.add(jPanel7, java.awt.BorderLayout.WEST);
            jPanel5.add(jPanel13, java.awt.BorderLayout.EAST);
            jPanel5.add(jPanel20, java.awt.BorderLayout.CENTER);
            jPanel14.add(jPanel16, java.awt.BorderLayout.SOUTH);
            jPanel14.add(jPanel15, java.awt.BorderLayout.NORTH);
            jPanel15.add(jPanel19, java.awt.BorderLayout.WEST);
            jPanel15.add(jPanel17, java.awt.BorderLayout.EAST);
            jPanel15.add(jPanel18, java.awt.BorderLayout.CENTER);
            jPanel4.add(jLabel1, java.awt.BorderLayout.CENTER);
            jPanel18.add(jButton2);
            jPanel18.add(jButton1);
            jPanel20.add(jTextField1, java.awt.BorderLayout.NORTH);
            jPanel5.add(jPanel14, java.awt.BorderLayout.NORTH);
            jScrollPane1.getViewport().add(jTextArea1);
            jPanel25.add(jScrollPane5, java.awt.BorderLayout.SOUTH);
            jPanel25.add(jTextField2, java.awt.BorderLayout.NORTH);
            jPanel25.add(jPanel26, java.awt.BorderLayout.CENTER);
            jPanel6.add(jPanel12, java.awt.BorderLayout.NORTH);
            jScrollPane5.getViewport().add(jTextArea3);
            jPanel6.add(jPanel27, java.awt.BorderLayout.EAST);
            jPanel1.add(jPanel4, java.awt.BorderLayout.NORTH);
            jPanel1.add(jPanel5, java.awt.BorderLayout.WEST);
            jPanel1.add(jPanel6, java.awt.BorderLayout.EAST);
            jPanel6.add(jPanel22, java.awt.BorderLayout.WEST);
            jPanel6.add(jPanel25, java.awt.BorderLayout.CENTER);
            jPanel12.add(jPanel28, java.awt.BorderLayout.WEST);
            jPanel21.add(jButton7);
            jPanel21.add(jButton6);
            jPanel21.add(jButton3);
            jPanel12.add(jPanel23, java.awt.BorderLayout.EAST);
            jPanel12.add(jPanel21, null);
            jPanel20.add(jPanel24, java.awt.BorderLayout.CENTER);
            jPanel20.add(jScrollPane1, java.awt.BorderLayout.SOUTH);
        //Start the applet
        public void start() {
        //Stop the applet
        public void stop() {
        //Destroy the applet
        public void destroy() {
        //Get Applet information
        public String getAppletInfo() {
            return "Applet Information";
        //Get parameter info
        public String[][] getParameterInfo() {
            return null;
        // Open named file; read text from file into jTextArea1; report to statusBar.
         void openFile(String fileName) {
             try {
                 // Open a file of the given name.
                 File file = new File(fileName);
                 // Get the size of the opened file.
                 int size = (int) file.length();
                 // Set to zero a counter for counting the number of
                 // characters that have been read from the file.
                 int chars_read = 0;
                 // Create an input reader based on the file, so we can read its data.
                 // FileReader handles international character encoding conversions.
                 FileReader in = new FileReader(file);
                 // Create a character array of the size of the file,
                 // to use as a data buffer, into which we will read
                 // the text data.
                 char[] data = new char[size];
                 // Read all available characters into the buffer.
                 while (in.ready()) {
                     // Increment the count for each character read,
                     // and accumulate them in the data buffer.
                     chars_read += in.read(data, chars_read, size - chars_read);
                 in.close();
                 // Create a temporary string containing the data,
                 // and set the string into the JTextArea.
                 jTextArea1.setText(new String(data, 0, chars_read));
                 // Cache the currently opened filename for use at save time...
                 this.currFileName = fileName;
                 jButton1.setEnabled(true);
            jTextArea4.append('\n'+"Opnened "+ currFileName);
      catch (IOException e) {
        jTextArea4.append('\n'+"Error opening "+fileName);
        // Save current file; handle not yet having a filename; report to statusBar.
    boolean saveFile() {
        // Handle the case where we don't have a file name yet.
        if (currFileName == null) {
            return saveAsFile();
        try {
        // Open a file of the current name.
        File file = new File (currFileName);
        // Create an output writer that will write to that file.
        // FileWriter handles international characters encoding conversions.
        FileWriter out = new FileWriter(file);
        String text = jTextArea1.getText();
        out.write(text);
        out.close();
        jButton1.setEnabled(false);
                return true;
      catch (IOException e) {
        jTextArea4.append('\n'+"Error saving "+ currFileName);
      return false;
        // Save current file; handle not yet having a filename; report to statusBar.
        boolean saveFile2() {
            // Handle the case where we don't have a file name yet.
        if (currFileName2 == null) {
            return saveAsFile2();
        try {
        // Open a file of the current name.
        File file = new File (currFileName2);
        // Create an output writer that will write to that file.
        // FileWriter handles international characters encoding conversions.
        FileWriter out = new FileWriter(file);
        String text = jTextArea3.getText();
        out.write(text);
        out.close();
        jButton7.setEnabled(false);
                return true;
      catch (IOException e) {
        jTextArea4.append('\n'+"Error saving "+ currFileName2);
      return false;
        // Save current file, asking user for new destination name.
    // Report to statusBar.
        boolean saveAsFile() {
          // Use the SAVE version of the dialog, test return for Approve/Cancel
          if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
            // Set the current file name to the user's selection,
            // then do a regular saveFile
            currFileName = jFileChooser1.getSelectedFile().getPath();
            //repaints menu after item is selected
            this.repaint();
            return saveFile();
          else {
            this.repaint();
            return false;
        // Save current file, asking user for new destination name.
    // Report to statusBar.
        boolean saveAsFile2() {
          // Use the SAVE version of the dialog, test return for Approve/Cancel
          if (JFileChooser.APPROVE_OPTION == jFileChooser2.showSaveDialog(this)) {
            // Set the current file name to the user's selection,
            // then do a regular saveFile
            currFileName2 = jFileChooser2.getSelectedFile().getPath();
            //repaints menu after item is selected
            this.repaint();
            return saveFile();
          else {
            this.repaint();
            return false;
        public void jButton1_actionPerformed(ActionEvent e) {
            saveFile();
            // Display the name of the saved directory+file in the statusBar.
            jTextArea4.append('\n'+"Saved to " + currFileName);
        public void jButton7_actionPerformed(ActionEvent e) {
            try{
                getAppletContext().showDocument(new URL("http://www.csc.liv.ac.uk/~cprdb/Live/v3.3/database.html"), "_blank" );
            catch (MalformedURLException ex)
                ex.printStackTrace();
            jButton6.setEnabled(true);
        public void jButton6_actionPerformed(ActionEvent e) {
            saveFile2();
            // Display the name of the saved directory+file in the statusBar.
            jTextArea4.append('\n'+"Saved to " + currFileName2);
        public void jButton3_actionPerformed(ActionEvent e) {
         // Handle the File|New menu item.
         // Clears the text of the text area.
         jTextArea3.setText("");
         currFileName2 = null;
         jButton6.setEnabled(true);
         jButton7.setEnabled(false);
        public void jButton2_actionPerformed(ActionEvent e) {
                // Use the OPEN version of the dialog, test return for Approve/Cancel
            if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
        // Call openFile to attempt to load the text from file into TextArea
                openFile(jFileChooser1.getSelectedFile().getPath());
                  this.repaint();
    class NoteTagger_jButton3_actionAdapter implements ActionListener {
        private NoteTagger adaptee;
        NoteTagger_jButton3_actionAdapter(NoteTagger adaptee) {
            this.adaptee = adaptee;
        public void actionPerformed(ActionEvent e) {
            adaptee.jButton3_actionPerformed(e);
    class NoteTagger_jButton6_actionAdapter implements ActionListener {
            private NoteTagger adaptee;
            NoteTagger_jButton6_actionAdapter(NoteTagger adaptee) {
                this.adaptee = adaptee;
            public void actionPerformed(ActionEvent e) {
                adaptee.jButton6_actionPerformed(e);
        class NoteTagger_jButton7_actionAdapter implements ActionListener {
            private NoteTagger adaptee;
            NoteTagger_jButton7_actionAdapter(NoteTagger adaptee) {
                this.adaptee = adaptee;
            public void actionPerformed(ActionEvent e) {
                adaptee.jButton7_actionPerformed(e);
    class NoteTagger_jButton2_actionAdapter implements ActionListener {
        private NoteTagger adaptee;
        NoteTagger_jButton2_actionAdapter(NoteTagger adaptee) {
            this.adaptee = adaptee;
        public void actionPerformed(ActionEvent e) {
            adaptee.jButton2_actionPerformed(e);
    class NoteTagger_jButton1_actionAdapter implements ActionListener {
        private NoteTagger adaptee;
        NoteTagger_jButton1_actionAdapter(NoteTagger adaptee) {
            this.adaptee = adaptee;
        public void actionPerformed(ActionEvent e) {
            adaptee.jButton1_actionPerformed(e);
    class FileSelectorUtils {
              public static String getExtension( File file ) {
              return getExtension( file.getName() );
                    private static String getExtension( String str ) {
              String ext = null;
              int i = str.lastIndexOf( '.' );
                  if( i > 0 && i < str.length() - 1) {
                     ext = str.substring( i + 1 ).toLowerCase();
              return ext;
              public static File ensureExtension( File file, String ext ) {
                  if( getExtension( file ) == null ) {
                      file = new File( file.getAbsolutePath() + "." + ext );
                  return file;
          class FileFilter1 extends FileFilter {
             // Valid File Extension
             public final static String txt = "txt";
                  public boolean accept( File f ) {
             // Display Directory
             if( f.isDirectory() ) { return true; }
             // Get File's Extension
             String extension = FileSelectorUtils.getExtension( f );
             // Accept Select File Extensions
             if( extension != null ) {
    if( extension.equals( FileFilter1.txt ) ) { return true; } // Accept *.ann
            // Else Deny File
            return false;
            public String getDescription() {
            return "Text Doument (*.txt)";
            class FileFilter2 extends FileFilter {
             // Valid File Extension
             public final static String html = "html";
                  public boolean accept( File f ) {
             // Display Directory
             if( f.isDirectory() ) { return true; }
             // Get File's Extension
             String extension = FileSelectorUtils.getExtension( f );
             // Accept Select File Extensions
             if( extension != null ) {
    if( extension.equals( FileFilter2.html ) ) { return true; } // Accept *.ann
            // Else Deny File
            return false;
            public String getDescription() {
            return "HTML Document (*.html)";
            }Any ideas? I could do with help ASAP if anybody has any ideas... Thanks
    Mike

    The apps listed at java-tips.org are just some of those that happen to be written in Java. If you want an editor that does syntax highlighting and other programming-specific tasks, you have dozens more options. A few Windows editors that spring to mind are EditPad, Crimson Editor, Scite, UltraEdit and Notetab. Then there are the old Unix standys, Emacs and vi, which have Windows versions as well. I use EditPad Pro, which isn't free like many of the others, but is worth the money anyway, IMO.

  • Query Regarding Rich Text Editor in Oracle 10G

    Hello.
    Can anyone let me know is their any privilege in Oracle 10g that we Incorporate the Rich Text Editor functionality. Currently we are working on Laboratory / Radiology Template based Reports in which they are requesting their should be option through which we can simply Cut and Paste our organized TEXT(REPORT) which are formatted in MS WORD with Bold,Underline and in Bullets format, it should simply paste in Editor and we can view a Template based report with formatted REPORT.
    We are using Oracle 10G and it's Applet based Application. Any clue how can we Accomplish this? Any Suitable Suggestion?
    Thanks

    Sorry, I referred this already.. This also returns the HTML text. But i don't want the HTML text. I want Normal Text what i enter in the Editor. But as of now all the editors are returning HTML text. So in the front end also it is showing HTML text only.
    I entered the text in Editor as
    System Defaulted Note
    Quote entered
    But editor returns as below and the same way it is showing in the Front end application instead of above text.
    <html>
    <head>
    </head>
    <body>
    System Defaulted Note
    <p>
    Quote entered
    </p>
    </body>
    </html>

  • Options - Text Editor - C/C++ missing intellisense entry. Intellisense not working

    Options -> Text Editor -> C/C++ missing intellisense entry.  Intellisense not working.    Solutions to turn options for the editor off and on are not working.  The intellisense entry is present for other languages,
    such as C#, but not C/C++.
    By not working, I mean the intellisense right click menu items are grayed out, and intellisense files are not produced.

    Hi JerroldBrody,
    Thank you for posting in MSDN forum.
    >>I mean the intellisense right click menu items are grayed out, and intellisense files are not produced.
    Based on your issue, could you please share me a screen shot about the intellisense right click menu items are grayed out?
    Generally, I know that it is default that we can enable the intellisense for C/C++ by going to the TOOLS->Options -> Text Editor -> C/C++ ->Advanced-> IntelliSense like the following screen shot.
    So please try to check if you set Disable Intellisense property as False in the VS IDE.
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to call a text editor from a module pool program

    Hi All,
    I want to call the text editor from my modulepool program. Enter my text in it and save it.This text needs to be saved in a Z-program with 2 fields as primary keys. The next time while I call this same record from this z table, I need to fetch the existing text and display it.
    The user now can put in additional text and can again save it. This process thus goes on..
    If anyone has worked in this type of scenario, then please help me in doing this.
    Useful answers will surely be rewarded.
    Thanks,
    Susanth.

    Hi Sushanth,
    We save the text not as fields in a ztable directly but as a text.Please check the format below since it is based on a working code....
    first you need to create a text in s010 transaction...
    there should be some key based on which you plan to save the text..imagine it is Purchase order then..PO+item numner is always unique.eg:0090010(900PO/item10).so in the code you can append these two and they will be unique..so you can always retrieve them,overwrite,save them anytime you need
    **************data declarations
    TYPES: BEGIN OF TY_EDITOR,
    EDIT(254) TYPE C,
    END OF TY_EDITOR.
    data: int_line type table of tline with header line.
    data: gw_thead like thead.
    data: int_table type standard table of ty_editor.
    ****************fill header..from SO10 t-code..when you save you need the unique key..youfill it here and pass it in save_text function module
    GW_THEAD-TDNAME = loc_nam. " unique key for the text -> our unique key to identify the text
    GW_THEAD-TDID = 'ST'. " Text ID from SO10
    GW_THEAD-TDSPRAS = SY-LANGU. "current language
    GW_THEAD-TDOBJECT = 'ZXXX'. "name of the text object created in SO10
    *To Read from Container and get data to int_table
    CALL METHOD EDITOR ->GET_TEXT_AS_R3TABLE
    IMPORTING
    TABLE = int_table
    EXCEPTIONS
    ERROR_DP = 1
    ERROR_CNTL_CALL_METHOD = 2
    ERROR_DP_CREATE = 3
    POTENTIAL_DATA_LOSS = 4
    others = 5.
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    loop data from int_table and save to int_line-tdline appending it.
    *save the text
    CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
    HEADER = GW_THEAD
    TABLES
    LINES = InT_LINE
    EXCEPTIONS
    ID = 1
    LANGUAGE = 2
    NAME = 3
    OBJECT = 4
    OTHERS = 5.
    IF SY-SUBRC 0.
    ENDIF.
    *To pass to Container
    CALL METHOD EDITOR ->SET_TEXT
    hope that the above sample with helps you solve the problem
    Please check and revert,
    Reward if helpful
    Regards
    Byju

  • Newbie help with sample Studio app. "Plain Text Editor"

    I'm trying to make the jump from AppleScript to AppleScript Studio, and because I want to eventually write a document producing application I thought I'd start with the textbook example "Plain Text Editor" included with Xcode. I think I see how menu items are connected to "Target/Actions," and I was able to build and run it without difficulty. It's remarkable how little AppleScript had to be written to produce a rudamentary text editor. But in playing with the built application, I noticed that the Revert menu item does not work exactly as expected.
    If you create a text document, and then make some change to it, and then click the Revert menu item, you get the expected little dialog asking if you want to revert to the most recently saved version, but if you then click the Revert button, the text displayed in the text view object does not revert to the original. However, something is happening, because whatever code is behind the Save, Close, and Quit menu items does seem to be "aware" that the Revert item has been invoked: because if you click one of these after Revert, the "do you want to save changes?" warning doesn't appear, just as one might expect.
    The Revert menu item seems to be connected to a "Target/Action" called "revertDocumentToSaved:" which sounds perfectly reasonable. But does the fact that Revert doesn't cause the displayed editing text to revert mean that (a) there is a bug in the code behind this Target/Action, or (b) that the writer of this textbook example just didn't bother to do everything needed for the Revert item to work in an intuitive manner?
    Whichever the answer, what would I do to make it work properely?
    It seems like there must be some sort of connection between the text view object in the editing window, and the Close, Save, Quit suite of menu items, because the behavior of these is dependant on whether or not there are unsaved changes in the text view object. But looking through the Inspector for this object, I don't see any, neither AppleScripts, nor Outlets, nor Target/Actions. Where and for what should I be looking?
    Dual 1.2 GHz   Mac OS X (10.4.8)  
    Dual 1.2 GHz   Mac OS X (10.4.8)  

    I think -- and I'm sure someone will correct me if I'm wrong -- that this is a place where AppleScript Studio's implementation just isn't done right. Either they intended to add a "revert" handler somewhere and forgot, or else they meant to have it send an existing message and didn't.
    I haven't done any document-based applications -- heck, I've only dabbled slightly in AppleScript Studio -- so there may be a "deeper" answer to this, but you might consider just hooking the menu item up to send its "choose menu item" handler to your document script, and have it react accordingly.

  • Using the Document Manager Rich Text Editor

    I'm wondering whether there is a reasonable way we can use the Rich Text Editor (based on CKEditor) that is contained within the Document Manager task flow (primarily for editing Wiki pages) outside of the Document Manager itself? We have another type of content we need a Rich Text Editor for, but it would be great if we could use the inline image links, tables, links to documents in the content repository, etc.

    Have you consider use Site Studio + Content Presenter?
    http://docs.oracle.com/cd/E17904_01/webcenter.1111/e10149/content_cp.htm
    http://george.maggessy.com/2012/05/inline-editing-in-content-presenter-for_10.html
    []'s

  • Max characters in a Rich Text Editor?

    Is there a "hard limit" on the number of characters I can enter into a Rich Text Editor?
    My testing suggests that you can only have 4000 characters. If i submit more than 4000 i.e. 4001, I get the following error message:
    ORA-01461: can bind a LONG value only for insert into a LONG column
    The data type I am trying to insert into is of type CLOB (which if memory serves can store upto 4 GIG).
    We are using Oracle Application Server (Apache and MOD_PLSQL) so I imaging that there is possible a limit here as well with how much data can be posted.
    Thanks for any help.
    Duncs

    Hi Duncs,
    I tried to reproduce your problem on our internal development system but was not able to do so. What did I do?
    1) Created a new table with the following statement
    CREATE TABLE  DEPT_WITH_CLOB
       (     "DEPTNO" NUMBER(2,0),
         "DNAME" VARCHAR2(14),
         "LOC" VARCHAR2(13),
         "MORE_TEXT" CLOB,
          PRIMARY KEY ("DEPTNO") ENABLE
       ) ;2) Created a new application with a "Report and Form" based on the DEPT_WITH_CLOB table.
    3) Modified P2_MORE_TEXT to use Rich Text Editor as item type.
    4) Executed the page and entered a text which was more than 18,000 char long
    5) Clicked apply changes and everything was stored without a problem.
    Can you provide more information about your system?
    1) APEX version
    2) Database Version
    3) Do you use database links in your apps or do other applications use database links?
    4) If yes, which database version are those databases?
    5) If you are able to reproduce the problem on apex.oracle.com that would also be of great help.
    Thanks
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • Rich Text editor in Webdynpro

    Hi,
    With the new FormattedTextView in 2004s one will be able to render xhtml compliant rich test in Webdynpro.
    This however only covers the rednering of rich text.
    There still does not seem to be a rich text editor control available for webdynpro applications, which I think might be a common requirement for document centric applications.
    I was wondering :
    1 - will there be a richt text editor control available for WDP in the forseeable future ?
    2 - if not, are there any workardounds available to allow for the generation of rich text ?

    Hi Valery,
    Well, I already thought of that kind of solution, but I do not consider it a very clean solution. I know WDP supports portal eventing. On the other side of such a scenario you could even do without a 3rd party wysiwyg editor, cause SAP does offer an html editor control in its set of HTMLB controls.
    We intend to use WDP as a UI layer on top of SAPs KM. Our scenario involves template based publishing of structured documents (we first looked at xml forms, but they showed too many limitations). The idea is to model the document structure and content at runtime as WDP context structures (based on xml schemas) and then to serialize WDP context into XML content and metadata, with KM acting as business and persistence layer. Markup and insertion of images into the different text parts of the document however has become an additional requirement, which is why we are looking for a ways to fit that in our current design.
    You could indeed think of some kind of data exchange between a regular portal component and the wdp application, but I am not too confident whether that is going to be a reliable solution.
    PS : for the serialization of WDP context, your post in a different thread on this forum helped me a lot in my first attempts to create KM documents from data wdp runtime data (context). The link provided to the online book and your little example was very welcome. Thanks for that !

  • Using Rich Text Editor with a Custom Attribute

    Hello All,
    Can anyone please tell me as how can I use the Rich Text Editor with a Custom Attribute?
    I want to create a custom attribute based on text datatype, but when entering the value for this attribute in a Custom Item, portal shows a normal textarea. I want that the user should see the Richt Text Editor.
    Thanks for help.
    Regards

    Hi,
    Can you tell me what steps you are using to produce this, and which Portal version you are using. When I tried it, I wasn't able to reproduce it. Here are my steps:
    1) Created Custom Item Type, based on Text, under
    Page Groups > Shared Objects > Item Types
    2) Selected Three attributes (Description, Name, Publish Date). Note Text and Display Name were already selected
    3) In Add Item Wizard, configured list to allow for my
    custom item type selection.
    4) Then I was able to see the Rich Text Editor when editin
    my custom item type.
    Regards,
    J.

  • Using rich text editor in new asset type input form

    Hey everyone,
    I'm currently trying to create assets based on a newly created asset type (which I of course, created). However, the STORAGE property I declared in the asset definition file is to support formatted text, which would normally be pasted from word documents. Note that I'm using the Basic Asset Model.
    Thus, I need a rich-text editor to be used in the content input form. So, after looking at the tags reference in the developer's documentation, I thought that I could use EWEBEDITPRO to achieve my goal but there's always an error mentionning that the component can't be launched. I supposedly have to configure two parameters, one of them being the path for ewebeditpro.js. I looked for that but haven't found it. On the other hand, I looked at the Oracle WebCenter Sites Property File document and that one stated that EWEBEDITPRO is deprecated and not supported (?!?!).
    So in short, what can I use, as a rich-text/html editor?? Thanks in advance for any reply!
    Edited by: DigitalSelf on May 24, 2012 2:26 PM

    Thanks. From what I've read in the developer's guide, CKEditor was available with assets built from the Flex model. However, I'm currently having a hard time trying to display the content of an attribute with content input through the CKEditor, because it's stored in a blob. Although I've found several examples showing how to read the content of a blob, none of them worked for me...

  • [SOLVED] recommendation for a text editor that can handle 25mb+ files?

    Not sure where to put it, so I put it her (if it's not the right place, can someone please move it.. thanks!)
    I'm building a database of about 60,000 files in folder X.
    I'm using php to organise all the files and clean them up (for exmaple removing "-" and ":") and then sticking them into a database.
    my main text editor is vim,and then I usually use a gui based editor for fast navigation (lets see you go through 1,010,131 lines of output in vim).
    The output is usually suppressed,  but the amount of files in X, changes daily (one day can go without change, then next day a user can add 20 files and another user can remove a file), so whenever a new file comes in I want to see that my code can handle it properly, then be able to stick in thee db properly.
    recently trying to open a 1million line file in Kate, or Kwrite seems to crash dolphin (KDE).
    If I install gvim, I'll need to remove Vim, and I dont want to do that.
    I'm looking for something small with scroll bars, that only needs to edit txt files.
    Last edited by scarletxfi (2010-09-28 22:37:10)

    scarletxfi wrote:I tired that, it wasnt the same, I don't know the exact line number, and as the files always change and are different from each other, i check locations which I know to be problematic..
    thanks for the suggestions thought , I see I have to work on my VIM navigation skills
    If you know that it's some specific subdirectory that usually messes up, or you know the name of the file you want to find, you can do /FILENAME to search for it. If you know it usually is around line 600,000, then try out 600000G.

  • RTE Rich Text Editor

    Hi Guys,
    Anyone aware of a stable RTE Rich Text Editor code that can
    be included in a record update page?
    I need to have a RTE that allows for multiple fields. Most
    only seem to allow for one field and do not work well with ASP code
    and their Javascript.
    Any suggestions welcomed please.
    Thanks Jules

    The TinyMCE "fine print" says it requires additional
    extensions when using
    FireFox for "some functions"
    <%= Clinton Gallagher
    NET csgallagher AT metromilwaukee.com
    URL
    http://www.metromilwaukee.com/clintongallagher/
    "darrel" <[email protected]> wrote in message
    news:e3q54u$2v1$[email protected]..
    >
    >> Anyone aware of a stable RTE Rich Text Editor code
    that can be included
    >> in a
    >> record update page?
    >>
    >> I need to have a RTE that allows for multiple
    fields. Most only seem to
    >> allow
    >> for one field and do not work well with ASP code and
    their Javascript.
    >
    > Who's 'their' javascript?
    >
    > As for text area replacements, Xstandard is great, but
    not javascript
    > based.
    >
    > For javascript ones, I've recently started playing with
    TinyMCE. Seems OK.
    > By default, it lets you use it on all textarea boxes on
    the page.
    >
    > -Darrel
    >

Maybe you are looking for