aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/mod/database/PageSpeciesClassification.java
blob: 3db09e32cf0aa6b1bda158f1d09b9ef6f4cf75bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package binnie.craftgui.mod.database;

import binnie.craftgui.controls.ControlText;
import binnie.craftgui.controls.ControlTextCentered;
import binnie.craftgui.core.IWidget;
import forestry.api.genetics.IAlleleSpecies;
import forestry.api.genetics.IClassification;
import forestry.api.genetics.IClassification.EnumClassLevel;
import java.util.LinkedHashMap;
import java.util.Map;

public class PageSpeciesClassification
  extends PageSpecies
{
  private Map<IClassification.EnumClassLevel, ControlText> levels = new LinkedHashMap();
  private ControlText genus;
  
  public PageSpeciesClassification(IWidget parent, DatabaseTab tab)
  {
    super(parent, tab);
    int y = 16;
    for (IClassification.EnumClassLevel level : IClassification.EnumClassLevel.values())
    {
      ControlText text = new ControlTextCentered(this, y, "");
      text.setColour(level.getColour());
      this.levels.put(level, text);
      y += 12;
    }
    this.genus = new ControlTextCentered(this, y, "");
    this.genus.setColour(16759415);
  }
  
  public void onValueChanged(IAlleleSpecies species)
  {
    if (species != null)
    {
      for (ControlText text : this.levels.values()) {
        text.setValue("- - -");
      }
      this.genus.setValue(species.getBinomial());
      
      IClassification classification = species.getBranch();
      while (classification != null)
      {
        IClassification.EnumClassLevel level = classification.getLevel();
        String text = "";
        int n = level.ordinal();
        text = text + classification.getScientific();
        ((ControlText)this.levels.get(level)).setValue(text);
        classification = classification.getParent();
      }
    }
  }
}