protected void updateSizeAndBackground() {
  double ratio = this.model.getRatio(this.level);
	this.setFont(
		new Font(null, Font.BOLD, 
      (ratio==0) ? NULL_FONT_SIZE
      : (int) Math.round((MAX_FONT_SIZE - MIN_FONT_SIZE)*ratio + MIN_FONT_SIZE)
		)
	);
  if (ratio>0) {
    this.addMouseListener(this.clickListener);
    this.setCursor(HAND_CURSOR);
  } else {
    this.setToolTipText(this.model.getName());
  }
  if (this.model.isSelected()) {
    this.setOpaque(true);
    this.setBackground(PRIMARY_COLOR2);
  } else {
    this.setOpaque(false);
    this.setBackground(null);
  }
}