[Git][java-team/libmnemonicsetter-java][upstream] New upstream version 0.6
Andreas Tille (@tille)
gitlab at salsa.debian.org
Mon Feb 10 19:46:10 GMT 2025
Andreas Tille pushed to branch upstream at Debian Java Maintainers / libmnemonicsetter-java
Commits:
3e0b8fbf by Andreas Tille at 2025-02-10T20:37:49+01:00
New upstream version 0.6
- - - - -
2 changed files:
- build.gradle
- src/main/java/org/dpolivaev/mnemonicsetter/MnemonicSetter.java
Changes:
=====================================
build.gradle
=====================================
@@ -13,7 +13,7 @@ targetCompatibility='1.7'
sourceCompatibility='1.7'
group 'org.dpolivaev.mnemonicsetter'
-version='0.5'
+version='0.6'
bintray {
@@ -55,6 +55,9 @@ publishing {
}
}
}
+ repositories {
+ maven { url "${project.gradle.gradleUserHomeDir}/local-artifacts" }
+ }
}
dependencies {
=====================================
src/main/java/org/dpolivaev/mnemonicsetter/MnemonicSetter.java
=====================================
@@ -28,22 +28,17 @@ import javax.swing.JMenuItem;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
-import org.dpolivaev.mnemonicsetter.ButtonNameMnemonicHolder;
-import org.dpolivaev.mnemonicsetter.INameMnemonicHolder;
-import org.dpolivaev.mnemonicsetter.MenuItemMnemonicHolder;
-import org.dpolivaev.mnemonicsetter.ItemMnemonicSetter;
-
/**
* Automatically assigns mnemonics to menu items and toolbar elements.
- *
+ *
* Use it just like MnemonicSetter.INSTANCE.setComponentMnemonics(menubar, toolbar).
- * You can also attach it to a popup menu as a PopupMenuListener
+ * You can also attach it to a popup menu as a PopupMenuListener
* so that mnemonics are automatically calculated when the popup menu becomes visible.
*/
public class MnemonicSetter implements PopupMenuListener{
final static private boolean IS_MAC_OS = System.getProperty("os.name").startsWith("Mac OS");
final static public MnemonicSetter INSTANCE = new MnemonicSetter();
-
+
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
@@ -56,31 +51,56 @@ public class MnemonicSetter implements PopupMenuListener{
return; // Mac OS generally does not support mnemonics
int componentCount = 0;
for(Container container : containers) {
- componentCount += container.getComponentCount();
+ componentCount += countComponents(container);
}
final Collection<Integer> keyCodesUsedInMenus = new HashSet<>();
final ArrayList<INameMnemonicHolder> mnemonicHolders = new ArrayList<INameMnemonicHolder>(componentCount);
for(Container container : containers) {
- if(container instanceof JMenuBar) {
- final Collection<Integer> keyCodesUsedInMenu = UsedAltAcceleratorsFinder.INSTANCE.findUsedKeyCodes((JMenuBar) container);
- keyCodesUsedInMenus.addAll(keyCodesUsedInMenu);
- }
-
- final Component[] components = container.getComponents();
- for(Component component :components)
- if(component instanceof JMenuItem) {
- final JMenuItem item = (JMenuItem) component;
- mnemonicHolders.add(new MenuItemMnemonicHolder(item));
- }
- else if(component instanceof AbstractButton) {
- final AbstractButton button = (AbstractButton) component;
- mnemonicHolders.add(new ButtonNameMnemonicHolder(button));
- }
+ addComponents(container, keyCodesUsedInMenus, mnemonicHolders);
}
final ItemMnemonicSetter mnemonicSetter = ItemMnemonicSetter.of(mnemonicHolders).notUsing(keyCodesUsedInMenus);
mnemonicSetter.setMnemonics();
}
+ private void addComponents(Container container, final Collection<Integer> keyCodesUsedInMenus,
+ final ArrayList<INameMnemonicHolder> mnemonicHolders) {
+ if(container instanceof JMenuBar) {
+ final Collection<Integer> keyCodesUsedInMenu = UsedAltAcceleratorsFinder.INSTANCE.findUsedKeyCodes((JMenuBar) container);
+ keyCodesUsedInMenus.addAll(keyCodesUsedInMenu);
+ }
+
+ final Component[] components = container.getComponents();
+ for(Component component :components)
+ if(component instanceof JMenuItem) {
+ final JMenuItem item = (JMenuItem) component;
+ mnemonicHolders.add(new MenuItemMnemonicHolder(item));
+ }
+ else if(component instanceof AbstractButton) {
+ final AbstractButton button = (AbstractButton) component;
+ mnemonicHolders.add(new ButtonNameMnemonicHolder(button));
+ }
+ else if(component instanceof Container) {
+ addComponents((Container) component, keyCodesUsedInMenus, mnemonicHolders);
+ }
+ }
+
+ private int countComponents(Container container) {
+ if(container instanceof JMenuBar) {
+ return container.getComponentCount();
+ }
+ int count = 0;
+ final Component[] components = container.getComponents();
+ for(Component component :components) {
+ if(component instanceof JMenuItem || component instanceof AbstractButton) {
+ count++;
+ }
+ else if(component instanceof Container) {
+ count += countComponents((Container) component);
+ }
+ }
+ return count;
+ }
+
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
}
View it on GitLab: https://salsa.debian.org/java-team/libmnemonicsetter-java/-/commit/3e0b8fbfe7cc63d2987f7c12cea143e329fcad89
--
View it on GitLab: https://salsa.debian.org/java-team/libmnemonicsetter-java/-/commit/3e0b8fbfe7cc63d2987f7c12cea143e329fcad89
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20250210/f2575836/attachment.htm>
More information about the pkg-java-commits
mailing list