/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.core.api.gui.util; import java.util.Locale; import java.util.ResourceBundle; import javax.swing.ImageIcon; import javax.swing.JTree; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicTreeUI; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; @SuppressWarnings("serial") public class TreeSelection extends JTree { public void constructTree(DefaultTreeModel model) { this.setModel(model); this.setShowsRootHandles(true); this.setRootVisible(false); DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); ImageIcon plus = new ImageIcon(getClass().getResource("/icon/plusTree.png")); //$NON-NLS-1$ ImageIcon minus = new ImageIcon(getClass().getResource("/icon/minusTree.png")); //$NON-NLS-1$ ComponentUI ui = this.getUI(); if (ui instanceof BasicTreeUI) { ((BasicTreeUI) ui).setExpandedIcon(minus); ((BasicTreeUI) ui).setCollapsedIcon(plus); } renderer.setOpenIcon(null); renderer.setClosedIcon(null); renderer.setLeafIcon(null); this.setCellRenderer(renderer); } public DefaultMutableTreeNode getRoot() { return (DefaultMutableTreeNode) getModel().getRoot(); } public TreePath getTreePath(DefaultMutableTreeNode node) { ResourceBundle.getBundle("javax.help.resources.Constants", Locale.getDefault()); //$NON-NLS-1$ return new TreePath(((DefaultTreeModel) getModel()).getPathToRoot(node)); } }