public void setTooltipZeroText(String zeroTip)
        throws IllegalStateException
    {
        if ((ttip_text == null) && (zeroTip != null))
            throw new IllegalStateException("Must call setTooltipText first");

        boolean isZero = (intValue == 0);

        ttip_text_zero = zeroTip;  // Remember new zeroTip text

        // TODO simplify, docu
        if ((zeroTip == null) && (ttip_text != null))
        {
            // No more zeroTip text.
            if (isZero)
            {
                if (hasWarnLow && isWarnLow)
                    ttip.setTip(ttip_text_warnLow);  // Revert to low-level tooltip text
                else
                    ttip.setTip(ttip_text);  // Revert to non-warning tooltip text
            }
        }
        else if ((zeroTip != null) && isZero)
        {
            // New zeroTip text. We may have been at low-level or standard tooltip text.
            ttip.setTip(zeroTip);
        }
    }