All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.freedesktop.dbus.viewer.DBusTableModel Maven / Gradle / Ivy

Go to download

Improved version of the DBus-Java library provided by freedesktop.org (https://dbus.freedesktop.org/doc/dbus-java/).

There is a newer version: 3.3.2
Show newest version
/*
   D-Bus Java Viewer
   Copyright (c) 2006 Peter Cox

   This program is free software; you can redistribute it and/or modify it
   under the terms of either the GNU Lesser General Public License Version 2 or the
   Academic Free Licence Version 2.1.

   Full licence texts are included in the COPYING file with this program.
*/
package org.freedesktop.dbus.viewer;

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

@SuppressWarnings("serial")
class DBusTableModel extends AbstractTableModel {
    private static final String INTROSPECTABLE = "introspectable?";

    private static final String OWNER          = "owner";

    private static final String USER           = "user";

    private static final String NAME           = "name";

    private static final String PATH           = "path";

    private final String[]       columns        = {
            NAME, PATH, USER, OWNER, INTROSPECTABLE
    };

    private List     entries        = new ArrayList();

    /** {@inheritDoc} */
    @Override
    public int getRowCount() {
        return entries.size();
    }

    /** Add a row to the table model
     *
     * @param entry The dbus entry to add
     */
    public void add(DBusEntry entry) {
        entries.add(entry);
    }

    /** {@inheritDoc} */
    @Override
    public int getColumnCount() {
        return columns.length;
    }

    /** {@inheritDoc} */
    @Override
    public String getColumnName(int column) {
        return columns[column];
    }

    /** Get a row of the table
     * @param row The row index
     * @return The table row
     */
    public DBusEntry getEntry(int row) {
        return entries.get(row);
    }

    /** {@inheritDoc} */
    @Override
    public Class getColumnClass(int columnIndex) {
        String columnName = getColumnName(columnIndex);
        if (columnName.equals(NAME)) {
            return String.class;
        }
        if (columnName.equals(PATH)) {
            return String.class;
        } else if (columnName.equals(USER)) {
            return Object.class;
        } else if (columnName.equals(OWNER)) {
            return String.class;
        } else if (columnName.equals(INTROSPECTABLE)) {
            return Boolean.class;
        }
        return super.getColumnClass(columnIndex);
    }

    /** {@inheritDoc} */
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        DBusEntry entry = getEntry(rowIndex);
        String columnName = getColumnName(columnIndex);
        if (columnName.equals(NAME)) {
            return entry.getName();
        }
        if (columnName.equals(PATH)) {
            return entry.getPath();
        } else if (columnName.equals(USER)) {
            return entry.getUser();
        } else if (columnName.equals(OWNER)) {
            return entry.getOwner();
        } else if (columnName.equals(INTROSPECTABLE)) {
            return entry.getIntrospectable() != null;
        }
        return null;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy