org.fusesource.tools.messaging.ui.DefaultMessageTableViewer.java Source code

Java tutorial

Introduction

Here is the source code for org.fusesource.tools.messaging.ui.DefaultMessageTableViewer.java

Source

/*******************************************************************************
 * Copyright (c) 2009, 2010 Progress Software Corporation.
 * 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 org.fusesource.tools.messaging.ui;

import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.fusesource.tools.messaging.IConstants;

public class DefaultMessageTableViewer extends TableViewer implements TableModel {

    private String prefKey;

    protected String columnString = IConstants.EMPTY_STRING;

    public DefaultMessageTableViewer(Composite parent, String prefKey) {
        this(parent, SWT.FULL_SELECTION | SWT.MULTI, prefKey);
    }

    public DefaultMessageTableViewer(Composite parent, int style, String prefKey) {
        super(parent, style);
        addListeners();
        this.prefKey = prefKey;
    }

    public DefaultMessageTableViewer(Table table) {
        super(table);
    }

    private void addListeners() {
        getTable().addDisposeListener(new DisposeListener() {
            public void widgetDisposed(DisposeEvent e) {
                onDispose();
            }
        });
    }

    protected int getDefaultWidth() {
        return 1000;
    }

    public String getDefaultPreferenceValue() {
        return IConstants.EMPTY_STRING;
    }

    public String getPreferenceKey() {
        return prefKey;
    }

    public void setPreferenceKey(String prefKey) {
        this.prefKey = prefKey;
    }

    public void removeAll() {
        TableColumn[] tableColumns = this.getTable().getColumns();
        for (TableColumn tableColumn : tableColumns) {
            tableColumn.dispose();
        }
    }

    public void addColumns() {
        String[] columns = columnString.split(IConstants.COLUMN_DELIM);
        for (String column2 : columns) {
            Column column = new Column(column2, 0.11f);
            TableColumn c = new TableColumn(this.getTable(), SWT.FULL_SELECTION);
            c.setText(column.getColumnName());
            c.setWidth((int) (getDefaultWidth() * column.getWidthValue()));
            c.setResizable(true);
            c.setMoveable(true);
        }
    }

    public String getColumnString() {
        return columnString;
    }

    public void refreshTable(String columnString) {
        getTable().setHeaderVisible(true);
        if (columnString == null || columnString.equals(IConstants.EMPTY_STRING)) {
            columnString = getDefaultPreferenceValue();
        }
        this.columnString = columnString;
        removeAll();
        addColumns();
        saveModel();
        refresh();
    }

    protected void onDispose() {
        saveModel();
    }

    public void saveModel() {

    }
}