	private void selectTable(final Component component, final Point point) throws AssertionError {
		final int componentCount = getComponentCount();
		for (int i = componentCount; i > 0;) {
			remove(--i);
		}
		if (component instanceof AttributeTable) {
			table = (AttributeTable) component;
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = table.rowAtPoint(point);
			if (table.getValueAt(row, 0).equals("")) {
				row--;
			}
			if(row >= 0){
				table.changeSelection(row, table.columnAtPoint(point), false, false);
			}
			return;
		}
		if (component instanceof JTableHeader) {
			final JTableHeader header = (JTableHeader) component;
			table = (AttributeTable) header.getTable();
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = -1;
			return;
		}
		throw new AssertionError();
	}

	private void selectTable(final Component component, final Point point) throws AssertionError {
		final int componentCount = getComponentCount();
		for (int i = componentCount; i > 0;) {
			remove(--i);
		}
		if (component instanceof AttributeTable) {
			table = (AttributeTable) component;
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = table.rowAtPoint(point);
			if(row >= 0){
				if (table.getValueAt(row, 0).equals("")) {
					row--;
				}
			}
			if(row >= 0){
				table.changeSelection(row, table.columnAtPoint(point), false, false);
			}
			return;
		}
		if (component instanceof JTableHeader) {
			final JTableHeader header = (JTableHeader) component;
			table = (AttributeTable) header.getTable();
			if(table.isEditing()){
				return;
			}
			oldTable = false;
			row = -1;
			return;
		}
		throw new AssertionError();
	}
