r1075 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing
Author: tchemit Date: 2008-02-18 17:03:55 +0000 (Mon, 18 Feb 2008) New Revision: 1075 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerTab.java Log: ajout d'une m?\195?\169thode pour retrouver l'onglet d'un composant Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerTab.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerTab.java 2008-02-18 17:03:10 UTC (rev 1074) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerTab.java 2008-02-18 17:03:55 UTC (rev 1075) @@ -26,6 +26,9 @@ import jaxx.runtime.swing.JAXXTab; import javax.swing.JTabbedPane; +import javax.swing.JPopupMenu; +import java.awt.Component; +import java.awt.Container; /** * La défintion des onglets utilisés dans l'application @@ -93,6 +96,33 @@ return factory; } + /** + * recherche d'un onglet contenant un component. + * + * @param c le component dont on cherche l'onglet + * @return l'onglet parent du component, ou null si pas de tab trouvé + */ + public static SimExplorerTab findTab(Component c) { + Component parent = c.getParent(); + while (parent != null) { + if (parent instanceof JPopupMenu) { + parent = ((JPopupMenu)parent).getInvoker(); + } + if (parent instanceof JAXXTab) { + // find a JAXXTab + for (SimExplorerTab tab : values()) { + if (parent.equals(tab.getUI())) { + // find the correct tab + return tab; + } + } + break; + } + parent = parent.getParent(); + } + return null; + } + public abstract <U extends JAXXTab, M extends SimExplorerTabModel> void updateUI(U ui, M model); public JAXXTab getUI() {
participants (1)
-
tchemit@users.labs.libre-entreprise.org