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 91031
Collapse All | Expand All

(-)maven/src/org/netbeans/modules/maven/queries/MavenFileOwnerQueryImpl.java (-1 / +24 lines)
Lines 50-55 Link Here
50
import java.net.URISyntaxException;
50
import java.net.URISyntaxException;
51
import java.net.URL;
51
import java.net.URL;
52
import java.util.Collections;
52
import java.util.Collections;
53
import java.util.concurrent.atomic.AtomicReference;
53
import java.util.logging.Level;
54
import java.util.logging.Level;
54
import java.util.logging.Logger;
55
import java.util.logging.Logger;
55
import java.util.prefs.BackingStoreException;
56
import java.util.prefs.BackingStoreException;
Lines 62-67 Link Here
62
import org.netbeans.api.annotations.common.CheckForNull;
63
import org.netbeans.api.annotations.common.CheckForNull;
63
import org.netbeans.api.project.Project;
64
import org.netbeans.api.project.Project;
64
import org.netbeans.api.project.ProjectManager;
65
import org.netbeans.api.project.ProjectManager;
66
import org.netbeans.api.project.ui.OpenProjects;
67
import org.netbeans.api.project.ui.ProjectGroupChangeEvent;
68
import org.netbeans.api.project.ui.ProjectGroupChangeListener;
65
import org.netbeans.modules.maven.NbMavenProjectImpl;
69
import org.netbeans.modules.maven.NbMavenProjectImpl;
66
import org.netbeans.modules.maven.api.NbMavenProject;
70
import org.netbeans.modules.maven.api.NbMavenProject;
67
import org.netbeans.modules.maven.embedder.EmbedderFactory;
71
import org.netbeans.modules.maven.embedder.EmbedderFactory;
Lines 84-91 Link Here
84
public class MavenFileOwnerQueryImpl implements FileOwnerQueryImplementation {
88
public class MavenFileOwnerQueryImpl implements FileOwnerQueryImplementation {
85
    
89
    
86
    private final PropertyChangeListener projectListener;
90
    private final PropertyChangeListener projectListener;
91
    private final ProjectGroupChangeListener groupListener;
87
    private final ChangeSupport cs = new ChangeSupport(this);
92
    private final ChangeSupport cs = new ChangeSupport(this);
88
93
94
    private static final AtomicReference<Preferences> prefs = new AtomicReference<Preferences>(NbPreferences.forModule(MavenFileOwnerQueryImpl.class).node("externalOwners"));
95
89
    private static final Logger LOG = Logger.getLogger(MavenFileOwnerQueryImpl.class.getName());
96
    private static final Logger LOG = Logger.getLogger(MavenFileOwnerQueryImpl.class.getName());
90
    
97
    
91
    public MavenFileOwnerQueryImpl() {
98
    public MavenFileOwnerQueryImpl() {
Lines 98-105 Link Here
98
                }
105
                }
99
            }
106
            }
100
        };
107
        };
108
        groupListener = new ProjectGroupChangeListener() {
109
110
            @Override
111
            public void projectGroupChanging(ProjectGroupChangeEvent event) {
112
                Preferences old = prefs();
113
                Preferences n = event.getNewGroup() != null ? event.getNewGroup().preferencesForPackage(MavenFileOwnerQueryImpl.class).node("externalOwners") : NbPreferences.forModule(MavenFileOwnerQueryImpl.class).node("externalOwners");
114
                prefs.compareAndSet(old, n);
101
    }
115
    }
102
    
116
    
117
            @Override
118
            public void projectGroupChanged(ProjectGroupChangeEvent event) {
119
                //TODO should we check what projects were kept open and register them with current group?
120
            }
121
        };
122
        //not worth making weak, both are singletons kept forever
123
        OpenProjects.getDefault().addProjectGroupChangeListener(groupListener);
124
    }
125
    
103
    public static MavenFileOwnerQueryImpl getInstance() {
126
    public static MavenFileOwnerQueryImpl getInstance() {
104
        return Lookup.getDefault().lookup(MavenFileOwnerQueryImpl.class);
127
        return Lookup.getDefault().lookup(MavenFileOwnerQueryImpl.class);
105
    }
128
    }
Lines 368-373 Link Here
368
    }
391
    }
369
392
370
    static Preferences prefs() {
393
    static Preferences prefs() {
371
        return NbPreferences.forModule(MavenFileOwnerQueryImpl.class).node("externalOwners"); // NOI18N
394
        return prefs.get();
372
    }
395
    }
373
}
396
}

Return to bug 91031