Logo
Distributed Genetic Programming Framework
print print

File org.dgpf.gui.dialogs.HostlistTableModel.java

Here you can find all the information about the file org.dgpf.gui.dialogs.HostlistTableModel.java. You may explore it here or download it onto your local disk.
/*
 * Copyright (c) 2006 Mirko Dietrich
 * 
 * E-Mail           : mirkodietrich@hrz.uni-kassel.de
 * Creation Date    : Jul 23, 2006 6:25:50 PM
 * Original Filename: org.dgpf.gui.dialogs.DGPFHostlistTableModel.java
 * Version          : 1.0
 * Last modification: Jul 23, 2006
 * Last modified by : Mirko Dietrich
 * 
 * License          : GNU LESSER GENERAL PUBLIC LICENSE
 *                    Version 2.1, February 1999
 *                    You should have received a copy of this license along
 *                    with this library; if not, write to the Free Software
 *                    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *                    MA 02111-1307, USA or download the license under
 *                    http://www.gnu.org/copyleft/lesser.html.
 *                    
 * Warranty         : This software is provided "as is" without any
 *                    warranty; without even the implied warranty of
 *                    merchantability or fitness for a particular purpose.
 *                    See the Gnu Lesser General Public License for more
 *                    details.
 */


package org.dgpf.gui.dialogs;

import java.io.File;
import java.io.IOException;
import java.util.Vector;

import javax.swing.table.AbstractTableModel;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactoryConfigurationError;

import org.dgpf.gui.utils.HostListUtils;
import org.dgpf.gui.utils.LanguageSwitcher;
import org.dgpf.gui.utils.Host;
import org.xml.sax.SAXException;

/**
 * Provides data for the table in <code>DGPFHostlistEditor</code>.
 * 
 * @author Mirko Dietrich
 */

