Thread: [Jreepad-CVS] jreepad/src/jreepad JreepadView.java,1.43,1.44
Brought to you by:
danstowell
From: PeWu <pe...@us...> - 2007-02-07 23:01:06
|
Update of /cvsroot/jreepad/jreepad/src/jreepad In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv1155/src/jreepad Modified Files: JreepadView.java Log Message: refactoring: Adapted JreepadView to the new ArticleView interface Index: JreepadView.java =================================================================== RCS file: /cvsroot/jreepad/jreepad/src/jreepad/JreepadView.java,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** JreepadView.java 7 Feb 2007 21:19:11 -0000 1.43 --- JreepadView.java 7 Feb 2007 23:01:01 -0000 1.44 *************** *** 31,35 **** import javax.swing.Box; import javax.swing.BoxLayout; - import javax.swing.JComponent; import javax.swing.JOptionPane; import javax.swing.JScrollPane; --- 31,34 ---- *************** *** 42,45 **** --- 41,45 ---- import javax.swing.tree.TreePath; + import jreepad.editor.ArticleView; import jreepad.editor.ContentChangeListener; import jreepad.editor.HtmlViewer; *************** *** 61,65 **** private TreeView tree; private JScrollPane treeView; ! private JScrollPane articleView; // editorPane is supposed to represent the pane currently displayed/edited - so it's the one --- 61,65 ---- private TreeView tree; private JScrollPane treeView; ! private JScrollPane articlePane; // editorPane is supposed to represent the pane currently displayed/edited - so it's the one *************** *** 72,76 **** private TableViewer editorPaneCsv; ! private JComponent currentArticleView; --- 72,76 ---- private TableViewer editorPaneCsv; ! private ArticleView currentArticleView; *************** *** 166,171 **** editorPaneTextile = new TextileViewer(root.getArticle()); editorPaneCsv = new TableViewer(root.getArticle()); ! articleView = new JScrollPane(getEditorPaneComponent(), JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); /* XXX Is this really needed? --- 166,179 ---- editorPaneTextile = new TextileViewer(root.getArticle()); editorPaneCsv = new TableViewer(root.getArticle()); + currentArticleView = editorPanePlainText; ! editorPanePlainText.setContentChangeListener(new ContentChangeListener() { ! public void contentChanged() ! { ! setWarnAboutUnsaved(true); ! } ! }); ! ! articlePane = new JScrollPane(editorPanePlainText.getComponent(), JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); /* XXX Is this really needed? *************** *** 199,209 **** */ - editorPanePlainText.setContentChangeListener(new ContentChangeListener() { - public void contentChanged() - { - setWarnAboutUnsaved(true); - } - }); - setCurrentNode(root); --- 207,210 ---- *************** *** 236,241 **** } setSize(getSize()); ! currentArticleView.setPreferredSize(articleView.getViewport().getExtentSize()); ! currentArticleView.setSize(articleView.getViewport().getExtentSize()); validate(); repaint(); --- 237,242 ---- } setSize(getSize()); ! currentArticleView.getComponent().setPreferredSize(articlePane.getViewport().getExtentSize()); ! currentArticleView.getComponent().setSize(articlePane.getViewport().getExtentSize()); validate(); repaint(); *************** *** 251,255 **** ensureCorrectArticleRenderMode(); splitPane.setLeftComponent(treeView); ! splitPane.setRightComponent(articleView); this.add(splitPane); // editorPane.setSize(articleView.getSize()); --- 252,256 ---- ensureCorrectArticleRenderMode(); splitPane.setLeftComponent(treeView); ! splitPane.setRightComponent(articlePane); this.add(splitPane); // editorPane.setSize(articleView.getSize()); *************** *** 258,262 **** private void setViewTreeOnly() { this.remove(splitPane); ! this.remove(articleView); this.add(treeView); treeView.setSize(getSize()); --- 259,263 ---- private void setViewTreeOnly() { this.remove(splitPane); ! this.remove(articlePane); this.add(treeView); treeView.setSize(getSize()); *************** *** 267,272 **** this.remove(treeView); ensureCorrectArticleRenderMode(); ! this.add(articleView); ! articleView.setSize(getSize()); } --- 268,273 ---- this.remove(treeView); ensureCorrectArticleRenderMode(); ! this.add(articlePane); ! articlePane.setSize(getSize()); } *************** *** 277,287 **** return; ! editorPanePlainText.lockEdits(); // Deactivate the caret-listener, effectively - ALSO DEACTIVATES UNDO-STORAGE currentNode = n; - setEditorPaneText(n.getArticle()); ensureCorrectArticleRenderMode(); ! editorPanePlainText.unlockEdits(); // Reactivate the caret listener - ALSO REACTIVATES UNDO-STORAGE } --- 278,288 ---- return; ! ArticleView oldView = currentArticleView; ! oldView.lockEdits(); // Deactivate the caret-listener, effectively - ALSO DEACTIVATES UNDO-STORAGE currentNode = n; ensureCorrectArticleRenderMode(); ! oldView.unlockEdits(); // Reactivate the caret listener - ALSO REACTIVATES UNDO-STORAGE } *************** *** 499,503 **** int index = parent.getIndex(currentNode); JreepadNode ret = parent.removeChild(index); - setCurrentNode(parent); tree.setSelectionPath(parentPath); --- 500,503 ---- *************** *** 608,627 **** } - public String getSelectedTextInArticle() - { - switch(currentNode.getArticle().getArticleMode()) - { - case JreepadArticle.ARTICLEMODE_CSV: - return editorPaneCsv.getSelectedText(); - case JreepadArticle.ARTICLEMODE_HTML: - return editorPaneHtml.getSelectedText(); - case JreepadArticle.ARTICLEMODE_TEXTILEHTML: - return editorPaneTextile.getSelectedText(); - case JreepadArticle.ARTICLEMODE_ORDINARY: - default: - return editorPanePlainText.getSelectedText(); - } - } - public static JreepadPrefs getPrefs() { --- 608,611 ---- *************** *** 638,642 **** { // JComponent treeOrArticle; ! String url = getSelectedTextInArticle(); if(url==null || url.length()==0) --- 622,626 ---- { // JComponent treeOrArticle; ! String url = currentArticleView.getSelectedText(); if(url==null || url.length()==0) *************** *** 659,663 **** public void openURLSelectedInArticle() { ! String url = getSelectedTextInArticle(); if((url == null) && (currentNode.getArticle().getArticleMode()==JreepadArticle.ARTICLEMODE_ORDINARY)) url = editorPanePlainText.selectWordUnderCursor(); --- 643,647 ---- public void openURLSelectedInArticle() { ! String url = currentArticleView.getSelectedText(); if((url == null) && (currentNode.getArticle().getArticleMode()==JreepadArticle.ARTICLEMODE_ORDINARY)) url = editorPanePlainText.selectWordUnderCursor(); *************** *** 939,946 **** //DEL storeForUndo(); currentNode.getArticle().wrapContentToCharWidth(charWidth); ! editorPanePlainText.reloadArticle(); ! editorPaneHtml.reloadArticle(); ! editorPaneTextile.reloadArticle(); ! editorPaneCsv.reloadArticle(); setWarnAboutUnsaved(true); } --- 923,927 ---- //DEL storeForUndo(); currentNode.getArticle().wrapContentToCharWidth(charWidth); ! currentArticleView.reloadArticle(); setWarnAboutUnsaved(true); } *************** *** 950,1051 **** //DEL storeForUndo(); currentNode.getArticle().stripAllTags(); ! editorPanePlainText.reloadArticle(); ! editorPaneHtml.reloadArticle(); ! editorPaneTextile.reloadArticle(); ! editorPaneCsv.reloadArticle(); setWarnAboutUnsaved(true); } - public void setArticleMode(int newMode) { ! editorPanePlainText.lockEdits(); // Disables store-for-undo - switch(newMode) - { - case JreepadArticle.ARTICLEMODE_ORDINARY: - editorPanePlainText.reloadArticle(); - break; - case JreepadArticle.ARTICLEMODE_HTML: - editorPaneHtml.reloadArticle(); - break; - case JreepadArticle.ARTICLEMODE_TEXTILEHTML: - editorPaneTextile.reloadArticle(); - break; - case JreepadArticle.ARTICLEMODE_CSV: - editorPaneCsv.reloadArticle(); - break; - default: - return; - } currentNode.getArticle().setArticleMode(newMode); ensureCorrectArticleRenderMode(); ! getEditorPaneComponent().repaint(); ! editorPanePlainText.unlockEdits(); // Re-enables store-for-undo ! } ! public void ensureCorrectArticleRenderMode() ! { ! articleView.setViewportView(getEditorPaneComponent()); } ! // The following functions allow us to use either a JEditorPane or a JTable to display article data ! JComponent getEditorPaneComponent() { - if(currentNode==null) - { - currentArticleView = editorPanePlainText.getComponent(); - return currentArticleView; // This is a bit of a hack - it shouldn't really even be called to act on null - } - switch(currentNode.getArticle().getArticleMode()) { case JreepadArticle.ARTICLEMODE_ORDINARY: ! currentArticleView = editorPanePlainText.getComponent(); break; case JreepadArticle.ARTICLEMODE_HTML: ! currentArticleView = editorPaneHtml.getComponent(); break; case JreepadArticle.ARTICLEMODE_TEXTILEHTML: ! currentArticleView = editorPaneTextile.getComponent(); break; case JreepadArticle.ARTICLEMODE_CSV: ! currentArticleView = editorPaneCsv.getComponent(); break; default: System.err.println("getEditorPaneComponent() says: JreepadNode.getArticleMode() returned an unrecognised value"); ! return null; ! } ! return currentArticleView; ! } ! ! String getEditorPaneText() ! { ! switch(currentNode.getArticle().getArticleMode()) ! { ! case JreepadArticle.ARTICLEMODE_ORDINARY: ! return editorPanePlainText.getText(); ! case JreepadArticle.ARTICLEMODE_HTML: ! return editorPaneHtml.getText(); ! case JreepadArticle.ARTICLEMODE_TEXTILEHTML: ! return editorPaneTextile.getText(); ! case JreepadArticle.ARTICLEMODE_CSV: ! return editorPaneCsv.getText(); ! default: ! System.err.println("getEditorPaneText() says: JreepadNode.getArticleMode() returned an unrecognised value"); ! return null; } } - void setEditorPaneText(JreepadArticle a) - { - editorPanePlainText.setArticle(a); - editorPaneHtml.setArticle(a); - editorPaneTextile.setArticle(a); - editorPaneCsv.setArticle(a); - } - // End of: functions which should allow us to switch between JEditorPane and JTable - - public void editNodeTitleAction() { --- 931,974 ---- //DEL storeForUndo(); currentNode.getArticle().stripAllTags(); ! currentArticleView.reloadArticle(); setWarnAboutUnsaved(true); } public void setArticleMode(int newMode) { ! ArticleView oldView = currentArticleView; ! oldView.lockEdits(); // Disables store-for-undo currentNode.getArticle().setArticleMode(newMode); ensureCorrectArticleRenderMode(); ! currentArticleView.getComponent().repaint(); ! oldView.unlockEdits(); // Re-enables store-for-undo } ! public void ensureCorrectArticleRenderMode() { switch(currentNode.getArticle().getArticleMode()) { case JreepadArticle.ARTICLEMODE_ORDINARY: ! currentArticleView = editorPanePlainText; break; case JreepadArticle.ARTICLEMODE_HTML: ! currentArticleView = editorPaneHtml; break; case JreepadArticle.ARTICLEMODE_TEXTILEHTML: ! currentArticleView = editorPaneTextile; break; case JreepadArticle.ARTICLEMODE_CSV: ! currentArticleView = editorPaneCsv; break; default: System.err.println("getEditorPaneComponent() says: JreepadNode.getArticleMode() returned an unrecognised value"); ! currentArticleView = null; } + currentArticleView.setArticle(currentNode.getArticle()); + articlePane.setViewportView(currentArticleView.getComponent()); } public void editNodeTitleAction() { |