20 package net.sf.gridarta.gui.utils.tabbedpanel;
22 import java.awt.Component;
23 import java.awt.Dimension;
24 import java.awt.Insets;
25 import java.awt.event.MouseAdapter;
26 import java.awt.event.MouseEvent;
27 import java.awt.event.MouseListener;
28 import java.util.Collection;
29 import java.util.MissingResourceException;
30 import java.util.concurrent.CopyOnWriteArrayList;
31 import java.util.prefs.Preferences;
32 import javax.swing.AbstractButton;
33 import javax.swing.Action;
34 import javax.swing.JComponent;
35 import javax.swing.JMenu;
36 import javax.swing.JPopupMenu;
41 import net.
sf.japi.swing.action.ActionBuilder;
42 import net.
sf.japi.swing.action.ActionBuilderFactory;
43 import net.
sf.japi.swing.action.ToggleAction;
44 import org.jetbrains.annotations.NotNull;
45 import org.jetbrains.annotations.Nullable;
59 private static final int SPACE = 6;
83 private static final String
TAB_LOCATION =
"MainWindow.tab_location.";
95 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
130 private final Collection<TabListener>
listeners =
new CopyOnWriteArrayList<>();
199 public void mousePressed(@NotNull
final MouseEvent e) {
204 public void mouseReleased(@NotNull
final MouseEvent e) {
212 private void checkPopup(@NotNull
final MouseEvent e) {
213 if (e.isPopupTrigger()) {
214 getPopupMenu().show(e.getComponent(), e.getX(), e.getY());
233 final Dimension preferredSize =
component.getPreferredSize();
236 final Dimension minimumSize =
component.getMinimumSize();
237 width = Math.max(defaultWidth, minimumSize.width);
238 height = Math.max(defaultHeight, minimumSize.height);
244 }
catch (
final IllegalArgumentException ignored) {
252 throw new MissingResourceException(
"missing action ",
MenuUtils.class.getName(),
"tabButtonMoveTo");
263 final int acceleratorIndex =
index < 10 ?
index : -1;
267 if (acceleratorIndex != -1) {
268 result.setMnemonic(
'0' +
index);
416 if (this.open ==
open) {