View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree;
2   
3   /*
4    * #%L
5    * Tutti :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2016 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.node.ZoneEditorNodeSupport;
28  import jaxx.runtime.SwingUtil;
29  
30  import javax.swing.ImageIcon;
31  import javax.swing.JTree;
32  import javax.swing.tree.DefaultTreeCellRenderer;
33  import java.awt.Component;
34  
35  /**
36   * @author Kevin Morin (Code Lutin)
37   * @since 4.5
38   */
39  public class ZoneEditorTreeCellRenderer extends DefaultTreeCellRenderer {
40  
41      protected final ImageIcon location = SwingUtil.createActionIcon("location");
42  
43      public ZoneEditorTreeCellRenderer() {
44          setIcon(location);
45      }
46  
47      @Override
48      public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
49  
50          if (value instanceof ZoneEditorNodeSupport) {
51              value = ((ZoneEditorNodeSupport) value).getUserObject();
52          }
53          super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
54          setIcon(location);
55          return this;
56  
57      }
58  
59  }