litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.aokeyhole.swing; import org.litesoft.aokeyhole.toolkit.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class ActionsJPanel extends JPanel implements ActionsControllable { private Map<String, JButton> mButtons = new HashMap<String, JButton>(); protected OurActionListener mActionListener; public ActionsJPanel( ActionsListener pActionsListener, String... pActions ) { super( new GridLayout( 1, pActions.length ) ); mActionListener = new OurActionListener( pActionsListener ); for ( String action : pActions ) { add( createButton( action, mActionListener ) ); } } @Override public void actionEnable( String pAction, boolean pEnable ) { JButton button = mButtons.get( pAction ); if ( button != null ) { button.setEnabled( pEnable ); } } protected JButton createButton( String pAction, ActionListener pActionListener ) { return finishButton( new JButton( pAction ), pAction, pActionListener ); } protected JButton finishButton( JButton pButton, String pAction, ActionListener pActionListener ) { mButtons.put( pAction, pButton ); pButton.addActionListener( pActionListener ); return pButton; } private static class OurActionListener implements ActionListener { private ActionsListener mActionsListener; public OurActionListener( ActionsListener pActionsListener ) { mActionsListener = pActionsListener; } @Override public void actionPerformed( ActionEvent e ) { mActionsListener.actionRequested( ((JButton) e.getSource()).getText() ); } } } |