public NodeFoldingComponent(NodeView view) {
        super();
        if (logger == null) {
            logger = freemind.main.Resources.getInstance().getLogger(
                    this.getClass().getName());
        }
        this.nodeView = view;
        setModel(new DefaultButtonModel());
        init(null, null);
        setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
        setBackground(Color.BLACK);
        setContentAreaFilled(false);
        setFocusPainted(false);
        setFocusable(false);
        setAlignmentY(Component.TOP_ALIGNMENT);
        setUI(new RoundImageButtonUI());
        mIsEnabled = Resources.getInstance().getBoolProperty(
                FreeMind.RESOURCES_DISPLAY_FOLDING_BUTTONS);
        if (mIsEnabled) {
            addMouseListener(new MouseListener() {

                public void mouseReleased(MouseEvent pE) {
                }

                public void mousePressed(MouseEvent pE) {
                }

                public void mouseExited(MouseEvent pE) {
                    mIsEntered = false;
                    mColorCounter = COLOR_COUNTER_MAX;
                    repaint();
                }

                public void mouseEntered(MouseEvent pE) {
                    mIsEntered = true;
                    startTimer();
                    repaint();
                }

                public void mouseClicked(MouseEvent pE) {
                }
            });
            int delay = TIMER_DELAY;
            ActionListener taskPerformer = new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    if (mIsEntered && mColorCounter < COLOR_COUNTER_MAX) {
                        mColorCounter++;
                        repaint();
                    }
                    if (!mIsEntered && mColorCounter > 0) {
                        mColorCounter--;
                        if (mColorCounter == 0) {
                            stopTimer();
                        }
                        repaint();
                    }

                }
            };
            mTimer = new Timer(delay, taskPerformer);
        }
    }