package org.freeplane.plugin.workspace.components; import java.awt.BorderLayout; import java.awt.event.ComponentListener; import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.TreeSelectionModel; import org.freeplane.plugin.workspace.controller.DefaultTreeExpansionListener; import org.freeplane.plugin.workspace.controller.DefaultWorkspaceSelectionListener; public class TreeView extends JPanel { private static final long serialVersionUID = 1L; private static final int view_margin = 3; protected JTree m_tree; protected JTextField m_display; public TreeView() { this.setLayout(new BorderLayout()); m_tree = new JTree(); m_tree.setBorder(BorderFactory.createEmptyBorder(2, view_margin, view_margin, view_margin)); m_tree.putClientProperty("JTree.lineStyle", "Angled"); m_tree.setCellRenderer(new WorkspaceNodeRenderer()); m_tree.setCellEditor(new WorkspaceCellEditor(m_tree, (DefaultTreeCellRenderer) m_tree.getCellRenderer())); m_tree.addTreeExpansionListener(new DefaultTreeExpansionListener()); m_tree.addTreeSelectionListener(new DefaultWorkspaceSelectionListener()); m_tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); m_tree.setShowsRootHandles(false); m_tree.setEditable(true); this.add(new JScrollPane(m_tree), BorderLayout.CENTER); // TODO: DOCEAR - choose actions to use in Toolbar // WorkspaceToolBar workspaceToolBar = new WorkspaceToolBar(); // add(workspaceToolBar, BorderLayout.NORTH); } public JTree getTreeView() { return m_tree; } public void addTreeMouseListener(MouseListener l) { this.m_tree.addMouseListener(l); } public void addTreeComponentListener(ComponentListener l) { this.m_tree.addComponentListener(l); } }