gov.redhawk.ui.views.monitor.ports.Column.java Source code

Java tutorial

Introduction

Here is the source code for gov.redhawk.ui.views.monitor.ports.Column.java

Source

/** 
 * This file is protected by Copyright. 
 * Please refer to the COPYRIGHT file distributed with this source distribution.
 * 
 * This file is part of REDHAWK IDE.
 * 
 * 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.
 *
 */
package gov.redhawk.ui.views.monitor.ports;

import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.TreeColumn;

/**
 * @since 3.0
 * 
 */
public class Column {
    private static final String COLUMN_DATA = "redhawk.columnData";
    private final String id;
    private final String name;
    private final String description;
    private final CellLabelProvider labelProvider;

    public Column(final String id, final String name, final CellLabelProvider labelProvider) {
        this(id, name, null, labelProvider);
    }

    public Column(final String id, final String name, final String desc, final CellLabelProvider labelProvider) {
        super();
        this.id = id;
        this.name = name;
        this.labelProvider = labelProvider;
        this.description = desc;
    }

    public String getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }

    public String getDescription() {
        return this.description;
    }

    public CellLabelProvider getLabelProvider() {
        return this.labelProvider;
    }

    @Override
    public int hashCode() {
        return this.id.hashCode();
    }

    @Override
    public boolean equals(final Object obj) {
        if (obj instanceof Column) {
            return this.id.equals(((Column) obj).id);
        }
        return super.equals(obj);
    }

    public TreeColumn createTreeColumn(final TreeViewer viewer) {
        TreeColumn retVal = findColumn(viewer);
        if (retVal == null) {
            retVal = new TreeColumn(viewer.getTree(), SWT.CENTER);
            final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, retVal);
            viewerColumn.setLabelProvider(this.labelProvider);
            retVal.setMoveable(true);
            retVal.setResizable(true);
            retVal.setText(this.name);
            if (this.description != null) {
                retVal.setToolTipText(this.description);
            }
            retVal.setData(Column.COLUMN_DATA, this.id);
        }
        return retVal;
    }

    public TreeColumn findColumn(final TreeViewer viewer) {
        for (final TreeColumn column : viewer.getTree().getColumns()) {
            final String columnId = (String) column.getData(Column.COLUMN_DATA);
            if (this.id.equals(columnId)) {
                return column;
            }
        }
        return null;
    }

    public boolean isIn(final TreeViewer viewer) {
        return findColumn(viewer) != null;
    }

    @Override
    public String toString() {
        return this.name;
    }
}