/** * Updates the check box state based on the selection in the selection model. By default, we check if the path is * selected. If yes, we mark the check box as TristateCheckBox.SELECTED. If not, we will check if the path is * partially selected, if yes, we set the check box as null or TristateCheckBox.DONT_CARE to indicate the path is * partially selected. Otherwise, we set it to TristateCheckBox.NOT_SELECTED. * * @param checkBox the TristateCheckBox for the particular tree path. * @param path the tree path. * @param selectionModel the CheckBoxTreeSelectionModel. */ protected void updateCheckBoxState(TristateCheckBox checkBox, TreePath path, CheckBoxTreeSelectionModel selectionModel) { if (selectionModel.isPathSelected(path, selectionModel.isDigIn())) checkBox.setState(TristateCheckBox.STATE_SELECTED); else checkBox.setState(selectionModel.isDigIn() && selectionModel.isPartiallySelected(path) ? TristateCheckBox.STATE_MIXED : TristateCheckBox.STATE_UNSELECTED); }
spectraPanel.add(collapseButton); final TristateCheckBox tristateCheckBox = new TristateCheckBox(); tristateCheckBox.setState(selectionAdmin.getState(index)); tristateCheckBox.addActionListener(new TristateCheckboxListener(index)); tristateCheckBoxes[index] = tristateCheckBox;
@Override public void actionPerformed(ActionEvent e) { if (!selectionChangeLock) { selectionChangeLock = true; selectionAdmin.updateSpectrumSelectionState(index, tristateCheckBoxes[index].getState()); tristateCheckBoxes[index].setState(selectionAdmin.getState(index)); updateBandsTable(index); spectra[index].setSelected(selectionAdmin.isSpectrumSelected(index)); selectionChangeLock = false; } } }
@Override public void paintIcon(Component c, Graphics g, int x, int y) { validateCheckBox(); if (_uncheckImage == null) { GraphicsConfiguration graphicsConfiguration = ((Graphics2D) g).getDeviceConfiguration(); _uncheckImage = graphicsConfiguration.createCompatibleImage(getIconWidth(), getIconHeight(), Transparency.TRANSLUCENT); _checkBox.setState(TristateCheckBox.STATE_UNSELECTED); _checkBox.setBounds(0, 0, getIconWidth(), getIconHeight()); _checkBox.paint(_uncheckImage.getGraphics()); _checkedImage = graphicsConfiguration.createCompatibleImage(getIconWidth(), getIconHeight(), Transparency.TRANSLUCENT); _checkBox.setState(TristateCheckBox.STATE_SELECTED); _checkBox.setBounds(0, 0, getIconWidth(), getIconHeight()); _checkBox.paint(_checkedImage.getGraphics()); _mixedImage = graphicsConfiguration.createCompatibleImage(getIconWidth(), getIconHeight(), Transparency.TRANSLUCENT); _checkBox.setState(TristateCheckBox.STATE_MIXED); _checkBox.setBounds(0, 0, getIconWidth(), getIconHeight()); _checkBox.paint(_mixedImage.getGraphics()); } if (getState() == TristateCheckBox.STATE_SELECTED) { g.drawImage(_checkedImage, x, y, null); } else if (getState() == TristateCheckBox.STATE_UNSELECTED) { g.drawImage(_uncheckImage, x, y, null); } else if (getState() == TristateCheckBox.STATE_MIXED) { g.drawImage(_mixedImage, x, y, null); } }
selectionAdmin.setBandSelected(index, bandRow, selected); selectionAdmin.updateSpectrumSelectionState(index, selectionAdmin.getState(index)); tristateCheckBoxes[index].setState(selectionAdmin.getState(index)); spectrum1.setSelected(selectionAdmin.isSpectrumSelected(index)); selectionChangeLock = false;