|
TarTool example source code file (MenuProperties.java)
The TarTool MenuProperties.java source code
package com.ice.util;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JPopupMenu;
import javax.swing.JComponent;
import javax.swing.JMenuItem;
public class
MenuProperties extends Object
{
static public JPopupMenu
loadPopupMenu( String menuPropertyName, ActionListener listener )
{
JPopupMenu popup = new JPopupMenu();
MenuProperties.addMenuItems( popup, menuPropertyName, listener );
return popup;
}
static public void
addGenericItem( JComponent menu, JComponent item )
{
if ( menu instanceof JMenu )
{
JMenu jm = (JMenu) menu;
if ( item == null )
jm.addSeparator();
else
jm.add( item );
}
else
{
JPopupMenu jp = (JPopupMenu) menu;
if ( item == null )
jp.addSeparator();
else
jp.add( item );
}
}
static public void
addMenuItems(
JComponent menu, String menuPropertyName,
ActionListener listener )
{
String[] itemList;
String itemString;
String menuString;
String itemNameStr;
JMenuItem mItem;
menuString =
UserProperties.getProperty
( "menu." + menuPropertyName, null );
if ( menuString == null )
{
ICETracer.traceWithStack
( "Menu definition property '"
+ menuPropertyName + "' is not defined." );
return;
}
itemList = StringUtilities.splitString( menuString, ":" );
if ( itemList != null )
{
for ( int iIdx = 0 ; iIdx < itemList.length ; ++iIdx )
{
itemNameStr =
"item." + menuPropertyName + "." + itemList[iIdx];
itemString =
UserProperties.getProperty( itemNameStr, null );
if ( itemString == null )
{
ICETracer.traceWithStack
( "Menu definition '" + menuPropertyName
+ "' is missing item definition property '"
+ itemNameStr + "'." );
}
else
{
int colonIdx = itemString.indexOf( ':' );
if ( itemString.equals( "-" ) )
{
MenuProperties.addGenericItem( menu, null );
}
else if ( colonIdx < 0 )
{
ICETracer.traceWithStack
( "Menu '" + menuPropertyName
+ "' Item '" + itemNameStr
+ "' has invalid definition." );
}
else
{
String title =
itemString.substring( 0, colonIdx );
String command =
itemString.substring( colonIdx + 1 );
if ( command.equals( "@" ) )
{
JMenu subMenu = new JMenu( title );
String subMenuName =
menuPropertyName + "." + itemList[iIdx];
MenuProperties.addMenuItems
( subMenu, subMenuName, listener );
MenuProperties.addGenericItem( menu, subMenu );
}
else if ( title.equals( "-" ) )
{
MenuProperties.addGenericItem( menu, null );
}
else
{
mItem = new JMenuItem( title );
if ( listener != null )
{
mItem.addActionListener( listener );
mItem.setActionCommand( command );
}
MenuProperties.addGenericItem( menu, mItem );
}
}
} // itemString != null
} // foreach item
} // itemList != null
}
}
Other TarTool examples (source code examples)Here is a short list of links related to this TarTool MenuProperties.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.