//(c) Copyright 2005, Scott Vorthmann. All rights reserved.
package org.vorthmann.zome.ui;
import java.awt.event.MouseEvent;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import org.vorthmann.ui.Controller;
public class ContextualMenu extends JPopupMenu
{
private static final long serialVersionUID = 1L;
private final Map<String, JMenuItem> mActions = new HashMap<>();
private String[] mActionNames = null;
public void enableActions( Controller controller, MouseEvent e )
{
if ( mActionNames == null ) {
mActionNames = new String[ mActions .size() ];
int i = 0;
for (String name : mActions .keySet()) {
mActionNames[ i ] = name;
++i;
}
}
boolean[] enables = controller .enableContextualCommands( mActionNames, e );
for ( int j = 0; j < enables.length; j++ ) {
JMenuItem item = mActions .get( mActionNames[ j ] );
item .setEnabled( enables[ j ] );
}
}
@Override
public JMenuItem add( JMenuItem item )
{
String action = item .getActionCommand();
if ( action != null )
mActions .put( action, item );
return super.add( item );
}
}