Author: wire
Date: Tue Aug 23 18:12:36 2005
New Revision: 239497

URL: http://svn.apache.org/viewcvs?rev=239497&view=rev
Log:
New Editor Kits

Added:
    
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/
    
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/HTMLKit.java
    
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/JavaKit.java
    
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/PlainKit.java

Added: 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/HTMLKit.java
URL: 
http://svn.apache.org/viewcvs/webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/HTMLKit.java?rev=239497&view=auto
==============================================================================
--- 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/HTMLKit.java
 (added)
+++ 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/HTMLKit.java
 Tue Aug 23 18:12:36 2005
@@ -0,0 +1,129 @@
+package org.apache.interop.common.ui.xmleditorkit;

+

+import java.util.Map;

+import java.awt.event.KeyEvent;

+import java.awt.event.InputEvent;

+import java.awt.event.ActionEvent;

+import javax.swing.Action;

+import javax.swing.KeyStroke;

+import javax.swing.text.Caret;

+import javax.swing.text.Document;

+import javax.swing.text.TextAction;

+import javax.swing.text.JTextComponent;

+import javax.swing.text.html.parser.*;

+import org.netbeans.editor.*;

+import org.netbeans.editor.ext.*;

+import org.netbeans.editor.ext.html.*;

+

+/**

+* Editor kit implementation for HTML content type

+*

+* @author Miloslav Metelka

+* @version 0.01

+*/

+

+public class HTMLKit extends ExtKit {

+

+    static final long serialVersionUID =-1381945567613910297L;

+

+    public static final String HTML_MIME_TYPE = "text/html"; // NOI18N

+

+    public static final String shiftInsertBreakAction = "shift-insert-break"; 
// NOI18N

+

+    static {

+        Settings.addInitializer( new HTMLSettingsInitializer( HTMLKit.class ) 
);

+        Settings.addInitializer( new SaHTMLSettingsInitializer() );

+        Settings.reset();

+    }

+

+    public HTMLKit() {

+        super();

+        //DTD myDTD = new DTDcreator().createDTD( "My" );

+    }

+

+    protected void initDocument(BaseDocument doc)

+    {

+        super.initDocument(doc);

+        JavaKit.JKitUndoManager mgr = new JavaKit.JKitUndoManager(doc);

+        doc.putProperty(BaseDocument.UNDO_MANAGER_PROP,mgr); 

+        doc.addUndoableEditListener(mgr);

+    }

+    public String getContentType() {

+        return HTML_MIME_TYPE;

+    }

+

+    /** Create new instance of syntax coloring scanner

+    * @param doc document to operate on. It can be null in the cases the syntax

+    *   creation is not related to the particular document

+    */

+    public Syntax createSyntax(Document doc) {

+        return new HTMLSyntax();

+    }

+

+    /** Create syntax support */

+    public SyntaxSupport createSyntaxSupport(BaseDocument doc) {

+        return new HTMLSyntaxSupport(doc);

+    }

+

+    public Completion createCompletion(ExtEditorUI extEditorUI) {

+        return new HTMLCompletion(extEditorUI);

+    }

+

+    protected Action[] createActions() {

+        Action[] HTMLActions = new Action[] {

+                                   //new ExtDefaultKeyTypedAction(),

+                                   new HTMLShiftBreakAction()

+                               };

+

+//       System.out.println("\n\n\nCreating actions!!!!!!!!");

+

+        return TextAction.augmentList(super.createActions(), HTMLActions);

+    }

+

+

+    public static class HTMLShiftBreakAction extends BaseAction {

+

+        static final long serialVersionUID =4004043376345356061L;

+

+        public HTMLShiftBreakAction() {

+            super( shiftInsertBreakAction, ABBREV_RESET

+                  | MAGIC_POSITION_RESET | UNDO_MERGE_RESET);

+        }

+

+        public void actionPerformed(ActionEvent evt, JTextComponent target) {

+            if (target != null) {

+                Completion completion = ExtUtilities.getCompletion(target);

+                if (completion != null && completion.isPaneVisible()) {

+                    if (completion.substituteText( true )) {

+                        completion.setPaneVisible(false);

+                    } else {

+                        completion.refresh(false);

+                    }

+                }

+            }

+        }

+

+    }

+

+    private static class SaHTMLSettingsInitializer extends 
Settings.AbstractInitializer {

+        public SaHTMLSettingsInitializer() {

+            super( "sa-html-settings-initializer" );

+        }

+

+        public void updateSettingsMap(Class kitClass, Map settingsMap) {

+            if (kitClass == HTMLKit.class) {

+                SettingsUtil.updateListSetting(settingsMap, 
SettingsNames.KEY_BINDING_LIST, getHTMLKeyBindings());

+            }

+        }

+

+        public MultiKeyBinding[] getHTMLKeyBindings() {

+            return new MultiKeyBinding[] {

+                new MultiKeyBinding(

+                    KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 
InputEvent.SHIFT_MASK),

+                    HTMLKit.shiftInsertBreakAction

+                )

+            };

+        }

+    }

