private void drawShapes(GraphicsContext gc) {
        gc.setFill(Color.GREEN);
        gc.setStroke(Color.BLUE);
        gc.setLineWidth(1);
        gc.fillText(tl.name, 40, 20);
        int begin = tl.timelineEvents.firstEntry().getValue().getStartYear();
        int end = tl.timelineEvents.lastEntry().getValue().getStartYear();
        Iterator iter = tl.timelineEvents.keySet().iterator();
        
        while(iter.hasNext()){
            Event next = tl.timelineEvents.get(iter.next());
            if (next.getDuration()){
                if(next.getEndYear() > end) end = next.getEndYear();
            }
        }
        int length = end - begin;
        
         System.out.println("begin "+begin+" end "+end+" length "+length);
         
        gc.strokeLine(40, 100, (length+2)*100, 100);
        for(int i = 0; i < length+2; i++){
            gc.strokeLine(40+i*100, 80, 40+i*100, 120);
            gc.fillText(""+(begin+i), 40+i*100, 60);
            
        }
        int vOffSet = 0;
        int vOffSet2 = 0;
        Iterator it = tl.timelineEvents.keySet().iterator();
        for(int i = 0; i < tl.timelineEvents.size(); i++ ){
            
            
            
            Event next = tl.timelineEvents.get(it.next());
            if(!yearMap.containsKey(next.getStartYear())) yearMap.put(next.getStartYear(), 0);
            vOffSet+=40*yearMap.get(next.getStartYear());
            
            //not duration event
            if(next.getDuration() == false){
                gc.setStroke(Color.RED);
                gc.setFill(Color.RED);
                int offset = (next.getStartDay()+(next.getStartMonth()*30))/4;
                
                gc.strokeLine(40+(next.getStartYear()-begin)*100+offset, 90, 40+(next.getStartYear()-begin)*100+offset, 110);
                //clickSpace cls = new clickSpace(35+i*100, 25, next);
                //csArray.add(cls);
                gc.fillText(""+next.getStartYear()+"/"+next.getStartMonth()+"/"+next.getStartDay(), 50+(next.getStartYear()-begin)*100, 135+vOffSet);
                gc.fillText(next.getName(), 50+(next.getStartYear()-begin)*100, 150+vOffSet);
          //make purple duration event
            }else{
                if(!yearMap.containsKey(next.getEndYear())) yearMap.put(next.getEndYear(), 0);
                vOffSet2+=40*yearMap.get(next.getEndYear());
                gc.setStroke(Color.PURPLE);
                gc.setFill(Color.PURPLE);
                int boffset = (next.getStartDay()+(next.getStartMonth()*30))/4;
                int eoffset = (next.getEndDay()+(next.getEndMonth()*30))/4;
                
                 //spaces duration events so they don't pile on top eachother
                spacer +=20;
                
                //draws the duration event timeline
                gc.strokeLine(40+(next.getStartYear()-begin)*100+boffset, 90+vOffSet+spacer, 40+(next.getStartYear()-begin)*100+boffset, 110+vOffSet+spacer);
                gc.strokeLine(40+(next.getEndYear()-begin)*100+eoffset, 90+vOffSet+spacer, 40+(next.getEndYear()-begin)*100+eoffset, 110+vOffSet+spacer);
                gc.strokeLine(40+(next.getStartYear()-begin)*100+boffset, 99+vOffSet+spacer, 40+(next.getEndYear()-begin)*100+eoffset, 99+vOffSet+spacer);
                
                System.out.println(""+next.getEndYear());
                gc.fillText(""+next.getStartYear()+"/"+next.getStartMonth()+"/"+next.getStartDay(), 50+(next.getStartYear()-begin)*100, 135+vOffSet);
                gc.fillText(next.getName(), 50+(next.getStartYear()-begin)*100, 150+vOffSet);
                gc.fillText(""+next.getEndYear()+"/"+next.getEndMonth()+"/"+next.getEndDay(), 50+(next.getEndYear()-begin)*100, 135+vOffSet);
                gc.fillText(next.getName(), 50+(next.getEndYear()-begin)*100, 150+vOffSet);
                     
                
                int k = yearMap.get(next.getEndYear());
                k = k+1;
                yearMap.put(next.getEndYear(), k);
            }
            int k = yearMap.get(next.getStartYear());
            k = k+1;
            yearMap.put(next.getStartYear(), k);
            
        }   
        
    }