class MixedCheckBoxModel extends ToggleButtonModel {

        private MixedCheckBoxStatus getStatus() {
            return isSelected() ? (isArmed() ? MixedCheckBoxStatus.MIXED : MixedCheckBoxStatus.CHECKED)
                    : MixedCheckBoxStatus.UNCHECKED;
        }

        private void setStatus(MixedCheckBoxStatus status) {<FILL_FUNCTION_BODY>}

        private void switchStatus() {
            switch (getStatus()) {
                case CHECKED:
                    setStatus(MixedCheckBoxStatus.UNCHECKED);
                    break;
                case UNCHECKED:
                    setStatus(MixedCheckBoxStatus.CHECKED);
                    break;
                case MIXED:
                    setStatus(MixedCheckBoxStatus.CHECKED);
                    break;
                default:
                    throw new IllegalStateException("The status (" + getStatus() + ") is not implemented.");
            }
        }
    }

            if (status == MixedCheckBoxStatus.CHECKED) {
                setSelected(true);
                setArmed(false);
                setPressed(false);
            } else if (status == MixedCheckBoxStatus.UNCHECKED) {
                setSelected(false);
                setArmed(false);
                setPressed(false);
            } else if (status == MixedCheckBoxStatus.MIXED) {
                setSelected(true);
                setArmed(true);
                setPressed(true);
            } else {
                throw new IllegalArgumentException("Invalid argument ("
                        + status + ") supplied.");
            }
        
<methods>public void <init>() ,public void <init>(javax.swing.Icon) ,public void <init>(java.lang.String) ,public void <init>(javax.swing.Action) ,public void <init>(javax.swing.Icon, boolean) ,public void <init>(java.lang.String, boolean) ,public void <init>(java.lang.String, javax.swing.Icon) ,public void <init>(java.lang.String, javax.swing.Icon, boolean) ,public javax.accessibility.AccessibleContext getAccessibleContext() ,public java.lang.String getUIClassID() ,public boolean isBorderPaintedFlat() ,public void setBorderPaintedFlat(boolean) ,public void updateUI() <variables>public static final java.lang.String BORDER_PAINTED_FLAT_CHANGED_PROPERTY,private boolean flat,private static final java.lang.String uiClassID