private Component buildSideBar() {
		JComponent tree = new JTree(createSampleTreeModel());
		
		MouseListener treeListener = 
			new MouseListener() {
			public void mouseClicked(MouseEvent e) {
				JTree tree = (JTree)e.getComponent();
				
				TreePath selectionPath = tree.getSelectionPath();
				if(selectionPath == null)
					return;
				Object[] nodePath = selectionPath.getPath();
				
				if(nodePath.length < 2)
					return;
				
				String year = ((DefaultMutableTreeNode)nodePath[1]).toString();
				String storm = "";
				String point = "";
				if(nodePath.length > 2)
					storm = ((DefaultMutableTreeNode)nodePath[2]).toString();
				if(nodePath.length > 3)
					point = ((DefaultMutableTreeNode)nodePath[3]).toString();
					
				if(log.isDebugEnabled()){
					log.debug("click year=" + year + "; storm= " + storm + "; point=" + point);
					log.debug("storms=" + years.get(year));
				}
				if(splitPane == null)
					log.error("No split pane ready to hold map panel");
				else{
					MapHandler mapHandler = mapPanel.getMapHandler();
					RouteLayer oldHurricaneLayer = hurricaneLayer;
					hurricaneLayer = new RouteLayer(years.get(year), storm);
					mapHandler.add(hurricaneLayer);
					mapHandler.remove(oldHurricaneLayer);
				}
			}

			public void mousePressed(MouseEvent e) {}
			public void mouseReleased(MouseEvent e) {}
			public void mouseEntered(MouseEvent e) {}
			public void mouseExited(MouseEvent e) {}
		};
		tree.addMouseListener(treeListener);
		
		JComponent sideBar = createStrippedScrollPane(tree);
		
		return sideBar;
	}