# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: C:\Users\mkleint\src\core-main2
# 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: maven.osgi/nbproject/project.xml
--- maven.osgi/nbproject/project.xml Base (BASE)
+++ maven.osgi/nbproject/project.xml Locally Modified (Based On LOCAL)
@@ -121,6 +121,14 @@
+ org.openide.explorer
+
+
+
+ 6.50
+
+
+
org.openide.filesystems
@@ -160,6 +168,14 @@
8.0
+
+ org.openide.windows
+
+
+
+ 6.60
+
+
Index: maven.osgi/src/org/netbeans/modules/maven/osgi/customizer/PackagesPanelProvider.java
--- maven.osgi/src/org/netbeans/modules/maven/osgi/customizer/PackagesPanelProvider.java Base (BASE)
+++ maven.osgi/src/org/netbeans/modules/maven/osgi/customizer/PackagesPanelProvider.java Locally Modified (Based On LOCAL)
@@ -42,15 +42,28 @@
package org.netbeans.modules.maven.osgi.customizer;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.lang.reflect.Method;
import javax.swing.JComponent;
+import javax.swing.SwingUtilities;
import org.netbeans.api.project.Project;
+import org.netbeans.modules.maven.api.FileUtilities;
import org.netbeans.modules.maven.api.NbMavenProject;
import org.netbeans.modules.maven.api.PluginPropertyUtils;
import org.netbeans.modules.maven.api.customizer.ModelHandle2;
import org.netbeans.modules.maven.osgi.OSGiConstants;
+import org.netbeans.spi.project.ui.LogicalViewProvider;
import org.netbeans.spi.project.ui.support.ProjectCustomizer;
import org.netbeans.spi.project.ui.support.ProjectCustomizer.Category;
+import org.openide.explorer.ExplorerManager;
+import org.openide.filesystems.FileObject;
+import org.openide.nodes.FilterNode;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
import org.openide.util.Lookup;
+import org.openide.windows.TopComponent;
+import org.openide.windows.WindowManager;
/**
*
@@ -84,8 +97,52 @@
@Override
public JComponent createComponent(Category category, Lookup context) {
ModelHandle2 handle = context.lookup(ModelHandle2.class);
- Project prj = context.lookup(Project.class);
+ final Project prj = context.lookup(Project.class);
final PackagesPanel panel = new PackagesPanel(handle, prj);
+ category.setStoreListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ TopComponent tc = WindowManager.getDefault().findTopComponent("projectTabLogical_tc");
+ if (tc instanceof ExplorerManager.Provider) {
+ Node root = ((ExplorerManager.Provider)tc).getExplorerManager().getRootContext();
+ Node projectNode = null;
+ for (Node prjnd : root.getChildren().getNodes()) {
+ if (prj.equals(prjnd.getLookup().lookup(Project.class))) {
+ projectNode = prjnd;
+ break;
+ }
+ }
+ if (projectNode != null) {
+ LogicalViewProvider lvp = prj.getLookup().lookup(LogicalViewProvider.class);
+
+ try {
+ Method m1 = Node.class.getDeclaredMethod("fireIconChange");
+ m1.setAccessible(true);
+ Method m2 = Node.class.getDeclaredMethod("fireOpenedIconChange");
+ m2.setAccessible(true);
+ for (FileObject fo : FileUtilities.getPackageFileObjects(prj)) {
+ Node nd = lvp.findPath(projectNode, fo);
+
+ if (nd != null) {
+
+ m1.invoke(nd);
+ m2.invoke(nd);
+ }
+ }
+ } catch (Throwable x) {
+ Exceptions.printStackTrace(x);
+ }
+
+ }
+ }
+ }
+ });
+ }
+ });
return panel;
}
Index: maven/nbproject/project.xml
--- maven/nbproject/project.xml Base (BASE)
+++ maven/nbproject/project.xml Locally Modified (Based On LOCAL)
@@ -383,6 +383,14 @@
8.0
+
+ org.openide.windows
+
+
+
+ 6.60
+
+
Index: maven/src/org/netbeans/modules/maven/api/FileUtilities.java
--- maven/src/org/netbeans/modules/maven/api/FileUtilities.java Base (BASE)
+++ maven/src/org/netbeans/modules/maven/api/FileUtilities.java Locally Modified (Based On LOCAL)
@@ -44,7 +44,11 @@
import java.io.File;
import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Set;
import java.util.SortedSet;
import java.util.Stack;
import java.util.TreeSet;
@@ -301,7 +305,7 @@
SourceGroup[] scs = ProjectUtils.getSources(prj).getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
for (int i = 0; i < scs.length; i++) {
final FileObject curRoot = scs[i].getRootFolder();
- processFolder(curRoot, new NameObtainer() {
+ processFolder(curRoot, new NameObtainer() {
@Override
public String getPackageName(FileObject file) {
String pkgName = relativizeFile(FileUtil.toFile(curRoot), FileUtil.toFile(file));
@@ -311,7 +315,7 @@
}
}
- private static void processFolder(FileObject file, NameObtainer nameObtainer, SortedSet result, boolean onlyRoots) {
+ private static void processFolder(FileObject file, NameObtainer nameObtainer, Collection result, boolean onlyRoots) {
Enumeration extends FileObject> dataFiles = file.getData(false);
Enumeration extends FileObject> folders = file.getFolders(false);
@@ -320,7 +324,7 @@
FileObject kid = dataFiles.nextElement();
if ((kid.hasExt("java") || kid.hasExt("class")) && Utilities.isJavaIdentifier(kid.getName())) {
// at least one java or class inside directory -> valid package
- String packageName = nameObtainer.getPackageName(file);
+ T packageName = nameObtainer.getPackageName(file);
if (packageName == null) {
continue;
}
@@ -341,8 +345,23 @@
}
}
- private interface NameObtainer {
- String getPackageName (FileObject file);
+ public static ArrayList getPackageFileObjects(Project project) {
+ ArrayList result = new ArrayList();
+ SourceGroup[] scs = ProjectUtils.getSources(project).getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
+ for (int i = 0; i < scs.length; i++) {
+ final FileObject curRoot = scs[i].getRootFolder();
+ processFolder(curRoot, new NameObtainer() {
+ @Override
+ public FileObject getPackageName(FileObject file) {
+ return file;
}
+ }, result, false);
+ }
+ return result;
+ }
+ private interface NameObtainer {
+ T getPackageName (FileObject file);
}
+
+}