public void processCellResized(
     RadContainer container, final boolean isRow, final int cell, final int newSize) {
   int cellCount = isRow ? container.getGridRowCount() : container.getGridColumnCount();
   if (container.getParent().isXY() && cell == cellCount - 1) {
     processRootContainerResize(container, isRow, newSize);
   } else {
     for (RadComponent component : container.getComponents()) {
       GridConstraints c = component.getConstraints();
       if (c.getCell(isRow) == cell && c.getSpan(isRow) == 1) {
         Dimension preferredSize = new Dimension(c.myPreferredSize);
         if (isRow) {
           preferredSize.height = newSize;
           if (preferredSize.width == -1) {
             preferredSize.width = component.getDelegee().getPreferredSize().width;
           }
         } else {
           preferredSize.width = newSize;
           if (preferredSize.height == -1) {
             preferredSize.height = component.getDelegee().getPreferredSize().height;
           }
         }
         PreferredSizeProperty.getInstance(container.getProject())
             .setValueEx(component, preferredSize);
       }
     }
   }
 }
 @Override
 protected void updateConstraints(RadComponent component) {
   GridLayoutManager layout = (GridLayoutManager) component.getParent().getLayout();
   final GridConstraints radConstraints = component.getConstraints();
   final GridConstraints delegeeConstraints =
       layout.getConstraintsForComponent(component.getDelegee());
   if (radConstraints != delegeeConstraints) {
     delegeeConstraints.restore(radConstraints);
   }
   super.updateConstraints(component);
 }
 public void addComponentToContainer(
     final RadContainer container, final RadComponent component, final int index) {
   super.addComponentToContainer(container, component, index);
   container.getDelegee().add(component.getDelegee(), component.getConstraints());
 }