/* * DirectSpanGridDemo.java * * Copyright 2000 Eliad Technologies, Inc. All Rights Reserved. * * This software is the proprietary information of Eliad Technologies, Inc. */ package example07; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.eliad.swing.*; import com.eliad.util.*; import com.eliad.model.*; /** * This class demonstrates a direct span model * @author Patrick Mérissert-Coffinières * @version 1.0 */ public class DirectSpanGridDemo extends JFrame { private JSmartGrid grid_; public DirectSpanGridDemo() { super("Direct Span Example"); addWindowListener ( new WindowAdapter () { public void windowClosing (WindowEvent evt) { System.exit(0); } } ); grid_ = new JSmartGrid(); for (int col = 0; col < grid_.getColumnCount(); col++) { grid_.setColumnWidth(col, 50); for (int row = 0; row < grid_.getRowCount(); row++) grid_.setValueAt("" + row + col, row, col); } grid_.setSpanModel(new AbstractDirectSpanModel() { public ExtentCell getSpanOver(final int row, final int column) { if ((row%3)!=0 && (column%3)!=0) return new ExtentCell() { public int getRow() { return row-(row%3)+1; } public int getRowCount() { return 2; } public int getColumn() { return column-(column%3)+1; } public int getColumnCount() { return 2; } public Object getIdentifier() { return null; } }; else return null; } public boolean isEmpty() { return false; } }); grid_.setSelectionMode(GridSelectionModel.SINGLE_RECTANGLE_SELECTION); grid_.setAutoCreateColumnHeader(true); grid_.setAutoCreateRowHeader(true); grid_.setColumnAutoResizeMode(JSmartGrid.AUTO_RESIZE_OFF); JScrollPane js = new JScrollPane(grid_); getContentPane().add(js, BorderLayout.CENTER); pack(); } public static void main(String[] args) { DirectSpanGridDemo sg = new DirectSpanGridDemo(); Dimension big=Toolkit.getDefaultToolkit().getScreenSize(); Dimension small=sg.getSize(); sg.setLocation((big.width-small.width)/2, (big.height-small.height)/2); sg.setVisible(true); } }