Search in sources :

Example 6 with DefaultTreeCellRenderer

use of javax.swing.tree.DefaultTreeCellRenderer in project jadx by skylot.

the class MainWindow method initUI.

private void initUI() {
    mainPanel = new JPanel(new BorderLayout());
    JSplitPane splitPane = new JSplitPane();
    splitPane.setResizeWeight(SPLIT_PANE_RESIZE_WEIGHT);
    mainPanel.add(splitPane);
    DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode(NLS.str("msg.open_file"));
    treeModel = new DefaultTreeModel(treeRoot);
    tree = new JTree(treeModel);
    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            treeClickAction();
        }
    });
    tree.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                treeClickAction();
            }
        }
    });
    tree.setCellRenderer(new DefaultTreeCellRenderer() {

        @Override
        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean isLeaf, int row, boolean focused) {
            Component c = super.getTreeCellRendererComponent(tree, value, selected, expanded, isLeaf, row, focused);
            if (value instanceof JNode) {
                setIcon(((JNode) value).getIcon());
            }
            return c;
        }
    });
    tree.addTreeWillExpandListener(new TreeWillExpandListener() {

        @Override
        public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException {
            TreePath path = event.getPath();
            Object node = path.getLastPathComponent();
            if (node instanceof JClass) {
                JClass cls = (JClass) node;
                cls.getRootClass().load();
            }
        }

        @Override
        public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException {
        }
    });
    progressPane = new ProgressPanel(this, true);
    JPanel leftPane = new JPanel(new BorderLayout());
    leftPane.add(new JScrollPane(tree), BorderLayout.CENTER);
    leftPane.add(progressPane, BorderLayout.PAGE_END);
    splitPane.setLeftComponent(leftPane);
    tabbedPane = new TabbedPane(this);
    splitPane.setRightComponent(tabbedPane);
    dropTarget = new DropTarget(this, DnDConstants.ACTION_COPY, new MainDropTarget(this));
    setContentPane(mainPanel);
    setTitle(DEFAULT_TITLE);
}
Also used : JPanel(javax.swing.JPanel) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) KeyAdapter(java.awt.event.KeyAdapter) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer) ExpandVetoException(javax.swing.tree.ExpandVetoException) KeyEvent(java.awt.event.KeyEvent) BorderLayout(java.awt.BorderLayout) JNode(jadx.gui.treemodel.JNode) Component(java.awt.Component) TreeExpansionEvent(javax.swing.event.TreeExpansionEvent) TreeWillExpandListener(javax.swing.event.TreeWillExpandListener) JScrollPane(javax.swing.JScrollPane) MouseEvent(java.awt.event.MouseEvent) JClass(jadx.gui.treemodel.JClass) MouseAdapter(java.awt.event.MouseAdapter) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) JTree(javax.swing.JTree) TreePath(javax.swing.tree.TreePath) CacheObject(jadx.gui.utils.CacheObject) DropTarget(java.awt.dnd.DropTarget) JSplitPane(javax.swing.JSplitPane)

Example 7 with DefaultTreeCellRenderer

use of javax.swing.tree.DefaultTreeCellRenderer in project omegat by omegat-org.

the class PreferencesWindowController method show.

