Thread: [Jsxe-cvs] SF.net SVN: jsxe: [934] trunk/treeview
Status: Inactive
Brought to you by:
ian_lewis
From: <ian...@us...> - 2006-06-09 01:10:56
|
Revision: 934 Author: ian_lewis Date: 2006-06-08 18:10:53 -0700 (Thu, 08 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=934&view=rev Log Message: ----------- updated version and dependency info Modified Paths: -------------- trunk/treeview/build.xml trunk/treeview/dependency.props Modified: trunk/treeview/build.xml =================================================================== --- trunk/treeview/build.xml 2006-06-09 01:10:29 UTC (rev 933) +++ trunk/treeview/build.xml 2006-06-09 01:10:53 UTC (rev 934) @@ -34,8 +34,8 @@ <property name="javadoc.link" value="http://java.sun.com/j2se/1.3/docs/api/"/> <property name="main.class" value="treeview.TreeViewPlugin"/> <property name="major.version" value="0"/> - <property name="minor.version" value="4"/> - <property name="build.version" value="3"/> + <property name="minor.version" value="5"/> + <property name="build.version" value="1"/> <property name="app.version" value="${major.version}.${minor.version}.${build.version}"/> <property name="app_version" value="${major.version}_${minor.version}_${build.version}"/> <property name="implementation.version" value="${major.version}.${minor.version}.${build.version}"/> Modified: trunk/treeview/dependency.props =================================================================== --- trunk/treeview/dependency.props 2006-06-09 01:10:29 UTC (rev 933) +++ trunk/treeview/dependency.props 2006-06-09 01:10:53 UTC (rev 934) @@ -1 +1 @@ -dependency.0=jsxe 00.04.03.00 +dependency.0=jsxe 00.05.01.00 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-06-13 04:01:50
|
Revision: 946 Author: ian_lewis Date: 2006-06-12 21:01:41 -0700 (Mon, 12 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=946&view=rev Log Message: ----------- updated the options pane Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/DefaultView.java trunk/treeview/src/treeview/DefaultViewTree.java trunk/treeview/src/treeview/DefaultViewTreeModel.java trunk/treeview/src/treeview/TreeViewPlugin.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-06-12 20:55:58 UTC (rev 945) +++ trunk/treeview/Changelog 2006-06-13 04:01:41 UTC (rev 946) @@ -1,3 +1,9 @@ +06/13/2006 Ian Lewis <Ian...@me...> + +06/09/2006 Ian Lewis <Ian...@me...> + + * Updated version and dependency info + 02/16/2006 Ian Lewis <Ian...@me...> * Added cut/copy/paste support for nodes in the tree view. There are still Modified: trunk/treeview/src/treeview/DefaultView.java =================================================================== --- trunk/treeview/src/treeview/DefaultView.java 2006-06-12 20:55:58 UTC (rev 945) +++ trunk/treeview/src/treeview/DefaultView.java 2006-06-13 04:01:41 UTC (rev 946) @@ -31,13 +31,11 @@ //{{{ jsXe classes import net.sourceforge.jsxe.dom.*; import net.sourceforge.jsxe.dom.completion.ElementDecl; -import net.sourceforge.jsxe.jsXe; -import net.sourceforge.jsxe.DocumentBuffer; -import net.sourceforge.jsxe.ViewPlugin; -import net.sourceforge.jsxe.gui.OptionsPanel; +import net.sourceforge.jsxe.*; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.util.Log; +import net.sourceforge.jsxe.msg.PropertyChanged; //}}} //{{{ Swing components @@ -75,7 +73,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class DefaultView extends JPanel implements DocumentView { +public class DefaultView extends JPanel implements DocumentView, EBListener { //{{{ Private static members private static final Properties m_defaultProperties; @@ -219,12 +217,13 @@ });//}}} setDocumentBuffer(document); + + EditBus.addToBus(this); }//}}} //{{{ DocumentView methods //{{{ close() - public boolean close() { //m_document should only be null if setDocumentBuffer was never called. @@ -243,6 +242,8 @@ } } + EditBus.removeFromBus(this); + return true; }//}}} @@ -271,7 +272,6 @@ }//}}} //{{{ setDocumentBuffer() - public void setDocumentBuffer(DocumentBuffer document) throws IOException { try { @@ -304,7 +304,7 @@ styledDoc.addDocumentListener(docListener); //get the splitpane layout options - boolean layout = Boolean.valueOf(document.getProperty(CONTINUOUS_LAYOUT)).booleanValue(); + boolean layout = Boolean.valueOf(jsXe.getProperty(CONTINUOUS_LAYOUT)).booleanValue(); vertSplitPane.setContinuousLayout(layout); horizSplitPane.setContinuousLayout(layout); @@ -330,6 +330,21 @@ //}}} + //{{{ handleMessage() + public void handleMessage(EBMessage message) { + if (message instanceof PropertyChanged) { + String key = ((PropertyChanged)message).getKey(); + if (CONTINUOUS_LAYOUT.equals(key)) { + boolean layout = Boolean.valueOf(jsXe.getProperty(CONTINUOUS_LAYOUT)).booleanValue(); + vertSplitPane.setContinuousLayout(layout); + horizSplitPane.setContinuousLayout(layout); + } + if (CONTINUOUS_LAYOUT.equals(key) || SHOW_COMMENTS.equals(key) || SHOW_ATTRIBUTES.equals(key)) { + tree.updateUI(); + } + } + }//}}} + //{{{ getDefaultViewTree() /** * Gets the tree component for this DefaultView. @@ -367,14 +382,13 @@ }//}}} //{{{ ensureDefaultProps() - private void ensureDefaultProps(XMLDocument document) { //get default properties from jsXe - document.setProperty(CONTINUOUS_LAYOUT, document.getProperty(CONTINUOUS_LAYOUT, m_defaultProperties.getProperty(CONTINUOUS_LAYOUT))); + jsXe.setProperty(CONTINUOUS_LAYOUT, jsXe.getProperty(CONTINUOUS_LAYOUT, m_defaultProperties.getProperty(CONTINUOUS_LAYOUT))); document.setProperty(HORIZ_SPLIT_LOCATION, document.getProperty(HORIZ_SPLIT_LOCATION, m_defaultProperties.getProperty(HORIZ_SPLIT_LOCATION))); document.setProperty(VERT_SPLIT_LOCATION, document.getProperty(VERT_SPLIT_LOCATION, m_defaultProperties.getProperty(VERT_SPLIT_LOCATION))); - document.setProperty(SHOW_COMMENTS, document.getProperty(SHOW_COMMENTS, m_defaultProperties.getProperty(SHOW_COMMENTS))); - document.setProperty(SHOW_ATTRIBUTES, document.getProperty(SHOW_ATTRIBUTES, m_defaultProperties.getProperty(SHOW_ATTRIBUTES))); + jsXe.setProperty(SHOW_COMMENTS, jsXe.getProperty(SHOW_COMMENTS, m_defaultProperties.getProperty(SHOW_COMMENTS))); + jsXe.setProperty(SHOW_ATTRIBUTES, jsXe.getProperty(SHOW_ATTRIBUTES, m_defaultProperties.getProperty(SHOW_ATTRIBUTES))); // document.setProperty(SHOW_EMPTY_NODES, document.getProperty(SHOW_EMPTY_NODES, m_defaultProperties.getProperty(SHOW_EMPTY_NODES))); }//}}} @@ -577,21 +591,10 @@ };//}}} private XMLDocumentListener m_documentListener = new XMLDocumentListener() {///{{{ - //{{{ propertiesChanged + //{{{ propertiesChanged() + public void propertyChanged(XMLDocument source, String key, String oldValue) {}//}}} - public void propertyChanged(XMLDocument source, String key, String oldValue) { - if (CONTINUOUS_LAYOUT.equals(key)) { - boolean layout = Boolean.valueOf(source.getProperty(CONTINUOUS_LAYOUT)).booleanValue(); - vertSplitPane.setContinuousLayout(layout); - horizSplitPane.setContinuousLayout(layout); - } - if (CONTINUOUS_LAYOUT.equals(key) || SHOW_COMMENTS.equals(key) || SHOW_ATTRIBUTES.equals(key)) { - tree.updateUI(); - } - }//}}} - //{{{ structureChanged() - public void structureChanged(XMLDocument source, AdapterNode location) { /* need to reload since saving can change the structure, Modified: trunk/treeview/src/treeview/DefaultViewTree.java =================================================================== --- trunk/treeview/src/treeview/DefaultViewTree.java 2006-06-12 20:55:58 UTC (rev 945) +++ trunk/treeview/src/treeview/DefaultViewTree.java 2006-06-13 04:01:41 UTC (rev 946) @@ -392,7 +392,7 @@ NamedNodeMap attributes = node.getAttributes(); ElementDecl decl = node.getElementDecl(); XMLDocument document = node.getOwnerDocument(); - String showAttrs = document.getProperty(DefaultView.SHOW_ATTRIBUTES); + String showAttrs = jsXe.getProperty(DefaultView.SHOW_ATTRIBUTES); for (int i=0; i<attributes.getLength(); i++) { Node attr = attributes.item(i); ElementDecl.AttributeDecl attrDecl = (decl != null) ? decl.getAttribute(attr.getNodeName()) : null; Modified: trunk/treeview/src/treeview/DefaultViewTreeModel.java =================================================================== --- trunk/treeview/src/treeview/DefaultViewTreeModel.java 2006-06-12 20:55:58 UTC (rev 945) +++ trunk/treeview/src/treeview/DefaultViewTreeModel.java 2006-06-13 04:01:41 UTC (rev 946) @@ -32,6 +32,7 @@ */ //{{{ jsXe classes +import net.sourceforge.jsxe.jsXe; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.dom.XMLDocument; import net.sourceforge.jsxe.util.Log; @@ -246,10 +247,9 @@ }//}}} //{{{ displayNode() - private boolean displayNode(AdapterNode adapter) { - boolean showComments = Boolean.valueOf(m_document.getProperty(DefaultView.SHOW_COMMENTS, "false")).booleanValue(); - boolean showEmpty = Boolean.valueOf(m_document.getProperty(DefaultView.SHOW_EMPTY_NODES, "false")).booleanValue(); + boolean showComments = jsXe.getBooleanProperty(DefaultView.SHOW_COMMENTS, false); + boolean showEmpty = jsXe.getBooleanProperty(DefaultView.SHOW_EMPTY_NODES, false); boolean displayNode = false; if (adapter != null) { Modified: trunk/treeview/src/treeview/TreeViewPlugin.java =================================================================== --- trunk/treeview/src/treeview/TreeViewPlugin.java 2006-06-12 20:55:58 UTC (rev 945) +++ trunk/treeview/src/treeview/TreeViewPlugin.java 2006-06-13 04:01:41 UTC (rev 946) @@ -33,7 +33,7 @@ import net.sourceforge.jsxe.ViewPlugin; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.gui.DocumentView; -import net.sourceforge.jsxe.gui.OptionsPanel; +import net.sourceforge.jsxe.options.OptionPane; //}}} //{{{ Java classes @@ -49,7 +49,6 @@ public static final String PLUGIN_NAME = "tree"; //{{{ TreeViewPlugin constructor - public TreeViewPlugin() { //add actions addAction("treeview.add.element.node", new AddNodeAction("Add Element Node", "new_element", "", AdapterNode.ELEMENT_NODE)); @@ -69,15 +68,13 @@ }//}}} //{{{ newDocumentView() - public DocumentView newDocumentView(DocumentBuffer document) throws IOException { return new DefaultView(document, this); }//}}} - //{{{ getOptionsPanel() - - public OptionsPanel getOptionsPanel(DocumentBuffer buffer) { - return new DefaultViewOptionsPanel(buffer); + //{{{ getOptionPane() + public OptionPane getOptionPane(DocumentBuffer buffer) { + return new DefaultViewOptionPane(buffer); }//}}} } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-08-03 15:40:44
|
Revision: 1101 Author: ian_lewis Date: 2006-08-03 08:40:34 -0700 (Thu, 03 Aug 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=1101&view=rev Log Message: ----------- Added english tooltips for some global options Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/messages/messages Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-08-03 15:25:48 UTC (rev 1100) +++ trunk/treeview/Changelog 2006-08-03 15:40:34 UTC (rev 1101) @@ -1,3 +1,8 @@ +08/03/2006 Ian Lewis <Ian...@me...> + + * Added some English tooltip messages to the Global Options Pane for the + tree view. + 07/20/2006 Ian Lewis <Ian...@me...> * Updated actions and messages for options. Modified: trunk/treeview/messages/messages =================================================================== --- trunk/treeview/messages/messages 2006-08-03 15:25:48 UTC (rev 1100) +++ trunk/treeview/messages/messages 2006-08-03 15:40:34 UTC (rev 1101) @@ -7,8 +7,11 @@ TreeView.Options.Title=Tree View TreeView.Options.Show.Comments=Show comment nodes +TreeView.Options.Show.Comments.ToolTip=If this checkbox is checked then comment nodes will be shown in the tree. TreeView.Options.Continuous.Layout=Continuous layout for split-panes +TreeView.Options.Continuous.Layout.ToolTip=<html>If this checkbox is checked then split panes will continuously repaint as you resize them.<br>Otherwise a black line is drawn to show the resize.</html> TreeView.Options.Show.Attributes=Show element attributes in tree: +TreeView.Options.Show.Attributes.ToolTip=<html>This option specifies what attributes are shown in the tree.<ul><li><strong>None</strong> - No attrributes are shown.</li><li><strong>ID only</strong> - Only the attribute specified as the ID is shown.</li><li><strong>All</strong> - All attributes are shown.</li></ul></html> Show.Attributes.None=None Show.Attributes.ID.Only=ID only Show.Attributes.All=All This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-08-08 00:08:46
|
Revision: 1112 Author: ian_lewis Date: 2006-08-07 17:08:42 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=1112&view=rev Log Message: ----------- Moved the edit menu to jsXe core Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/DefaultView.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-08-08 00:08:19 UTC (rev 1111) +++ trunk/treeview/Changelog 2006-08-08 00:08:42 UTC (rev 1112) @@ -1,3 +1,7 @@ +08/07/2006 Ian Lewis <Ian...@me...> + + * The Edit menu has been moved to jsXe core. + 08/03/2006 Ian Lewis <Ian...@me...> * Added some English tooltip messages to the Global Options Pane for the Modified: trunk/treeview/src/treeview/DefaultView.java =================================================================== --- trunk/treeview/src/treeview/DefaultView.java 2006-08-08 00:08:19 UTC (rev 1111) +++ trunk/treeview/src/treeview/DefaultView.java 2006-08-08 00:08:42 UTC (rev 1112) @@ -163,19 +163,6 @@ // });//}}} //}}} - //{{{ Construct Edit Menu - //TODO: get the keyboard shortcuts to work, - //TODO: get cut/copy/paste to work in the right hand text window - m_editMenu = new JMenu(Messages.getMessage("Edit.Menu")); - m_editMenu.setMnemonic('E'); - JMenuItem 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); - //}}} - //{{{ Create and set up the splitpanes vertSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, treeView, attrView); vertSplitPane.setContinuousLayout(false); @@ -264,7 +251,7 @@ //{{{ getMenus() public JMenu[] getMenus() { - return new JMenu[] { m_editMenu }; + return null; }//}}} //{{{ getDocumentBuffer() @@ -531,7 +518,6 @@ private DocumentBuffer m_document; private boolean m_viewShown = false; private TreeViewPlugin m_plugin; - private JMenu m_editMenu; private EditTagDialog.ComboValueRenderer m_comboRenderer = new EditTagDialog.ComboValueRenderer(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-06-20 19:30:39
|
Revision: 967 Author: ian_lewis Date: 2006-06-20 12:30:24 -0700 (Tue, 20 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=967&view=rev Log Message: ----------- updated the treeview's actions to extend the new LocalizedAction class Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/messages/messages.en trunk/treeview/src/treeview/DefaultView.java trunk/treeview/src/treeview/TreeViewPlugin.java trunk/treeview/src/treeview/TreeViewTree.java trunk/treeview/src/treeview/action/AddAttributeAction.java trunk/treeview/src/treeview/action/AddDocTypeAction.java trunk/treeview/src/treeview/action/AddNodeAction.java trunk/treeview/src/treeview/action/CopyNodeAction.java trunk/treeview/src/treeview/action/CutNodeAction.java trunk/treeview/src/treeview/action/EditNodeAction.java trunk/treeview/src/treeview/action/PasteNodeAction.java trunk/treeview/src/treeview/action/RemoveAttributeAction.java trunk/treeview/src/treeview/action/RemoveNodeAction.java trunk/treeview/src/treeview/action/RenameNodeAction.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/Changelog 2006-06-20 19:30:24 UTC (rev 967) @@ -1,3 +1,7 @@ +06/20/2006 Ian Lewis <Ian...@me...> + + * Updated the treeview's actions to extend the new LocalizedAction class. + 06/15/2006 Ian Lewis <Ian...@me...> * Updated how properties are loaded for the tree view Modified: trunk/treeview/messages/messages.en =================================================================== --- trunk/treeview/messages/messages.en 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/messages/messages.en 2006-06-20 19:30:24 UTC (rev 967) @@ -9,11 +9,18 @@ TreeView.Options.Show.Comments=Show comment nodes TreeView.Options.Continuous.Layout=Continuous layout for split-panes TreeView.Options.Show.Attributes=Show element attributes in tree: -TreeView.RenameNode=Rename Node -TreeView.RemoveNode=Remove Node -TreeView.AddAttribute=Add Attribute -TreeView.RemoveAttribute=Remove Attribute -TreeView.EditNode=Edit Node +treeview.rename.node.label=Rename Node +treeview.remove.node.label=Remove Node +treeview.add.attribute.label=Add Attribute +treeview.remove.attribute.label=Remove Attribute +treeview.edit.node.label=Edit Node TreeView.EditDocType.Title=Edit Document Type Definition Edit.Node.Dialog.Title=Edit Node +treeview.add.doctype.node.label=Add Document Type Definition + +treeview.add.element.node.label=Add Element Node +treeview.add.text.node.label=Add Text Node +treeview.add.cdata.node.label=Add CDATA Node +treeview.add.pi.node.label=Add Processing Instruction +treeview.add.comment.node=Add Comment #}}} Modified: trunk/treeview/src/treeview/DefaultView.java =================================================================== --- trunk/treeview/src/treeview/DefaultView.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/DefaultView.java 2006-06-20 19:30:24 UTC (rev 967) @@ -106,6 +106,8 @@ m_plugin = plugin; + enableEvents(java.awt.AWTEvent.KEY_EVENT_MASK); + setLayout(new BorderLayout()); //{{{ init html editor pane @@ -166,11 +168,11 @@ //TODO: get cut/copy/paste to work in the right hand text window m_editMenu = new JMenu(Messages.getMessage("Edit.Menu")); m_editMenu.setMnemonic('E'); - JMenuItem menuItem = new JMenuItem(jsXe.getAction("treeview.cut.node")); + JMenuItem menuItem = new JMenuItem(ActionManager.getAction("treeview.cut.node")); m_editMenu.add(menuItem); - menuItem = new JMenuItem(jsXe.getAction("treeview.copy.node")); + menuItem = new JMenuItem(ActionManager.getAction("treeview.copy.node")); m_editMenu.add(menuItem); - menuItem = new JMenuItem(jsXe.getAction("treeview.paste.node")); + menuItem = new JMenuItem(ActionManager.getAction("treeview.paste.node")); m_editMenu.add(menuItem); //}}} @@ -412,12 +414,12 @@ JMenuItem popupMenuItem; popupMenuItem = new JMenuItem("Add Attribute"); - popupMenuItem.addActionListener(jsXe.getAction("treeview.add.attribute")); + popupMenuItem.addActionListener(ActionManager.getAction("treeview.add.attribute")); popup.add(popupMenuItem); if (row != attributesTable.getRowCount()-1) { popupMenuItem = new JMenuItem("Remove Attribute"); - popupMenuItem.addActionListener(jsXe.getAction("treeview.remove.attribute")); + popupMenuItem.addActionListener(ActionManager.getAction("treeview.remove.attribute")); popup.add(popupMenuItem); } popup.show(e.getComponent(), e.getX(), e.getY()); Modified: trunk/treeview/src/treeview/TreeViewPlugin.java =================================================================== --- trunk/treeview/src/treeview/TreeViewPlugin.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/TreeViewPlugin.java 2006-06-20 19:30:24 UTC (rev 967) @@ -52,20 +52,20 @@ //{{{ TreeViewPlugin constructor public TreeViewPlugin() { //add actions - addAction("treeview.add.element.node", new AddNodeAction("Add Element Node", "new_element", "", AdapterNode.ELEMENT_NODE)); - addAction("treeview.add.text.node", new AddNodeAction("Add Text Node", "", "New Text Node", AdapterNode.TEXT_NODE)); - addAction("treeview.add.cdata.node", new AddNodeAction("Add CDATA Section", "", "New CDATA Section", AdapterNode.CDATA_SECTION_NODE)); - addAction("treeview.add.processing.instruction.node", new AddNodeAction("Add Processing Instruction", "Instruction", "New Processing Instruction", AdapterNode.PROCESSING_INSTRUCTION_NODE)); - addAction("treeview.add.comment.node", new AddNodeAction("Add Comment", "", "New Comment", AdapterNode.COMMENT_NODE)); - addAction("treeview.remove.node", new RemoveNodeAction()); - addAction("treeview.rename.node", new RenameNodeAction()); - addAction("treeview.add.attribute", new AddAttributeAction()); - addAction("treeview.remove.attribute", new RemoveAttributeAction()); - addAction("treeview.edit.node", new EditNodeAction()); - addAction("treeview.add.doctype.node", new AddDocTypeAction()); - addAction("treeview.cut.node", new CutNodeAction()); - addAction("treeview.copy.node", new CopyNodeAction()); - addAction("treeview.paste.node", new PasteNodeAction()); + addAction(new AddNodeAction("treeview.add.element.node", "new_element", "", AdapterNode.ELEMENT_NODE)); + addAction(new AddNodeAction("treeview.add.text.node", "", "New Text Node", AdapterNode.TEXT_NODE)); + addAction(new AddNodeAction("treeview.add.cdata.node", "", "New CDATA Section", AdapterNode.CDATA_SECTION_NODE)); + addAction(new AddNodeAction("treeview.add.pi.node", "Instruction", "New Processing Instruction", AdapterNode.PROCESSING_INSTRUCTION_NODE)); + addAction(new AddNodeAction("treeview.add.comment.node", "", "New Comment", AdapterNode.COMMENT_NODE)); + addAction(new RemoveNodeAction()); + addAction(new RenameNodeAction()); + addAction(new AddAttributeAction()); + addAction(new RemoveAttributeAction()); + addAction(new EditNodeAction()); + addAction(new AddDocTypeAction()); + addAction(new CutNodeAction()); + addAction(new CopyNodeAction()); + addAction(new PasteNodeAction()); }//}}} //{{{ newDocumentView() Modified: trunk/treeview/src/treeview/TreeViewTree.java =================================================================== --- trunk/treeview/src/treeview/TreeViewTree.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/TreeViewTree.java 2006-06-20 19:30:24 UTC (rev 967) @@ -30,6 +30,7 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.ActionManager; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.EnhancedMenu; import net.sourceforge.jsxe.dom.*; @@ -452,11 +453,11 @@ JMenu addElement = new EnhancedMenu(Messages.getMessage("xml.element"), 20); addNodeItem.add(addElement); - addElement.add(jsXe.getAction("treeview.add.element.node")); + addElement.add(new ActionManager.Wrapper("treeview.add.element.node")); Iterator allowedElements = selectedNode.getAllowedElements().iterator(); while (allowedElements.hasNext()) { ElementDecl decl = (ElementDecl)allowedElements.next(); - addElement.add(new AddNodeAction(decl, decl.name)); + addElement.add(new ActionManager.Wrapper(new AddNodeAction(decl))); } //Add the allowed entities even if no matter what @@ -467,14 +468,14 @@ Iterator allowedEntities = ownerDocument.getAllowedEntities().iterator(); while (allowedEntities.hasNext()) { EntityDecl decl = (EntityDecl)allowedEntities.next(); - popupMenuItem = new JMenuItem(new AddNodeAction(decl.name, decl.name, decl.value, AdapterNode.ENTITY_REFERENCE_NODE)); + popupMenuItem = new JMenuItem(new ActionManager.Wrapper(new AddNodeAction(decl))); addEntity.add(popupMenuItem); } - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.text.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.add.text.node")); popupMenuItem.setText(Messages.getMessage("xml.text")); addNodeItem.add(popupMenuItem); - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.cdata.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.add.cdata.node")); popupMenuItem.setText(Messages.getMessage("xml.cdata")); addNodeItem.add(popupMenuItem); @@ -486,7 +487,7 @@ if (selectedNode.getNodeType() == Node.DOCUMENT_NODE) { if (ownerDocument.getDocType() == null) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.doctype.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.add.doctype.node")); popupMenuItem.setText(Messages.getMessage("xml.doctypedef")); addNodeItem.add(popupMenuItem); showpopup = true; @@ -494,10 +495,10 @@ } if (selectedNode.getNodeType() == Node.DOCUMENT_NODE || selectedNode.getNodeType() == Node.ELEMENT_NODE) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.processing.instruction.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.add.pi.node")); popupMenuItem.setText(Messages.getMessage("xml.processing.instruction")); addNodeItem.add(popupMenuItem); - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.comment.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.add.comment.node")); popupMenuItem.setText(Messages.getMessage("xml.comment")); addNodeItem.add(popupMenuItem); addNodeShown = true; @@ -510,13 +511,13 @@ //Add the edit node action if (selectedNode.getNodeType() == Node.ELEMENT_NODE && ownerDocument.getElementDecl(selectedNode.getNodeName()) != null) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.edit.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.edit.node")); popup.add(popupMenuItem); showpopup = true; } if (selectedNode.getNodeType() == Node.ELEMENT_NODE || selectedNode.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.rename.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.rename.node")); popup.add(popupMenuItem); showpopup = true; } @@ -526,7 +527,7 @@ !(selectedNode.getNodeType() == Node.ELEMENT_NODE && selectedNode.getParentNode().getNodeType() == Node.DOCUMENT_NODE)) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.remove.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.remove.node")); popup.add(popupMenuItem); showpopup = true; } @@ -538,15 +539,15 @@ if(!(selectedNode.getNodeType() == Node.ELEMENT_NODE && selectedNode.getParentNode().getNodeType() == Node.DOCUMENT_NODE)) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.cut.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.cut.node")); popup.add(popupMenuItem); } - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.copy.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.copy.node")); popup.add(popupMenuItem); if (selectedNode.getNodeType() == Node.ELEMENT_NODE) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.paste.node")); + popupMenuItem = new JMenuItem(ActionManager.getAction("treeview.paste.node")); popup.add(popupMenuItem); } showpopup = true; Modified: trunk/treeview/src/treeview/action/AddAttributeAction.java =================================================================== --- trunk/treeview/src/treeview/action/AddAttributeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/AddAttributeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -31,10 +31,11 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.DocumentView; - +import net.sourceforge.jsxe.gui.TabbedView; //}}} //{{{ AWT classes @@ -55,20 +56,18 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class AddAttributeAction extends AbstractAction { +public class AddAttributeAction extends LocalizedAction { //{{{ AddAttributeAction contructor - public AddAttributeAction() { - putValue(Action.NAME, Messages.getMessage("TreeView.AddAttribute")); + super("treeview.add.attribute"); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); AdapterNode selectedNode = tree.getSelectedNode(); if (selectedNode != null && selectedNode.getNodeType() == AdapterNode.ELEMENT_NODE) { Modified: trunk/treeview/src/treeview/action/AddDocTypeAction.java =================================================================== --- trunk/treeview/src/treeview/action/AddDocTypeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/AddDocTypeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -43,6 +43,7 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.DocumentBuffer; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.EnhancedDialog; @@ -63,27 +64,27 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class AddDocTypeAction extends AbstractAction { +public class AddDocTypeAction extends LocalizedAction { //{{{ AddDocTypeAction constructor /** * Creates a action that adds a new document type node. */ - public AddDocTypeAction() {}//}}} + public AddDocTypeAction() { + super("treeview.add.doctype.node"); + }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - TabbedView tabbedview = jsXe.getActiveView(); - DocumentView view = tabbedview.getDocumentView(); - if (view instanceof DefaultView) { - m_defView = (DefaultView)view; + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + m_defView = (DefaultView)docView; m_tree = m_defView.getTree(); /* Show a dialog to prompt for name and PUBLIC and SYSTEM identifiers. */ - EditDocTypeDialog dialog = new EditDocTypeDialog(tabbedview, null, null, null); + EditDocTypeDialog dialog = new EditDocTypeDialog(view, null, null, null); } }//}}} Modified: trunk/treeview/src/treeview/action/AddNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/AddNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/AddNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -49,9 +49,12 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.dom.completion.ElementDecl; +import net.sourceforge.jsxe.dom.completion.EntityDecl; //}}} //}}} @@ -62,51 +65,63 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class AddNodeAction extends AbstractAction { +public class AddNodeAction extends LocalizedAction { //{{{ AddNodeAction constructor /** + * Crates an action that adds an element node based on the specified + * element declaration. When adding a node using an ElementDecl + * an EditTagDialog will be displayed. + * @param element the declaration specifying the information for this node. + */ + public AddNodeAction(ElementDecl element) { + super(element.name); // not to be registed with the ActionManager + init(element.name, null, AdapterNode.ELEMENT_NODE); + m_element = element; + }//}}} + + //{{{ AddNodeAction constructor + /** + * Crates an action that adds an entity reference node based on the specified + * entity declaration. + * @param entity the declaration specifying the information for this node. + */ + public AddNodeAction(EntityDecl entity) { + super(entity.name); // not to be registed with the ActionManager + init(entity.name, entity.value, AdapterNode.ENTITY_REFERENCE_NODE); + m_entity = entity; + }//}}} + + //{{{ AddNodeAction constructor + /** * Creates a action that adds a new node of the specified type and values * to the current selected node in the tree. - * @param displayName the human readable name that is displayed for this action - * @param nodeName the name of the node. This can be null if applicable + * @param name the name of the action. + * @param nodeName the qualified name of the node to add. This can be null if applicable * @param nodeValue the value of the node. This can be null if applicable * @param nodeType the type of the node. Use the values specified by the org.w3c.dom.Node class */ - public AddNodeAction(String displayName, String nodeName, String nodeValue, short nodeType) { - init(nodeName, nodeValue, displayName, nodeType); + public AddNodeAction(String name, String nodeName, String nodeValue, short nodeType) { + super(name); + init(nodeName, nodeValue, nodeType); }//}}} - - //{{{ AddNodeAction constructor - /** - * Crates an action that adds an element node based on the specified - * element declaration. When adding a node using an ElementDecl - * an EditTagDialog will be displayed. - * @param element the declaration specifying the information for this node. - * @param - */ - public AddNodeAction(ElementDecl element, String displayName) { - init(element.name, "", displayName, AdapterNode.ELEMENT_NODE); - m_m_element = element; - }//}}} - - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); AdapterNode selectedNode = tree.getSelectedNode(); AdapterNode addedNode = null; if (selectedNode != null) { try { - if (m_m_element != null) { + if (m_element != null) { EditTagDialog dialog = new EditTagDialog(jsXe.getActiveView(), - m_m_element, + m_element, new HashMap(), - m_m_element.empty, - m_m_element.completionInfo.getEntityHash(), + m_element.empty, + m_element.completionInfo.getEntityHash(), new ArrayList(), //don't support IDs for now. selectedNode.getOwnerDocument()); dialog.show(); @@ -125,23 +140,35 @@ } } }//}}} - + + //{{{ getLabel() + public String getLabel() { + if (m_element != null) { + return m_element.name; + } else { + if (m_entity != null) { + return m_entity.name; + } else { + return super.getLabel(); + } + } + }//}}} + //{{{ Private members - + //{{{ init() - - private void init(String qualifiedName, String value, String actionTitle, short nodeType) { - m_name = qualifiedName; + public void init(String name, String value, short type) { + m_name = name; m_value = value; - m_nodeType = nodeType; - putValue(Action.NAME, actionTitle); + m_nodeType = type; }//}}} - + private short m_nodeType; private String m_name; private String m_value; - private ElementDecl m_m_element; + private ElementDecl m_element; + private EntityDecl m_entity; //}}} - + } Modified: trunk/treeview/src/treeview/action/CopyNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/CopyNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/CopyNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -43,8 +43,10 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.util.Log; //}}} @@ -58,7 +60,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class CopyNodeAction extends AbstractAction { +public class CopyNodeAction extends LocalizedAction { //{{{ CopyNodeAction constructor /** @@ -66,18 +68,20 @@ * the clipboard. */ public CopyNodeAction() { - putValue(Action.NAME, Messages.getMessage("common.copy")); - putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl C")); - putValue(Action.MNEMONIC_KEY, new Integer(KeyStroke.getKeyStroke("O").getKeyCode())); + super("treeview.copy.node"); + // putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl C")); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - Log.log(Log.DEBUG, this, "copy"); - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ getLabel() + public String getLabel() { + return Messages.getMessage("common.copy"); + }//}}} + + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); tree.copy(); } Modified: trunk/treeview/src/treeview/action/CutNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/CutNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/CutNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -48,8 +48,10 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.util.Log; //}}} @@ -63,7 +65,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class CutNodeAction extends AbstractAction { +public class CutNodeAction extends LocalizedAction { //{{{ CutNodeAction constructor /** @@ -71,18 +73,20 @@ * the clipboard. */ public CutNodeAction() { - putValue(Action.NAME, Messages.getMessage("common.cut")); - putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl X")); - putValue(Action.MNEMONIC_KEY, new Integer(KeyStroke.getKeyStroke("C").getKeyCode())); + super("treeview.cut.node"); + // putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl X")); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - Log.log(Log.DEBUG, this, "cut"); - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ getLabel() + public String getLabel() { + return Messages.getMessage("common.cut"); + }//}}} + + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); try { tree.cut(); Modified: trunk/treeview/src/treeview/action/EditNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/EditNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/EditNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -49,8 +49,10 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.dom.completion.ElementDecl; //}}} @@ -63,7 +65,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class EditNodeAction extends AbstractAction { +public class EditNodeAction extends LocalizedAction { //{{{ EditNodeAction constructor /** @@ -71,15 +73,14 @@ * Node */ public EditNodeAction() { - putValue(Action.NAME, Messages.getMessage("TreeView.EditNode")); + super("treeview.edit.node"); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); AdapterNode selectedNode = tree.getSelectedNode(); AdapterNode addedNode = null; @@ -109,4 +110,3 @@ }//}}} } - Modified: trunk/treeview/src/treeview/action/PasteNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/PasteNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/PasteNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -48,8 +48,10 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.util.Log; //}}} @@ -63,7 +65,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class PasteNodeAction extends AbstractAction { +public class PasteNodeAction extends LocalizedAction { //{{{ PasteNodeAction constructor /** @@ -71,18 +73,20 @@ * selected node in the tree. */ public PasteNodeAction() { - putValue(Action.NAME, Messages.getMessage("common.paste")); - putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl V")); - putValue(Action.MNEMONIC_KEY, new Integer(KeyStroke.getKeyStroke("P").getKeyCode())); + super("treeview.paste.node"); + // putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl V")); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - Log.log(Log.DEBUG, this, "paste"); - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ getLabel() + public String getLabel() { + return Messages.getMessage("common.paste"); + }//}}} + + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); try { tree.paste(); Modified: trunk/treeview/src/treeview/action/RemoveAttributeAction.java =================================================================== --- trunk/treeview/src/treeview/action/RemoveAttributeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/RemoveAttributeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -29,12 +29,12 @@ import treeview.*; //{{{ jsXe classes - import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.DocumentView; - +import net.sourceforge.jsxe.gui.TabbedView; //}}} //{{{ AWT classes @@ -55,20 +55,18 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class RemoveAttributeAction extends AbstractAction { +public class RemoveAttributeAction extends LocalizedAction { //{{{ RemoveAttributeAction constructor - public RemoveAttributeAction() { - putValue(Action.NAME, Messages.getMessage("TreeView.RemoveAttribute")); + super("treeview.remove.attribute"); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); AdapterNode selectedNode = tree.getSelectedNode(); if (selectedNode != null && selectedNode.getNodeType() == AdapterNode.ELEMENT_NODE) { Modified: trunk/treeview/src/treeview/action/RemoveNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/RemoveNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/RemoveNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -24,40 +24,53 @@ package treeview.action; +//{{{ imports + +import treeview.*; + +//{{{ AWT classes import java.awt.event.ActionEvent; +//}}} + +//{{{ Swing classes import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JOptionPane; +//}}} +//{{{ DOM classes import org.w3c.dom.DOMException; +//}}} -import treeview.*; +//{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; +//}}} +//}}} + /** * An action that removes the current selected node from the tree. * * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class RemoveNodeAction extends AbstractAction { +public class RemoveNodeAction extends LocalizedAction { //{{{ RemoveNodeAction constructor - public RemoveNodeAction() { - putValue(Action.NAME, Messages.getMessage("TreeView.RemoveNode")); + super("treeview.remove.node"); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - - DefaultView defView = (DefaultView)view; + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); AdapterNode selectedNode = tree.getSelectedNode(); if (selectedNode != null) { Modified: trunk/treeview/src/treeview/action/RenameNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/RenameNodeAction.java 2006-06-20 19:29:38 UTC (rev 966) +++ trunk/treeview/src/treeview/action/RenameNodeAction.java 2006-06-20 19:30:24 UTC (rev 967) @@ -24,37 +24,48 @@ package treeview.action; +//{{{ imports + +import treeview.*; + +//{{{ AWT classes import java.awt.event.ActionEvent; +//}}} + +//{{{ Swing classes import javax.swing.AbstractAction; import javax.swing.Action; +//}}} -import treeview.*; +//{{{ jsXe classes import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.LocalizedAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.dom.AdapterNode; +//}}} +//}}} + /** * An action that starts editing in the tree at the current selected node. * * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class RenameNodeAction extends AbstractAction { +public class RenameNodeAction extends LocalizedAction { //{{{ RenameNodeAction constructor - public RenameNodeAction() { - // putValue(Action.NAME, "Rename Node"); - putValue(Action.NAME, Messages.getMessage("TreeView.RenameNode")); + super("treeview.rename.node"); }//}}} - //{{{ actionPerformed() - - public void actionPerformed(ActionEvent e) { - DocumentView view = jsXe.getActiveView().getDocumentView(); - if (view instanceof DefaultView) { - DefaultView defView = (DefaultView)view; + //{{{ invoke() + public void invoke(TabbedView view, ActionEvent evt) { + DocumentView docView = view.getDocumentView(); + if (docView instanceof DefaultView) { + DefaultView defView = (DefaultView)docView; TreeViewTree tree = defView.getTree(); AdapterNode selectedNode = tree.getSelectedNode(); if (selectedNode != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-06-21 18:59:17
|
Revision: 972 Author: ian_lewis Date: 2006-06-21 11:59:12 -0700 (Wed, 21 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=972&view=rev Log Message: ----------- Updated the package for EnhancedMenu Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/TreeViewTree.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-06-21 18:58:00 UTC (rev 971) +++ trunk/treeview/Changelog 2006-06-21 18:59:12 UTC (rev 972) @@ -1,3 +1,8 @@ +06/21/2006 Ian Lewis <Ian...@me...> + + * Updated TreeViewTree to use the new package for EnhancedMenu so it + compiles properly. + 06/20/2006 Ian Lewis <Ian...@me...> * Updated the treeview's actions to extend the new LocalizedAction class. Modified: trunk/treeview/src/treeview/TreeViewTree.java =================================================================== --- trunk/treeview/src/treeview/TreeViewTree.java 2006-06-21 18:58:00 UTC (rev 971) +++ trunk/treeview/src/treeview/TreeViewTree.java 2006-06-21 18:59:12 UTC (rev 972) @@ -32,7 +32,7 @@ import net.sourceforge.jsxe.jsXe; import net.sourceforge.jsxe.ActionManager; import net.sourceforge.jsxe.gui.Messages; -import net.sourceforge.jsxe.gui.EnhancedMenu; +import net.sourceforge.jsxe.gui.menu.*; import net.sourceforge.jsxe.dom.*; import net.sourceforge.jsxe.dom.completion.*; import net.sourceforge.jsxe.util.Log; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-06-23 19:40:05
|
Revision: 977 Author: ian_lewis Date: 2006-06-23 12:39:58 -0700 (Fri, 23 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=977&view=rev Log Message: ----------- Added back key bindings Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/action/CopyNodeAction.java trunk/treeview/src/treeview/action/PasteNodeAction.java trunk/treeview/src/treeview/treeview.props Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-06-23 19:35:33 UTC (rev 976) +++ trunk/treeview/Changelog 2006-06-23 19:39:58 UTC (rev 977) @@ -1,3 +1,9 @@ +06/23/2006 Ian Lewis <Ian...@me...> + + * Added back rudimentary key bindings using Swing Actions so they get + dispached by Swing and are displayed in menus. But infrastructure is + in place to allow jsXe to catch key bindings itself. + 06/21/2006 Ian Lewis <Ian...@me...> * Updated TreeViewTree to use the new package for EnhancedMenu so it Modified: trunk/treeview/src/treeview/action/CopyNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/CopyNodeAction.java 2006-06-23 19:35:33 UTC (rev 976) +++ trunk/treeview/src/treeview/action/CopyNodeAction.java 2006-06-23 19:39:58 UTC (rev 977) @@ -69,7 +69,6 @@ */ public CopyNodeAction() { super("treeview.copy.node"); - // putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl C")); }//}}} //{{{ getLabel() Modified: trunk/treeview/src/treeview/action/PasteNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/PasteNodeAction.java 2006-06-23 19:35:33 UTC (rev 976) +++ trunk/treeview/src/treeview/action/PasteNodeAction.java 2006-06-23 19:39:58 UTC (rev 977) @@ -74,7 +74,6 @@ */ public PasteNodeAction() { super("treeview.paste.node"); - // putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl V")); }//}}} //{{{ getLabel() Modified: trunk/treeview/src/treeview/treeview.props =================================================================== --- trunk/treeview/src/treeview/treeview.props 2006-06-23 19:35:33 UTC (rev 976) +++ trunk/treeview/src/treeview/treeview.props 2006-06-23 19:39:58 UTC (rev 977) @@ -20,3 +20,9 @@ #default size for edit doc type dialog treeview.editdoctypenode.width=200 treeview.editdoctypenode.height=100 + +#{{{ Default key bindings +treeview.copy.node.shortcut=ctrl C +treeview.cut.node.shortcut=ctrl X +treeview.paste.node.shortcut=ctrl V +#}}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-06-25 17:23:07
|
Revision: 979 Author: ian_lewis Date: 2006-06-25 10:23:01 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=979&view=rev Log Message: ----------- Feature Request 1494444: updated so that if no attributes are defined then the edit node dialog is not displayed Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/action/AddNodeAction.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-06-23 19:44:35 UTC (rev 978) +++ trunk/treeview/Changelog 2006-06-25 17:23:01 UTC (rev 979) @@ -1,3 +1,9 @@ +06/25/2006 Ian Lewis <Ian...@me...> + + * Feature Request 1494444: Updated the tree view so that if no attributes + are defined in the Schema/DTD for the element then the Edit Node dialog + will not be displayed. + 06/23/2006 Ian Lewis <Ian...@me...> * Added back rudimentary key bindings using Swing Actions so they get Modified: trunk/treeview/src/treeview/action/AddNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/AddNodeAction.java 2006-06-23 19:44:35 UTC (rev 978) +++ trunk/treeview/src/treeview/action/AddNodeAction.java 2006-06-25 17:23:01 UTC (rev 979) @@ -117,15 +117,19 @@ if (selectedNode != null) { try { if (m_element != null) { - EditTagDialog dialog = new EditTagDialog(jsXe.getActiveView(), - m_element, - new HashMap(), - m_element.empty, - m_element.completionInfo.getEntityHash(), - new ArrayList(), //don't support IDs for now. - selectedNode.getOwnerDocument()); - dialog.show(); - addedNode = selectedNode.addAdapterNode(dialog.getNewNode()); + if (m_element.getAttributes().size() > 0) { + EditTagDialog dialog = new EditTagDialog(jsXe.getActiveView(), + m_element, + new HashMap(), + m_element.empty, + m_element.completionInfo.getEntityHash(), + new ArrayList(), //don't support IDs for now. + selectedNode.getOwnerDocument()); + dialog.show(); + addedNode = selectedNode.addAdapterNode(dialog.getNewNode()); + } else { + addedNode = selectedNode.addAdapterNode(m_element.name, null, AdapterNode.ELEMENT_NODE, selectedNode.childCount()); + } } else { //add the node of the correct type to the end of the children of this node addedNode = selectedNode.addAdapterNode(m_name, m_value, m_nodeType, selectedNode.childCount()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-06-13 18:06:37
|
Revision: 950 Author: ian_lewis Date: 2006-06-13 11:06:18 -0700 (Tue, 13 Jun 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=950&view=rev Log Message: ----------- Renamed DefaultViewTree to TreeViewTree Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/DefaultView.java trunk/treeview/src/treeview/DefaultViewTreeModel.java trunk/treeview/src/treeview/NodeTransferHandler.java trunk/treeview/src/treeview/TransferableNode.java trunk/treeview/src/treeview/TreeViewPlugin.java trunk/treeview/src/treeview/action/AddAttributeAction.java trunk/treeview/src/treeview/action/AddDocTypeAction.java trunk/treeview/src/treeview/action/AddNodeAction.java trunk/treeview/src/treeview/action/CopyNodeAction.java trunk/treeview/src/treeview/action/CutNodeAction.java trunk/treeview/src/treeview/action/EditNodeAction.java trunk/treeview/src/treeview/action/PasteNodeAction.java trunk/treeview/src/treeview/action/RemoveAttributeAction.java trunk/treeview/src/treeview/action/RemoveNodeAction.java trunk/treeview/src/treeview/action/RenameNodeAction.java Added Paths: ----------- trunk/treeview/src/treeview/TreeViewTree.java Removed Paths: ------------- trunk/treeview/src/treeview/DefaultViewTree.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/Changelog 2006-06-13 18:06:18 UTC (rev 950) @@ -1,6 +1,7 @@ 06/13/2006 Ian Lewis <Ian...@me...> * Updated the options pane extend AbstractOptionPane + * Renamed the DefaultViewTree to TreeViewTree 06/09/2006 Ian Lewis <Ian...@me...> Modified: trunk/treeview/src/treeview/DefaultView.java =================================================================== --- trunk/treeview/src/treeview/DefaultView.java 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/src/treeview/DefaultView.java 2006-06-13 18:06:18 UTC (rev 950) @@ -345,12 +345,12 @@ } }//}}} - //{{{ getDefaultViewTree() + //{{{ getTree() /** * Gets the tree component for this DefaultView. * @return the tree component */ - public DefaultViewTree getDefaultViewTree() { + public TreeViewTree getTree() { return tree; }//}}} @@ -538,7 +538,7 @@ }//}}} - private DefaultViewTree tree = new DefaultViewTree(); + private TreeViewTree tree = new TreeViewTree(); private JTextArea m_valueTextArea = new JTextArea(""); private DefaultViewTable attributesTable = new DefaultViewTable(); private JSplitPane vertSplitPane; Deleted: trunk/treeview/src/treeview/DefaultViewTree.java =================================================================== --- trunk/treeview/src/treeview/DefaultViewTree.java 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/src/treeview/DefaultViewTree.java 2006-06-13 18:06:18 UTC (rev 950) @@ -1,1121 +0,0 @@ -/* -DefaultViewTree.java -:tabSize=4:indentSize=4:noTabs=true: -:folding=explicit:collapseFolds=1: - -jsXe is the Java Simple XML Editorh -jsXe is a gui application that can edit an XML document and create a tree view. -The user can then edit this tree and the content in the tree and save the -document. - -This file contains the tree class that is used in the default view. - -This file written by Ian Lewis (Ian...@me...) -Copyright (C) 2002 Ian Lewis - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -Optionally, you may find a copy of the GNU General Public License -from http://www.fsf.org/copyleft/gpl.txt -*/ - -package treeview; - -//{{{ imports - -import treeview.action.AddNodeAction; - -//{{{ jsXe classes -import net.sourceforge.jsxe.jsXe; -import net.sourceforge.jsxe.gui.Messages; -import net.sourceforge.jsxe.gui.EnhancedMenu; -import net.sourceforge.jsxe.dom.*; -import net.sourceforge.jsxe.dom.completion.*; -import net.sourceforge.jsxe.util.Log; -//}}} - -//{{{ Swing components -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.tree.*; -//}}} - -//{{{ AWT components -import java.awt.*; -import java.awt.datatransfer.*; -import java.awt.dnd.*; -import java.awt.event.*; -//}}} - -//{{{ DOM classes -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.DOMException; -import org.w3c.dom.Node; -//}}} - -//{{{ Java base classes -import java.io.IOException; -import java.util.*; -//}}} - -//}}} - -/** - * The DefaultViewTree is the tree that is displayed in the upper-left of - * the DefaultView in jsXe. This class defines methods specific to the tree - * display. - * - * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) - * @version $Id$ - * @see DefaultView - */ -public class DefaultViewTree extends JTree implements Autoscroll, ClipboardOwner { - - //{{{ Properties - private final String NODE_EXPANDED = "tree.expandedstate"; - //}}} - - //{{{ DefaultViewTree constructor - /** - * Creates a new DefaultViewTree with the default TreeModel - */ - public DefaultViewTree() { - - //{{{ intitalize Drag n Drop - m_dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_MOVE, m_treeDGListener); - m_dropTarget = new DropTarget(this, m_acceptableActions, m_treeDTListener, true); - //}}} - - addMouseListener(new TreePopupListener()); - setEditable(false); - addTreeExpansionListener(new TreeExpansionListener() {//{{{ - - //{{{ treeExpanded() - - public void treeExpanded(TreeExpansionEvent event) { - try { - AdapterNode node = (AdapterNode)event.getPath().getLastPathComponent(); - node.setProperty(NODE_EXPANDED, "true"); - } catch (ClassCastException e) {} - }//}}} - - //{{{ treeCollapsed() - - public void treeCollapsed(TreeExpansionEvent event) { - try { - AdapterNode node = (AdapterNode)event.getPath().getLastPathComponent(); - node.setProperty(NODE_EXPANDED, "false"); - } catch (ClassCastException e) {} - }//}}} - - });//}}} - - getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - - DefaultViewTreeCellRenderer renderer = new DefaultViewTreeCellRenderer(); - setCellRenderer(renderer); - - //Since elements are the only editable nodes... - renderer = new DefaultViewTreeCellRenderer(); - setCellEditor(new DefaultTreeCellEditor(this, renderer, new ElementCellEditor(this, renderer))); - - - ToolTipManager.sharedInstance().registerComponent(this); - - }//}}} - - //{{{ isEditable() - /** - * Indicates if a node is capable of being edited in - * this tree. - * @param node the node to check - * @return true if the node can be edited in this tree - */ - public boolean isEditable(AdapterNode node) { - if (node != null) { - int nodeType = node.getNodeType(); - return (nodeType == Node.ELEMENT_NODE || nodeType == Node.PROCESSING_INSTRUCTION_NODE); - } else { - return false; - } - }//}}} - - //{{{ isExpanded() - - public boolean isExpanded(AdapterNode node) { - return Boolean.valueOf(node.getProperty(NODE_EXPANDED)).booleanValue(); - }//}}} - - //{{{ startEditingAtPath() - - public void startEditingAtPath(TreePath path) { - if (path != null && isEditable((AdapterNode)path.getLastPathComponent())) { - //When editing is finished go back to uneditable - getCellEditor().addCellEditorListener(new CellEditorListener() {//{{{ - public void editingCanceled(ChangeEvent e) { - setEditable(false); - getCellEditor().removeCellEditorListener(this); - } - public void editingStopped(ChangeEvent e) { - setEditable(false); - getCellEditor().removeCellEditorListener(this); - } - });//}}} - setEditable(true); - super.startEditingAtPath(path); - } - }//}}} - - //{{{ getSelectedNode() - /** - * Gets the current node that is selected for editing. - * @return the current selected node or null if no node is selected. - */ - public AdapterNode getSelectedNode() { - TreePath selPath = getLeadSelectionPath(); - AdapterNode selectedNode = null; - if (selPath != null) { - selectedNode = (AdapterNode)selPath.getLastPathComponent(); - } - return selectedNode; - }//}}} - - //{{{ cut() - /** - * Cuts the currently selected node out of the tree and places it in the - * clipboard. - * @return true if the node was successfully cut - * @throws DOMException if the node cannot be removed from the tree. - */ - public boolean cut() throws DOMException { - AdapterNode selectedNode = getSelectedNode(); - Clipboard clipBoard = getToolkit().getSystemClipboard(); - if (selectedNode != null) { - try { - clipBoard.setContents(new TransferableNode(selectedNode), this); - selectedNode.getParentNode().remove(selectedNode); - updateUI(); - return true; - } catch (IllegalStateException e) { - Log.log(Log.ERROR, this, e); - } catch (HeadlessException e) { - Log.log(Log.ERROR, this, e); - } catch (DOMException e) { - clipBoard.setContents(null, this); - throw e; - } - } - return false; - }//}}} - - //{{{ copy() - /** - * Copies the currently selected node to the clipboard. - * @return true if the node was copied successfully - */ - public boolean copy() { - AdapterNode selectedNode = getSelectedNode(); - if (selectedNode != null) { - try { - Clipboard clipBoard = getToolkit().getSystemClipboard(); - AdapterNode newNode = selectedNode.copy(true); - clipBoard.setContents(new TransferableNode(newNode), this); - return true; - } catch (IllegalStateException e) { - Log.log(Log.ERROR, this, e); - } catch (HeadlessException e) { - Log.log(Log.ERROR, this, e); - } - } - return false; - }//}}} - - //{{{ paste() - /** - * Pastes the contents of the clipboard into the currently selected node - * in the document tree. - * @return true if the node was pasted successfully - * @throws DOMException if the node cannot be inserted in the current - * location. - */ - public boolean paste() throws DOMException { - AdapterNode selectedNode = getSelectedNode(); - if (selectedNode != null) { - try { - Clipboard clipBoard = getToolkit().getSystemClipboard(); - Transferable contents = clipBoard.getContents(this); - if (contents != null) { - if (contents.isDataFlavorSupported(TransferableNode.nodeFlavor)) { - AdapterNode node = (AdapterNode)contents.getTransferData(TransferableNode.nodeFlavor); - TreePath pastePath = getLeadSelectionPath(); - selectedNode.addAdapterNode(node); - - //reset the clipboard - StringSelection sel = new StringSelection(""); - clipBoard.setContents(sel, sel); - - refreshExpandedStates(pastePath); - addSelectionPath(pastePath.pathByAddingChild(node)); - updateUI(); - return true; - } - } - } catch (IllegalStateException e) { - Log.log(Log.ERROR, this, e); - } catch (HeadlessException e) { - Log.log(Log.ERROR, this, e); - } catch (UnsupportedFlavorException e) { - Log.log(Log.ERROR, this, e); - } catch (IOException e) { - Log.log(Log.ERROR, this, e); - } - } - return false; - }//}}} - - //{{{ Autoscroll methods - - //{{{ autoscroll() - - public void autoscroll(Point cursorLocn) { - int row = getClosestRowForLocation(cursorLocn.x, cursorLocn.y); - - if (row < 0) { - return; - } - - Rectangle bounds = getBounds(); - - if (cursorLocn.y + bounds.y <= m_AUTOSCROLL_MARGIN) { - if (row <= 0) { - row = 0; - } else { - row -=1; - } - } else { - if (row < getRowCount() - 1) { - row += 1; - } - } - scrollRowToVisible(row); - }//}}} - - //{{{ getAutoscrollInsets() - - public Insets getAutoscrollInsets() { - - Rectangle outerBounds = getBounds(); - Rectangle innerBounds = getParent().getBounds(); - int top = innerBounds.y - outerBounds.y + m_AUTOSCROLL_MARGIN; - int left = innerBounds.x - outerBounds.x + m_AUTOSCROLL_MARGIN; - int bottom = outerBounds.height - innerBounds.height - innerBounds.y + outerBounds.y + m_AUTOSCROLL_MARGIN; - int right = outerBounds.width - innerBounds.width - innerBounds.x + outerBounds.y + m_AUTOSCROLL_MARGIN; - return new Insets(top, left, bottom, right); - }//}}} - - //}}} - - //{{{ ClipboardOwner methods - - //{{{ lostOwnership() - - public void lostOwnership(Clipboard clipboard, Transferable contents) { - // Nothing right now. - }//}}} - - //}}} - - //{{{ Private static members - private static final ImageIcon m_elementIcon = new ImageIcon(DefaultView.class.getResource("/net/sourceforge/jsxe/icons/Element.png"), "Element"); - private static final ImageIcon m_textIcon = new ImageIcon(DefaultView.class.getResource("/net/sourceforge/jsxe/icons/Text.png"), "Text"); - private static final ImageIcon m_CDATAIcon = new ImageIcon(DefaultView.class.getResource("/net/sourceforge/jsxe/icons/CDATA.png"), "CDATA"); - private static final ImageIcon m_commentIcon = new ImageIcon(DefaultView.class.getResource("/net/sourceforge/jsxe/icons/Comment.png"), "Comment"); - // private static final ImageIcon m_externalEntityIcon = new ImageIcon(DefaultView.class.getResource("/net/sourceforge/jsxe/icons/ExternalEntity.png"), "External Entity"); - private static final ImageIcon m_internalEntityIcon = new ImageIcon(DefaultView.class.getResource("/net/sourceforge/jsxe/icons/InternalEntity.png"), "Internal Entity"); - - private static final int m_AUTOSCROLL_MARGIN = 12; - //}}} - - //{{{ Private members - - //{{{ refreshExpandedStates() - /** - * Refreshes the expanded states of all the node pointed to by - * the treepath and all nodes below it. Used after a drag and - * drop is done because the JTree uses TreePaths to keep track - * of expanded states. When a drag and drop is done the - * path is broken and the expanded states are lost. - */ - private void refreshExpandedStates(TreePath path) { - AdapterNode node = (AdapterNode)path.getLastPathComponent(); - boolean expandedState = isExpanded(node); - if (node.childCount() > 0) { - expandPath(path); //expand all nodes out - //still have to set expanded states - int children = node.childCount(); - for (int i=0;i < children; i++) { - TreePath newPath = path.pathByAddingChild(node.child(i)); - refreshExpandedStates(newPath); - } - if (expandedState) { //close non-expanded nodes - expandPath(path); - } else { - collapsePath(path); - } - } - }//}}} - - //{{{ toString() - /** - * Creates the string that will be displayed in the tree node - * @param showattrs "ID only", "All" or "None" - */ - private static String toString(AdapterNode node) { - StringBuffer s = new StringBuffer(); - if (node.getNodeType() == Node.DOCUMENT_NODE) - return "Document Root"; - String nodeName = node.getNodeName(); - if (! nodeName.startsWith("#")) { - s.append(nodeName); - if (node.getNodeType() == AdapterNode.ELEMENT_NODE) { - NamedNodeMap attributes = node.getAttributes(); - ElementDecl decl = node.getElementDecl(); - XMLDocument document = node.getOwnerDocument(); - String showAttrs = jsXe.getProperty(DefaultView.SHOW_ATTRIBUTES); - for (int i=0; i<attributes.getLength(); i++) { - Node attr = attributes.item(i); - ElementDecl.AttributeDecl attrDecl = (decl != null) ? decl.getAttribute(attr.getNodeName()) : null; - if (showAttrs.equals("All") || - (showAttrs.equals("ID only") && - ((attr.getNodeName().equalsIgnoreCase("id") || - (attrDecl != null && attrDecl.type.equals("ID")))))) - { - s.append(' '+attr.getNodeName() + "=\"" + attr.getNodeValue() + '"'); - } - } - } - } - if (s.length()==0) { - if (node.getNodeValue() != null) { - String t = node.getNodeValue().trim(); - int x = t.indexOf("\n"); - if (x >= 0) { - t = t.substring(0, x); - } - if (t.length() > 50) { - t = t.substring(0, 50) + "..."; - } - s.append(t); - } - } - return s.toString(); - }//}}} - - //{{{ TreePopupListener class - //TODO: rework this class - private class TreePopupListener extends MouseAdapter { - - //{{{ mousePressed() - - public void mousePressed(MouseEvent e) { - maybeShowPopup(e); - }//}}} - - //{{{ mouseReleased() - - public void mouseReleased(MouseEvent e) { - maybeShowPopup(e); - }//}}} - - //{{{ maybeShowPopup() - - private void maybeShowPopup(MouseEvent e) { - TreePath selPath = getPathForLocation(e.getX(), e.getY()); - if (e.isPopupTrigger() && selPath != null) { - setSelectionPath(selPath); - - //Don't want to interact with AdapterNodes too much. Maybe change this. - AdapterNode selectedNode = ((AdapterNode)selPath.getLastPathComponent()); - XMLDocument ownerDocument = selectedNode.getOwnerDocument(); - - JMenuItem popupMenuItem; - JMenu addNodeItem = new JMenu(Messages.getMessage("common.add")); - JPopupMenu popup = new JPopupMenu(); - boolean showpopup = false; - boolean addNodeShown = false; - - if (selectedNode.getNodeType() == Node.ELEMENT_NODE) { - - JMenu addElement = new EnhancedMenu(Messages.getMessage("xml.element"), 20); - addNodeItem.add(addElement); - - addElement.add(jsXe.getAction("treeview.add.element.node")); - Iterator allowedElements = selectedNode.getAllowedElements().iterator(); - while (allowedElements.hasNext()) { - ElementDecl decl = (ElementDecl)allowedElements.next(); - addElement.add(new AddNodeAction(decl, decl.name)); - } - - //Add the allowed entities even if no matter what - - JMenu addEntity = new EnhancedMenu(Messages.getMessage("xml.entity.reference"), 20); - addNodeItem.add(addEntity); - - Iterator allowedEntities = ownerDocument.getAllowedEntities().iterator(); - while (allowedEntities.hasNext()) { - EntityDecl decl = (EntityDecl)allowedEntities.next(); - popupMenuItem = new JMenuItem(new AddNodeAction(decl.name, decl.name, decl.value, AdapterNode.ENTITY_REFERENCE_NODE)); - addEntity.add(popupMenuItem); - } - - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.text.node")); - popupMenuItem.setText(Messages.getMessage("xml.text")); - addNodeItem.add(popupMenuItem); - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.cdata.node")); - popupMenuItem.setText(Messages.getMessage("xml.cdata")); - addNodeItem.add(popupMenuItem); - - // popupMenuItem = new JMenuItem(new AddNodeAction("New_Entity", "", Node.ENTITY_REFERENCE_NODE)); - // addNodeItem.add(popupMenuItem); - addNodeShown = true; - showpopup = true; - } - - if (selectedNode.getNodeType() == Node.DOCUMENT_NODE) { - if (ownerDocument.getDocType() == null) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.doctype.node")); - popupMenuItem.setText(Messages.getMessage("xml.doctypedef")); - addNodeItem.add(popupMenuItem); - showpopup = true; - } - } - - if (selectedNode.getNodeType() == Node.DOCUMENT_NODE || selectedNode.getNodeType() == Node.ELEMENT_NODE) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.processing.instruction.node")); - popupMenuItem.setText(Messages.getMessage("xml.processing.instruction")); - addNodeItem.add(popupMenuItem); - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.add.comment.node")); - popupMenuItem.setText(Messages.getMessage("xml.comment")); - addNodeItem.add(popupMenuItem); - addNodeShown = true; - showpopup = true; - } - - if (addNodeShown) { - popup.add(addNodeItem); - } - - //Add the edit node action - if (selectedNode.getNodeType() == Node.ELEMENT_NODE && ownerDocument.getElementDecl(selectedNode.getNodeName()) != null) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.edit.node")); - popup.add(popupMenuItem); - showpopup = true; - } - - if (selectedNode.getNodeType() == Node.ELEMENT_NODE || selectedNode.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.rename.node")); - popup.add(popupMenuItem); - showpopup = true; - } - //if the node is not the document, document type, or the document root. - if (selectedNode.getNodeType() != Node.DOCUMENT_NODE && - selectedNode.getNodeType() != Node.DOCUMENT_TYPE_NODE && - !(selectedNode.getNodeType() == Node.ELEMENT_NODE && - selectedNode.getParentNode().getNodeType() == Node.DOCUMENT_NODE)) - { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.remove.node")); - popup.add(popupMenuItem); - showpopup = true; - } - - if (selectedNode.getNodeType() != Node.DOCUMENT_NODE && - selectedNode.getNodeType() != Node.DOCUMENT_TYPE_NODE) - { - popup.addSeparator(); - if(!(selectedNode.getNodeType() == Node.ELEMENT_NODE && - selectedNode.getParentNode().getNodeType() == Node.DOCUMENT_NODE)) - { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.cut.node")); - popup.add(popupMenuItem); - } - - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.copy.node")); - popup.add(popupMenuItem); - - if (selectedNode.getNodeType() == Node.ELEMENT_NODE) { - popupMenuItem = new JMenuItem(jsXe.getAction("treeview.paste.node")); - popup.add(popupMenuItem); - } - showpopup = true; - } - - if (showpopup) { - popup.show(e.getComponent(), e.getX(), e.getY()); - } - } - }//}}} - - }//}}} - - //{{{ DefaultViewTreeCellRenderer class - - private class DefaultViewTreeCellRenderer extends DefaultTreeCellRenderer { - - //{{{ DefaultViewTreeCellRenderer constructor - - DefaultViewTreeCellRenderer() { - m_defaultLeafIcon = getLeafIcon(); - m_defaultOpenIcon = getOpenIcon(); - m_defaultClosedIcon = getClosedIcon(); - m_defaultBackgroundSelectionColor = this.backgroundSelectionColor; - }//}}} - - //{{{ getTreeCellRendererComponent() - - public Component getTreeCellRendererComponent(JTree tree, - Object value, boolean selected, boolean expanded, - boolean leaf, int row, boolean hasFocus) - { - - int type = -1; - try { - AdapterNode node = (AdapterNode)value; - type = node.getNodeType(); - setText(DefaultViewTree.toString(node)); - } catch (ClassCastException e) {} - - this.selected = selected; - if (value != null && m_dragOverTarget == value) { - this.selected = true; - backgroundSelectionColor = m_dragSelectionColor; - } else { - backgroundSelectionColor = m_defaultBackgroundSelectionColor; - } - - switch (type) { - case Node.ELEMENT_NODE: - setIcon(m_elementIcon); - setLeafIcon(m_elementIcon); - setOpenIcon(m_elementIcon); - setClosedIcon(m_elementIcon); - setToolTipText(Messages.getMessage("xml.element")); - break; - case Node.TEXT_NODE: - setIcon(m_textIcon); - setLeafIcon(m_textIcon); - setOpenIcon(m_textIcon); - setClosedIcon(m_textIcon); - setToolTipText(Messages.getMessage("xml.text")); - break; - case Node.CDATA_SECTION_NODE: - setIcon(m_CDATAIcon); - setLeafIcon(m_CDATAIcon); - setOpenIcon(m_CDATAIcon); - setClosedIcon(m_CDATAIcon); - setToolTipText(Messages.getMessage("xml.cdata")); - break; - case Node.COMMENT_NODE: - setIcon(m_commentIcon); - setLeafIcon(m_commentIcon); - setOpenIcon(m_commentIcon); - setClosedIcon(m_commentIcon); - setToolTipText(Messages.getMessage("xml.comment")); - break; - case Node.ENTITY_REFERENCE_NODE: - setIcon(m_internalEntityIcon); - setLeafIcon(m_internalEntityIcon); - setOpenIcon(m_internalEntityIcon); - setClosedIcon(m_internalEntityIcon); - setToolTipText(Messages.getMessage("xml.entity.reference")); - break; - case Node.DOCUMENT_NODE: - setIcon(m_defaultClosedIcon); - setLeafIcon(m_defaultLeafIcon); - setOpenIcon(m_defaultOpenIcon); - setClosedIcon(m_defaultClosedIcon); - setToolTipText(Messages.getMessage("xml.document")); - break; - case Node.PROCESSING_INSTRUCTION_NODE: - setIcon(m_defaultLeafIcon); - setLeafIcon(m_defaultLeafIcon); - setOpenIcon(m_defaultLeafIcon); - setClosedIcon(m_defaultLeafIcon); - setToolTipText(Messages.getMessage("xml.processing.instruction")); - break; - case Node.DOCUMENT_TYPE_NODE: - setIcon(m_defaultLeafIcon); - setLeafIcon(m_defaultLeafIcon); - setOpenIcon(m_defaultLeafIcon); - setClosedIcon(m_defaultLeafIcon); - setToolTipText(Messages.getMessage("xml.doctypedef")); - break; - default: - if (leaf) { - setIcon(m_defaultLeafIcon); - } else { - if (expanded) { - setIcon(m_defaultOpenIcon); - } else { - setIcon(m_defaultClosedIcon); - } - } - - setLeafIcon(m_defaultLeafIcon); - setOpenIcon(m_defaultOpenIcon); - setClosedIcon(m_defaultClosedIcon); - setToolTipText("Unknown node"); - break; - } - - return this; - }//}}} - - //{{{ Private members - - private Icon m_defaultLeafIcon; - private Icon m_defaultOpenIcon; - private Icon m_defaultClosedIcon; - private Color m_defaultBackgroundSelectionColor; - //}}} - - }//}}} - - //{{{ ElementTreeCellRenderer class - - private class ElementTreeCellRenderer extends DefaultTreeCellRenderer { - - //{{{ ElementTreeCellRenderer constructor - - public ElementTreeCellRenderer() { - m_defaultLeafIcon = getLeafIcon(); - }//}}} - - //{{{ getTreeCellRendererComponent - - public Component getTreeCellRendererComponent(JTree tree, - Object value, boolean selected, boolean expanded, - boolean leaf, int row, boolean hasFocus) - { - AdapterNode node = (AdapterNode)value; - - // We can rename processing instruction nodes here too. - if (node.getNodeType() == AdapterNode.PROCESSING_INSTRUCTION_NODE) { - setIcon(m_defaultLeafIcon); - setLeafIcon(m_defaultLeafIcon); - setOpenIcon(m_defaultLeafIcon); - setClosedIcon(m_defaultLeafIcon); - setToolTipText(Messages.getMessage("xml.processing.instruction")); - } else { - setIcon(m_elementIcon); - setLeafIcon(m_elementIcon); - setOpenIcon(m_elementIcon); - setClosedIcon(m_elementIcon); - setToolTipText(Messages.getMessage("xml.element")); - } - - //just use the node name, we don't want attributes and such. - setText(((AdapterNode)value).getNodeName()); - return this; - - }//}}} - - private Icon m_defaultLeafIcon; - - }//}}} - - //{{{ ElementCellEditor class - - public class ElementCellEditor extends DefaultTreeCellEditor { - - //{{{ ElementCellEditor constructor - - public ElementCellEditor(JTree tree, DefaultTreeCellRenderer renderer) { - super(tree, renderer); - }//}}} - - //{{{ prepareForEditing() - - protected void prepareForEditing() { - //HACK - //Use prepareForEditing to initialize the renderer - TreePath path = getLeadSelectionPath(); - JTree tree = DefaultViewTree.this; - Object value = getLastSelectedPathComponent(); - boolean isSelected = isPathSelected(path); - boolean expanded = isExpanded(path); - boolean leaf = getModel().isLeaf(value); - int row = getLeadSelectionRow(); - renderer.getTreeCellRendererComponent(tree, value, isSelected, expanded, leaf, row, true); - super.prepareForEditing(); - }//}}} - - //{{{ getTreeCellEditorComponent - - public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) { - /* - This code depends on the implementation of DefaultTreeCellEditor - a little. - */ - - //DefaultTreeCellEditor.EditorContainer - Container container = (Container)super.getTreeCellEditorComponent(tree, value, isSelected, expanded, leaf, row); - JTextField field = (JTextField)container.getComponent(0); - - // We know this is an element so just use the node name. - field.setText(((AdapterNode)value).getNodeName()); - return field; - }//}}} - - }//}}} - - //{{{ Drag n Drop classes - - //{{{ TreeDragGestureListener class - - private class TreeDragGestureListener implements DragGestureListener { - - //{{{ dragGestureRecognized() - - public void dragGestureRecognized(DragGestureEvent dge) { - try { - Point origin = dge.getDragOrigin(); - TreePath path = getPathForLocation(origin.x, origin.y); - //ignore dragging the Document root. - if (path != null && !(isRootVisible() && getRowForPath(path) == 0)) { - AdapterNode node = (AdapterNode)path.getLastPathComponent(); - Transferable transferable = new TransferableNode(node); - m_dragSource.startDrag(dge, DragSource.DefaultCopyNoDrop, transferable, m_treeDSListener); - } - } catch( InvalidDnDOperationException idoe) {} - }//}}} - - }//}}} - - //{{{ DefaultViewDragSourceListener class - - private class DefaultViewDragSourceListener implements DragSourceListener { - - //{{{ dragEnter() - - public void dragEnter(DragSourceDragEvent dsde) { - DragSourceContext context = dsde.getDragSourceContext(); - - int myaction = dsde.getDropAction(); - if ((myaction & DnDConstants.ACTION_MOVE) != 0) { - context.setCursor(DragSource.DefaultMoveDrop); - } else { - context.setCursor(DragSource.DefaultMoveNoDrop); - } - }//}}} - - //{{{ dragDropEnd() - - public void dragDropEnd(DragSourceDropEvent dsde) { - //paint over the cue line no matter what. - paintImmediately(m_cueLine); - m_dragOverTarget = null; - if ( dsde.getDropSuccess() == false ) { - return; - } - - int dropAction = dsde.getDropAction(); - if ( dropAction == DnDConstants.ACTION_MOVE ) { - //***** Do stuff ***** - } - - }//}}} - - //{{{ dragExit() - - public void dragExit(DragSourceEvent dse) { - paintImmediately(m_cueLine); - DragSourceContext context = dse.getDragSourceContext(); - context.setCursor(DragSource.DefaultMoveNoDrop); - m_dragOverTarget = null; - }//}}} - - //{{{ dragOver() - - public void dragOver(DragSourceDragEvent dsde) { - - }//}}} - - //{{{ dropActionChanged() - - public void dropActionChanged(DragSourceDragEvent dsde) { - - }//}}} - - }//}}} - - //{{{ DefaultViewDropTargetListener class - - private class DefaultViewDropTargetListener implements DropTargetListener { - - //{{{ DefaultViewDropTargetListener constructor - - public DefaultViewDropTargetListener() { - m_m_timerHover = new javax.swing.Timer(m_HOVER_TIME_BEFORE_EXPAND, new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - if (isRootVisible() && getRowForPath(m_m_lastPath) == 0) { - return; // Do nothing if we are hovering over the root node - } - if (isExpanded(m_m_lastPath)) { - collapsePath(m_m_lastPath); - } else { - expandPath(m_m_lastPath); - } - } - }); - m_m_timerHover.setRepeats(false); // Set timer to one-shot mode - }//}}} - - //{{{ dragEnter() - - public void dragEnter(DropTargetDragEvent dtde) { - if (!isDragOk(dtde)) { - dtde.rejectDrag(); - return; - } - dtde.acceptDrag(dtde.getDropAction()); - }//}}} - - //{{{ drop() - - public void drop(DropTargetDropEvent dtde) { - m_m_timerHover.stop(); // prevent timer from collapsing/expanding node - - if (!dtde.isDataFlavorSupported(TransferableNode.nodeFlavor)) { - dtde.rejectDrop(); - return; - } - - if ((dtde.getSourceActions() & m_acceptableActions ) == 0 ) { - dtde.rejectDrop(); - return; - } - - //We only support the nodeFlavor. Always chose that - DataFlavor chosen = TransferableNode.nodeFlavor; - - Object data = null; - try { - data = dtde.getTransferable().getTransferData(chosen); - } catch (UnsupportedFlavorException ufe) {} - catch (IOException ioe) {} - - if (data == null) - throw new NullPointerException(); - - AdapterNode node = (AdapterNode)data; - Point loc = dtde.getLocation(); - - TreePath path = getClosestPathForLocation(loc.x, loc.y); - if (path == null) { - dtde.rejectDrop(); - return; - } - - AdapterNode parentNode = (AdapterNode)path.getLastPathComponent(); - TreePath droppedPath; - try { - //Find out the relative location where I dropped. - Rectangle bounds = getPathBounds(path); - if (loc.y < bounds.y + (int)(bounds.height * 0.25)) { - //Insert before the node dropped on - if (parentNode != null) { - AdapterNode trueParent = (AdapterNode)parentNode.getParentNode(); - if (trueParent != null) { - trueParent.addAdapterNodeAt(node, trueParent.index(parentNode)); - makeVisible(path); - droppedPath = path.getParentPath(); - } else { - throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, "HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted"); - } - } else { - throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, "HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted"); - } - } else { - if (loc.y < bounds.y + (int)(bounds.height * 0.75)) { - - //insert in the node inside the parent at the end of its children - parentNode.addAdapterNode(node); - droppedPath = path; - //Make sure the node we just dropped is viewable - if (isCollapsed(path)) { - expandPath(path); - } - - } else { - if (parentNode != null) { - //insert after the node dropped on - AdapterNode trueParent = (AdapterNode)parentNode.getParentNode(); - if (trueParent != null) { - trueParent.addAdapterNodeAt(node, trueParent.index(parentNode)+1); - droppedPath = path.getParentPath(); - makeVisible(path); - } else { - throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, "HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted"); - } - } else { - throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, "HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted"); - } - } - } - refreshExpandedStates(droppedPath); - /* - need to make sure that the new path of the dropped node - is in the selection model - */ - addSelectionPath(droppedPath.pathByAddingChild(node)); - dtde.acceptDrop(m_acceptableActions); - } catch (DOMException dome) { - dtde.rejectDrop(); - JOptionPane.showMessageDialog(DefaultViewTree.this, dome, "XML Error", JOptionPane.WARNING_MESSAGE); - } - m_dragOverTarget = null; - paintImmediately(m_cueLine); - dtde.dropComplete(true); - updateUI(); - }//}}} - - //{{{ dragOver() - - public void dragOver(DropTargetDragEvent dtde) { - if (!isDragOk(dtde)) { - dtde.rejectDrag(); - return; - } - - Point loc = dtde.getLocation(); - // TreePath path = getPathForLocation(loc.x, loc.y); - TreePath path = getClosestPathForLocation(loc.x, loc.y); - if (path != m_m_lastPath) { - m_m_lastPath = path; - m_m_timerHover.restart(); - } - m_dragOverTarget = null; - paintImmediately(m_cueLine); - if (path != null) { - Rectangle bounds = getPathBounds(path); - //erase old cue line - Graphics g = getGraphics(); - - int x = bounds.x; - int y = bounds.y; - int width = bounds.width; - int height = 2; - - g.setColor(m_dragSelectionColor); - - if (loc.y < bounds.y + (int)(bounds.height * 0.25)) { - //no change - g.fillRect(x, y, width, height); - } else { - if (loc.y < bounds.y + (int)(bounds.height * 0.75)) { - //don't do anything right now - //Want to highlight the node we're dragging over - //in the future. - // x = 0; - // y = 0; - // width = 0; - // height = 0; - height=bounds.height; - /* - set the node that is being dragged over so that - the cell renderer knows that you are dragging over - */ - m_dragOverTarget = path.getLastPathComponent(); - paintImmediately(x,y,width,height); - } else { - y += bounds.height; - g.fillRect(x, y, width, height); - } - } - m_cueLine.setRect(x,y,width,height); - } - dtde.acceptDrag(DnDConstants.ACTION_MOVE); - }//}}} - - //{{{ dropActionChanged() - - public void dropActionChanged(DropTargetDragEvent dtde) { - if(isDragOk(dtde) == false) { - dtde.rejectDrag(); - return; - } - dtde.acceptDrag(dtde.getDropAction()); - }//}}} - - //{{{ dragExit() - - public void dragExit(DropTargetEvent dte) { - //Set the node that is dragged over to null - m_dragOverTarget = null; - }//}}} - - //{{{ Private static members - private static final int m_HOVER_TIME_BEFORE_EXPAND = 1500; - //}}} - - //{{{ Private Members - - //{{{ isDragOk() - - private boolean isDragOk(DropTargetDragEvent dtde) { - //maybe someday I can accept text - if (!dtde.isDataFlavorSupported(TransferableNode.nodeFlavor)) { - return false; - } - - // we're saying that these actions are necessary - if ((dtde.getDropAction() & m_acceptableActions) == 0) { - return false; - } - return true; - }//}}} - - private javax.swing.Timer m_m_timerHover; - private TreePath m_m_lastPath; - - //}}} - - }//}}} - - //}}} - - //{{{ Drag and Drop instance variables - private DragSource m_dragSource = DragSource.getDefaultDragSource(); - private DragGestureListener m_treeDGListener = new TreeDragGestureListener(); - private DragSourceListener m_treeDSListener = new DefaultViewDragSourceListener(); - private DropTarget m_dropTarget; - private DropTargetListener m_treeDTListener = new DefaultViewDropTargetListener(); - private int m_acceptableActions = DnDConstants.ACTION_MOVE; - - private Rectangle m_cueLine = new Rectangle(); - - //the node that is being dragged over. - private Object m_dragOverTarget = null; - //the color used to highlight the drop target when dragging - //Use light grey for now. - // TODO: This should probably be based on the - //current look and feel or customizable in an option. - private Color m_dragSelectionColor = Color.lightGray; - //}}} - - //}}} - -} Modified: trunk/treeview/src/treeview/DefaultViewTreeModel.java =================================================================== --- trunk/treeview/src/treeview/DefaultViewTreeModel.java 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/src/treeview/DefaultViewTreeModel.java 2006-06-13 18:06:18 UTC (rev 950) @@ -87,7 +87,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ * @see DefaultView - * @see DefaultViewTree + * @see TreeViewTree */ public class DefaultViewTreeModel implements TreeModel { Modified: trunk/treeview/src/treeview/NodeTransferHandler.java =================================================================== --- trunk/treeview/src/treeview/NodeTransferHandler.java 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/src/treeview/NodeTransferHandler.java 2006-06-13 18:06:18 UTC (rev 950) @@ -117,7 +117,7 @@ protected Transferable createTransferable(JComponent c) { Transferable result = null; - DefaultViewTree dvt = (DefaultViewTree)c; + TreeViewTree dvt = (TreeViewTree)c; TreePath path = dvt.getSelectionPath(); //If a node is selected @@ -143,7 +143,7 @@ * @see javax.swing.TransferHandler#exportDone(javax.swing.JComponent, java.awt.datatransfer.Transferable, int) */ protected void exportDone(JComponent source, Transferable data, int action) { - DefaultViewTree dvt = (DefaultViewTree)source; + TreeViewTree dvt = (TreeViewTree)source; if (action == MOVE) { //XXX Delete the old source node? Probably not necessary since //the addAdapterNodeAt method (see importData) is actually a @@ -166,7 +166,7 @@ catch (UnsupportedFlavorException ufe) { return false; } catch (IOException ioe) { return false; } - DefaultViewTree dvt = (DefaultViewTree)comp; + TreeViewTree dvt = (TreeViewTree)comp; TreePath path = dvt.getSelectionPath(); //If nothing is selected, do not import Modified: trunk/treeview/src/treeview/TransferableNode.java =================================================================== --- trunk/treeview/src/treeview/TransferableNode.java 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/src/treeview/TransferableNode.java 2006-06-13 18:06:18 UTC (rev 950) @@ -49,7 +49,7 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ * @see DefaultView - * @see DefaultViewTree + * @see TreeViewTree * @see DefaultViewTreeModel */ public class TransferableNode implements Transferable { Modified: trunk/treeview/src/treeview/TreeViewPlugin.java =================================================================== --- trunk/treeview/src/treeview/TreeViewPlugin.java 2006-06-13 04:06:07 UTC (rev 949) +++ trunk/treeview/src/treeview/TreeViewPlugin.java 2006-06-13 18:06:18 UTC (rev 950) @@ -74,7 +74,7 @@ //{{{ getOptionPane() public OptionPane getOptionPane(DocumentBuffer buffer) { - return new DefaultViewOptionPane(buffer); + return new DefaultViewOptionsPanel(buffer); }//}}} } Copied: trunk/treeview/src/treeview/TreeViewTree.java (from rev 949, trunk/treeview/src/treeview/DefaultViewTree.java) =================================================================== --- trunk/treeview/src/treeview/TreeViewTree.java (rev 0) +++ trunk/treeview/src/treeview/TreeViewTree.java 2006-06-13 18:06:18 UTC (rev 950) @@ -0,0 +1,1113 @@ +/* +TreeViewTree.java +:tabSize=4:indentSize=4:noTabs=true: +:folding=explicit:collapseFolds=1: + +Copyright (C) 2002 Ian Lewis (Ian...@me...) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +Optionally, you may find a copy of the GNU General Public License +from http://www.fsf.org/copyleft/gpl.txt +*/ + +package treeview; + +//{{{ imports + +import treeview.action.AddNodeAction; + +//{{{ jsXe classes +import net.sourceforge.jsxe.jsXe; +import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.EnhancedMenu; +import net.sourceforge.jsxe.dom.*; +import net.sourceforge.jsxe.dom.completion.*; +import net.sourceforge.jsxe.util.Log; +//}}} + +//{{{ Swing components +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.tree.*; +//}}} + +//{{{ AWT components +import java.awt.*; +import java.awt.datatransfer.*; +import java.awt.dnd.*; +import java.awt.event.*; +//}}} + +//{{{ DOM classes +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.DOMException; +import org.w3c.dom.Node; +//}}} + +//{{{ Java base classes +import java.io.IOException; +import java.util.*; +//}}} + +//}}} + +/** + * The TreeViewTree is the tree that is displayed in the upper-left of + * the TreeView in jsXe. This class defines methods specific to the tree + * display. + * + * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) + * @version $Id$ + * @see TreeView + */ +public class TreeViewTree extends JTree implements Autoscroll, ClipboardOwner { + + //{{{ Properties + private final String NODE_EXPANDED = "tree.expandedstate"; + //}}} + + //{{{ TreeViewTree constructor + /** + * Creates a new TreeViewTree with the default TreeModel + */ + public TreeViewTree() { + + //{{{ intitalize Drag n Drop + m_dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_MOVE, m_treeDGListener); + m_dropTarget = new DropTarget(this, m_acceptableActions, m_treeDTListener, true); + //}}} + + addMouseListener(new TreePopupListener()); + setEditable(false); + addTreeExpansionListener(new TreeExpansionListener() {//{{{ + + //{{{ treeExpanded() + + public void treeExpanded(TreeExpansionEvent event) { + try { + AdapterNode node = (AdapterNode)event.getPath().getLastPathComponent(); + node.setProperty(NODE_EXPANDED, "true"); + } catch (ClassCastException e) {} + }//}}} + + //{{{ treeCollapsed() + + public void treeCollapsed(TreeExpansionEvent event) { + try { + AdapterNode node = (AdapterNode)event.getPath().getLastPathComponent(); + node.setProperty(NODE_EXPANDED, "false"); + } catch (ClassCastException e) {} + }//}}} + + });//}}} + + getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + + DefaultViewTreeCellRenderer renderer = new DefaultViewTreeCellRenderer(); + setCellRenderer(renderer); + + //Since elements are the only editable nodes... + renderer = new DefaultViewTreeCellRenderer(); + setCellEditor(new DefaultTreeCellEditor(this, renderer, new ElementCellEditor(this, renderer))); + + + ToolTipManager.sharedInstance().registerComponent(this); + + }//}}} + + //{{{ isEditable() + /** + * Indicates if a node is capable of being edited in + * this tree. + * @param node the node to check + * @return true if the node can be edited in this tree + */ + public boolean isEditable(AdapterNode node) { + if (node != null) { + int nodeType = node.getNodeType(); + return (nodeType == Node.ELEMENT_NODE || nodeType == Node.PROCESSING_INSTRUCTION_NODE); + } else { + return false; + } + }//}}} + + //{{{ isExpanded() + + public boolean isExpanded(AdapterNode node) { + return Boolean.valueOf(node.getProperty(NODE_EXPANDED)).booleanValue(); + }//}}} + + //{{{ startEditingAtPath() + + public void startEditingAtPath(TreePath path) { + if (path != null && isEditable((AdapterNode)path.getLastPathComponent())) { + //When editing is finished go back to uneditable + getCellEditor().addCellEditorListener(new CellEditorListener() {//{{{ + public void editingCanceled(ChangeEvent e) { + setEditable(false); + getCellEditor().removeCellEditorListener(this); + } + public void editingStopped(ChangeEvent e) { + setEditable(false); + getCellEditor().removeCellEditorListener(this); + } + });//}}} + setEditable(true); + super.startEditingAtPath(path); + } + }//}}} + + //{{{ getSelectedNode() + /** + * Gets the current node that is selected for editing. + * @return the current selected node or null if no node is selected. + */ + public AdapterNode getSelectedNode() { + TreePath selPath = getLeadSelectionPath(); + AdapterNode selectedNode = null; + if (selPath != null) { + selectedNode = (AdapterNode)selPath.getLastPathComponent(); + } + return selectedNode; + }//}}} + + //{{{ cut() + /** + * Cuts the currently selected node out of the tree and places it in the + * clipboard. + * @return true if the node was successfully cut + * @throws DOMException if the node cannot be removed from the tree. + */ + public boolean cut() throws DOMException { + AdapterNode selectedNode = getSelectedNode(); + Clipboard clipBoard = getToolkit().getSystemClipboard(); + if (selectedNode != null) { + try { + clipBoard.setContents(new TransferableNode(selectedNode), this); + selectedNode.getParentNode().remove(selectedNode); + updateUI(); + return true; + } catch (IllegalStateException e) { + Log.log(Log.ERROR, this, e); + } catch (HeadlessException e) { + Log.log(Log.ERROR, this, e); + } catch (DOMException e) { + clipBoard.setContents(null, this); + throw e; + } + } + return false; + }//}}} + + //{{{ copy() + /** + * Copies the currently selected node to the clipboard. + * @return true if the node was copied successfully + */ + public boolean copy() { + AdapterNode selectedNode = getSelectedNode(); + if (selectedNode != null) { + try { + Clipboard clipBoard = getToolkit().getSystemClipboard(); + AdapterNode newNode = selectedNode.copy(true); + clipBoard.setContents(new TransferableNode(newNode), this); + return true; + } catch (IllegalStateException e) { + Log.log(Log.ERROR, this, e); + } catch (HeadlessException e) { + Log.log(Log.ERROR, this, e); + } + } + return false; + }//}}} + + //{{{ paste() + /** + * Pastes the contents of the clipboard into the currently selected node + * in the document tree. + * @return true if the node was pasted successfully + * @throws DOMException if the node cannot be inserted in the current + * location. + */ + public boolean paste() throws DOMException { + AdapterNode selectedNode = getSelectedNode(); + if (selectedNode != null) { + try { + Clipboard clipBoard =... [truncated message content] |
From: <ian...@us...> - 2006-07-07 03:46:46
|
Revision: 995 Author: ian_lewis Date: 2006-07-06 20:46:37 -0700 (Thu, 06 Jul 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=995&view=rev Log Message: ----------- Added support for countries and language variants Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/build.xml Added Paths: ----------- trunk/treeview/messages/messages Removed Paths: ------------- trunk/treeview/messages/messages.en Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-07-07 03:46:17 UTC (rev 994) +++ trunk/treeview/Changelog 2006-07-07 03:46:37 UTC (rev 995) @@ -1,3 +1,7 @@ +07/06/2006 Ian Lewis <Ian...@me...> + + * Updated to support the new Messages format. + 06/25/2006 Ian Lewis <Ian...@me...> * Feature Request 1494444: Updated the tree view so that if no attributes Modified: trunk/treeview/build.xml =================================================================== --- trunk/treeview/build.xml 2006-07-07 03:46:17 UTC (rev 994) +++ trunk/treeview/build.xml 2006-07-07 03:46:37 UTC (rev 995) @@ -70,7 +70,7 @@ <mkdir dir="${build.messages}"/> <copy todir="${build.messages}"> <fileset dir="${messages.dir}"> - <include name="**/messages.*"/> + <include name="**/messages*"/> </fileset> </copy> </target> @@ -136,7 +136,7 @@ <jar jarfile="${root.dir}/../${app.name}.jar" manifest="${app.name}.manifest"> <fileset dir="${build.dir}"> - <include name="messages/messages.*"/> + <include name="messages/messages*"/> </fileset> <fileset dir="${build.dest}"> <include name="**/*.class"/> Copied: trunk/treeview/messages/messages (from rev 989, trunk/treeview/messages/messages.en) =================================================================== --- trunk/treeview/messages/messages (rev 0) +++ trunk/treeview/messages/messages 2006-07-07 03:46:37 UTC (rev 995) @@ -0,0 +1,26 @@ +# JSXE tree view English properties file +# $Id$ +#:mode=properties: +#:tabSize=4:indentSize=4:noTabs=true: +#:folding=explicit:collapseFolds=1: + +#{{{ TreeView +TreeView.Options.Title=Tree View +TreeView.Options.Show.Comments=Show comment nodes +TreeView.Options.Continuous.Layout=Continuous layout for split-panes +TreeView.Options.Show.Attributes=Show element attributes in tree: +treeview.rename.node.label=Rename Node +treeview.remove.node.label=Remove Node +treeview.add.attribute.label=Add Attribute +treeview.remove.attribute.label=Remove Attribute +treeview.edit.node.label=Edit Node +TreeView.EditDocType.Title=Edit Document Type Definition +Edit.Node.Dialog.Title=Edit Node +treeview.add.doctype.node.label=Add Document Type Definition + +treeview.add.element.node.label=Add Element Node +treeview.add.text.node.label=Add Text Node +treeview.add.cdata.node.label=Add CDATA Node +treeview.add.pi.node.label=Add Processing Instruction +treeview.add.comment.node=Add Comment +#}}} Deleted: trunk/treeview/messages/messages.en =================================================================== --- trunk/treeview/messages/messages.en 2006-07-07 03:46:17 UTC (rev 994) +++ trunk/treeview/messages/messages.en 2006-07-07 03:46:37 UTC (rev 995) @@ -1,26 +0,0 @@ -# JSXE tree view English properties file -# $Id$ -#:mode=properties: -#:tabSize=4:indentSize=4:noTabs=true: -#:folding=explicit:collapseFolds=1: - -#{{{ TreeView -TreeView.Options.Title=Tree View -TreeView.Options.Show.Comments=Show comment nodes -TreeView.Options.Continuous.Layout=Continuous layout for split-panes -TreeView.Options.Show.Attributes=Show element attributes in tree: -treeview.rename.node.label=Rename Node -treeview.remove.node.label=Remove Node -treeview.add.attribute.label=Add Attribute -treeview.remove.attribute.label=Remove Attribute -treeview.edit.node.label=Edit Node -TreeView.EditDocType.Title=Edit Document Type Definition -Edit.Node.Dialog.Title=Edit Node -treeview.add.doctype.node.label=Add Document Type Definition - -treeview.add.element.node.label=Add Element Node -treeview.add.text.node.label=Add Text Node -treeview.add.cdata.node.label=Add CDATA Node -treeview.add.pi.node.label=Add Processing Instruction -treeview.add.comment.node=Add Comment -#}}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-07-20 15:06:23
|
Revision: 1034 Author: ian_lewis Date: 2006-07-20 08:06:13 -0700 (Thu, 20 Jul 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=1034&view=rev Log Message: ----------- Added some new messages for options Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/messages/messages trunk/treeview/src/treeview/DefaultView.java trunk/treeview/src/treeview/TreeViewOptionPane.java trunk/treeview/src/treeview/TreeViewTree.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-07-20 15:05:24 UTC (rev 1033) +++ trunk/treeview/Changelog 2006-07-20 15:06:13 UTC (rev 1034) @@ -1,3 +1,10 @@ +07/13/2006 Ian Lewis <Ian...@me...> + + * Fixed problem where the shortcut for Adding an element node wasn't + showing in the popup menu. + * Fixed problem where the shortcut for Adding and removing an attribute + wasn't showing in the popup menu. + 07/12/2006 Ian Lewis <Ian...@me...> * Updated TreeViewTree to use the WrappingMenu instead of EnhancedMenu Modified: trunk/treeview/messages/messages =================================================================== --- trunk/treeview/messages/messages 2006-07-20 15:05:24 UTC (rev 1033) +++ trunk/treeview/messages/messages 2006-07-20 15:06:13 UTC (rev 1034) @@ -5,9 +5,15 @@ #:folding=explicit:collapseFolds=1: TreeView.Options.Title=Tree View + TreeView.Options.Show.Comments=Show comment nodes TreeView.Options.Continuous.Layout=Continuous layout for split-panes TreeView.Options.Show.Attributes=Show element attributes in tree: +Show.Attributes.None=None +Show.Attributes.ID.Only=ID only +Show.Attributes.All=All + + treeview.rename.node.label=Rename Node treeview.remove.node.label=Remove Node treeview.add.attribute.label=Add Attribute @@ -15,8 +21,8 @@ treeview.edit.node.label=Edit Node TreeView.EditDocType.Title=Edit Document Type Definition Edit.Node.Dialog.Title=Edit Node + treeview.add.doctype.node.label=Add Document Type Definition - treeview.add.element.node.label=Add Element Node treeview.add.text.node.label=Add Text Node treeview.add.cdata.node.label=Add CDATA Node Modified: trunk/treeview/src/treeview/DefaultView.java =================================================================== --- trunk/treeview/src/treeview/DefaultView.java 2006-07-20 15:05:24 UTC (rev 1033) +++ trunk/treeview/src/treeview/DefaultView.java 2006-07-20 15:06:13 UTC (rev 1034) @@ -413,14 +413,10 @@ JPopupMenu popup = new JPopupMenu(); JMenuItem popupMenuItem; - popupMenuItem = new JMenuItem("Add Attribute"); - popupMenuItem.addActionListener(ActionManager.getAction("treeview.add.attribute")); - popup.add(popupMenuItem); + popup.add(ActionManager.getAction("treeview.add.attribute")); if (row != attributesTable.getRowCount()-1) { - popupMenuItem = new JMenuItem("Remove Attribute"); - popupMenuItem.addActionListener(ActionManager.getAction("treeview.remove.attribute")); - popup.add(popupMenuItem); + popup.add(ActionManager.getAction("treeview.remove.attribute")); } popup.show(e.getComponent(), e.getX(), e.getY()); } Modified: trunk/treeview/src/treeview/TreeViewOptionPane.java =================================================================== --- trunk/treeview/src/treeview/TreeViewOptionPane.java 2006-07-20 15:05:24 UTC (rev 1033) +++ trunk/treeview/src/treeview/TreeViewOptionPane.java 2006-07-20 15:06:13 UTC (rev 1034) @@ -90,10 +90,12 @@ //{{{ show attributes - String showAttrs = jsXe.getProperty(DefaultView.SHOW_ATTRIBUTES, "ID only"); + int showAttrs = jsXe.getIntegerProperty(DefaultView.SHOW_ATTRIBUTES, 0); - m_showAttrsComboBox = new JComboBox(new String [] {"None", "ID only", "All"}); - m_showAttrsComboBox.setSelectedItem(showAttrs); + m_showAttrsComboBox = new JComboBox(new String [] {Messages.getMessage("Show.Attributes.None"), + Messages.getMessage("Show.Attributes.ID.Only"), + Messages.getMessage("Show.Attributes.All")}); + m_showAttrsComboBox.setSelectedIndex(showAttrs); addComponent(Messages.getMessage("TreeView.Options.Show.Attributes"), m_showAttrsComboBox, @@ -108,7 +110,7 @@ jsXe.setProperty(DefaultView.SHOW_COMMENTS,String.valueOf(showCommentsCheckBox.isSelected())); // m_document.setProperty(SHOW_EMPTY_NODES,(new Boolean(showEmptyNodesCheckBox.isSelected())).toString()); jsXe.setProperty(DefaultView.CONTINUOUS_LAYOUT,String.valueOf(ContinuousLayoutCheckBox.isSelected())); - jsXe.setProperty(DefaultView.SHOW_ATTRIBUTES, m_showAttrsComboBox.getSelectedItem().toString()); + jsXe.setIntegerProperty(DefaultView.SHOW_ATTRIBUTES, m_showAttrsComboBox.getSelectedIndex()); }//}}} //{{{ getTitle() Modified: trunk/treeview/src/treeview/TreeViewTree.java =================================================================== --- trunk/treeview/src/treeview/TreeViewTree.java 2006-07-20 15:05:24 UTC (rev 1033) +++ trunk/treeview/src/treeview/TreeViewTree.java 2006-07-20 15:06:13 UTC (rev 1034) @@ -372,7 +372,6 @@ //{{{ toString() /** * Creates the string that will be displayed in the tree node - * @param showattrs "ID only", "All" or "None" */ private static String toString(AdapterNode node) { StringBuffer s = new StringBuffer(); @@ -385,12 +384,14 @@ NamedNodeMap attributes = node.getAttributes(); ElementDecl decl = node.getElementDecl(); XMLDocument document = node.getOwnerDocument(); - String showAttrs = jsXe.getProperty(DefaultView.SHOW_ATTRIBUTES); + int showAttrs = jsXe.getIntegerProperty(DefaultView.SHOW_ATTRIBUTES, 0); for (int i=0; i<attributes.getLength(); i++) { Node attr = attributes.item(i); ElementDecl.AttributeDecl attrDecl = (decl != null) ? decl.getAttribute(attr.getNodeName()) : null; - if (showAttrs.equals("All") || - (showAttrs.equals("ID only") && + + // 0 = None; 1 = ID only; 2 = All + if (showAttrs == 2 || + (showAttrs == 1 && ((attr.getNodeName().equalsIgnoreCase("id") || (attrDecl != null && attrDecl.type.equals("ID")))))) { @@ -453,7 +454,7 @@ JMenu addElement = new WrappingMenu(Messages.getMessage("xml.element"), 20); addNodeItem.add(addElement); - addElement.add(new ActionManager.Wrapper("treeview.add.element.node")); + addElement.add(ActionManager.getAction("treeview.add.element.node")); Iterator allowedElements = selectedNode.getAllowedElements().iterator(); while (allowedElements.hasNext()) { ElementDecl decl = (ElementDecl)allowedElements.next(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-07-28 22:03:28
|
Revision: 1071 Author: ian_lewis Date: 2006-07-26 10:07:45 -0700 (Wed, 26 Jul 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=1071&view=rev Log Message: ----------- Version bump Modified Paths: -------------- trunk/treeview/build.xml trunk/treeview/dependency.props Modified: trunk/treeview/build.xml =================================================================== --- trunk/treeview/build.xml 2006-07-26 17:07:26 UTC (rev 1070) +++ trunk/treeview/build.xml 2006-07-26 17:07:45 UTC (rev 1071) @@ -38,7 +38,7 @@ <property name="main.class" value="treeview.TreeViewPlugin"/> <property name="major.version" value="0"/> <property name="minor.version" value="5"/> - <property name="build.version" value="1"/> + <property name="build.version" value="3"/> <property name="app.version" value="${major.version}.${minor.version}.${build.version}"/> <property name="app_version" value="${major.version}_${minor.version}_${build.version}"/> <property name="implementation.version" value="${major.version}.${minor.version}.${build.version}"/> Modified: trunk/treeview/dependency.props =================================================================== --- trunk/treeview/dependency.props 2006-07-26 17:07:26 UTC (rev 1070) +++ trunk/treeview/dependency.props 2006-07-26 17:07:45 UTC (rev 1071) @@ -1 +1 @@ -dependency.0=jsxe 00.05.01.00 +dependency.0=jsxe 00.05.03.00 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-08-27 13:42:33
|
Revision: 1167 Author: ian_lewis Date: 2006-08-27 06:39:16 -0700 (Sun, 27 Aug 2006) ViewCVS: http://svn.sourceforge.net/jsxe/?rev=1167&view=rev Log Message: ----------- merge from the 0.5pre3 branch Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/messages/messages.ru Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-08-27 13:37:28 UTC (rev 1166) +++ trunk/treeview/Changelog 2006-08-27 13:39:16 UTC (rev 1167) @@ -1,3 +1,7 @@ +08/21/2006 Ian Lewis <Ian...@me...> + + * Updated russian translation. + 08/08/2006 Ian Lewis <Ian...@me...> * Fixed undo when adding/editing a node that is specified in a DTD/Schema. Modified: trunk/treeview/messages/messages.ru =================================================================== --- trunk/treeview/messages/messages.ru 2006-08-27 13:37:28 UTC (rev 1166) +++ trunk/treeview/messages/messages.ru 2006-08-27 13:39:16 UTC (rev 1167) @@ -1,35 +1,35 @@ # JSXE tree view English properties file -# $Id: messages 1101 2006-08-03 15:40:34Z ian_lewis $ +# $Id: messages 1101 2006-08-03 15:40:34Z ian_lewis $ # Maintained by Alexandr Gridnev (ale...@ya...) #:mode=properties: #:tabSize=4:indentSize=4:noTabs=true: #:folding=explicit:collapseFolds=1: -TreeView.Options.Title=Отображение деревом - -TreeView.Options.Show.Comments=Показывать узлы-комментарии -TreeView.Options.Show.Comments.ToolTip=Если это выбрано - то узлы-комментарии будут отображаться в дереве -TreeView.Options.Continuous.Layout=При движении разделителей - сразу перерисовывать -TreeView.Options.Continuous.Layout.ToolTip=<html>Если выбрано - то при перемещении разделителей то что они разделяют будет сразу перерисовываться.<br>Если не выбрано - то положение линии будет отображаться черной полоской, а перерисовано все будет после того как вы отпустите мышару.</html> -TreeView.Options.Show.Attributes=Показывать элементы атрибутов в дереве: -TreeView.Options.Show.Attributes.ToolTip=<html>Эта опция определяет какие атрибуты элементов будут отображены в дереве.<ul><li><strong>Никаких</strong> - Атрибутов не покажут.</li><li><strong>только ID </strong> - Покажут только атрибут, определенный как ID.</li><li><strong>Все</strong> - Покажут все что есть.</li></ul></html> -Show.Attributes.None=Никаких -Show.Attributes.ID.Only=Только ID -Show.Attributes.All=Все - -treeview.document.root=Это корень документа - -treeview.rename.node.label=Переименовать узел -treeview.remove.node.label=Удалить узел -treeview.add.attribute.label=Добавить атрибут +TreeView.Options.Title=Отображение деревом + +TreeView.Options.Show.Comments=Показывать узлы-комментарии +TreeView.Options.Show.Comments.ToolTip=Если это выбрано - то узлы-комментарии будут отображаться в дереве +TreeView.Options.Continuous.Layout=При движении разделителей - сразу перерисовывать +TreeView.Options.Continuous.Layout.ToolTip=<html>Если выбрано - то при перемещении разделителей то что они разделяют будет сразу перерисовываться.<br>Если не выбрано - то положение линии будет отображаться черной полоской, а перерисовано все будет после того как вы отпустите мышару.</html> +TreeView.Options.Show.Attributes=Показывать элементы атрибутов в дереве: +TreeView.Options.Show.Attributes.ToolTip=<html>Эта опция определяет какие атрибуты элементов будут отображены в дереве.<ul><li><strong>Никаких</strong> - Атрибутов не покажут.</li><li><strong>только ID </strong> - Покажут только атрибут, определенный как ID.</li><li><strong>Все</strong> - Покажут все что есть.</li></ul></html> +Show.Attributes.None=Никаких +Show.Attributes.ID.Only=Только ID +Show.Attributes.All=Все + +treeview.document.root=Это корень документа + +treeview.rename.node.label=Переименовать узел +treeview.remove.node.label=Удалить узел +treeview.add.attribute.label=Добавить атрибут treeview.remove.attribute.label=Удалить атрибут -treeview.edit.node.label=Редактировать узел -TreeView.EditDocType.Title=Редактировать определение типа документа (DTD) -Edit.Node.Dialog.Title=Редактирование узла - -treeview.add.doctype.node.label=Добавить определение типа документа (DTD) -treeview.add.element.node.label=Добавить узел-элемент -treeview.add.text.node.label=Добавить узел-текст -treeview.add.cdata.node.label=Добавиь узел-CDATA -treeview.add.pi.node.label=Добавить правило обработки -treeview.add.comment.node.label=Добавить комментарий +treeview.edit.node.label=Редактировать узел +TreeView.EditDocType.Title=Редактировать определение типа документа (DTD) +Edit.Node.Dialog.Title=Редактирование узла + +treeview.add.doctype.node.label=Добавить определение типа документа (DTD) +treeview.add.element.node.label=Добавить узел-элемент +treeview.add.text.node.label=Добавить узел-текст +treeview.add.cdata.node.label=Добавиь узел-CDATA +treeview.add.pi.node.label=Добавить правило обработки +treeview.add.comment.node.label=Добавить комментарий This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-08-30 18:26:49
|
Revision: 1208 http://svn.sourceforge.net/jsxe/?rev=1208&view=rev Author: ian_lewis Date: 2006-08-30 11:26:35 -0700 (Wed, 30 Aug 2006) Log Message: ----------- Fixed a bug where null pointer exceptions were thrown when an error occurs when cutting a node Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/dependency.props trunk/treeview/src/treeview/TreeViewTree.java trunk/treeview/src/treeview/action/CutNodeAction.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-08-30 17:46:35 UTC (rev 1207) +++ trunk/treeview/Changelog 2006-08-30 18:26:35 UTC (rev 1208) @@ -1,3 +1,8 @@ +08/30/2006 Ian Lewis <Ian...@me...> + + * Fixed null pointer exception when trying to cut a node that can't be + cut. + 08/29/2006 Ian Lewis <Ian...@me...> * Updated japanese translation Modified: trunk/treeview/dependency.props =================================================================== --- trunk/treeview/dependency.props 2006-08-30 17:46:35 UTC (rev 1207) +++ trunk/treeview/dependency.props 2006-08-30 18:26:35 UTC (rev 1208) @@ -1 +1 @@ -dependency.0=jsxe 00.05.03.00 +dependency.0=jsxe 00.05.04.00 Modified: trunk/treeview/src/treeview/TreeViewTree.java =================================================================== --- trunk/treeview/src/treeview/TreeViewTree.java 2006-08-30 17:46:35 UTC (rev 1207) +++ trunk/treeview/src/treeview/TreeViewTree.java 2006-08-30 18:26:35 UTC (rev 1208) @@ -196,8 +196,8 @@ Clipboard clipBoard = getToolkit().getSystemClipboard(); if (selectedNode != null) { try { - clipBoard.setContents(new TransferableNode(selectedNode), this); selectedNode.getParentNode().remove(selectedNode); + clipBoard.setContents(new TransferableNode(selectedNode), this); updateUI(); return true; } catch (IllegalStateException e) { @@ -205,7 +205,6 @@ } catch (HeadlessException e) { Log.log(Log.ERROR, this, e); } catch (DOMException e) { - clipBoard.setContents(null, this); throw e; } } Modified: trunk/treeview/src/treeview/action/CutNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/CutNodeAction.java 2006-08-30 17:46:35 UTC (rev 1207) +++ trunk/treeview/src/treeview/action/CutNodeAction.java 2006-08-30 18:26:35 UTC (rev 1208) @@ -29,10 +29,7 @@ import treeview.*; //{{{ AWT classes -import java.awt.datatransfer.Clipboard; import java.awt.event.ActionEvent; -import java.awt.Toolkit; -import java.awt.HeadlessException; //}}} //{{{ Swing classes @@ -52,6 +49,7 @@ import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.TabbedView; +import net.sourceforge.jsxe.gui.GUIUtilities; import net.sourceforge.jsxe.dom.AdapterNode; import net.sourceforge.jsxe.util.Log; //}}} @@ -91,7 +89,7 @@ try { tree.cut(); } catch (DOMException dome) { - JOptionPane.showMessageDialog(tree, dome, "XML Error", JOptionPane.WARNING_MESSAGE); + GUIUtilities.error(tree, "XML.Error", new Object[] { dome }); } } }//}}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-08-31 20:41:53
|
Revision: 1215 http://svn.sourceforge.net/jsxe/?rev=1215&view=rev Author: ian_lewis Date: 2006-08-31 13:41:42 -0700 (Thu, 31 Aug 2006) Log Message: ----------- merge from 05pre3 branch rev. 1213 Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/src/treeview/DefaultView.java trunk/treeview/src/treeview/TreeViewPlugin.java trunk/treeview/src/treeview/TreeViewTree.java trunk/treeview/src/treeview/action/CopyNodeAction.java trunk/treeview/src/treeview/action/CutNodeAction.java trunk/treeview/src/treeview/action/PasteNodeAction.java Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/Changelog 2006-08-31 20:41:42 UTC (rev 1215) @@ -1,3 +1,8 @@ +08/31/2006 Ian Lewis <Ian...@me...> + + * Updated the sourceview actions to use the new ContextSpecificActions in + jsXe. + 08/30/2006 Ian Lewis <Ian...@me...> * Fixed null pointer exception when trying to cut a node that can't be Modified: trunk/treeview/src/treeview/DefaultView.java =================================================================== --- trunk/treeview/src/treeview/DefaultView.java 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/src/treeview/DefaultView.java 2006-08-31 20:41:42 UTC (rev 1215) @@ -32,8 +32,10 @@ import net.sourceforge.jsxe.dom.*; import net.sourceforge.jsxe.dom.completion.ElementDecl; import net.sourceforge.jsxe.*; +import net.sourceforge.jsxe.action.ContextSpecificAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; +import net.sourceforge.jsxe.gui.TabbedView; import net.sourceforge.jsxe.util.Log; import net.sourceforge.jsxe.msg.PropertyChanged; import net.sourceforge.jsxe.msg.UndoEvent; @@ -120,6 +122,7 @@ m_valueTextArea.setFont(new Font("Monospaced", 0, 12)); m_valueTextArea.setLineWrap(false); JScrollPane htmlView = new JScrollPane(m_valueTextArea); + //}}} //{{{ init attributes table @@ -138,6 +141,11 @@ JScrollPane treeView = new JScrollPane(tree); tree.addTreeSelectionListener(new DefaultTreeSelectionListener(this)); + //add context specific actions for the tree. + ActionManager.addActionImplementation("cut", tree, new CutNodeAction()); + ActionManager.addActionImplementation("copy", tree, new CopyNodeAction()); + ActionManager.addActionImplementation("paste", tree, new PasteNodeAction()); + //starts editing if the user start typing on one of the nodes //seems to catch user shortcuts too. Not sure how to resolve that. @@ -233,6 +241,10 @@ } } + ActionManager.removeActionImplementation("cut", tree); + ActionManager.removeActionImplementation("copy", tree); + ActionManager.removeActionImplementation("paste", tree); + EditBus.removeFromBus(this); return true; Modified: trunk/treeview/src/treeview/TreeViewPlugin.java =================================================================== --- trunk/treeview/src/treeview/TreeViewPlugin.java 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/src/treeview/TreeViewPlugin.java 2006-08-31 20:41:42 UTC (rev 1215) @@ -63,9 +63,6 @@ addAction(new RemoveAttributeAction()); addAction(new EditNodeAction()); addAction(new AddDocTypeAction()); - addAction(new CutNodeAction()); - addAction(new CopyNodeAction()); - addAction(new PasteNodeAction()); }//}}} //{{{ newDocumentView() Modified: trunk/treeview/src/treeview/TreeViewTree.java =================================================================== --- trunk/treeview/src/treeview/TreeViewTree.java 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/src/treeview/TreeViewTree.java 2006-08-31 20:41:42 UTC (rev 1215) @@ -684,48 +684,48 @@ }//}}} - //{{{ ElementTreeCellRenderer class + // //{{{ ElementTreeCellRenderer class - private class ElementTreeCellRenderer extends DefaultTreeCellRenderer { + // private class ElementTreeCellRenderer extends DefaultTreeCellRenderer { - //{{{ ElementTreeCellRenderer constructor + // //{{{ ElementTreeCellRenderer constructor - public ElementTreeCellRenderer() { - m_defaultLeafIcon = getLeafIcon(); - }//}}} + // public ElementTreeCellRenderer() { + // m_defaultLeafIcon = getLeafIcon(); + // }//}}} - //{{{ getTreeCellRendererComponent + // //{{{ getTreeCellRendererComponent - public Component getTreeCellRendererComponent(JTree tree, - Object value, boolean selected, boolean expanded, - boolean leaf, int row, boolean hasFocus) - { - AdapterNode node = (AdapterNode)value; + // public Component getTreeCellRendererComponent(JTree tree, + // Object value, boolean selected, boolean expanded, + // boolean leaf, int row, boolean hasFocus) + // { + // AdapterNode node = (AdapterNode)value; - // We can rename processing instruction nodes here too. - if (node.getNodeType() == AdapterNode.PROCESSING_INSTRUCTION_NODE) { - setIcon(m_defaultLeafIcon); - setLeafIcon(m_defaultLeafIcon); - setOpenIcon(m_defaultLeafIcon); - setClosedIcon(m_defaultLeafIcon); - setToolTipText(Messages.getMessage("xml.processing.instruction")); - } else { - setIcon(m_elementIcon); - setLeafIcon(m_elementIcon); - setOpenIcon(m_elementIcon); - setClosedIcon(m_elementIcon); - setToolTipText(Messages.getMessage("xml.element")); - } + // // We can rename processing instruction nodes here too. + // if (node.getNodeType() == AdapterNode.PROCESSING_INSTRUCTION_NODE) { + // setIcon(m_defaultLeafIcon); + // setLeafIcon(m_defaultLeafIcon); + // setOpenIcon(m_defaultLeafIcon); + // setClosedIcon(m_defaultLeafIcon); + // setToolTipText(Messages.getMessage("xml.processing.instruction")); + // } else { + // setIcon(m_elementIcon); + // setLeafIcon(m_elementIcon); + // setOpenIcon(m_elementIcon); + // setClosedIcon(m_elementIcon); + // setToolTipText(Messages.getMessage("xml.element")); + // } - //just use the node name, we don't want attributes and such. - setText(((AdapterNode)value).getNodeName()); - return this; + // //just use the node name, we don't want attributes and such. + // setText(((AdapterNode)value).getNodeName()); + // return this; - }//}}} + // }//}}} - private Icon m_defaultLeafIcon; + // private Icon m_defaultLeafIcon; - }//}}} + // }//}}} //{{{ ElementCellEditor class Modified: trunk/treeview/src/treeview/action/CopyNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/CopyNodeAction.java 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/src/treeview/action/CopyNodeAction.java 2006-08-31 20:41:42 UTC (rev 1215) @@ -29,10 +29,8 @@ import treeview.*; //{{{ AWT classes -import java.awt.datatransfer.Clipboard; import java.awt.event.ActionEvent; -import java.awt.Toolkit; -import java.awt.HeadlessException; +import java.awt.Component; //}}} //{{{ Swing classes @@ -43,7 +41,7 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; -import net.sourceforge.jsxe.LocalizedAction; +import net.sourceforge.jsxe.action.ContextSpecificAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.TabbedView; @@ -60,24 +58,10 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class CopyNodeAction extends LocalizedAction { +public class CopyNodeAction implements ContextSpecificAction.ActionImplementation { - //{{{ CopyNodeAction constructor - /** - * Creates a action that copies the current node out of the tree and into - * the clipboard. - */ - public CopyNodeAction() { - super(TreeViewPlugin.PLUGIN_NAME+".copy"); - }//}}} - - //{{{ getLabel() - public String getLabel() { - return Messages.getMessage("common.copy"); - }//}}} - //{{{ invoke() - public void invoke(TabbedView view, ActionEvent evt) { + public void invoke(TabbedView view, Component comp, ActionEvent evt) { DocumentView docView = view.getDocumentView(); if (docView instanceof DefaultView) { DefaultView defView = (DefaultView)docView; Modified: trunk/treeview/src/treeview/action/CutNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/CutNodeAction.java 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/src/treeview/action/CutNodeAction.java 2006-08-31 20:41:42 UTC (rev 1215) @@ -30,6 +30,7 @@ //{{{ AWT classes import java.awt.event.ActionEvent; +import java.awt.Component; //}}} //{{{ Swing classes @@ -45,7 +46,7 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; -import net.sourceforge.jsxe.LocalizedAction; +import net.sourceforge.jsxe.action.ContextSpecificAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.TabbedView; @@ -63,25 +64,10 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class CutNodeAction extends LocalizedAction { +public class CutNodeAction implements ContextSpecificAction.ActionImplementation { - //{{{ CutNodeAction constructor - /** - * Creates a action that cuts the current node out of the tree and into - * the clipboard. - */ - public CutNodeAction() { - super(TreeViewPlugin.PLUGIN_NAME+".cut"); - // putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrl X")); - }//}}} - - //{{{ getLabel() - public String getLabel() { - return Messages.getMessage("common.cut"); - }//}}} - //{{{ invoke() - public void invoke(TabbedView view, ActionEvent evt) { + public void invoke(TabbedView view, Component comp, ActionEvent evt) { DocumentView docView = view.getDocumentView(); if (docView instanceof DefaultView) { DefaultView defView = (DefaultView)docView; Modified: trunk/treeview/src/treeview/action/PasteNodeAction.java =================================================================== --- trunk/treeview/src/treeview/action/PasteNodeAction.java 2006-08-31 20:41:10 UTC (rev 1214) +++ trunk/treeview/src/treeview/action/PasteNodeAction.java 2006-08-31 20:41:42 UTC (rev 1215) @@ -29,10 +29,8 @@ import treeview.*; //{{{ AWT classes -import java.awt.datatransfer.Clipboard; import java.awt.event.ActionEvent; -import java.awt.Toolkit; -import java.awt.HeadlessException; +import java.awt.Component; //}}} //{{{ Swing classes @@ -48,7 +46,7 @@ //{{{ jsXe classes import net.sourceforge.jsxe.jsXe; -import net.sourceforge.jsxe.LocalizedAction; +import net.sourceforge.jsxe.action.ContextSpecificAction; import net.sourceforge.jsxe.gui.DocumentView; import net.sourceforge.jsxe.gui.Messages; import net.sourceforge.jsxe.gui.TabbedView; @@ -65,24 +63,10 @@ * @author Ian Lewis (<a href="mailto:Ian...@me...">Ian...@me...</a>) * @version $Id$ */ -public class PasteNodeAction extends LocalizedAction { +public class PasteNodeAction implements ContextSpecificAction.ActionImplementation { - //{{{ PasteNodeAction constructor - /** - * Creates an action that pastes the node in the clipboard to the currently - * selected node in the tree. - */ - public PasteNodeAction() { - super(TreeViewPlugin.PLUGIN_NAME+".paste"); - }//}}} - - //{{{ getLabel() - public String getLabel() { - return Messages.getMessage("common.paste"); - }//}}} - //{{{ invoke() - public void invoke(TabbedView view, ActionEvent evt) { + public void invoke(TabbedView view, Component comp, ActionEvent evt) { DocumentView docView = view.getDocumentView(); if (docView instanceof DefaultView) { DefaultView defView = (DefaultView)docView; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ian...@us...> - 2006-10-20 10:34:00
|
Revision: 1262 http://svn.sourceforge.net/jsxe/?rev=1262&view=rev Author: ian_lewis Date: 2006-10-20 03:33:51 -0700 (Fri, 20 Oct 2006) Log Message: ----------- Updated Japanese translation Modified Paths: -------------- trunk/treeview/Changelog trunk/treeview/messages/messages_ja.properties Modified: trunk/treeview/Changelog =================================================================== --- trunk/treeview/Changelog 2006-10-20 10:33:00 UTC (rev 1261) +++ trunk/treeview/Changelog 2006-10-20 10:33:51 UTC (rev 1262) @@ -1,3 +1,7 @@ +10/20/2006 Ian Lewis <Ian...@me...> + + * Updated Japanese translation. + 08/31/2006 Ian Lewis <Ian...@me...> * Updated the sourceview actions to use the new ContextSpecificActions in Modified: trunk/treeview/messages/messages_ja.properties =================================================================== --- trunk/treeview/messages/messages_ja.properties 2006-10-20 10:33:00 UTC (rev 1261) +++ trunk/treeview/messages/messages_ja.properties 2006-10-20 10:33:51 UTC (rev 1262) @@ -12,10 +12,10 @@ Show.Attributes.None=なし Show.Attributes.ID.Only=IDだけ Show.Attributes.All=全て - -treeview.document.root=ドキュメントルート -treeview.rename.node.label=ノードをリネーム +treeview.document.root=ドキュメントルート + +treeview.rename.node.label=ノードの名前を変更 treeview.remove.node.label=ノードを削除 treeview.add.attribute.label=属性を追加 treeview.remove.attribute.label=属性を削除 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |