List of usage examples for javax.swing.table JTableHeader getPreferredSize
@Override
public Dimension getPreferredSize()
From source file:com.projity.pm.graphic.spreadsheet.SpreadSheet.java
public void setModel(SpreadSheetModel spreadSheetModel, SpreadSheetColumnModel spreadSheetColumnModel) { makeCustomTableHeader(spreadSheetColumnModel); TableModel oldModel = getModel(); setModel(spreadSheetModel);//from w w w. j ava 2 s . co m if (spreadSheetColumnModel != null) { //System.out.println("creating new ColModel"); setColumnModel(spreadSheetColumnModel); selection = new SpreadSheetSelectionModel(this); selection.setRowSelection(new SpreadSheetListSelectionModel(selection, true)); selection.setColumnSelection(new SpreadSheetListSelectionModel(selection, false)); setSelectionModel(selection.getRowSelection()); createDefaultColumnsFromModel(spreadSheetModel.getFieldArray()); //Consume memory getColumnModel().setSelectionModel(selection.getColumnSelection()); } registerEditors(); //Consume memory initRowHeader(spreadSheetModel); initModel(); initListeners(); GraphicConfiguration config = GraphicConfiguration.getInstance(); //fix for substance setTableHeader(createDefaultTableHeader()); JTableHeader header = getTableHeader(); header.setPreferredSize( new Dimension((int) header.getPreferredSize().getWidth(), config.getColumnHeaderHeight())); header.addMouseListener(new HeaderMouseListener(this)); addMouseListener(new MouseAdapter() { // Cursor oldCursor = null; // public void mouseEntered(MouseEvent e) { // Point p = e.getPoint(); // int col = columnAtPoint(p); // Field field = ((SpreadSheetModel) getModel()).getFieldInNonTranslatedColumn(col + 1); // System.out.println("mouse entered field " + field); // if (field != null && field.isHyperlink()) { // oldCursor = getCursor(); // setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // System.out.println("setting new cursor to " + Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) + " old is " + oldCursor); // } else // super.mouseEntered(e); // // } // // public void mouseExited(MouseEvent e) { // Point p = e.getPoint(); // int col = columnAtPoint(p); // Field field = ((SpreadSheetModel) getModel()).getFieldInNonTranslatedColumn(col + 1); // System.out.println("mouse exited field " + field); // if (field != null && field.isHyperlink()) { // setCursor(oldCursor); // System.out.println("setting old cursor to " + oldCursor); // e.consume(); // } else // super.mouseEntered(e); // } public void mousePressed(MouseEvent e) { // changed to mousePressed instead of mouseClicked() for snappier handling 17/5/04 hk Point p = e.getPoint(); int row = rowAtPoint(p); int col = columnAtPoint(p); SpreadSheetPopupMenu popup = getPopup(); if (SwingUtilities.isLeftMouseButton(e)) { SpreadSheetColumnModel columnModel = (SpreadSheetColumnModel) getColumnModel(); Field field = ((SpreadSheetModel) getModel()).getFieldInNonTranslatedColumn(col + 1); SpreadSheetModel model = (SpreadSheetModel) getModel(); if (field.isNameField()) { // if (col == columnModel.getNameIndex()) { GraphicNode node = model.getNode(row); if (isOnIcon(e)) { if (model.getCellProperties(node).isCompositeIcon()) { finishCurrentOperations(); selection.getRowSelection().clearSelection(); boolean change = true; if (!node.isFetched()) // for subprojects change = node.fetch(); if (change) model.changeCollapsedState(row); e.consume(); // prevent dbl click treatment below // because editor may have already been // installed we // have to update its collapsed state // updateNameCellEditor(node); // editCellAt(row,model.findGraphicNodeRow(node)); } } } else if (field != null && field.isHyperlink()) { Hyperlink link = (Hyperlink) model.getValueAt(row, col + 1); if (link != null) { BrowserControl.displayURL(link.getAddress()); e.consume(); // prevent dbl click treatment below } } if (!e.isConsumed()) { if (e.getClickCount() == 2) // if above code didn't treat and is dbl click doDoubleClick(row, col); else doClick(row, col); } } else if (popup != null && SwingUtilities.isRightMouseButton(e)) { // e.isPopupTrigger() can be used too // selection.getRowSelection().clearSelection(); // selection.getRowSelection().addSelectionInterval(row, row); popup.setRow(row); popup.setCol(col); popup.show(SpreadSheet.this, e.getX(), e.getY()); } } }); if (oldModel != spreadSheetModel && oldModel instanceof CommonSpreadSheetModel) ((CommonSpreadSheetModel) getModel()).getCache().removeNodeModelListener(this); spreadSheetModel.getCache().addNodeModelListener(this); // getColumnModel().addColumnModelListener(new TableColumnModelListener(){ // public void columnAdded(TableColumnModelEvent e) { // // TODO Auto-generated method stub // // } // public void columnMarginChanged(ChangeEvent e) { // // TODO Auto-generated method stub // // } // public void columnMoved(TableColumnModelEvent e) { // // TODO Auto-generated method stub // // } // public void columnRemoved(TableColumnModelEvent e) { // // TODO Auto-generated method stub // // } // public void columnSelectionChanged(ListSelectionEvent e) { // System.out.println(((e.getValueIsAdjusting())?"lse=":"LSE=")+e.getFirstIndex()+", "+e.getLastIndex()); // SpreadSheet.this.revalidate(); // //SpreadSheet.this.paintImmediately(0, 0, getWidth(), GraphicConfiguration.getInstance().getColumnHeaderHeight()); // } // }); }
From source file:com.projity.pm.graphic.spreadsheet.SpreadSheet.java
public void resizeAndRepaintHeader() { JTableHeader header = getTableHeader(); SpreadSheetColumnModel tm = ((SpreadSheetColumnModel) getColumnModel()); int colWidth = tm.getColWidth();// tm.getTotalColumnWidth(); //Hack, // colWidth isn't enough why? header.setPreferredSize(new Dimension(colWidth, header.getPreferredSize().height)); header.resizeAndRepaint();/*from w ww. j av a 2 s . com*/ }