@SuppressWarnings("serial")
public void show(Window parent, Class<? extends IPreferencesController> initialSelection) {
    dialog = new JDialog();
    dialog.setTitle(OStrings.getString("PREFERENCES_TITLE_NO_SELECTION"));
    dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    dialog.setModal(true);
    StaticUIUtils.setWindowIcon(dialog);
    outerPanel = new PreferencePanel();
    innerPanel = new PreferenceViewSelectorPanel();
    outerPanel.prefsViewPanel.add(innerPanel, BorderLayout.CENTER);
    dialog.getContentPane().add(outerPanel);
    overlay = new HighlightablePanel(dialog.getRootPane(), innerPanel.selectedPrefsScrollPane);
    // Prevent ugly white viewport background with GTK LAF
    innerPanel.selectedPrefsScrollPane.getViewport().setOpaque(false);
    innerPanel.selectedPrefsScrollPane.setBackground(innerPanel.getBackground());
    innerPanel.searchTextField.getDocument().addDocumentListener(new DocumentListener() {

        @Override
        public void removeUpdate(DocumentEvent e) {
            SwingUtilities.invokeLater(PreferencesWindowController.this::searchAndFilterTree);
        }

        @Override
        public void insertUpdate(DocumentEvent e) {
            SwingUtilities.invokeLater(PreferencesWindowController.this::searchAndFilterTree);
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            SwingUtilities.invokeLater(PreferencesWindowController.this::searchAndFilterTree);
        }
    });
    innerPanel.searchTextField.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_UP) {
                innerPanel.availablePrefsTree.getActionForKeyStroke(KeyStroke.getKeyStrokeForEvent(e)).actionPerformed(new ActionEvent(innerPanel.availablePrefsTree, 0, null));
                innerPanel.availablePrefsTree.requestFocusInWindow();
                e.consume();
            }
        }
    });
    innerPanel.searchTextField.addFocusListener(new FocusAdapter() {

        @Override
        public void focusGained(FocusEvent e) {
            innerPanel.searchTextField.selectAll();
            searchCurrentView();
            preloadGuis();
        }
    });
    innerPanel.clearButton.addActionListener(e -> {
        innerPanel.searchTextField.clear();
    });
    innerPanel.availablePrefsTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    DefaultMutableTreeNode root = createNodeTree();
    walkTree(root, node -> {
        IPreferencesController view = (IPreferencesController) node.getUserObject();
        if (view != null) {
            view.addFurtherActionListener(this);
        }
    });
    innerPanel.availablePrefsTree.setModel(new DefaultTreeModel(root));
    innerPanel.availablePrefsTree.addTreeSelectionListener(e -> {
        handleViewSelection(e);
        updateTitle();
    });
    innerPanel.availablePrefsTree.addTreeExpansionListener(new TreeExpansionListener() {

        @Override
        public void treeExpanded(TreeExpansionEvent event) {
            SwingUtilities.invokeLater(PreferencesWindowController.this::adjustTreeSize);
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
        }
    });
    innerPanel.selectedPrefsScrollPane.getViewport().setBackground(innerPanel.getBackground());
    DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) innerPanel.availablePrefsTree.getCellRenderer();
    renderer.setIcon(null);
    renderer.setLeafIcon(null);
    renderer.setOpenIcon(null);
    renderer.setClosedIcon(null);
    renderer.setDisabledIcon(null);
    outerPanel.okButton.addActionListener(e -> {
        if (currentView == null || currentView.validate()) {
            new SwingWorker<Void, Void>() {

                @Override
                protected Void doInBackground() throws Exception {
                    doSave();
                    return null;
                }

                @Override
                protected void done() {
                    if (getIsReloadRequired()) {
                        SwingUtilities.invokeLater(ProjectUICommands::promptReload);
                    }
                }
            }.execute();
            StaticUIUtils.closeWindowByEvent(dialog);
        }
    });
    outerPanel.cancelButton.addActionListener(e -> StaticUIUtils.closeWindowByEvent(dialog));
    // Hide undo, reset buttons on outer panel
    outerPanel.undoButton.setVisible(false);
    outerPanel.resetButton.setVisible(false);
    // Use ones on inner panel to indicate that actions are view-specific
    innerPanel.undoButton.addActionListener(e -> currentView.undoChanges());
    innerPanel.resetButton.addActionListener(e -> currentView.restoreDefaults());
    dialog.addWindowListener(new WindowAdapter() {

        @Override
        public void windowOpened(WindowEvent e) {
            walkTree(root, node -> {
                // Start with tree fully expanded
                if (node.getChildCount() > 0) {
                    innerPanel.availablePrefsTree.expandPath(new TreePath(node.getPath()));
                }
            });
            SwingUtilities.invokeLater(() -> {
                if (initialSelection != null) {
                    selectView(initialSelection);
                }
            });
        }
    });
    innerPanel.availablePrefsScrollPane.addComponentListener(new ComponentAdapter() {

        @Override
        public void componentResized(ComponentEvent e) {
            SwingUtilities.invokeLater(PreferencesWindowController.this::adjustTreeSize);
        }
    });
    ActionMap actionMap = innerPanel.getActionMap();
    InputMap inputMap = innerPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    actionMap.put(ACTION_KEY_NEW_SEARCH, new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            innerPanel.searchTextField.requestFocusInWindow();
            innerPanel.searchTextField.selectAll();
        }
    });
    KeyStroke searchKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
    inputMap.put(searchKeyStroke, ACTION_KEY_NEW_SEARCH);
    actionMap.put(ACTION_KEY_CLEAR_OR_CLOSE, new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (!innerPanel.searchTextField.isEmpty()) {
                // Move focus away from search field
                innerPanel.availablePrefsTree.requestFocusInWindow();
                innerPanel.clearButton.doClick();
            } else {
                StaticUIUtils.closeWindowByEvent(dialog);
            }
        }
    });
    inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), ACTION_KEY_CLEAR_OR_CLOSE);
    // Don't let Enter close the dialog
    innerPanel.searchTextField.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), ACTION_KEY_DO_SEARCH);
    innerPanel.searchTextField.getActionMap().put(ACTION_KEY_DO_SEARCH, new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            searchCurrentView();
        }
    });
    String searchKeyText = StaticUIUtils.getKeyStrokeText(searchKeyStroke);
    innerPanel.searchTextField.setHintText(OStrings.getString("PREFERENCES_SEARCH_HINT", searchKeyText));
    // Set initial state
    searchAndFilterTree();
    adjustTreeSize();
    dialog.getRootPane().setDefaultButton(outerPanel.okButton);
    dialog.setPreferredSize(new Dimension(800, 500));
    dialog.pack();
    // Prevent search field from getting initial focus
    innerPanel.availablePrefsTree.requestFocusInWindow();
    dialog.setLocationRelativeTo(parent);
    dialog.setVisible(true);
}
Also used : Color(java.awt.Color) ExternalFinderPreferencesController(org.omegat.externalfinder.gui.ExternalFinderPreferencesController) Enumeration(java.util.Enumeration) StaticUIUtils(org.omegat.util.gui.StaticUIUtils) RepositoriesCredentialsController(org.omegat.core.team2.gui.RepositoriesCredentialsController) CustomColorSelectionController(org.omegat.gui.preferences.view.CustomColorSelectionController) StringUtil(org.omegat.util.StringUtil) MouseWheelEvent(java.awt.event.MouseWheelEvent) Map(java.util.Map) SwingWorker(javax.swing.SwingWorker) CharTableAutoCompleterOptionsController(org.omegat.gui.preferences.view.CharTableAutoCompleterOptionsController) KeyStroke(javax.swing.KeyStroke) TreePath(javax.swing.tree.TreePath) FiltersCustomizerController(org.omegat.gui.filters2.FiltersCustomizerController) UserPassController(org.omegat.gui.preferences.view.UserPassController) KeyEvent(java.awt.event.KeyEvent) WindowAdapter(java.awt.event.WindowAdapter) Component(java.awt.Component) InvocationTargetException(java.lang.reflect.InvocationTargetException) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) AbstractAction(javax.swing.AbstractAction) FontSelectionController(org.omegat.gui.preferences.view.FontSelectionController) LanguageToolConfigurationController(org.omegat.gui.preferences.view.LanguageToolConfigurationController) AutotextAutoCompleterOptionsController(org.omegat.gui.preferences.view.AutotextAutoCompleterOptionsController) BasicStroke(java.awt.BasicStroke) SpellcheckerConfigurationController(org.omegat.gui.preferences.view.SpellcheckerConfigurationController) GlossaryPreferencesController(org.omegat.gui.preferences.view.GlossaryPreferencesController) TeamOptionsController(org.omegat.gui.preferences.view.TeamOptionsController) TreeExpansionListener(javax.swing.event.TreeExpansionListener) Preferences(org.omegat.util.Preferences) JPanel(javax.swing.JPanel) WindowConstants(javax.swing.WindowConstants) TreeExpansionEvent(javax.swing.event.TreeExpansionEvent) ProjectUICommands(org.omegat.gui.main.ProjectUICommands) KeyAdapter(java.awt.event.KeyAdapter) ArrayList(java.util.ArrayList) MachineTranslationPreferencesController(org.omegat.gui.preferences.view.MachineTranslationPreferencesController) BiConsumer(java.util.function.BiConsumer) Container(java.awt.Container) DocumentEvent(javax.swing.event.DocumentEvent) TMMatchesPreferencesController(org.omegat.gui.preferences.view.TMMatchesPreferencesController) ActionMap(javax.swing.ActionMap) GeneralOptionsController(org.omegat.gui.preferences.view.GeneralOptionsController) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer) JRootPane(javax.swing.JRootPane) Window(java.awt.Window) TreeSelectionModel(javax.swing.tree.TreeSelectionModel) MouseEvent(java.awt.event.MouseEvent) SaveOptionsController(org.omegat.gui.preferences.view.SaveOptionsController) JScrollBar(javax.swing.JScrollBar) JLayeredPane(javax.swing.JLayeredPane) AutoCompleterController(org.omegat.gui.preferences.view.AutoCompleterController) DocumentListener(javax.swing.event.DocumentListener) JDialog(javax.swing.JDialog) Area(java.awt.geom.Area) HistoryAutoCompleterOptionsController(org.omegat.gui.preferences.view.HistoryAutoCompleterOptionsController) Point(java.awt.Point) RenderingHints(java.awt.RenderingHints) SegmentationCustomizerController(org.omegat.gui.segmentation.SegmentationCustomizerController) ComponentListener(java.awt.event.ComponentListener) Core(org.omegat.core.Core) MouseAdapter(java.awt.event.MouseAdapter) BorderLayout(java.awt.BorderLayout) Method(java.lang.reflect.Method) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) Shape(java.awt.Shape) Predicate(java.util.function.Predicate) ComponentEvent(java.awt.event.ComponentEvent) Logger(java.util.logging.Logger) WindowEvent(java.awt.event.WindowEvent) RoundRectangle2D(java.awt.geom.RoundRectangle2D) DictionaryPreferencesController(org.omegat.gui.preferences.view.DictionaryPreferencesController) Objects(java.util.Objects) Dimension(java.awt.Dimension) List(java.util.List) PluginsPreferencesController(org.omegat.gui.preferences.view.PluginsPreferencesController) Graphics(java.awt.Graphics) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) Toolkit(java.awt.Toolkit) Rectangle(java.awt.Rectangle) TreeNode(javax.swing.tree.TreeNode) HashMap(java.util.HashMap) Function(java.util.function.Function) ViewOptionsController(org.omegat.gui.preferences.view.ViewOptionsController) TreeSelectionEvent(javax.swing.event.TreeSelectionEvent) SecureStoreController(org.omegat.gui.preferences.view.SecureStoreController) Level(java.util.logging.Level) FocusAdapter(java.awt.event.FocusAdapter) SwingUtilities(javax.swing.SwingUtilities) Graphics2D(java.awt.Graphics2D) FurtherActionListener(org.omegat.gui.preferences.IPreferencesController.FurtherActionListener) OStrings(org.omegat.util.OStrings) JComponent(javax.swing.JComponent) GlossaryAutoCompleterOptionsController(org.omegat.gui.preferences.view.GlossaryAutoCompleterOptionsController) ActionEvent(java.awt.event.ActionEvent) ComponentAdapter(java.awt.event.ComponentAdapter) Consumer(java.util.function.Consumer) FocusEvent(java.awt.event.FocusEvent) EditingBehaviorController(org.omegat.gui.preferences.view.EditingBehaviorController) TagProcessingOptionsController(org.omegat.gui.preferences.view.TagProcessingOptionsController) AppearanceController(org.omegat.gui.preferences.view.AppearanceController) InputMap(javax.swing.InputMap) DocumentListener(javax.swing.event.DocumentListener) FocusAdapter(java.awt.event.FocusAdapter) TreeExpansionListener(javax.swing.event.TreeExpansionListener) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) ActionEvent(java.awt.event.ActionEvent) KeyAdapter(java.awt.event.KeyAdapter) WindowAdapter(java.awt.event.WindowAdapter) FocusEvent(java.awt.event.FocusEvent) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer) KeyEvent(java.awt.event.KeyEvent) AbstractAction(javax.swing.AbstractAction) TreeExpansionEvent(javax.swing.event.TreeExpansionEvent) ComponentAdapter(java.awt.event.ComponentAdapter) ActionMap(javax.swing.ActionMap) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) Dimension(java.awt.Dimension) DocumentEvent(javax.swing.event.DocumentEvent) InvocationTargetException(java.lang.reflect.InvocationTargetException) TreePath(javax.swing.tree.TreePath) WindowEvent(java.awt.event.WindowEvent) KeyStroke(javax.swing.KeyStroke) InputMap(javax.swing.InputMap) ComponentEvent(java.awt.event.ComponentEvent) JDialog(javax.swing.JDialog)

