ColumnHeaderListener.java :  » Development » jfritz-0.7.2 » de » moonflower » jfritz » callerlist » Java Open Source

Java Open Source » Development » jfritz 0.7.2 
jfritz 0.7.2 » de » moonflower » jfritz » callerlist » ColumnHeaderListener.java
/*
 * $Id: ColumnHeaderListener.java,v 1.5 2006/09/25 16:20:18 marc0815 Exp $
 * 
 * Created on 16.04.2005
 *
 */
package de.moonflower.jfritz.callerlist;

import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;

import de.moonflower.jfritz.JFritz;

/**
 * Listener for clicks on the caller table header columns.
 * 
 * @author Arno Willig
 */
public class ColumnHeaderListener extends MouseAdapter {
  CallerList list;

  public ColumnHeaderListener(TableModel list) {
    super();
    this.list = (CallerList) list;
  }

  public void mouseClicked(MouseEvent evt) {
    JTable table = ((JTableHeader) evt.getSource()).getTable();
    TableColumnModel colModel = table.getColumnModel();

    // The index of the column whose header was clicked
    int vColIndex = colModel.getColumnIndexAtX(evt.getX());
    int mColIndex = table.convertColumnIndexToModel(vColIndex);

    // Return if not clicked on any column header
    if (vColIndex == -1) {
      return;
    }

    // Determine if mouse was clicked between column heads
    Rectangle headerRect = table.getTableHeader().getHeaderRect(vColIndex);
    if (vColIndex == 0) {
      headerRect.width -= 6; // Hard-coded constant
    } else {
      headerRect.grow(-6, 0); // Hard-coded constant
    }
    if (!headerRect.contains(evt.getX(), evt.getY())) {
      // Mouse was clicked between column heads
      // vColIndex is the column head closest to the click

      // vLeftColIndex is the column head to the left of the click
//      int vLeftColIndex = vColIndex;
      if (evt.getX() < headerRect.x) {
//        vLeftColIndex--;
      }

    } else {
      // Disable editing
      try {
        JFritz.getJframe().getCallerTable().getCellEditor()
            .cancelCellEditing();
      } catch (NullPointerException e) {
      }
      list.sortAllFilteredRowsBy(mColIndex);
    }
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.