You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2012/01/26 16:50:30 UTC

svn commit: r1236251 - in /jmeter/trunk: src/core/org/apache/jmeter/gui/action/Help.java xdocs/changes.xml

Author: sebb
Date: Thu Jan 26 15:50:29 2012
New Revision: 1236251

URL: http://svn.apache.org/viewvc?rev=1236251&view=rev
Log:
Bug 52537 - Help does not scroll to correct anchor when file is first loaded

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/gui/action/Help.java
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Help.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Help.java?rev=1236251&r1=1236250&r2=1236251&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Help.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Help.java Thu Jan 26 15:50:29 2012
@@ -57,21 +57,11 @@ public class Help implements Command {
 
     private static final JScrollPane scroller;
 
-    private static String currentPage;
-
     static {
         commands.add(ActionNames.HELP);
         helpDoc = new HtmlPane();
         scroller = new JScrollPane(helpDoc);
         helpDoc.setEditable(false);
-        try {
-            helpDoc.setPage(HELP_PAGE);
-            currentPage = HELP_PAGE;
-        } catch (Exception err) {
-            String msg = "Couldn't load help file " + err.toString();
-            log.error(msg);
-            currentPage = "";// Avoid NPE in resetPage() // $NON-NLS-1$
-        }
     }
 
     /**
@@ -85,32 +75,29 @@ public class Help implements Command {
                     JMeterUtils.getResString("help"),//$NON-NLS-1$
                     false);
             helpWindow.getContentPane().setLayout(new GridLayout(1, 1));
+            helpWindow.getContentPane().removeAll();
+            helpWindow.getContentPane().add(scroller);
             ComponentUtil.centerComponentInWindow(helpWindow, 60);
         }
-        helpWindow.getContentPane().removeAll();
-        helpWindow.getContentPane().add(scroller);
-        helpWindow.setVisible(true);
+        helpWindow.setVisible(true); // set the window visible immediately
+        /*
+         * This means that a new page will be shown before rendering is complete,
+         * however the correct location will be displayed.
+         * Attempts to use a "page" PropertyChangeListener to detect when the page
+         * has been loaded failed to work any better. 
+         */
+        StringBuilder url=new StringBuilder();
         if (e.getSource() instanceof String[]) {
             String[] source = (String[]) e.getSource();
-            resetPage(source[0]);
-            helpDoc.scrollToReference(source[1]);
+            url.append(source[0]).append('#').append(source[1]);
         } else {
-            resetPage(HELP_PAGE);
-            helpDoc.scrollToReference(GuiPackage.getInstance().getTreeListener().getCurrentNode().getDocAnchor());
-
+            url.append(HELP_PAGE).append('#').append(GuiPackage.getInstance().getTreeListener().getCurrentNode().getDocAnchor());
         }
-    }
-
-    private void resetPage(String source) {
-        if (!currentPage.equals(source)) {
-            try {
-                helpDoc.setPage(source);
-                currentPage = source;
-            } catch (IOException err) {
-                log.error(err.toString());
-                JMeterUtils.reportErrorToUser("Problem loading a help page - see log for details");
-                currentPage = ""; // $NON-NLS-1$
-            }
+        try {
+            helpDoc.setPage(url.toString()); // N.B. this only reloads if necessary (ignores the reference)
+        } catch (IOException ioe) {
+            log.error(ioe.toString());
+            JMeterUtils.reportErrorToUser("Problem loading a help page - see log for details");
         }
     }
 

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1236251&r1=1236250&r2=1236251&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Thu Jan 26 15:50:29 2012
@@ -349,6 +349,7 @@ fix code which assumes that a new instan
 <li>Bug 52469 - Changes in Support of SSH-Tunneling of RMI traffic for Remote Testing</li>
 <li>Bug 52466 - Upgrade Test Plan feature : NameUpdater does not upgrade properties</li>
 <li>Bug 52503 - Unify File->Close and Window close file saving behaviour</li>
+<li>Bug 52537 - Help does not scroll to correct anchor when file is first loaded</li>
 </ul>
 
 <!-- =================== Improvements =================== -->