edu.harvard.med.screensaver.ui.arch.datatable.ColumnVisibilityChangedEvent.java Source code

Java tutorial

Introduction

Here is the source code for edu.harvard.med.screensaver.ui.arch.datatable.ColumnVisibilityChangedEvent.java

Source

// $HeadURL$
// $Id$
//
// Copyright  2006, 2010, 2011, 2012 by the President and Fellows of Harvard College.
//
// Screensaver is an open-source project developed by the ICCB-L and NSRB labs
// at Harvard Medical School. This software is distributed under the terms of
// the GNU General Public License.

package edu.harvard.med.screensaver.ui.arch.datatable;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

import edu.harvard.med.screensaver.ui.arch.datatable.column.TableColumn;

import org.apache.commons.collections.CollectionUtils;
import org.apache.log4j.Logger;

public class ColumnVisibilityChangedEvent {
    // static members

    private static Logger log = Logger.getLogger(ColumnVisibilityChangedEvent.class);

    // instance data members

    private Set<TableColumn<?, ?>> _added = new HashSet<TableColumn<?, ?>>();
    private Set<TableColumn<?, ?>> _removed = new HashSet<TableColumn<?, ?>>();

    // public constructors and methods

    public ColumnVisibilityChangedEvent() {
    }

    public ColumnVisibilityChangedEvent(Collection<? extends TableColumn<?, ?>> added,
            Collection<? extends TableColumn<?, ?>> removed) {
        if (CollectionUtils.intersection(added, removed).size() > 0) {
            throw new IllegalArgumentException("'added' and 'removed' collections must be disjoint");
        }
        if (added != null) {
            _added.addAll(added);
        }
        if (removed != null) {
            _removed.addAll(removed);
        }
    }

    public ColumnVisibilityChangedEvent added(TableColumn<?, ?> added) {
        if (_removed.contains(added)) {
            throw new IllegalArgumentException("column is in 'removed'");
        }
        _added.add(added);
        return this;
    }

    public ColumnVisibilityChangedEvent removed(TableColumn<?, ?> removed) {
        if (_removed.contains(removed)) {
            throw new IllegalArgumentException("column is in 'added'");
        }
        _removed.add(removed);
        return this;
    }

    public Set<TableColumn<?, ?>> getColumnsAdded() {
        return _added;
    }

    public Set<TableColumn<?, ?>> getColumnsRemoved() {
        return _removed;
    }

    @Override
    public String toString() {
        return new StringBuilder().append("ColumnVisibilityChanged[added=").append(_added).append("; removed=")
                .append(_removed).toString();
    }
}