alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jface.viewers;

import org.eclipse.core.runtime.Assert;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;

/**
 * A cell editor that manages a checkbox.
 * The cell editor's value is a boolean.
 * <p>
 * This class may be instantiated; it is not intended to be subclassed.
 * </p>
 * <p>
 * Note that this implementation simply fakes it and does does not create
 * any new controls. The mere activation of this editor means that the value
 * of the check box is being toggled by the end users; the listener method
 * <code>applyEditorValue is immediately called to signal the change.
 * </p>
 */
public class CheckboxCellEditor extends CellEditor {

    /**
     * The checkbox value.
     */
    /* package */
    boolean value = false;

    /**
     * Default CheckboxCellEditor style
     */
    private static final int defaultStyle = SWT.NONE;

    /**
     * Creates a new checkbox cell editor with no control
     * @since 2.1
     */
    public CheckboxCellEditor() {
        setStyle(defaultStyle);
    }

    /**
     * Creates a new checkbox cell editor parented under the given control.
     * The cell editor value is a boolean value, which is initially <code>false. 
     * Initially, the cell editor has no cell validator.
     *
     * @param parent the parent control
     */
    public CheckboxCellEditor(Composite parent) {
        this(parent, defaultStyle);
    }

    /**
     * Creates a new checkbox cell editor parented under the given control.
     * The cell editor value is a boolean value, which is initially <code>false. 
     * Initially, the cell editor has no cell validator.
     *
     * @param parent the parent control
     * @param style the style bits
     * @since 2.1
     */
    public CheckboxCellEditor(Composite parent, int style) {
        super(parent, style);
    }

    /**
     * The <code>CheckboxCellEditor implementation of
     * this <code>CellEditor framework method simulates
     * the toggling of the checkbox control and notifies
     * listeners with <code>ICellEditorListener.applyEditorValue.
     */
    public void activate() {
        value = !value;
        fireApplyEditorValue();
    }

    /**
     * The <code>CheckboxCellEditor implementation of
     * this <code>CellEditor framework method does
     * nothing and returns <code>null.
     */
    protected Control createControl(Composite parent) {
        return null;
    }

    /**
     * The <code>CheckboxCellEditor implementation of
     * this <code>CellEditor framework method returns
     * the checkbox setting wrapped as a <code>Boolean.
     *
     * @return the Boolean checkbox value
     */
    protected Object doGetValue() {
        return value ? Boolean.TRUE : Boolean.FALSE;
    }

    /* (non-Javadoc)
     * Method declared on CellEditor.
     */
    protected void doSetFocus() {
        // Ignore
    }

    /**
     * The <code>CheckboxCellEditor implementation of
     * this <code>CellEditor framework method accepts
     * a value wrapped as a <code>Boolean.
     *
     * @param value a Boolean value
     */
    protected void doSetValue(Object value) {
        Assert.isTrue(value instanceof Boolean);
        this.value = ((Boolean) value).booleanValue();
    }
}
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.