+

+}


Added: 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/JavaKit.java
URL: 
http://svn.apache.org/viewcvs/webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/JavaKit.java?rev=239497&view=auto
==============================================================================
--- 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/JavaKit.java
 (added)
+++ 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/JavaKit.java
 Tue Aug 23 18:12:36 2005
@@ -0,0 +1,398 @@
+/*

+ *                 Sun Public License Notice

+ *

+ * The contents of this file are subject to the Sun Public License

+ * Version 1.0 (the "License"). You may not use this file except in

+ * compliance with the License. A copy of the License is available at

+ * http://www.sun.com/

+ *

+ * The Original Code is NetBeans. The Initial Developer of the Original

+ * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun

+ * Microsystems, Inc. All Rights Reserved.

+ */

+

+package org.apache.interop.common.ui.xmleditorkit;

+

+import java.awt.event.ActionEvent;

+import java.awt.event.InputEvent;

+import java.awt.event.KeyEvent;

+import java.io.File;

+import java.util.Map;

+

+import javax.swing.Action;

+import javax.swing.KeyStroke;

+import javax.swing.text.BadLocationException;

+import javax.swing.text.Document;

+import javax.swing.text.JTextComponent;

+import javax.swing.text.TextAction;

+import javax.swing.undo.CannotUndoException;

+import javax.swing.undo.UndoManager;

+import javax.swing.undo.UndoableEdit;

+

+import org.netbeans.editor.ActionFactory;

+import org.netbeans.editor.BaseAction;

+import org.netbeans.editor.BaseDocument;

+import org.netbeans.editor.BaseKit;

+import org.netbeans.editor.EditorUI;

+import org.netbeans.editor.Formatter;

+import org.netbeans.editor.MultiKeyBinding;

+import org.netbeans.editor.Settings;

+import org.netbeans.editor.SettingsNames;

+import org.netbeans.editor.SettingsUtil;

+import org.netbeans.editor.Syntax;

+import org.netbeans.editor.SyntaxSupport;

+import org.netbeans.editor.Utilities;

+import org.netbeans.editor.ext.Completion;

+import org.netbeans.editor.ext.ExtEditorUI;

+import org.netbeans.editor.ext.ExtKit;

+import org.netbeans.editor.ext.java.JavaCompletion;

+import org.netbeans.editor.ext.java.JavaDrawLayerFactory;

+import org.netbeans.editor.ext.java.JavaFormatter;

+import org.netbeans.editor.ext.java.JavaSettingsInitializer;

+import org.netbeans.editor.ext.java.JavaSyntax;

+import org.netbeans.editor.ext.java.JavaSyntaxSupport;

+

+/**

+* Java editor kit with appropriate document

+*

+* @author Miloslav Metelka

+* @version 1.00

+*/

+

