# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: E:\sources\netbeans.org\trunk\projects\projectuiapi # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: src/org/netbeans/spi/project/ui/support/ProjectCustomizer.java *** E:\sources\netbeans.org\trunk\projects\projectuiapi\src\org\netbeans\spi\project\ui\support\ProjectCustomizer.java Base (1.10) --- E:\sources\netbeans.org\trunk\projects\projectuiapi\src\org\netbeans\spi\project\ui\support\ProjectCustomizer.java Locally Modified (Based On 1.10) *************** *** 370,384 **** --- 370,390 ---- private final Lookup context; private final Map category2provider; private final DataFolder folder; + private final CompositeCategoryProvider itselfProvider; public DelegateCategoryProvider(DataFolder folder, Lookup context) { this(folder, context, new HashMap()); } private DelegateCategoryProvider(DataFolder folder, Lookup context, Map cat2Provider) { + this(folder, context, cat2Provider, null); + } + + private DelegateCategoryProvider(DataFolder folder, Lookup context, Map cat2Provider, CompositeCategoryProvider iProv) { this.context = context; this.folder = folder; category2provider = cat2Provider; + itselfProvider = iProv; } public JComponent create(ProjectCustomizer.Category category) { *************** *** 404,417 **** List toRet = new ArrayList(); for (DataObject dob : folder.getChildren()) { if (dob instanceof DataFolder) { ! CompositeCategoryProvider prov = new DelegateCategoryProvider((DataFolder) dob, context, category2provider); ProjectCustomizer.Category cat = prov.createCategory(context); toRet.add(cat); category2provider.put(cat, prov); } InstanceCookie cook = dob.getCookie(InstanceCookie.class); if (cook != null && CompositeCategoryProvider.class.isAssignableFrom(cook.instanceClass())) { --- 410,436 ---- List toRet = new ArrayList(); for (DataObject dob : folder.getChildren()) { if (dob instanceof DataFolder) { ! CompositeCategoryProvider iProvider = null; ! DataObject subDobs[] = ((DataFolder) dob).getChildren(); ! for (DataObject subDob : subDobs) { ! if (subDob.getName().equals(dob.getName() + ".itself")) { ! InstanceCookie cookie = subDob.getCookie(InstanceCookie.class); ! if (cookie != null && CompositeCategoryProvider.class.isAssignableFrom(cookie.instanceClass())) { ! iProvider = (CompositeCategoryProvider) cookie.instanceCreate(); ! } ! } ! } ! CompositeCategoryProvider prov = null; ! if (iProvider != null) { ! prov = new DelegateCategoryProvider((DataFolder) dob, context, category2provider, iProvider); ! } else { ! prov = new DelegateCategoryProvider((DataFolder) dob, context, category2provider); ! } ProjectCustomizer.Category cat = prov.createCategory(context); toRet.add(cat); category2provider.put(cat, prov); } + if (!dob.getName().equals(folder.getName() + ".itself")) { InstanceCookie cook = dob.getCookie(InstanceCookie.class); if (cook != null && CompositeCategoryProvider.class.isAssignableFrom(cook.instanceClass())) { CompositeCategoryProvider provider = (CompositeCategoryProvider)cook.instanceCreate(); *************** *** 421,426 **** --- 443,449 ---- } } } + } return toRet.toArray(new ProjectCustomizer.Category[toRet.size()]); } *************** *** 442,447 **** --- 465,473 ---- * provides component for folder category */ public JComponent createComponent(ProjectCustomizer.Category category, Lookup context) { + if (itselfProvider != null) { + return itselfProvider.createComponent(category, context); + } return new JPanel(); } }