diff --git a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java index 2f4385afc9ee92b4c5d224b4fa1a520f5f9a4bc1..ab918a95bcb35dc2b0e56ea0ff90f6830cd11c04 100644 --- a/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java +++ b/dockinginfonode/src/main/java/fr/soleil/docking/infonode/view/InfoNodeView.java @@ -13,6 +13,7 @@ import java.util.List; import javax.swing.Icon; +import net.infonode.docking.AbstractTabWindow; import net.infonode.docking.DockingWindow; import net.infonode.docking.DockingWindowListener; import net.infonode.docking.OperationAbortedException; @@ -28,7 +29,7 @@ import fr.soleil.docking.view.IViewListener; */ public class InfoNodeView extends View implements IView { - private static final long serialVersionUID = -8766019787338480450L; + private static final long serialVersionUID = 7028633985357675678L; protected Object id; @@ -74,6 +75,30 @@ public class InfoNodeView extends View implements IView { super.setEnabled(visible); } + @Override + public void select() { + recursiveSelect(this); + // requestFocusInWindow(); + // Component comp = getComponent(); + // if (comp != null) { + // comp.requestFocusInWindow(); + // } + } + + protected static void recursiveSelect(DockingWindow window) { + if (window != null) { + DockingWindow parent = window.getWindowParent(); + if (parent instanceof AbstractTabWindow) { + AbstractTabWindow tabWindow = (AbstractTabWindow) parent; + int index = parent.getChildWindowIndex(window); + if (index > -1) { + tabWindow.setSelectedTab(index); + } + } + recursiveSelect(parent); + } + } + @Override protected void update() { super.update(); @@ -116,9 +141,9 @@ public class InfoNodeView extends View implements IView { win.setBackground(bg); win.setBorder(null); win.getWindowProperties().getTabProperties().getTitledTabProperties().getNormalProperties() - .getComponentProperties().setBackgroundColor(bg); + .getComponentProperties().setBackgroundColor(bg); win.getWindowProperties().getTabProperties().getTitledTabProperties().getHighlightedProperties() - .getComponentProperties().setBackgroundColor(bg); + .getComponentProperties().setBackgroundColor(bg); } /** @@ -130,9 +155,9 @@ public class InfoNodeView extends View implements IView { protected void setForeground(DockingWindow win, Color fg) { win.setForeground(fg); win.getWindowProperties().getTabProperties().getTitledTabProperties().getNormalProperties() - .getComponentProperties().setForegroundColor(fg); + .getComponentProperties().setForegroundColor(fg); win.getWindowProperties().getTabProperties().getTitledTabProperties().getHighlightedProperties() - .getComponentProperties().setForegroundColor(fg); + .getComponentProperties().setForegroundColor(fg); } /** @@ -171,9 +196,9 @@ public class InfoNodeView extends View implements IView { public void setClosable(boolean closable) { if (getWindowProperties() != null) { getWindowProperties().getTabProperties().getNormalButtonProperties().getCloseButtonProperties() - .setVisible(closable); + .setVisible(closable); getWindowProperties().getTabProperties().getHighlightedButtonProperties().getCloseButtonProperties() - .setVisible(closable); + .setVisible(closable); getWindowProperties().setCloseEnabled(closable); } }