Example 8 with DefaultTreeCellRenderer

use of javax.swing.tree.DefaultTreeCellRenderer in project JMRI by JMRI.

the class CatalogPanel method init.

protected void init(boolean treeDnD) {
    _model = new DefaultTreeModel(new CatalogTreeNode("mainRoot"));
    if (treeDnD) {
        // index editor (right pane)
        _dTree = new DropJTree(_model);
        _noDrag = true;
    } else {
        // Catalog (left pane index editor or all icon editors)
        _dTree = new JTree(_model);
        _noDrag = false;
    }
    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
    renderer.setLeafIcon(renderer.getClosedIcon());
    _dTree.setCellRenderer(renderer);
    _dTree.setRootVisible(false);
    _dTree.setShowsRootHandles(true);
    _dTree.setScrollsOnExpand(true);
    //_dTree.setDropMode(DropMode.ON);
    _dTree.getSelectionModel().setSelectionMode(DefaultTreeSelectionModel.SINGLE_TREE_SELECTION);
    _dTree.addTreeSelectionListener((TreeSelectionEvent e) -> {
        updatePanel();
    });
    _dTree.setExpandsSelectedPaths(true);
    _treePane.setViewportView(_dTree);
//        setupPanel();
}
Also used : JTree(javax.swing.JTree) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) TreeSelectionEvent(javax.swing.event.TreeSelectionEvent) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer)

