growColumns.put(new Integer(col + spec.horizontalSpan - 1), new Object());
growColumns.put(new Integer(col + spec.hSpan - 1), new Object());
void computeExpandableCells() {	// If a widget grabs excess horizontal space, the last column that the widget spans	// will be expandable.  Similarly, if a widget grabs excess vertical space, the 	// last row that the widget spans will be expandable.	Hashtable growColumns = new Hashtable();	Hashtable growRows = new Hashtable();	for (int col = 0; col < numColumns; col++) {		for (int row = 0; row < grid.size(); row++) {			GridData spec = ((GridData[]) grid.elementAt(row))[col];			if (spec.grabExcessHorizontalSpace) {				growColumns.put(new Integer(col + spec.horizontalSpan - 1), new Object());			}			if (spec.grabExcessVerticalSpace) {				growRows.put(new Integer(row + spec.verticalSpan - 1), new Object());			}		}	}	// Cache the values.  These values are used later during children layout.	int i = 0;	Enumeration enum = growColumns.keys();	expandableColumns = new int[growColumns.size()];	while (enum.hasMoreElements()) {		expandableColumns[i] = ((Integer)enum.nextElement()).intValue();		i = i + 1;	}