/** Reloads tree model. */ private void reloadModel() { ((DefaultTreeModel) tree.getModel()).reload(); }
public Dimension getPreferredScrollableViewportSize() { Dimension size = super.getPreferredScrollableViewportSize(); size = new Dimension(size.width + 10, size.height); return size; }
@Nullable private TreePath getCurrentPath() { if (tree.getSelectionPaths() != null && tree.getSelectionPaths().length == 1) { return tree.getSelectionPaths()[0]; } return null; }
/** * Creates scroll panel with templates tree in it. * * @return scroll panel */ private JScrollPane createTreeScrollPanel() { for (Map.Entry<VirtualFile, VcsRoot> entry : files.entrySet()) { createDirectoryNodes(entry.getKey(), entry.getValue()); } final FileTreeRenderer renderer = new FileTreeRenderer(); tree = new CheckboxTree(renderer, root); tree.setCellRenderer(renderer); tree.setRootVisible(true); tree.setShowsRootHandles(false); UIUtil.setLineStyleAngled(tree); TreeUtil.installActions(tree); final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(tree); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); TreeUtil.expandAll(tree); tree.getModel().addTreeModelListener(treeModelListener); treeExpander = new DefaultTreeExpander(tree); return scrollPane; }
tree.setCellRenderer(renderer); tree.setRootVisible(false); tree.setShowsRootHandles(true); tree.addTreeSelectionListener(treeSelectionListener); UIUtil.setLineStyleAngled(tree); TreeUtil.installActions(tree);
@Override protected void onNodeStateChanged(CheckedTreeNode node) { super.onNodeStateChanged(node); Resources.Template template = ((TemplateTreeNode) node).getTemplate(); if (node.isChecked()) { checked.add(template); } else { checked.remove(template); } } };
/** * Dispose the wrapped and releases all resources allocated be the wrapper to help * more efficient garbage collection. You should never invoke this method twice or * invoke any method of the wrapper after invocation of <code>dispose</code>. * * @throws IllegalStateException if the dialog is disposed not on the event dispatch thread */ @Override protected void dispose() { tree.removeTreeSelectionListener(treeSelectionListener); EditorFactory.getInstance().releaseEditor(preview); super.dispose(); }
/** * Filters templates tree. * * @param filter text */ private void filterTree(@Nullable String filter) { if (tree != null) { fillTreeData(filter, true); reloadModel(); TreeUtil.expandAll(tree); if (tree.getSelectionPath() == null) { TreeUtil.selectFirstNode(tree); } } }
/** Disposes current preview {@link #commands}. */ @Override public void dispose() { super.dispose(); tree.getModel().removeTreeModelListener(treeModelListener); if (!commands.isDisposed()) { EditorFactory.getInstance().releaseEditor(commands); } } }