This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 185897
Collapse All | Expand All

(-)maven.osgi/nbproject/project.xml (+16 lines)
Lines 121-126 Link Here
121
                    </run-dependency>
121
                    </run-dependency>
122
                </dependency>
122
                </dependency>
123
                <dependency>
123
                <dependency>
124
                    <code-name-base>org.openide.explorer</code-name-base>
125
                    <build-prerequisite/>
126
                    <compile-dependency/>
127
                    <run-dependency>
128
                        <specification-version>6.50</specification-version>
129
                    </run-dependency>
130
                </dependency>
131
                <dependency>
124
                    <code-name-base>org.openide.filesystems</code-name-base>
132
                    <code-name-base>org.openide.filesystems</code-name-base>
125
                    <build-prerequisite/>
133
                    <build-prerequisite/>
126
                    <compile-dependency/>
134
                    <compile-dependency/>
Lines 160-165 Link Here
160
                        <specification-version>8.0</specification-version>
168
                        <specification-version>8.0</specification-version>
161
                    </run-dependency>
169
                    </run-dependency>
162
                </dependency>
170
                </dependency>
171
                <dependency>
172
                    <code-name-base>org.openide.windows</code-name-base>
173
                    <build-prerequisite/>
174
                    <compile-dependency/>
175
                    <run-dependency>
176
                        <specification-version>6.60</specification-version>
177
                    </run-dependency>
178
                </dependency>
163
            </module-dependencies>
179
            </module-dependencies>
164
            <test-dependencies>
180
            <test-dependencies>
165
                <test-type>
181
                <test-type>