+public class JavaKit extends ExtKit {

+

+    public static final String JAVA_MIME_TYPE = "text/x-java"; // NOI18N

+

+    private static final String[] getSetIsPrefixes = new String[] {

+                "get", "set", "is"

+            };

+

+    /** Switch first letter of word to capital and insert 'get'

+    * at word begining.

+    */

+    public static final String makeGetterAction = "make-getter"; // NOI18N

+

+    /** Switch first letter of word to capital and insert 'set'

+    * at word begining.

+    */

+    public static final String makeSetterAction = "make-setter"; // NOI18N

+

+    /** Switch first letter of word to capital and insert 'is'

+    * at word begining.

+    */

+    public static final String makeIsAction = "make-is"; // NOI18N

+

+    /** Debug source and line number */

+    public static final String abbrevDebugLineAction = "abbrev-debug-line"; // 
NOI18N

+

+    static final long serialVersionUID =-5445829962533684922L;

+

+    static {

+        Settings.addInitializer( new JavaSettingsInitializer( JavaKit.class ) 
);

+        Settings.addInitializer( new SaJavaSettingsInitializer() );

+        Settings.reset();

+/*

+        ResourceBundle settings = ResourceBundle.getBundle( "settings" );

+        String jcPath = null;

+        try {

+            jcPath = settings.getString( "Java_Completion" );

+        } catch( MissingResourceException exc ) {}

+

+        if( jcPath != null ) {

+            JCBaseFinder finder = new JCBaseFinder();

+            JCFileProvider provider = new JCFileProvider( jcPath );

+            //testing... inserted by Simeon

+            String openPath = "d:\\NbBuild001\\system\\ParserDB\\OpenAPIs";

+            JCFileProvider provider2 = new JCFileProvider(openPath);

+            finder.append( provider );

+            finder.append(provider2);

+            JavaCompletion.setFinder( finder );

+        }

+ */

+    }

+    

+/*protected void addAction(JTextComponent target, JPopupMenu popupMenu,

+        String actionName) 

+    {

+        System.out.println("Adding action - " + actionName);

+        super.addAction(target,popupMenu,actionName);

+    }*/

+    

+    public String getContentType() {

+        return JAVA_MIME_TYPE;

+    }

+

+    /** Create new instance of syntax coloring scanner

+    * @param doc document to operate on. It can be null in the cases the syntax

+    *   creation is not related to the particular document

+    */

+    public Syntax createSyntax(Document doc) {

+        return new JavaSyntax();

+    }

+

+    /** Create syntax support */

+    public SyntaxSupport createSyntaxSupport(BaseDocument doc) {

+        return new JavaSyntaxSupport(doc);

+    }

+

+    public Completion createCompletion(ExtEditorUI extEditorUI) {

+        return new JavaCompletion(extEditorUI);

+    }

+

+    /** Create the formatter appropriate for this kit */

+    public Formatter createFormatter() {

+        return new JavaFormatter(this.getClass());

+    }

+

+    protected EditorUI createEditorUI() {

+        return new ExtEditorUI();

+    }

+

+    protected void initDocument(BaseDocument doc) {

+        doc.addLayer(new JavaDrawLayerFactory.JavaLayer(),

+                JavaDrawLayerFactory.JAVA_LAYER_VISIBILITY);

+        doc.addDocumentListener(new JavaDrawLayerFactory.LParenWatcher());

+        JKitUndoManager mgr = new JKitUndoManager(doc);

+        doc.putProperty(BaseDocument.UNDO_MANAGER_PROP,mgr); 

+        doc.addUndoableEditListener(mgr);

+    }

+

+    protected Action[] createActions() {

+        Action[] javaActions = new Action[] {

+                                   new JavaDefaultKeyTypedAction(),

+                                   new PrefixMakerAction(makeGetterAction, 
"get", getSetIsPrefixes),

+                                   new PrefixMakerAction(makeSetterAction, 
"set", getSetIsPrefixes),

+                                   new PrefixMakerAction(makeIsAction, "is", 
getSetIsPrefixes),

+                                   new AbbrevDebugLineAction(),

+                                   new NbUndoAction(),

+                                   new NbRedoAction()

+                               };

+//       System.out.println("\n\n\nCreating actions!!!!!!!!");

+        return TextAction.augmentList(super.createActions(), javaActions);

+    }

+

+

+    public static class JavaDefaultKeyTypedAction extends 
ExtDefaultKeyTypedAction {

+

+        protected void checkIndentHotChars(JTextComponent target, String 
typedText) {

+            boolean reindent = false;

+

+            BaseDocument doc = Utilities.getDocument(target);

+            int dotPos = target.getCaret().getDot();

+            if (doc != null) {

+                /* Check whether the user has written the ending 'e'

+                 * of the first 'else' on the line.

+                 */

+                if ("e".equals(typedText)) {

+                    try {

+                        int fnw = Utilities.getRowFirstNonWhite(doc, dotPos);

+                        if (fnw >= 0 && fnw + 4 == dotPos

+                            && "else".equals(doc.getText(fnw, 4))

+                        ) {

+                            reindent = true;

+                        }

+                    } catch (BadLocationException e) {

+                    }

+

+                } else if (":".equals(typedText)) {

+                    try {

+                        int fnw = Utilities.getRowFirstNonWhite(doc, dotPos);

+                        if (fnw >= 0 && fnw + 4 <= doc.getLength()

+                            && "case".equals(doc.getText(fnw, 4))

+                        ) {

+                            reindent = true;

+                        }

+                    } catch (BadLocationException e) {

+                    }

+                }

+

+                // Reindent the line if necessary

+                if (reindent) {

+                    try {

+                        Utilities.reformatLine(doc, dotPos);

+                    } catch (BadLocationException e) {

+                    }

+                }

+            }

+

+            super.checkIndentHotChars(target, typedText);

+        }

+

+    }

+

+

+

+    public static class AbbrevDebugLineAction extends BaseAction {

+

+        public AbbrevDebugLineAction() {

+            super(abbrevDebugLineAction);

+        }

+

+        public void actionPerformed(ActionEvent evt, JTextComponent target) {

+            if (target != null) {

+                if (!target.isEditable() || !target.isEnabled()) {

+                    target.getToolkit().beep();

+                    return;

+                }

+                BaseDocument doc = (BaseDocument)target.getDocument();

+                StringBuffer sb = new StringBuffer("System.err.println(\""); 
// NOI18N

+                File file = (File)doc.getProperty( "file" );

+                if (file != null) {

+                    sb.append( file.getAbsolutePath() );

+                    sb.append(':');

+                }

+                try {

+                    sb.append(Utilities.getLineOffset(doc, 
target.getCaret().getDot()) + 1);

+                } catch (BadLocationException e) {

+                }

+                sb.append(' ');

+

+                BaseKit kit = Utilities.getKit(target);

+                Action a = kit.getActionByName(BaseKit.insertContentAction);

+                if (a != null) {

+                    Utilities.performAction(

+                        a,

+                        new ActionEvent(target, ActionEvent.ACTION_PERFORMED, 
sb.toString()),

+                        target

+                    );

+                }

+            }

+        }

+    }

+

+

+    private static class SaJavaSettingsInitializer extends 
Settings.AbstractInitializer {

+        public SaJavaSettingsInitializer() {

+            super( "sa-java-settings-initializer" );

+        }

+

+

+

+        public void updateSettingsMap(Class kitClass, Map settingsMap) {

+            if (kitClass == JavaKit.class) {

+                SettingsUtil.updateListSetting(settingsMap, 
SettingsNames.KEY_BINDING_LIST, getJavaKeyBindings());

+            }

+

+        }

+

+        public MultiKeyBinding[] getJavaKeyBindings() {

+            return new MultiKeyBinding[] {

+               new MultiKeyBinding(

+                   new KeyStroke[] {

+                       KeyStroke.getKeyStroke(KeyEvent.VK_U, 
InputEvent.ALT_MASK),

+                       KeyStroke.getKeyStroke(KeyEvent.VK_G, 0)

+                   },

+                   JavaKit.makeGetterAction

+               ),

+               new MultiKeyBinding(

+                   new KeyStroke[] {

+                       KeyStroke.getKeyStroke(KeyEvent.VK_U, 
InputEvent.ALT_MASK),

+                       KeyStroke.getKeyStroke(KeyEvent.VK_S, 0)

+                   },

+                   JavaKit.makeSetterAction

+               ),

+               new MultiKeyBinding(

+                   new KeyStroke[] {

+                       KeyStroke.getKeyStroke(KeyEvent.VK_U, 
InputEvent.ALT_MASK),

+                       KeyStroke.getKeyStroke(KeyEvent.VK_I, 0)

+                   },

+                   JavaKit.makeIsAction

+               ),

+               new MultiKeyBinding(

+                   KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.ALT_MASK),

+                   JavaKit.abbrevDebugLineAction

+               )

+            };

+        }

+    }

