mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
maven modification tracker
This commit is contained in:
+79
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright 2000-2010 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.idea.maven.project;
|
||||
|
||||
import com.intellij.openapi.util.ModificationTracker;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.maven.facade.NativeMavenProjectHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public class MavenModificationTracker implements ModificationTracker, MavenProjectsTree.Listener {
|
||||
private long myCounter = 0;
|
||||
public MavenModificationTracker(MavenProjectsManager manager) {
|
||||
manager.addProjectsTreeListener(this);
|
||||
}
|
||||
|
||||
private void inc() {
|
||||
myCounter++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getModificationCount() {
|
||||
return myCounter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void profilesChanged() {
|
||||
inc();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void projectsIgnoredStateChanged(List<MavenProject> ignored, List<MavenProject> unignored, Object message) {
|
||||
inc();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void projectsUpdated(List<Pair<MavenProject, MavenProjectChanges>> updated, List<MavenProject> deleted, Object message) {
|
||||
inc();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void projectResolved(Pair<MavenProject, MavenProjectChanges> projectWithChanges,
|
||||
@Nullable NativeMavenProjectHolder nativeMavenProject,
|
||||
Object message) {
|
||||
inc();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pluginsResolved(MavenProject project) {
|
||||
inc();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void foldersResolved(Pair<MavenProject, MavenProjectChanges> projectWithChanges, Object message) {
|
||||
inc();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void artifactsDownloaded(MavenProject project) {
|
||||
inc();
|
||||
}
|
||||
}
|
||||
@@ -96,6 +96,7 @@ public class MavenProjectsManager extends SimpleProjectComponent
|
||||
private final EventDispatcher<MavenProjectsTree.Listener> myProjectsTreeDispatcher =
|
||||
EventDispatcher.create(MavenProjectsTree.Listener.class);
|
||||
private final List<Listener> myManagerListeners = ContainerUtil.createEmptyCOWList();
|
||||
private ModificationTracker myModificationTracker;
|
||||
|
||||
public static MavenProjectsManager getInstance(Project p) {
|
||||
return p.getComponent(MavenProjectsManager.class);
|
||||
@@ -104,6 +105,7 @@ public class MavenProjectsManager extends SimpleProjectComponent
|
||||
public MavenProjectsManager(Project project) {
|
||||
super(project);
|
||||
myEmbeddersManager = new MavenEmbeddersManager(myProject);
|
||||
myModificationTracker = new MavenModificationTracker(this);
|
||||
}
|
||||
|
||||
public MavenProjectsManagerState getState() {
|
||||
@@ -121,6 +123,10 @@ public class MavenProjectsManager extends SimpleProjectComponent
|
||||
}
|
||||
}
|
||||
|
||||
public ModificationTracker getModificationTracker() {
|
||||
return myModificationTracker;
|
||||
}
|
||||
|
||||
public MavenGeneralSettings getGeneralSettings() {
|
||||
return getWorkspaceSettings().generalSettings;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user