public class HostlistTableModel extends AbstractTableModel
  {
  /**
   * serialVersionUID.
   */

  private static final long serialVersionUID = 4225981447881062874L;

  /**
   * The captions of the tables head.
   */

  private String[]          m_columnNames    = {
      LanguageSwitcher.getString("hle_hostname"),
      LanguageSwitcher.getString("hle_port"),
      LanguageSwitcher.getString("hle_description") };

  /**
   * Holds the hosts in the list.
   */

  private Vector<Host>      m_hostlist       = new Vector<Host>();

  /**
   * Default constructer.
   * 
   * @param p_hostlist
   *          is the initial host list to display.
   */

  public HostlistTableModel(Vector<Host> p_hostlist)
    {
    super();
    this.m_hostlist = p_hostlist;
    }

  /**
   * Determines the column count.
   * 
   * @return The column count.
   */

  public int getColumnCount()
    {
    return this.m_columnNames.length;
    }

  /**
   * Determines the number of entries in the list.
   * 
   * @return The row count.
   */

  public int getRowCount()
    {
    return this.m_hostlist.size();
    }

  /**
   * Delivers the captions for the table head.
   * 
   * @param p_col
   *          The column number.
   * @return The column caption.
   */

  @Override
  public String getColumnName(int p_col)
    {
    return this.m_columnNames[p_col];
    }

  /**
   * Returns the <code>Object</code> from the specified cell.
   * 
   * @param p_row
   *          Row number.
   * @param p_col
   *          Column number.
   * @return The <code>Object</code> in the specified cell.
   * @throws NumberFormatException
   *           some values in the methode body can not be parsed.
   */

  public Object getValueAt(int p_row, int p_col) throws NumberFormatException
    {
    Host l_host = this.m_hostlist.elementAt(p_row);
    Object l_ret = null;
    switch(p_col)
      {
      case 0:
      l_ret = l_host.getHostname();
      break;
      case 1:
      l_ret = new Integer(l_host.getPort());
      break;
      case 2:
      l_ret = l_host.getDescription();
      break;
      default:
      break;
      }
    return l_ret;
    }

  /**
   * Return <code>Class</code> for columns.
   * 
   * @param p_col
   *          Column number.
   * @return The columns <code>Class</code>.
   */

  @SuppressWarnings("unchecked")
  @Override
  public Class getColumnClass(int p_col)
    {
    Class l_ret = null;
    Host l_tmp = new Host("", 0, "");
    switch(p_col)
      {
      case 0:
      l_ret = l_tmp.getHostname().getClass();
      break;
      case 1:
      l_ret = new Integer(l_tmp.getPort()).getClass();
      break;
      case 2:
      l_ret = l_tmp.getDescription().getClass();
      break;
      default:
      break;
      }
    return l_ret;
    }

  /**
   * Checks whether a cell is editable.
   * 
   * @param p_row
   *          Row number.
   * @param p_col
   *          Column number.
   * @return <code>true</code>, because every cell is editable.
   */

  @Override
  public boolean isCellEditable(int p_row, int p_col)
    {
    return true;
    }

  /**
   * Change a value in the host <code>Vector</code>.
   * 
   * @param p_value
   *          to set.
   * @param p_row
   *          Row number.
   * @param p_col
   *          Column number.
   */

  @Override
  public void setValueAt(Object p_value, int p_row, int p_col)
    {
    Host l_host = this.m_hostlist.elementAt(p_row);
    switch(p_col)
      {
      case 0:
      l_host.setHostname((String) p_value);
      break;
      case 1:
      l_host.setPort(((Integer) p_value).intValue());
      break;
      case 2:
      l_host.setDescription((String) p_value);
      break;
      default:
      break;
      }
    fireTableCellUpdated(p_row, p_col);
    }

  /**
   * Adds a new <code>Host</code> to the table.
   * 
   * @param p_host
   *          to add.
   */

  public void add(Host p_host)
    {
    this.m_hostlist.add(p_host);
    fireTableRowsInserted(0, 0);
    }

  /**
   * Removes <code>Hosts</code> from the table.
   * 
   * @param p_selected
   *          Hosts to remove.
   */

  public void remove(int[] p_selected)
    {
    if(p_selected.length > 0)
      {
      int l_removed = 0;
      for(int l_index : p_selected)
        {
        this.m_hostlist.removeElementAt(l_index - l_removed);
        ++l_removed;
        }
      fireTableDataChanged();
      }
    }

  /**
   * Loads a host list from a file.
   * 
   * @param p_file
   *          The xml file to load.
   * @throws SAXException if the file can not be parsed.
   * @throws ParserConfigurationException if the file can not be parsed.
   * @throws IOException If a file can not be read.
   */

  public void loadList(File p_file) throws IOException,
      ParserConfigurationException, SAXException
    {
    Vector<Host> l_hosts = HostListUtils.getHosts(p_file);
    this.m_hostlist.clear();
    this.m_hostlist = l_hosts;
    fireTableDataChanged();
    }

  /**
   * Saves a host list to a file.
   * 
   * @param p_file
   *          The xml file to save.
   * @throws SAXException If the file can not be parsed.
   * @throws ParserConfigurationException If the file can not be parsed.
   * @throws IOException If the file can not be read.
   * @throws TransformerException If the file can not be parsed.
   * @throws TransformerFactoryConfigurationError If the file can not be parsed.
   */

  public void saveList(File p_file) throws IOException,
      ParserConfigurationException, SAXException,
      TransformerFactoryConfigurationError, TransformerException
    {
    HostListUtils.writeHosts(this.m_hostlist, p_file);
    }

  /**
   * Clears the list.
   */

  public void clear()
    {
    this.m_hostlist.clear();
    fireTableDataChanged();
    }

  /**
   * @return Returns the hostlist.
   */

  public final Vector<Host> getHostlist()
    {
    return this.m_hostlist;
    }
  }

File Information:

file name:HostlistTableModel.java
package:org.dgpf.gui.dialogs
qualified name:org.dgpf.gui.dialogs.HostlistTableModel.java
file type:Java Source File
download location:download http://dgpf.sourceforge.net/source/org/dgpf/gui/dialogs/HostlistTableModel.java
size:7.388 KB (7566 B)
uploaded: 2015-07-22 04:10:58 GMT+0000
last update: 2006-09-24 23:47:04 GMT+0000
last access: 2017-11-17 19:02:21 GMT+0000

statistics online since 2006-01-02.   RSS Feed
Contact us by sending an email to tweise@gmx.de to receive further information, to report errors, or to join our project.
All content on this site (http://dgpf.sourceforge.net/) is LGPL-licensed.
http://dgpf.sourceforge.net/scripts/source/source.php last modified at 2015-07-22 04:10:53 GMT+0000 served at 2017-11-17 19:02:21 GMT+0000.
Valid CSS Valid XHTML 1.1
Valid RSS SourceForge.net Logo