(-)maven.osgi/src/org/netbeans/modules/maven/osgi/customizer/PackagesPanelProvider.java (-1 / +58 lines)
Lines 42-56 Link Here
42
42
43
package org.netbeans.modules.maven.osgi.customizer;
43
package org.netbeans.modules.maven.osgi.customizer;
44
44
45
import java.awt.event.ActionEvent;
46
import java.awt.event.ActionListener;
47
import java.lang.reflect.Method;
45
import javax.swing.JComponent;
48
import javax.swing.JComponent;
49
import javax.swing.SwingUtilities;
46
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.Project;
51
import org.netbeans.modules.maven.api.FileUtilities;
47
import org.netbeans.modules.maven.api.NbMavenProject;
52
import org.netbeans.modules.maven.api.NbMavenProject;
48
import org.netbeans.modules.maven.api.PluginPropertyUtils;
53
import org.netbeans.modules.maven.api.PluginPropertyUtils;
49
import org.netbeans.modules.maven.api.customizer.ModelHandle2;
54
import org.netbeans.modules.maven.api.customizer.ModelHandle2;
50
import org.netbeans.modules.maven.osgi.OSGiConstants;
55
import org.netbeans.modules.maven.osgi.OSGiConstants;
56
import org.netbeans.spi.project.ui.LogicalViewProvider;
51
import org.netbeans.spi.project.ui.support.ProjectCustomizer;
57
import org.netbeans.spi.project.ui.support.ProjectCustomizer;
52
import org.netbeans.spi.project.ui.support.ProjectCustomizer.Category;
58
import org.netbeans.spi.project.ui.support.ProjectCustomizer.Category;
59
import org.openide.explorer.ExplorerManager;
60
import org.openide.filesystems.FileObject;
61
import org.openide.nodes.FilterNode;
62
import org.openide.nodes.Node;
63
import org.openide.util.Exceptions;
53
import org.openide.util.Lookup;
64
import org.openide.util.Lookup;
65
import org.openide.windows.TopComponent;
66
import org.openide.windows.WindowManager;
54
67
55
/**
68
/**
56
 *
69
 *
Lines 84-91 Link Here
84
    @Override
97
    @Override
85
    public JComponent createComponent(Category category, Lookup context) {
98
    public JComponent createComponent(Category category, Lookup context) {
86
        ModelHandle2 handle = context.lookup(ModelHandle2.class);
99
        ModelHandle2 handle = context.lookup(ModelHandle2.class);
87
        Project prj = context.lookup(Project.class);
100
        final Project prj = context.lookup(Project.class);
88
        final PackagesPanel panel = new PackagesPanel(handle, prj);
101
        final PackagesPanel panel = new PackagesPanel(handle, prj);
102
        category.setStoreListener(new ActionListener() {
103
            @Override
104
            public void actionPerformed(ActionEvent e) {
105
                SwingUtilities.invokeLater(new Runnable() {
106
107
                    @Override
108
                    public void run() {
109
                        TopComponent tc = WindowManager.getDefault().findTopComponent("projectTabLogical_tc");
110
                        if (tc instanceof ExplorerManager.Provider) {
111
                            Node root = ((ExplorerManager.Provider)tc).getExplorerManager().getRootContext();
112
                            Node projectNode = null;
113
                            for (Node prjnd : root.getChildren().getNodes()) {
114
                                if (prj.equals(prjnd.getLookup().lookup(Project.class))) {
115
                                    projectNode = prjnd;
116
                                    break;
117
                                }
118
                            }
119
                            if (projectNode != null) {
120
                                LogicalViewProvider lvp = prj.getLookup().lookup(LogicalViewProvider.class);
121
                                
122
                                try {
123
                                    Method m1 = Node.class.getDeclaredMethod("fireIconChange");
124
                                    m1.setAccessible(true);
125
                                    Method m2 = Node.class.getDeclaredMethod("fireOpenedIconChange");
126
                                    m2.setAccessible(true);
127
                                    for (FileObject fo : FileUtilities.getPackageFileObjects(prj)) {
128
                                        Node nd = lvp.findPath(projectNode, fo);
129
                                        
130
                                        if (nd != null) {
131
                                            
132
                                            m1.invoke(nd);
133
                                            m2.invoke(nd);
134
                                        }
135
                                    }
136
                                } catch (Throwable x) {
137
                                    Exceptions.printStackTrace(x);
138
                                }
139
                                        
140
                            }
141
                        }
142
                    }
143
                });
144
            }
145
        });
89
        return panel;
146
        return panel;
90
    }
147
    }
91
148
(-)maven/nbproject/project.xml (+8 lines)
Lines 383-388 Link Here
383
                        <specification-version>8.0</specification-version>
383
                        <specification-version>8.0</specification-version>
384
                    </run-dependency>
384
                    </run-dependency>
385
                </dependency>
385
                </dependency>
386
                <dependency>
387
                    <code-name-base>org.openide.windows</code-name-base>
388
                    <build-prerequisite/>
389
                    <compile-dependency/>
390
                    <run-dependency>
391
                        <specification-version>6.60</specification-version>
392
                    </run-dependency>
393
                </dependency>
386
            </module-dependencies>
394
            </module-dependencies>
387
            <test-dependencies>
395
            <test-dependencies>
388
                <test-type>
396
                <test-type>
(-)maven/src/org/netbeans/modules/maven/api/FileUtilities.java (-5 / +24 lines)
Lines 44-50 Link Here
44
44
45
import java.io.File;
45
import java.io.File;
46
import java.net.URI;
46
import java.net.URI;
47
import java.util.ArrayList;
48
import java.util.Collection;
47
import java.util.Enumeration;
49
import java.util.Enumeration;
50
import java.util.HashSet;
51
import java.util.Set;
48
import java.util.SortedSet;
52
import java.util.SortedSet;
49
import java.util.Stack;
53
import java.util.Stack;
50
import java.util.TreeSet;
54
import java.util.TreeSet;
Lines 301-307 Link Here
301
        SourceGroup[] scs = ProjectUtils.getSources(prj).getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
305
        SourceGroup[] scs = ProjectUtils.getSources(prj).getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
302
        for (int i = 0; i < scs.length; i++) {
306
        for (int i = 0; i < scs.length; i++) {
303
            final FileObject curRoot = scs[i].getRootFolder();
307
            final FileObject curRoot = scs[i].getRootFolder();
304
            processFolder(curRoot, new NameObtainer() {
308
            processFolder(curRoot, new NameObtainer<String>() {
305
                @Override
309
                @Override
306
                public String getPackageName(FileObject file) {
310
                public String getPackageName(FileObject file) {
307
                    String pkgName = relativizeFile(FileUtil.toFile(curRoot), FileUtil.toFile(file));
311
                    String pkgName = relativizeFile(FileUtil.toFile(curRoot), FileUtil.toFile(file));
Lines 311-317 Link Here
311
        }
315
        }
312
    }
316
    }
313
317
314
    private static void processFolder(FileObject file, NameObtainer nameObtainer, SortedSet<String> result, boolean onlyRoots) {
318
    private static <T> void processFolder(FileObject file, NameObtainer<T> nameObtainer, Collection<T> result, boolean onlyRoots) {
315
        Enumeration<? extends FileObject> dataFiles = file.getData(false);
319
        Enumeration<? extends FileObject> dataFiles = file.getData(false);
316
        Enumeration<? extends FileObject> folders = file.getFolders(false);
320
        Enumeration<? extends FileObject> folders = file.getFolders(false);
317
321
Lines 320-326 Link Here
320
                FileObject kid = dataFiles.nextElement();
324
                FileObject kid = dataFiles.nextElement();
321
                if ((kid.hasExt("java") || kid.hasExt("class")) && Utilities.isJavaIdentifier(kid.getName())) {
325
                if ((kid.hasExt("java") || kid.hasExt("class")) && Utilities.isJavaIdentifier(kid.getName())) {
322
                    // at least one java or class inside directory -> valid package
326
                    // at least one java or class inside directory -> valid package
323
                    String packageName = nameObtainer.getPackageName(file);
327
                    T packageName = nameObtainer.getPackageName(file);
324
                    if (packageName == null) {
328
                    if (packageName == null) {
325
                        continue;
329
                        continue;
326
                    }
330
                    }
Lines 341-348 Link Here
341
        }
345
        }
342
    }
346
    }
343
347
344
    private interface NameObtainer {
348
    public static ArrayList<FileObject> getPackageFileObjects(Project project) {
345
        String getPackageName (FileObject file);
349
        ArrayList<FileObject> result = new ArrayList<FileObject>();
350
        SourceGroup[] scs = ProjectUtils.getSources(project).getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
351
        for (int i = 0; i < scs.length; i++) {
352
            final FileObject curRoot = scs[i].getRootFolder();
353
            processFolder(curRoot, new NameObtainer<FileObject>() {
354
                @Override
355
                public FileObject getPackageName(FileObject file) {
356
                    return file;
346
    }
357
    }
358
            }, result, false);
359
        }
360
        return result;
361
    }
347
362
363
    private interface NameObtainer<T> {
364
        T getPackageName (FileObject file);
348
}
365
}
366
367
}

Return to bug 185897