package Common.Visual;
import Common.Utils.Utils_;

import javax.swing.*;
public interface Selectable {
    boolean isSelected();
    default void Select(boolean flag) {
        if (isSelectionEnabled())
            select(flag);
    }
    void select(boolean flag);
    //-
    default ImageIcon GetSelectionIcon() {
        return
                isSelectionEnabled() ?
                        Utils_.getIcon("/Common/icons/" + (isSelected() ? "Pick" : "NotPick") + ".png") :
                        GetDisabledIcon();
    }
    default ImageIcon GetDisabledIcon() {
        return Utils_.getIcon("/Common/icons/Arrays/Unknown.png");
    }
    default void SwitchSelection() {
        Select(!isSelected());
    }
    //строчный контент для передачи параметров проходам.
    default String getSelectionContent() {
        return toString();
    }
    //-
    default String getSelectionText() {
        return toString();
    }
    default boolean isSelectionEnabled() {
        return true;
    }
    default void SelectAllChildren(boolean select) {
    }
}
