20 package net.sf.gridarta.gui.utils.tabbedpanel;
22 import java.util.IdentityHashMap;
24 import javax.swing.AbstractButton;
26 import org.jetbrains.annotations.NotNull;
27 import org.jetbrains.annotations.Nullable;
46 private final Map<AbstractButton, Tab>
tabs =
new IdentityHashMap<>();
59 public void selectedButtonChanged(@Nullable
final AbstractButton prevSelectedButton, @Nullable
final AbstractButton selectedButton) {
60 final Tab prevTab =
tabs.get(prevSelectedButton);
61 final Tab tab =
tabs.get(selectedButton);
65 buttonListsListener.tabChanged(prevTab, tab);
83 final AbstractButton button = tab.getButton();
84 buttonList.
addButton(button, tab.isAlternativeLocation());
85 tabs.put(button, tab);
99 if (
tabs.get(tab.getButton()) ==
null) {
100 throw new IllegalArgumentException(
"can't move an undefined button: " + tab.getButton());
105 final AbstractButton oldButton = tab.getButton();
106 oldButtonList.
removeButton(oldButton, tab.isAlternativeLocation());
107 oldButton.setSelected(
false);
108 tab.setLocation(location);
109 final AbstractButton newButton = tab.getButton();
110 newButtonList.
addButton(newButton, tab.isAlternativeLocation());
111 tabs.remove(oldButton);
112 tabs.put(newButton, tab);
118 final boolean alternativeLocation = !tab.isAlternativeLocation();
120 final AbstractButton oldButton = tab.getButton();
121 buttonList.
removeButton(oldButton, tab.isAlternativeLocation());
122 oldButton.setSelected(
false);
123 tab.setAlternativeLocation(alternativeLocation);
124 final AbstractButton newButton = tab.getButton();
125 buttonList.
addButton(newButton, tab.isAlternativeLocation());
126 tabs.remove(oldButton);
127 tabs.put(newButton, tab);
142 final AbstractButton selectedButton = buttonList.
getSelectedButton(alternativeLocation);
143 if (selectedButton ==
null) {
147 final Tab tab =
tabs.get(selectedButton);