docs: public ImageIcon getImageIcon(Object value)
      {
          if (value == null)
              return m_rgIcons[0];
          String strType = value.toString();
          int iType = 0;
          try   {
              iType = Integer.parseInt(strType);
          } catch (NumberFormatException ex)  {
          }
  
          if (m_rgIcons == null)
          	return null;
          int iIconCount = 0;
          for (int i = 1; i < MAX_ICONS; i++)
          {
              if (m_rgIcons[i] != null)
                  if (((1 << i) & iType) != 0)    // Only count icons in this type
                      iIconCount++;
          }
          if (iIconCount == 0)
              iIconCount = 1;
          int iRelIndex;
          if ((iType & 1) == 0)
          {   // Cycle through all the icons
              iRelIndex = m_iCurrentIcon % iIconCount;    // Remainder of division
          }
          else
          {   // Alternate from 0, next, 0, next, etc
              if ((m_iCurrentIcon & 1) == 0)
                  iRelIndex = MAX_ICONS;      // Icon 0
              else
              {
                  int iIconIndex = m_iCurrentIcon / 2 + 1;
                  iRelIndex = iIconIndex % iIconCount;    // Remainder of division
              }
          }
          int i;
          for (i = 1; i < MAX_ICONS; i++)
          {
              if (m_rgIcons[i] != null)
                  if (((1 << i) & iType) != 0)    // Only count icons in this type
                      iRelIndex--;
              if (iRelIndex < 0)
                  break;
          }
          if (i >= MAX_ICONS)
              i = 0;
  
          return m_rgIcons[i];
      }