+         public static class NbUndoAction extends ActionFactory.UndoAction {

+

+        public void actionPerformed(ActionEvent evt, JTextComponent target) {

+            /*if (NbEditorUtilities.getTopManager() != null) {

+                // Delegate to system undo action

+                UndoAction ua = (UndoAction)SystemAction.get(UndoAction.class);

+                if (ua != null && ua.isEnabled()) {

+                    ua.actionPerformed(evt);

+                }

+

+            } else {*/

+                super.actionPerformed(evt, target);

+                //System.out.println("Undo Action!!");                

+            //}

+        }

+

+    }

+

+    public static class NbRedoAction extends ActionFactory.RedoAction {

+

+        public void actionPerformed(ActionEvent evt, JTextComponent target) {

+            /*if (NbEditorUtilities.getTopManager() != null) {

+                // Delegate to system redo action

+                RedoAction ra = (RedoAction)SystemAction.get(RedoAction.class);

+                if (ra != null && ra.isEnabled()) {

+                    ra.actionPerformed(evt);

+                }

+

+            } else {*/

+                super.actionPerformed(evt, target);

+                //System.out.println("Redo Action!!");

+            //}

+        }

+

+

+    }

+    

+    public static class JKitUndoManager extends UndoManager

+    {

+        private Document m_doc;

+        public JKitUndoManager(Document doc)

+        {

+            super();

+            m_doc = doc;

+        }

+        

+        public synchronized boolean addEdit(UndoableEdit anEdit)

+        {

+            boolean bEdit = super.addEdit(anEdit);

+            if(bEdit)

+            {

+//                SaveStatusChangeSupport ssc = 
(SaveStatusChangeSupport)m_doc.getProperty(NBEditorBean.SAVE_CHANGE);

+//                if(ssc != null)

+//                    ssc.fireSaveStatusChange(new 
SaveStatusChangeEvent(this,true));

+            }

+            return bEdit;

+        }

