private void createBuildActionsPanel()

in drools-examples/src/main/java/org/drools/games/adventures/AdventureFrame.java [363:546]


    private void createBuildActionsPanel(JPanel parent) {
        parent.add( createLabel( "Actions" ),
                    "wrap, spanx 3" );

        JPanel actionsPanel = new JPanel();
        actionsPanel.setBorder( null );
        actionsPanel.setLayout( new BoxLayout( actionsPanel,
                                               BoxLayout.Y_AXIS ) );

        JButton moveBtn = new JButton( "Move" );
        moveBtn.setToolTipText("Select one Room from the Exits, then press Send");
        actionsPanel.add( moveBtn );
//        msg = new ACLMessage();
//        msg.setPerformative( Performative.REQUEST );
        
        moveBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cmdTextField.setText( "Move " );
                cmd = new ArrayList();
                cmd.add(MoveCommand.class );
                cmd.add( characterSelectCombo.getSelectedObjects()[0] );
            }
        } );

        JButton pickupBtn = new JButton( "Pick Up" );
        pickupBtn.setToolTipText("Select one from the Items list, then press Send");
        actionsPanel.add( pickupBtn );
        pickupBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cmdTextField.setText( "Pickup " );
                cmd = new ArrayList();
                cmd.add(PickupCommand.class);
                cmd.add( characterSelectCombo.getSelectedObjects()[0] );
            }
        } );

        JButton dropBtn = new JButton( "Drop" );
        dropBtn.setToolTipText("Select one from the Inventory, then press Send");
        actionsPanel.add( dropBtn );
        dropBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cmdTextField.setText( "Drop " );
                cmd = new ArrayList();
                cmd.add(DropCommand.class);
                cmd.add( characterSelectCombo.getSelectedObjects()[0] );
            }
        } );

        JButton giveBtn = new JButton( "Give" );
        giveBtn.setToolTipText("Select one from the Inventory, then Select the target Character, then press Send");
        actionsPanel.add( giveBtn );
        giveBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {                
                cmdTextField.setText( "Give " );
                cmd = new ArrayList();
                cmd.add(GiveCommand.class);
                cmd.add( characterSelectCombo.getSelectedObjects()[0] );
            }
        } );

        JButton useBtn = new JButton( "Use" );
        useBtn.setToolTipText("Select one from the Inventory, then Select the target Thing or Room");
        actionsPanel.add( useBtn );
        useBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cmdTextField.setText( "Use " );
                cmd = new ArrayList();
                cmd.add(UseCommand.class);
                cmd.add( characterSelectCombo.getSelectedObjects()[0] );
            }
        } );

        JButton lookBtn = new JButton( "Look" );
        giveBtn.setToolTipText("Just press Send");
        actionsPanel.add( lookBtn );
        lookBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cmdTextField.setText( "Look " );
                cmd = new ArrayList();
                cmd.add( LookCommand.class );
                cmd.add( characterSelectCombo.getSelectedObjects()[0] );
            }
        } );

        JButton searchBtn = new JButton( "Search" );
        giveBtn.setToolTipText("Select the item to search, then press send.");
        actionsPanel.add( searchBtn );
        searchBtn.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cmdTextField.setText( "Search " );
                cmd = new ArrayList();
                cmd.add( SearchCommand.class);
            }
        } );

        parent.add( actionsPanel,
                    "top, left" );

        thingsTable = new JTable();
        thingsTable.setPreferredScrollableViewportSize( new Dimension( 245,
                                                                       250 ) );
        thingsTable.setBorder( null );
        thingsTable.setModel( new NonEditableTableMode(
                                                     new Object[][]{
                                                     },
                                                     new String[]{
                                                             "Things"
                                                     }
                ) );
        thingsTable.addMouseListener( new MouseListener() {

            public void mouseReleased(MouseEvent e) {
            }

            public void mousePressed(MouseEvent e) {
            }

            public void mouseExited(MouseEvent e) {
            }

            public void mouseEntered(MouseEvent e) {
            }

            public void mouseClicked(MouseEvent e) {
                if ( cmd == null ) {
                    return;
                }
                int row = thingsTable.rowAtPoint( e.getPoint() );
                int col = thingsTable.columnAtPoint( e.getPoint() );
                Thing t = (Thing) thingsTable.getModel().getValueAt( row,
                                                              col );
                cmdTextField.setText( cmdTextField.getText() + t.getName() + " " );
                cmd.add( t );
            }
        } );

        JScrollPane itemsPanel = new JScrollPane( thingsTable );
        parent.add( itemsPanel,
                    "top, left" );

        exitsTable = new JTable();
        exitsTable.setPreferredScrollableViewportSize( new Dimension( 245,
                                                                      250 ) );
        exitsTable.setBorder( null );
        exitsTable.setModel( new NonEditableTableMode(
                                                    new Object[][]{
                                                    },
                                                    new String[]{
                                                            "Exits"
                                                    }
                ) );

        exitsTable.addMouseListener( new MouseListener() {

            public void mouseReleased(MouseEvent e) {
            }

            public void mousePressed(MouseEvent e) {
            }

            public void mouseExited(MouseEvent e) {
            }

            public void mouseEntered(MouseEvent e) {
            }

            public void mouseClicked(MouseEvent e) {
                if ( cmd == null ) {
                    return;
                }
                int row = exitsTable.rowAtPoint( e.getPoint() );
                int col = exitsTable.columnAtPoint( e.getPoint() );
                Room r = (Room) exitsTable.getModel().getValueAt( row,
                                                             col );
                cmdTextField.setText( cmdTextField.getText() + r.getName() + " " );
                cmd.add( r );
            }
        } );

        JScrollPane exitsPanel = new JScrollPane( exitsTable );
        parent.add( exitsPanel,
                    "top, left, wrap" );

    }