parasettablemodel.java.svn-base

来自「通讯采集软件」· SVN-BASE 代码 · 共 101 行

SVN-BASE
101
字号
package collector.gui.model;

import javax.swing.event.*;
import javax.swing.table.*;

import collector.gui.method.*;
import collector.protocol.comm.*;
import collector.protocol.protocolget.*;

public class ParaSetTableModel
    extends DefaultTableModel {

  private int TermNo = -1;

  public ParaSetTableModel() {
    super(new Object[][] {}
          ,
          new String[] {
          new String("写任务"), //0
          new String("选择"), //1
          new String("线路单选"), //2
          new String("全选"), //3
          new String("参数设置值"), //4
          new String("通讯结果") //5
    }
        );
    addTableModelListener(new TML());
  }

  public boolean isCellEditable(int row, int col) {
    int TerminalNo = PublicMethod.LatestSetParaTerm.getAddress();
    SetParam m_SetParam = ProtocolGet.getParamByTermNo(PublicMethod.
        LatestSetParaTerm);
    if (col == 5 || col == 0) {
      return false;
    }
    else {
      String TypeName = (String) (this.getValueAt(row, 0));
      if (m_SetParam.NeedEditOrNot(TypeName) == false) {
        if (col > 1) {
          return false;
        }
      }
      else {
        if (m_SetParam.EditableOrNot(TypeName)) {
          if ( ( (Boolean) (this.getValueAt(row, 1))).booleanValue() == false) {
            if (col > 1) {
              return false;
            }
          }
          else {
            if (super.getValueAt(row, 3) == new Boolean(true)) {
              if (col == 2) {
                return false;
              }
            }
          }
        }
        else {
          if ( ( (Boolean) (this.getValueAt(row, 1))).booleanValue() == false) {
            if (col > 1) {
              return false;
            }
          }
          else {
            if (col == 2 || col == 3) {
              return false;
            }
          }
        }
      }
      return true;
    }
  }

  public void setValueAt(Object value, int row, int col) {
    super.setValueAt(value, row, col);
    fireTableCellUpdated(row, col);
  }

  public Class getColumnClass(int columnIndex) {
    if (columnIndex == 1 || columnIndex == 3) {
      return java.lang.Boolean.class;
    }
    else {
      return super.getColumnClass(columnIndex);
    }
  }

  class TML
      implements TableModelListener {
    public void tableChanged(TableModelEvent e) {
      int col = e.getColumn(); //System.out.println("the col is : "+col);
      int row = e.getLastRow(); //System.out.println("the last row is : "+row);
      boolean ff = ( (ParaSetTableModel) (e.getSource())).isCellEditable(row,
          col);
    }
  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?