@Override
 public BlockWithMeta getBlockFromBlueprint(
     ChunkCoordinates piecePos,
     int cellSize,
     int cellHeight,
     CellIndexDirection cellIndexDirection,
     Random random,
     String buildingID) {
   return blueprint.getBlockFromBlueprint(
       piecePos, cellSize, cellHeight, random, cellIndexDirection);
 }
 @Override
 public int getWeight() {
   return blueprint.getWeight();
 }
 @Override
 public String getIdentifier() {
   return blueprint.getIdentifier();
 }
  @Override
  public View getGroupView(
      final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

    View v = convertView;

    if (v == null) {
      LayoutInflater inflater =
          (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      v = inflater.inflate(R.layout.list_group, parent, false);
    }

    TextView groupName = (TextView) v.findViewById(R.id.lblListHeader);
    Blueprint bp = catList.get(groupPosition);
    groupName.setText(bp.getBlueprintName());
    groupName.setTypeface(null, Typeface.BOLD);
    // groupName.setTextColor(Color.BLACK);

    // DELETE BLUEPRINT
    ImageView delete = (ImageView) v.findViewById(R.id.delete);
    delete.setOnClickListener(
        new ExpandableListView.OnClickListener() {
          public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
            builder.setMessage("Do you want to remove?");
            builder.setCancelable(false);
            builder.setPositiveButton(
                "Yes",
                new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int id) {
                    Blueprint group = catList.get(groupPosition);
                    catList.remove(groupPosition);
                    notifyDataSetChanged();
                    Show_Blueprints sb = new Show_Blueprints();
                    sb.delBlueprint(group, true, ctx);

                    Toast.makeText(ctx, " Deleted", Toast.LENGTH_SHORT).show();
                  }
                });
            builder.setNegativeButton(
                "No",
                new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                  }
                });
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
          }
        });
    // EDIT BLUEPRINT
    ImageView edit = (ImageView) v.findViewById(R.id.edit);
    edit.setOnClickListener(
        new ExpandableListView.OnClickListener() {
          public void onClick(View v) {
            Blueprint group = catList.get(groupPosition);
            Intent intent = new Intent(ctx, Edit_Blueprint.class);
            intent.putExtra("blueprint", group);
            ctx.startActivity(intent);
          }
        });

    return v;
  }