Author: tchemit Date: 2013-03-18 00:54:03 +0100 (Mon, 18 Mar 2013) New Revision: 638 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/638 Log: fix help sensitive context Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java 2013-03-15 14:30:50 UTC (rev 637) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiHelpBroker.java 2013-03-17 23:54:03 UTC (rev 638) @@ -25,12 +25,20 @@ */ import jaxx.runtime.JAXXObject; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.awt.visitor.BuildTreeVisitor; +import jaxx.runtime.awt.visitor.ComponentTreeNode; +import jaxx.runtime.awt.visitor.GetCompopentAtPointVisitor; import jaxx.runtime.swing.help.JAXXHelpBroker; +import jaxx.runtime.swing.help.JAXXHelpUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.AbstractButton; +import java.awt.Component; +import java.awt.Point; import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; /** * Help broker. @@ -79,4 +87,37 @@ } } } + + @Override + public String findHelpId(Component comp) { + + JAXXHelpUI parentContainer = SwingUtil.getParent(comp, + JAXXHelpUI.class); + + String result; + if (parentContainer != null && this != parentContainer.getBroker()) { + + JAXXHelpBroker broker = parentContainer.getBroker(); + result = broker.findHelpId(comp); + } else { + result = super.findHelpId(comp); + } + + return result; + } + + @Override + public Component getDeppestComponent(Component mouseComponent, MouseEvent event) { + ComponentTreeNode tree = BuildTreeVisitor.buildTree(mouseComponent); + + Point point = event.getPoint(); + + Component component = GetCompopentAtPointVisitor.get(tree, point); + if (log.isInfoEnabled()) { + log.info("Component at (" + point + "): " + component); + } + return component; + } + + }