Package xgenerator.ui.swing.adapter

Source Code of xgenerator.ui.swing.adapter.MetadataTableModelListener

/**
* MetadataTableModelListener.java
* 2012-2-21 下午10:31:12
*/
package xgenerator.ui.swing.adapter;

import java.awt.Component;

import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;

import xgenerator.ui.swing.MetadataTable;
import xgenerator.ui.swing.model.MetadataTableModel;

/**
* <p>
* Title:类的中文名
* </p>
* <p>
* Description:具体功能见各方法描述
* </p>
* <p>
* Copyright:Copyright (c) 2012
* </p>
*
* @author <a href="mailto:lishushan@gmail.com">liss</a>
* @version 1.0
*/
public class MetadataTableModelListener implements TableModelListener {
 
  /**
   * UI组件
   */
  private Component ui;
 
  /**
   * constructor
   * @param ui
   */
  public MetadataTableModelListener(Component ui) {
    this.ui = ui;
  }

  /**
   * <p>
   * Title:tableModel改变事件处理
   * </p>
   * @param e
   * @see javax.swing.event.TableModelListener#tableChanged(javax.swing.event.TableModelEvent)
   */
  public void tableChanged(TableModelEvent e) {
    if (e.getType() == TableModelEvent.UPDATE) {
      int selectedRow = e.getFirstRow()//返回首个选定行的索引,如果没有选定的行,则返回 -1
      int selectedColumn = e.getColumn()////返回所有选定列的索引
     
      if(-1 != selectedRow && -1 != selectedColumn) {
        MetadataTable metadataTable = (MetadataTable) ui;
       
        if(MetadataTableModel.IS_KEY_FIELD_INDEX == selectedColumn) {//isKey
          Object cellValueObj = metadataTable.getValueAt(selectedRow, selectedColumn);
          boolean isKey = ((Boolean) cellValueObj).booleanValue();
          MetadataTableModel metadataTableModel = (MetadataTableModel) metadataTable.getModel();
          metadataTableModel.setCellEditableAt(isKey, selectedRow, MetadataTableModel.CONSTRAINT_TYPE_INDEX);
          metadataTableModel.setCellEditableAt(isKey, selectedRow, MetadataTableModel.REFERENCING_TABLE_INDEX);
          metadataTableModel.setCellEditableAt(isKey, selectedRow, MetadataTableModel.REFERENCING_COLUMN_INDEX);
          metadataTableModel.setCellEditableAt(isKey, selectedRow, MetadataTableModel.DELETE_RULE_INDEX);
          metadataTableModel.setValueAt(null, selectedRow, MetadataTableModel.CONSTRAINT_TYPE_INDEX);
          metadataTableModel.setValueAt(null, selectedRow, MetadataTableModel.REFERENCING_TABLE_INDEX);
          metadataTableModel.setValueAt(null, selectedRow, MetadataTableModel.REFERENCING_COLUMN_INDEX);
          metadataTableModel.setValueAt(null, selectedRow, MetadataTableModel.DELETE_RULE_INDEX);
        } else if(MetadataTableModel.IS_QUERY_FIELD_INDEX == selectedColumn) {//isQueryField
          Object cellValueObj = metadataTable.getValueAt(selectedRow, selectedColumn);
          boolean isQueryField = ((Boolean) cellValueObj).booleanValue();
          MetadataTableModel metadataTableModel = (MetadataTableModel) metadataTable.getModel();
          metadataTableModel.setCellEditableAt(isQueryField, selectedRow, MetadataTableModel.QUERY_MODE_INDEX);
          metadataTableModel.setValueAt(null, selectedRow, MetadataTableModel.QUERY_MODE_INDEX);
        }
      }
    }
  }

}
TOP

Related Classes of xgenerator.ui.swing.adapter.MetadataTableModelListener

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.