@Override protected void populateItem(ListItem<NetCDFExtensionPanelInfo> item) { NetCDFExtensionPanelInfo info = item.getModelObject(); try { NetCDFExtensionPanel panel = info.getComponentClass() .getConstructor(String.class, IModel.class, NetCDFPanel.class) .newInstance("content", infoModel, NetCDFPanel.this); item.add(panel); } catch (Exception e) { throw new WicketRuntimeException( "Failed to create NetCDF extension panel of " + "type " + info.getComponentClass().getSimpleName(), e); } } };