Package net.sourceforge.squirrel_sql.client.gui.db.aliasproperties

Source Code of net.sourceforge.squirrel_sql.client.gui.db.aliasproperties.SchemaTableModel

package net.sourceforge.squirrel_sql.client.gui.db.aliasproperties;

import net.sourceforge.squirrel_sql.client.gui.db.SQLAliasSchemaDetailProperties;

import javax.swing.table.DefaultTableModel;
import java.util.ArrayList;
import java.util.Arrays;

public class SchemaTableModel extends DefaultTableModel
{
   private static final long serialVersionUID = 1L;
   
   static final int IX_SCHEMA_NAME = 0;
   static final int IX_TABLE = 1;
  static final int IX_VIEW = 2;
   static final int IX_PROCEDURE = 3;
   private SQLAliasSchemaDetailProperties[] _schemaDetails;



   public SchemaTableModel(SQLAliasSchemaDetailProperties[] schemaDetails)
   {
      _schemaDetails = schemaDetails;
   }



   public Object getValueAt(int row, int column)
   {
      SQLAliasSchemaDetailProperties buf = _schemaDetails[row];
      switch(column)
      {
         case IX_SCHEMA_NAME:
            return buf.getSchemaName();
         case IX_TABLE:
            return SchemaTableCboItem.getItemForID(buf.getTable());
         case IX_VIEW:
            return SchemaTableCboItem.getItemForID(buf.getView());
         case IX_PROCEDURE:
            return SchemaTableCboItem.getItemForID(buf.getProcedure());
         default:
            throw new IllegalArgumentException("Unkown column index " + column);

      }
   }

   public void setValueAt(Object aValue, int row, int column)
   {
      SQLAliasSchemaDetailProperties buf = _schemaDetails[row];

      switch(column)
      {
         case IX_TABLE:
            buf.setTable(((SchemaTableCboItem)aValue).getID());
            break;
         case IX_VIEW:
            buf.setView(((SchemaTableCboItem)aValue).getID());
            break;
         case IX_PROCEDURE:
            buf.setProcedure(((SchemaTableCboItem)aValue).getID());
            break;
         default:
            throw new IllegalArgumentException("Unkown column index " + column);

      }

      fireTableCellUpdated(row, column);
   }

   /**
   * @see javax.swing.table.DefaultTableModel#getColumnCount()
   */
  @Override
  public int getColumnCount()
  {
    return 4;
  }


   public boolean isCellEditable(int row, int column)
   {
      return IX_SCHEMA_NAME != column && column < getColumnCount();
   }


   public int getRowCount()
   {
      if(null == _schemaDetails)
      {
         return 0;
      }
      else
      {
         return _schemaDetails.length;
      }
   }



   public SQLAliasSchemaDetailProperties[] getData()
   {
      return _schemaDetails;
   }

   public void updateSchemas(String[] schemaNames)
   {
      ArrayList<SQLAliasSchemaDetailProperties> newDetails =
          new ArrayList<SQLAliasSchemaDetailProperties>();

      for (int i = 0; i < schemaNames.length; i++)
      {

         boolean found = false;
         for (int j = 0; j < _schemaDetails.length; j++)
         {
            if(_schemaDetails[j].getSchemaName().equalsIgnoreCase(schemaNames[i]))
            {
               newDetails.add(_schemaDetails[j]);
               found = true;
               break;
            }
         }

         if(false == found)
         {
            SQLAliasSchemaDetailProperties buf = new SQLAliasSchemaDetailProperties();
            buf.setSchemaName(schemaNames[i]);
            newDetails.add(buf);
         }

      }

      _schemaDetails = newDetails.toArray(new SQLAliasSchemaDetailProperties[newDetails.size()]);
      Arrays.sort(_schemaDetails);

      fireTableDataChanged();
   }

   public void setColumnTo(int modelIndex, SchemaTableCboItem toItem)
   {
      for (int i = 0; i < _schemaDetails.length; i++)
      {
         if(IX_TABLE == modelIndex)
         {
            _schemaDetails[i].setTable(toItem.getID());
         }
         else if(IX_VIEW == modelIndex)
         {
            _schemaDetails[i].setView(toItem.getID());
         }
         else if(IX_PROCEDURE == modelIndex)
         {
            _schemaDetails[i].setProcedure(toItem.getID());
         }
      }

      fireTableDataChanged();
   }
}
TOP

Related Classes of net.sourceforge.squirrel_sql.client.gui.db.aliasproperties.SchemaTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.