This component allows the user to select abilities for a character. The AbilityChooserTab is a subtab of the AbilitiesInfoTab and is used to display the available and selected abilities for a particular ability category. Its up to the AbilitiesInfoTab to manage this tab's state which more or less fo
| 88 | * @see pcgen.gui2.tabs.CharacterInfoTab |
| 89 | */ |
| 90 | @SuppressWarnings({"UseOfObsoleteCollectionType", "PMD.ReplaceHashtableWithMap", "serial"}) |
| 91 | public class AbilityChooserTab extends FlippingSplitPane implements StateEditable, TodoHandler |
| 92 | { |
| 93 | |
| 94 | private final FilteredTreeViewTable<CharacterFacade, AbilityFacade> availableTreeViewPanel; |
| 95 | private final JTreeTable selectedTreeViewPanel; |
| 96 | private final JTable categoryTable; |
| 97 | private final InfoPane infoPane; |
| 98 | private final JButton addButton; |
| 99 | private final JButton removeButton; |
| 100 | private final FilterBar<CharacterFacade, AbilityCategory> categoryBar; |
| 101 | private final FilterButton<CharacterFacade, AbilityFacade> qFilterButton; |
| 102 | private final QualifiedTreeCellRenderer qualifiedRenderer; |
| 103 | private final AbilityRenderer abilityRenderer; |
| 104 | |
| 105 | public AbilityChooserTab() |
| 106 | { |
| 107 | this.availableTreeViewPanel = new FilteredTreeViewTable<>(); |
| 108 | this.selectedTreeViewPanel = new JTreeTable(); |
| 109 | this.categoryTable = new JTable(); |
| 110 | this.infoPane = new InfoPane(); |
| 111 | this.addButton = new JButton(); |
| 112 | this.removeButton = new JButton(); |
| 113 | this.categoryBar = new FilterBar<>(); |
| 114 | this.qFilterButton = new FilterButton<>("AbilityQualified"); |
| 115 | this.qualifiedRenderer = new QualifiedTreeCellRenderer(); |
| 116 | this.abilityRenderer = new AbilityRenderer(); |
| 117 | initComponents(); |
| 118 | } |
| 119 | |
| 120 | private void initComponents() |
| 121 | { |
| 122 | setOrientation(VERTICAL_SPLIT); |
| 123 | availableTreeViewPanel.setDefaultRenderer(Boolean.class, new BooleanRenderer()); |
| 124 | availableTreeViewPanel.setTreeCellRenderer(qualifiedRenderer); |
| 125 | selectedTreeViewPanel.setTreeCellRenderer(abilityRenderer); |
| 126 | FilterBar<CharacterFacade, AbilityFacade> filterBar = new FilterBar<>(); |
| 127 | filterBar.addDisplayableFilter(new SearchFilterPanel()); |
| 128 | |
| 129 | qFilterButton.setText(LanguageBundle.getString("in_igQualFilter")); //$NON-NLS-1$ |
| 130 | filterBar.addDisplayableFilter(qFilterButton); |
| 131 | JPanel availPanel = FilterUtilities.configureFilteredTreeViewPane(availableTreeViewPanel, filterBar); |
| 132 | Box box = Box.createHorizontalBox(); |
| 133 | box.add(Box.createHorizontalGlue()); |
| 134 | addButton.setHorizontalTextPosition(SwingConstants.LEADING); |
| 135 | box.add(addButton); |
| 136 | box.add(Box.createHorizontalStrut(5)); |
| 137 | box.setBorder(new EmptyBorder(0, 0, 5, 0)); |
| 138 | availPanel.add(box, BorderLayout.SOUTH); |
| 139 | JPanel selPanel = new JPanel(new BorderLayout()); |
| 140 | selPanel.add(new JScrollPane(selectedTreeViewPanel), BorderLayout.CENTER); |
| 141 | AbilityTreeTableModel.initializeTreeTable(selectedTreeViewPanel); |
| 142 | |
| 143 | box = Box.createHorizontalBox(); |
| 144 | box.add(Box.createHorizontalStrut(5)); |
| 145 | box.add(removeButton); |
| 146 | box.add(Box.createHorizontalGlue()); |
| 147 | box.setBorder(new EmptyBorder(0, 0, 5, 0)); |
nothing calls this directly
no outgoing calls
no test coverage detected