Dimension (final JComponent parent, final ClassLoader loader) { if (myInitialSize != null) { return myInitialSize; } myInitialSize = new Dimension(myDefaultConstraints.myPreferredSize); if (myInitialSize.width <= 0 || myInitialSize.height <= 0) { try { Class aClass = Class.forName(getClassName(), true, loader); RadAtomicComponent component = new RadAtomicComponent(aClass, "", Palette.getInstance(myProject)); component.initDefaultProperties(this); final JComponent delegee = component.getDelegee(); if (parent != null) { final Font font = parent.getFont(); delegee.setFont(font); } Dimension prefSize = delegee.getPreferredSize(); Dimension minSize = delegee.getMinimumSize(); if (myInitialSize.width <= 0) { myInitialSize.width = prefSize.width; } if (myInitialSize.height <= 0) { myInitialSize.height = prefSize.height; } myInitialSize.width = Math.max(myInitialSize.width, minSize.width); myInitialSize.height = Math.max(myInitialSize.height, minSize.height); } catch (Exception e) { LOG.debug(e); } } return myInitialSize; }