protected void toggleSelections() { int[] indices = _list.getSelectedIndices(); CheckBoxListSelectionModel selectionModel = _list.getCheckBoxListSelectionModel(); selectionModel.removeListSelectionListener(this); selectionModel.setValueIsAdjusting(true); try { if (indices.length > 0) { boolean selected = selectionModel.isSelectedIndex(indices[0]); for (int index : indices) { if (!_list.isCheckBoxEnabled(index)) { continue; } if (selected && selectionModel.isSelectedIndex(index)) { selectionModel.removeSelectionInterval(index, index); } else if (!selected && !selectionModel.isSelectedIndex(index)) { selectionModel.addSelectionInterval(index, index); } } } } finally { selectionModel.setValueIsAdjusting(false); selectionModel.addListSelectionListener(this); _list.repaint(); } }
public void mouseReleased(MouseEvent e) { if (e.isConsumed()) { return; } if (!_list.isCheckBoxEnabled()) { return; } if (!_list.isClickInCheckBoxOnly() || clicksInCheckBox(e)) { e.consume(); } }
protected boolean clicksInCheckBox(MouseEvent e) { int index = _list.locationToIndex(e.getPoint()); Rectangle bounds = _list.getCellBounds(index, index); if (bounds != null) { if (_list.getComponentOrientation().isLeftToRight()) { return e.getX() < bounds.x + hotspot; } else { return e.getX() > bounds.x + bounds.width - hotspot; } } else { return false; } }
public void mousePressed(MouseEvent e) { if (e.isConsumed()) { return; } if (!_list.isCheckBoxEnabled()) { return; } if (!_list.isClickInCheckBoxOnly() || clicksInCheckBox(e)) { int index = _list.locationToIndex(e.getPoint()); toggleSelection(index); e.consume(); } }
protected void toggleSelection(int index) { if (!_list.isEnabled() || !_list.isCheckBoxEnabled(index)) { return; } CheckBoxListSelectionModel selectionModel = _list.getCheckBoxListSelectionModel(); boolean selected = selectionModel.isSelectedIndex(index); selectionModel.removeListSelectionListener(this); try { if (selected) selectionModel.removeSelectionInterval(index, index); else selectionModel.addSelectionInterval(index, index); } finally { selectionModel.addListSelectionListener(this); _list.repaint(); } }
private void doDeleteDirectory() { if (myResourceDir == null) { return; } final int selectedIndex = myDirectoriesList.getSelectedIndex(); if (selectedIndex < 0) { return; } final String selectedDirName = myDirNames[selectedIndex]; final VirtualFile selectedDir = myResourceDir.findChild(selectedDirName); if (selectedDir == null) { return; } final VirtualFileDeleteProvider provider = new VirtualFileDeleteProvider(); provider.deleteElement( new DataContext() { @Override public Object getData(@NonNls String dataId) { if (PlatformDataKeys.VIRTUAL_FILE_ARRAY.getName().equals(dataId)) { return new VirtualFile[] {selectedDir}; } else { return null; } } }); updateDirectories(false); }
public void intervalRemoved(ListDataEvent e) { /* Sync the SelectionModel with the DataModel. */ ListSelectionModel listSelectionModel = _list.getCheckBoxListSelectionModel(); if (listSelectionModel != null) { listSelectionModel.removeIndexInterval(e.getIndex0(), e.getIndex1()); } }
public void propertyChange(PropertyChangeEvent evt) { if (evt.getOldValue() instanceof ListModel) { ((ListModel) evt.getOldValue()).removeListDataListener(this); } if (evt.getNewValue() instanceof ListModel) { _list.getCheckBoxListSelectionModel().setModel((ListModel) evt.getNewValue()); ((ListModel) evt.getNewValue()).addListDataListener(this); } }
public void keyPressed(KeyEvent e) { if (e.isConsumed()) { return; } if (!_list.isCheckBoxEnabled()) { return; } if (e.getModifiers() == 0 && e.getKeyChar() == KeyEvent.VK_SPACE) toggleSelections(); }
public void intervalAdded(ListDataEvent e) { int minIndex = Math.min(e.getIndex0(), e.getIndex1()); int maxIndex = Math.max(e.getIndex0(), e.getIndex1()); /* Sync the SelectionModel with the DataModel. */ ListSelectionModel listSelectionModel = _list.getCheckBoxListSelectionModel(); if (listSelectionModel != null) { listSelectionModel.insertIndexInterval(minIndex, maxIndex - minIndex + 1, true); } }
public void setScheme(Subtree scheme) { this.scheme = scheme; cbList = new CheckBoxList(); Vector<CQCheck> cqChecks = scheme.getCqChecks(); checkBoxes = new JCheckBox[cqChecks.size()]; for (int cq = 0; cq < cqChecks.size(); cq++) { CQCheck cqCheck = cqChecks.elementAt(cq); checkBoxes[cq] = new JCheckBox(cqCheck.getCqText()); checkBoxes[cq].setSelected(cqCheck.isCqAnswered()); } cbList.setListData(checkBoxes); cqScrollPane.setViewportView(cbList); }
protected void toggleSelection() { int index = _list.getSelectedIndex(); toggleSelection(index); }
public void valueChanged(ListSelectionEvent e) { _list.repaint(); }
private void updateDirectories(boolean updateFileCombo) { final Module module = getModule(); List<VirtualFile> valuesDirs = Collections.emptyList(); if (module != null) { final AndroidFacet facet = AndroidFacet.getInstance(module); if (facet != null) { myResourceDir = AndroidRootUtil.getResourceDir(facet); if (myResourceDir != null) { valuesDirs = AndroidResourceUtil.getResourceSubdirs( ResourceFolderType.VALUES.getName(), new VirtualFile[] {myResourceDir}); } } } Collections.sort( valuesDirs, new Comparator<VirtualFile>() { @Override public int compare(VirtualFile f1, VirtualFile f2) { return f1.getName().compareTo(f2.getName()); } }); final Map<String, JCheckBox> oldCheckBoxes = myCheckBoxes; final int selectedIndex = myDirectoriesList.getSelectedIndex(); final String selectedDirName = selectedIndex >= 0 ? myDirNames[selectedIndex] : null; final List<JCheckBox> checkBoxList = new ArrayList<JCheckBox>(); myCheckBoxes = new HashMap<String, JCheckBox>(); myDirNames = new String[valuesDirs.size()]; int newSelectedIndex = -1; int i = 0; for (VirtualFile dir : valuesDirs) { final String dirName = dir.getName(); final JCheckBox oldCheckBox = oldCheckBoxes.get(dirName); final boolean selected = oldCheckBox != null && oldCheckBox.isSelected(); final JCheckBox checkBox = new JCheckBox(dirName, selected); checkBoxList.add(checkBox); myCheckBoxes.put(dirName, checkBox); myDirNames[i] = dirName; if (dirName.equals(selectedDirName)) { newSelectedIndex = i; } i++; } myDirectoriesList.setModel(new CollectionListModel<JCheckBox>(checkBoxList)); if (newSelectedIndex >= 0) { myDirectoriesList.setSelectedIndex(newSelectedIndex); } if (checkBoxList.size() == 1) { checkBoxList.get(0).setSelected(true); } if (updateFileCombo) { final Object oldItem = myFileNameCombo.getEditor().getItem(); final Set<String> fileNameSet = new HashSet<String>(); for (VirtualFile valuesDir : valuesDirs) { for (VirtualFile file : valuesDir.getChildren()) { fileNameSet.add(file.getName()); } } final List<String> fileNames = new ArrayList<String>(fileNameSet); Collections.sort(fileNames); myFileNameCombo.setModel(new DefaultComboBoxModel(fileNames.toArray())); myFileNameCombo.getEditor().setItem(oldItem); } }
private void doUnselectAllDirs() { for (JCheckBox checkBox : myCheckBoxes.values()) { checkBox.setSelected(false); } myDirectoriesList.repaint(); }