Example 9 with DefaultTreeCellRenderer

use of javax.swing.tree.DefaultTreeCellRenderer in project jdk8u_jdk by JetBrains.

the class SynthTreeUI method configureRenderer.

private void configureRenderer(SynthContext context) {
    TreeCellRenderer renderer = tree.getCellRenderer();
    if (renderer instanceof DefaultTreeCellRenderer) {
        DefaultTreeCellRenderer r = (DefaultTreeCellRenderer) renderer;
        SynthStyle style = context.getStyle();
        context.setComponentState(ENABLED | SELECTED);
        Color color = r.getTextSelectionColor();
        if (color == null || (color instanceof UIResource)) {
            r.setTextSelectionColor(style.getColor(context, ColorType.TEXT_FOREGROUND));
        }
        color = r.getBackgroundSelectionColor();
        if (color == null || (color instanceof UIResource)) {
            r.setBackgroundSelectionColor(style.getColor(context, ColorType.TEXT_BACKGROUND));
        }
        context.setComponentState(ENABLED);
        color = r.getTextNonSelectionColor();
        if (color == null || color instanceof UIResource) {
            r.setTextNonSelectionColor(style.getColorForState(context, ColorType.TEXT_FOREGROUND));
        }
        color = r.getBackgroundNonSelectionColor();
        if (color == null || color instanceof UIResource) {
            r.setBackgroundNonSelectionColor(style.getColorForState(context, ColorType.TEXT_BACKGROUND));
        }
    }
}
Also used : TreeCellRenderer(javax.swing.tree.TreeCellRenderer) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer) Color(java.awt.Color) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer) UIResource(javax.swing.plaf.UIResource)

