@Override
	public void mouseMoved(MouseEvent e) {
		if (parts.isEmpty()) {
			setToolTipText("null");
		} else {
			float sum = getPartSum();
			
			Iterator<Entry<String, Integer>> it = parts.entrySet().iterator();
			float last = 0;
		    while (it.hasNext()) {
		    	Entry<String, Integer> entry = it.next();
		    		
		    	float begin = last;
		    	float end = begin + this.getWidth() * (entry.getValue() / sum);
		    	last = (int)end;
		    	
		    	if (e.getX() >= begin && e.getX() <= end) {
		    		setToolTipText(entry.getKey());
		    		return;
		    	}
		    }
		}
	}