[Jsxe-cvs] SF.net SVN: jsxe: [1111] trunk/sourceview
Status: Inactive
Brought to you by:
ian_lewis
From: <ian...@us...> - 2006-08-08 00:08:26
|
Revision: 1111 Author: ian_lewis Date: 2006-08-07 17:08:19 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=1111&view=rev Log Message: ----------- Moved the edit menu to jsXe core and added a hack so that undo will work Modified Paths: -------------- trunk/sourceview/Changelog trunk/sourceview/src/sourceview/SourceView.java trunk/sourceview/src/sourceview/SourceViewDocument.java Modified: trunk/sourceview/Changelog =================================================================== --- trunk/sourceview/Changelog 2006-08-08 00:07:37 UTC (rev 1110) +++ trunk/sourceview/Changelog 2006-08-08 00:08:19 UTC (rev 1111) @@ -1,3 +1,7 @@ +08/07/2006 Ian Lewis <Ian...@me...> + + * Moved the edit menu to jsXe core and added a hack so that undo will work. + 07/26/2006 Ian Lewis <Ian...@me...> * Addded support for the findnext action Modified: trunk/sourceview/src/sourceview/SourceView.java =================================================================== --- trunk/sourceview/src/sourceview/SourceView.java 2006-08-08 00:07:37 UTC (rev 1110) +++ trunk/sourceview/src/sourceview/SourceView.java 2006-08-08 00:08:19 UTC (rev 1111) @@ -39,6 +39,8 @@ import net.sourceforge.jsxe.dom.XMLDocument; import net.sourceforge.jsxe.dom.XMLDocumentListener; import net.sourceforge.jsxe.msg.PropertyChanged; +import net.sourceforge.jsxe.msg.UndoEvent; +import net.sourceforge.jsxe.msg.RedoEvent; import net.sourceforge.jsxe.util.Log; import net.sourceforge.jsxe.util.MiscUtilities; //}}} @@ -151,30 +153,6 @@ setLayout(new BorderLayout()); add(m_textarea, BorderLayout.CENTER); - //{{{ Construct Edit Menu - m_editMenu = new JMenu(Messages.getMessage("Edit.Menu")); - m_editMenu.setMnemonic('E'); - // These don't do anything yet. - // JMenuItem menuItem = new JMenuItem("Undo"); - // menuItem.addActionListener( new EditUndoAction() ); - // menu.add( menuItem ); - // menuItem = new JMenuItem("Redo"); - // menuItem.addActionListener( new EditRedoAction() ); - // menu.add(menuItem); - // menu.addSeparator(); - menuItem = new JMenuItem(ActionManager.getAction("cut")); - m_editMenu.add(menuItem); - menuItem = new JMenuItem(ActionManager.getAction("copy")); - m_editMenu.add(menuItem); - menuItem = new JMenuItem(ActionManager.getAction("paste")); - m_editMenu.add(menuItem); - m_editMenu.addSeparator(); - menuItem = new JMenuItem(ActionManager.getAction("find")); - m_editMenu.add(menuItem); - menuItem = new JMenuItem(ActionManager.getAction("findnext")); - m_editMenu.add(menuItem); - //}}} - setDocumentBuffer(document); //focus on the text area the first time the view is shown @@ -223,6 +201,18 @@ SourceViewOptionPane.parseStyle(jsXe.getProperty("source.invalid.color")), }); } + } else { + if ((message instanceof UndoEvent) || (message instanceof RedoEvent)) { + //hack to get undo to work properly + try { + int caret = m_textarea.getCaretPosition(); + m_textarea.setDocument(new SourceViewDocument(m_document)); + m_textarea.setTokenMarker(new XMLTokenMarker()); + m_textarea.setCaretPosition(caret); + } catch (IOException ioe) { + Log.log(Log.ERROR, this, ioe); + } + } } }//}}} @@ -260,7 +250,7 @@ //{{{ getMenus() public JMenu[] getMenus() { - return new JMenu[] { m_editMenu }; + return null; }//}}} //{{{ getDocumentBuffer() @@ -420,8 +410,6 @@ private String m_replaceString; private SourceViewPlugin m_plugin; - private JMenu m_editMenu; - //}}} } Modified: trunk/sourceview/src/sourceview/SourceViewDocument.java =================================================================== --- trunk/sourceview/src/sourceview/SourceViewDocument.java 2006-08-08 00:07:37 UTC (rev 1110) +++ trunk/sourceview/src/sourceview/SourceViewDocument.java 2006-08-08 00:08:19 UTC (rev 1111) @@ -55,6 +55,7 @@ import javax.swing.text.GapContent; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleContext; +import javax.swing.undo.UndoableEdit; //}}} //{{{ DOM classes @@ -73,6 +74,7 @@ /** * The Document model used by the SourceView for displaying the text of * an XML document. + * * @author <a href="mailto:IanLewis at member dot fsf dot org">Ian Lewis</a> * @version $Id$ * @see SourceView @@ -138,7 +140,27 @@ //}}} + //{{{ beginCompoundEdit() + + public void beginCompoundEdit() { + m_document.beginCompoundEdit(); + }//}}} + + //{{{ endCompoundEdit() + + public void endCompoundEdit() { + m_document.endCompoundEdit(); + }//}}} + + //{{{ addUndoableEdit() + + public void addUndoableEdit(UndoableEdit edit) { + // Log.log(Log.DEBUG, this, "adding edit"); + // m_document.addUndoableEdit(edit); + }//}}} + //{{{ Private members + private XMLDocument m_document; //}}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |