public void paintView() {
    if (isInvalid() || visibleDrawables == null) {
      visibleDrawables = getVisibleDrawables();
    }
    // visibleDrawables set to null on clear() for a load
    int visFeatSize = (visibleDrawables == null ? 0 : visibleDrawables.size());
    if (visFeatSize == 0) return;
    int i = 0;
    for (i = 0; i < visFeatSize; i++) {
      Vector curVis = (Vector) visibleDrawables.elementAt(i);
      for (int j = 0; j < curVis.size(); j++) {
        Drawable dsf = (Drawable) curVis.elementAt(j);
        if (inHotspot) {
          FeatureProperty fp = dsf.getFeatureProperty();
          Color old = fp.getColour();

          int red, green, blue;

          if (hotspotType == EVIDENCE_HOTSPOT) {
            red = 255 - old.getRed();
            green = 255 - old.getGreen();
            blue = 255 - old.getBlue();
          } else {
            red = old.getRed() & 0x8f;
            green = old.getGreen() & 0x8f;
            blue = old.getBlue() & 0x8f;
          }
          fp.setColour(new Color(red, green, blue), true);
          dsf.draw(graphics, transformer, manager);
          fp.setColour(old, true);
        } else {
          dsf.draw(graphics, transformer, manager);
        }
      }
    }
  }
 public boolean keep(SeqFeatureI f) {
   FeatureProperty fp = Config.getPropertyScheme().getFeatureProperty(f.getTopLevelType());
   return displayType.equalsIgnoreCase(fp.getDisplayType());
 }