public int checkConstraintSupportType(Constraint c) {
		// 0 = not defined
		// 1 = constraint
		// 2 = support
		// 3 = invalid
		boolean bRow;
		boolean bCol;
	
		if (this.type.equalsIgnoreCase(c.type)) {
			return 0;
		} 
		
		if (this.type.equalsIgnoreCase("Z")) {
			// this = row
			// c = col
//			ArrayList<Boolean>bListRow = this.getBoolValsExt();
//			ArrayList<Boolean>bListCol = c.getBoolValsExt();
//			bRow = bListRow.get(c.index-1).booleanValue();
//			bCol = bListCol.get(this.index-1).booleanValue();

			bRow = this.boolVals.get(c.index).booleanValue();
			bCol = c.boolVals.get(this.index).booleanValue();
		} else {
			// this = col
			// c = row
//			ArrayList<Boolean>bListRow = c.getBoolValsExt();
//			ArrayList<Boolean>bListCol = this.getBoolValsExt();
//			bRow = bListRow.get(this.index-1).booleanValue();
//			bCol = bListCol.get(c.index-1).booleanValue();

			bRow = c.boolVals.get(this.index).booleanValue();
			bCol = this.boolVals.get(c.index).booleanValue();
		}
		
//		if (bRow != bCol) return 1;
//		else return 0;
		
		if (this.isSelected && c.isSelected) {
			// both are selected
			if (bRow == bCol) {
				return 2; 
			}
			else {	
				return 3;
			}
		} else if (this.isSelected || c.isSelected) {
			// only one is selected
			if (bRow != bCol) {
				return 3;
			} else {
				return 0;
			}
		} else {
			// none is selected
			if (bRow != bCol) {
				return 1;
			} else {
				return 0;
			}
		}
	}