Changeset 1049


Ignore:
Timestamp:
04/15/2011 04:30:59 PM (9 years ago)
Author:
muk7
Message:

show selection in GUI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/Display/ABSelectionPanel.java

    r1047 r1049  
    3030package FAtiMA.Core.Display; 
    3131 
     32import java.awt.Color; 
     33import java.awt.Component; 
    3234import java.awt.Dimension; 
    3335import java.awt.event.ActionEvent; 
     
    6163        private JCheckBox cbSimulateSelection; 
    6264        private JLabel lbSelectionStatus; 
     65        private MyTable table; 
    6366        private MyTableModel tableModel; 
     67        private ArrayList<Integer> selectedIDs; 
    6468 
    6569        private class MyTableModel extends DefaultTableModel { 
    6670 
    6771                private static final long serialVersionUID = 1L; 
     72 
     73                public MyTableModel() { 
     74                        super(); 
     75                } 
    6876 
    6977                @Override 
     
    94102        } 
    95103 
     104        private class MyTable extends JTable { 
     105 
     106                private static final long serialVersionUID = 1L; 
     107 
     108                public MyTable(TableModel tableModel) { 
     109                        super(tableModel); 
     110                } 
     111 
     112                @Override 
     113                public Component prepareRenderer(TableCellRenderer renderer, int row, 
     114                                int column) { 
     115                        Component component = super.prepareRenderer(renderer, row, column); 
     116                        int rowID = (Integer) table.getValueAt(row, 0); 
     117                        if (selectedIDs.contains(rowID)) { 
     118                                component.setBackground(Color.YELLOW); 
     119                        } else { 
     120                                component.setBackground(getBackground()); 
     121                        } 
     122                        return component; 
     123                } 
     124        } 
     125 
    96126        private class AlABCalculation implements ActionListener { 
    97127                public void actionPerformed(ActionEvent event) { 
     
    109139        public ABSelectionPanel() { 
    110140                super(); 
     141                selectedIDs = new ArrayList<Integer>(); 
    111142                createGUI(); 
    112143        } 
     
    158189 
    159190                cbConstantUpdate = new JCheckBox("Constant Update"); 
    160                 cbConstantUpdate.setSelected(false); 
     191                cbConstantUpdate.setSelected(true); 
    161192                pnCalculationButton.add(cbConstantUpdate); 
    162193 
     
    251282                tableModel.addColumn("Retrievals"); 
    252283 
    253                 JTable table = new JTable(tableModel); 
     284                table = new MyTable(tableModel); 
    254285                table.setAutoCreateRowSorter(true); 
    255286 
     
    315346 
    316347                Time timeSelected = new Time(); 
     348                ArrayList<ActionDetail> selected = new ArrayList<ActionDetail>(); 
    317349 
    318350                if (rbSelectionCount.isSelected()) { 
    319351                        int countMax = Integer.valueOf(spSelectionCount.getValue() 
    320352                                        .toString()); 
    321                         episodicMemory.activationBasedSelectionByCount(countMax); 
     353                        selected = episodicMemory.activationBasedSelectionByCount(countMax); 
    322354 
    323355                } else if (rbSelectionRatio.isSelected()) { 
    324356                        double amount = Double.valueOf(spSelectionRatio.getValue() 
    325357                                        .toString()); 
    326                         episodicMemory.activationBasedSelectionByAmount(amount); 
     358                        selected = episodicMemory.activationBasedSelectionByAmount(amount); 
    327359 
    328360                } else if (rbSelectionThreshold.isSelected()) { 
    329361                        double threshold = Double.valueOf(tfSelectionThreshold.getText()); 
    330                         episodicMemory.activationBasedSelectionByThreshold(threshold); 
     362                        selected = episodicMemory 
     363                                        .activationBasedSelectionByThreshold(threshold); 
    331364                } 
    332365 
    333366                lbSelectionStatus.setText("Selected at narrative time " 
    334367                                + timeSelected.getNarrativeTime()); 
     368 
     369                ArrayList<Integer> selectedIDsTemp = new ArrayList<Integer>(); 
     370                for (ActionDetail actionDetail : selected) { 
     371                        selectedIDsTemp.add(new Integer(actionDetail.getID())); 
     372                } 
     373                selectedIDs = selectedIDsTemp; 
     374 
     375                table.repaint(); 
    335376        } 
    336377 
Note: See TracChangeset for help on using the changeset viewer.