+        

+        public synchronized void undo() throws CannotUndoException

+        {

+            try

+            {

+                super.undo();

+            }

+            catch(CannotUndoException ex)

+            {

+//                 SaveStatusChangeSupport ssc = 
(SaveStatusChangeSupport)m_doc.getProperty(NBEditorBean.SAVE_CHANGE);

+//                 if(ssc != null)

+//                    ssc.fireSaveStatusChange(new 
SaveStatusChangeEvent(this,false));

+//                 throw new CannotUndoException();

+            }

+            if(!canUndo())

+            {

+//                SaveStatusChangeSupport ssc = 
(SaveStatusChangeSupport)m_doc.getProperty(NBEditorBean.SAVE_CHANGE);

+//                 if(ssc != null)

+//                    ssc.fireSaveStatusChange(new 
SaveStatusChangeEvent(this,false));

+            }

+        }

+        

+        /*public synchronized void discardAllEdits()

+        {

+            super.discardAllEdits();

+            SaveStatusChangeSupport ssc = 
(SaveStatusChangeSupport)m_doc.getProperty(NBEditorBean.SAVE_CHANGE);

+                 if(ssc != null)

+                    ssc.fireSaveStatusChange(new 
SaveStatusChangeEvent(this,false));

+        }*/

+    }

+            

+}

+        

+   


Added: 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/PlainKit.java
URL: 
http://svn.apache.org/viewcvs/webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/PlainKit.java?rev=239497&view=auto
==============================================================================
--- 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/PlainKit.java
 (added)
+++ 
webservices/muse/trunk/src/examples/ieeedemo/client/src/org/apache/interop/common/ui/xmleditorkit/PlainKit.java
 Tue Aug 23 18:12:36 2005
@@ -0,0 +1,57 @@
+/*

+ *                 Sun Public License Notice

+ * 

+ * The contents of this file are subject to the Sun Public License

+ * Version 1.0 (the "License"). You may not use this file except in

+ * compliance with the License. A copy of the License is available at

+ * http://www.sun.com/

+ * 

+ * The Original Code is NetBeans. The Initial Developer of the Original

+ * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun

+ * Microsystems, Inc. All Rights Reserved.

+ */

+

+package org.apache.interop.common.ui.xmleditorkit;

+

+import javax.swing.text.Caret;

+import javax.swing.text.Document;

+import org.netbeans.editor.BaseDocument;

+import org.netbeans.editor.Syntax;

+import org.netbeans.editor.SyntaxSupport;

+import org.netbeans.editor.ext.ExtSyntaxSupport;

+import org.netbeans.editor.ext.ExtKit;

+import org.netbeans.editor.ext.plain.PlainSyntax;

+

+/**

+* Editor kit used to edit the plain text.

+*

+* @author Miloslav Metelka

+* @version 1.00

+*/

+

+public class PlainKit extends ExtKit {

+

+    public static final String PLAIN_MIME_TYPE = "text/plain"; // NOI18N

+    

+    protected void initDocument(BaseDocument doc)

+    {

+        super.initDocument(doc);

+        JavaKit.JKitUndoManager mgr = new JavaKit.JKitUndoManager(doc);

+        doc.putProperty(BaseDocument.UNDO_MANAGER_PROP,mgr); 

+        doc.addUndoableEditListener(mgr);

+    }

+        

+    public String getContentType() {

+        return PLAIN_MIME_TYPE;

+    }

+

+    public Syntax createSyntax(Document doc) {

+        return new PlainSyntax();

+    }

+

+    public SyntaxSupport createSyntaxSupport(BaseDocument doc) {

+        return new ExtSyntaxSupport(doc);

+    }

+

+}

+




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to