Example 10 with DefaultTreeCellRenderer

use of javax.swing.tree.DefaultTreeCellRenderer in project JMRI by JMRI.

the class RosterGroupsPanel method getTree.

/**
     * Get the JTree containing the roster groups.
     *
     * @return The internal JTree
     */
public final JTree getTree() {
    if (_tree == null) {
        TreeSelectionModel sm = new DefaultTreeSelectionModel();
        DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
        sm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
        renderer.setLeafIcon(null);
        renderer.setClosedIcon(null);
        renderer.setOpenIcon(null);
        _tree = new JTree(getModel());
        _tree.setUI(new TreeUI());
        _tree.putClientProperty("JTree.lineStyle", "None");
        _tree.setRootVisible(false);
        _tree.expandRow(0);
        _tree.setSelectionModel(sm);
        _tree.setCellRenderer(renderer);
        _tree.addTreeWillExpandListener(new TreeWillExpandListener());
        _TSL = new TreeSelectionListener();
        _tree.addTreeSelectionListener(_TSL);
        _tree.setDragEnabled(true);
        _tree.setDropMode(DropMode.ON);
        _tree.setTransferHandler(new TransferHandler());
        _tree.addMouseListener(new MouseAdapter());
        setSelectionToGroup(selectedRosterGroup);
        Roster.getDefault().addPropertyChangeListener(new PropertyChangeListener());
    }
    return _tree;
}
Also used : JTree(javax.swing.JTree) DefaultTreeSelectionModel(javax.swing.tree.DefaultTreeSelectionModel) DefaultTreeCellRenderer(javax.swing.tree.DefaultTreeCellRenderer) DefaultTreeSelectionModel(javax.swing.tree.DefaultTreeSelectionModel) TreeSelectionModel(javax.swing.tree.TreeSelectionModel) BasicTreeUI(javax.swing.plaf.basic.BasicTreeUI)

Aggregations

DefaultTreeCellRenderer (javax.swing.tree.DefaultTreeCellRenderer)36 JTree (javax.swing.JTree)13 DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode)13 DefaultTreeModel (javax.swing.tree.DefaultTreeModel)12 TreePath (javax.swing.tree.TreePath)10 MouseAdapter (java.awt.event.MouseAdapter)7 MouseEvent (java.awt.event.MouseEvent)7 TreeSelectionEvent (javax.swing.event.TreeSelectionEvent)7 TreeCellRenderer (javax.swing.tree.TreeCellRenderer)7 Dimension (java.awt.Dimension)4 JLabel (javax.swing.JLabel)4 JPanel (javax.swing.JPanel)4 JScrollPane (javax.swing.JScrollPane)4 TreeSelectionListener (javax.swing.event.TreeSelectionListener)4 Topic (com.igormaznitsa.mindmap.model.Topic)3 BorderLayout (java.awt.BorderLayout)3 Component (java.awt.Component)3 ActionEvent (java.awt.event.ActionEvent)3 KeyAdapter (java.awt.event.KeyAdapter)3 KeyEvent (java.awt.event.KeyEvent)3