/**
  * Show the compartment, adjust height according to the blockd procedures
  *
  * @param rectangleFigure
  * @param blockExtendedEditPart
  */
 protected void show(
     RectangleFigure rectangleFigure, BlockExtendedEditPart blockExtendedEditPart) {
   rectangleFigure.setVisible(true);
   Block block = (Block) (((View) blockExtendedEditPart.getModel()).getElement());
   if (block.getProcedures().size() <= 1) {
     BoundsRefreshment.refreshBounds(blockExtendedEditPart, null, 89);
   } else {
     BoundsRefreshment.refreshBounds(
         blockExtendedEditPart, null, 89 + ((block.getProcedures().size() - 1) * 45));
   }
   blockExtendedEditPart.putInnerMargin();
 }
    @Override
    public void mousePressed(MouseEvent me) {

      EditPart root = editPart;
      while (root.getParent() instanceof BlockExtendedEditPart) {
        root = root.getParent();
      }
      // getting compartment holder figure
      BlockExtendedEditPart blockExtendedEditPart = (BlockExtendedEditPart) root;
      BlockFigure primaryShape = blockExtendedEditPart.getPrimaryShape();
      RectangleFigure rectangleFigure = (RectangleFigure) primaryShape.getChildren().get(1);

      // based on visibility status, hide or show the compartment
      if (rectangleFigure.isVisible()) {
        hide(rectangleFigure, blockExtendedEditPart);
      } else {
        show(rectangleFigure, blockExtendedEditPart);
      }
    }
 /**
  * Hide the compartment, decrease the height to only show title of block
  *
  * @param rectangleFigure
  * @param blockExtendedEditPart
  */
 protected void hide(
     RectangleFigure rectangleFigure, BlockExtendedEditPart blockExtendedEditPart) {
   rectangleFigure.setVisible(false);
   BoundsRefreshment.refreshBounds(blockExtendedEditPart, null, 35);
   blockExtendedEditPart.clearBottomMargin();
 }