protected void updateText(
    final BaseUI UI, Text headerText, Text detailText
  ) {
    if (selected == null) return ;
    headerText.setText(selected.fullName()) ;
    
    headerText.append("\n") ;
    final String cats[] = selected.infoCategories() ;
    if (cats != null) {
      for (int i = 0 ; i < cats.length ; i++) {
        final int index = i ;
        final boolean CC = categoryID == i ;
        headerText.append(new Text.Clickable() {
          public String fullName() { return ""+cats[index]+" " ; }
          public void whenClicked() { setCategory(index) ; }
        }, CC ? Colour.GREEN : Text.LINK_COLOUR) ;
      }
    }
    if (previous != null) {
      headerText.append(new Description.Link("UP") {
        public void whenClicked() {
          UI.selection.pushSelection(previous, false) ;
        }
      }) ;
    }
    
    detailText.setText("") ;
    selected.writeInformation(detailText, categoryID, UI) ;
  }