@Override
  public List<ResourceType> findAllResourceTypes() {

    ResourceTypeCriteria resourceTypeCrit = new ResourceTypeCriteria();
    resourceTypeCrit.fetchMetricDefinitions(true);
    List<ResourceType> resourceTypeList =
        resourceTypeManagerRemote.findResourceTypesByCriteria(
            baseRemote.getSubject(), resourceTypeCrit);

    return resourceTypeList;
  }
  @Override
  protected void onDraw() {
    super.onDraw();

    final TreeGrid treeGrid = new CustomResourceTypeTreeGrid();

    treeGrid.setHeight100();

    treeGrid.setTitle(MSG.view_type_resourceTypes());
    treeGrid.setAnimateFolders(false);
    treeGrid.setResizeFieldsInRealTime(true);

    final TreeGridField name, plugin, category;
    name = new TreeGridField("name");
    plugin = new TreeGridField("plugin");
    category = new TreeGridField("category");

    treeGrid.setFields(name, plugin, category);

    addMember(treeGrid);

    ResourceTypeCriteria criteria = new ResourceTypeCriteria();
    criteria.addFilterIgnored((showIgnoredResourceTypes ? (Boolean) null : Boolean.FALSE));
    criteria.fetchParentResourceTypes(true);
    criteria.setPageControl(PageControl.getUnlimitedInstance());

    resourceTypeService.findResourceTypesByCriteria(
        criteria,
        new AsyncCallback<PageList<ResourceType>>() {
          public void onFailure(Throwable caught) {
            CoreGUI.getErrorHandler().handleError(MSG.widget_typeTree_loadFail(), caught);
          }

          public void onSuccess(PageList<ResourceType> result) {

            treeGrid.getTree().linkNodes(ResourceTypePluginTreeDataSource.buildNodes(result));
          }
        });
  }
 @Override
 public ResourceType findResourceType(String name, String pluginType, String resourceCategory) {
   ResourceTypeCriteria crit = new ResourceTypeCriteria();
   crit.addFilterName(name);
   crit.addFilterCategory(ResourceCategory.valueOf(resourceCategory));
   crit.addFilterPluginName(pluginType);
   crit.fetchMetricDefinitions(true);
   crit.setStrict(true);
   List<ResourceType> resourceTypes =
       resourceTypeManagerRemote.findResourceTypesByCriteria(baseRemote.getSubject(), crit);
   if (resourceTypes.size() > 1) {
     throw new IllegalStateException(
         "More than one resource type found. Expected only one resource type");
   }
   return resourceTypes.get(0);
 }
 private ResourceType loadResourceTypeFully(String typeName, String typePlugin) {
   ResourceTypeCriteria c = new ResourceTypeCriteria();
   c.addFilterName(typeName);
   c.addFilterPluginName(typePlugin);
   c.setStrict(true);
   c.fetchSubCategories(true);
   c.fetchPluginConfigurationDefinition(true);
   c.fetchProcessScans(true);
   c.fetchOperationDefinitions(true);
   c.fetchMetricDefinitions(true);
   c.fetchEventDefinitions(true);
   c.fetchResourceConfigurationDefinition(true);
   c.fetchDriftDefinitionTemplates(true);
   c.fetchBundleConfiguration(true);
   List<ResourceType> t = resourceTypeMgr.findResourceTypesByCriteria(subjectMgr.getOverlord(), c);
   ResourceType resourceType = t.get(0);
   return resourceType;
 }