private void doClick(int xVal, int yVal, boolean leftClick, boolean rightClick,MouseEvent e){
        int columnIndex = determineColumn(xVal);
        int rowIndex = determineRow(yVal);
        
        if(rowIndex == -1 && columnIndex != -1){
            updateController(rowIndex, columnIndex);
        }
        // break out here if its invalid or a header update
        if(rowIndex < 0 || columnIndex < 0){
            return;
        }
        
        if(rowIndex >= modelRef.getNumAnimations()){
            return;
        }
        if(columnIndex >= modelRef.getAnimationDuration(rowIndex)){
            return;
        }   
        if(_animCBCallback != null ) {
            _animCBCallback.setSelected(false); // this wont trigger the event for some reason??
            setAnimationMode(false);
        }
         if (e.isPopupTrigger()) {            
            popupColumnIndex = columnIndex;
            popupRowIndex = rowIndex;
            _popup.show(e.getComponent(), e.getX(), e.getY());
        } else {
            processClick(rowIndex, columnIndex, leftClick, rightClick);
        }
    }