mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 21:11:28 +07:00
another day, another module component
This commit is contained in:
@@ -25,10 +25,4 @@
|
||||
<implementation-class>com.jetbrains.python.facet.PythonSdkTableListener</implementation-class>
|
||||
</component>
|
||||
</application-components>
|
||||
|
||||
<module-components>
|
||||
<component>
|
||||
<implementation-class>com.jetbrains.python.facet.PythonFacetListener</implementation-class>
|
||||
</component>
|
||||
</module-components>
|
||||
</idea-plugin>
|
||||
@@ -29,7 +29,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class PythonFacet extends Facet<PythonFacetConfiguration> implements LibraryContributingFacet {
|
||||
public class PythonFacet extends LibraryContributingFacet<PythonFacetConfiguration> {
|
||||
public static final FacetTypeId<PythonFacet> ID = new FacetTypeId<PythonFacet>("python");
|
||||
|
||||
public PythonFacet(@NotNull final FacetType facetType, @NotNull final Module module, final @NotNull String name, @NotNull final PythonFacetConfiguration configuration,
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2014 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 com.jetbrains.python.facet;
|
||||
|
||||
import com.intellij.facet.Facet;
|
||||
import com.intellij.facet.FacetManager;
|
||||
import com.intellij.facet.FacetManagerAdapter;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleComponent;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class PythonFacetListener implements ModuleComponent {
|
||||
private MessageBusConnection myConnection;
|
||||
private final Module myModule;
|
||||
|
||||
public PythonFacetListener(Module module) {
|
||||
myModule = module;
|
||||
}
|
||||
|
||||
public void initComponent() {
|
||||
myConnection = myModule.getMessageBus().connect();
|
||||
myConnection.subscribe(FacetManager.FACETS_TOPIC, new FacetManagerAdapter() {
|
||||
@Override
|
||||
public void beforeFacetRemoved(@NotNull Facet facet) {
|
||||
if (facet instanceof LibraryContributingFacet) {
|
||||
((LibraryContributingFacet) facet).removeLibrary();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void facetConfigurationChanged(@NotNull Facet facet) {
|
||||
if (facet instanceof LibraryContributingFacet) {
|
||||
((LibraryContributingFacet) facet).updateLibrary();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void projectOpened() {
|
||||
}
|
||||
|
||||
public void projectClosed() {
|
||||
}
|
||||
|
||||
public void moduleAdded() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getComponentName() {
|
||||
return "PythonFacetListener";
|
||||
}
|
||||
|
||||
public void disposeComponent() {
|
||||
myConnection.disconnect();
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
@@ -63,7 +62,7 @@ import java.util.regex.Pattern;
|
||||
* User: dcheryasov
|
||||
* Date: Jul 25, 2010 3:23:50 PM
|
||||
*/
|
||||
public class BuildoutFacet extends Facet<BuildoutFacetConfiguration> implements PythonPathContributingFacet, LibraryContributingFacet {
|
||||
public class BuildoutFacet extends LibraryContributingFacet<BuildoutFacetConfiguration> implements PythonPathContributingFacet {
|
||||
|
||||
private static final Logger LOG = Logger.getInstance("#com.jetbrains.python.buildout.BuildoutFacet");
|
||||
@NonNls public static final String BUILDOUT_CFG = "buildout.cfg";
|
||||
|
||||
@@ -15,14 +15,40 @@
|
||||
*/
|
||||
package com.jetbrains.python.facet;
|
||||
|
||||
import com.intellij.facet.*;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public interface LibraryContributingFacet {
|
||||
@NonNls String PYTHON_FACET_LIBRARY_NAME_SUFFIX = " interpreter library";
|
||||
public abstract class LibraryContributingFacet<T extends FacetConfiguration> extends Facet<T> {
|
||||
@NonNls public static final String PYTHON_FACET_LIBRARY_NAME_SUFFIX = " interpreter library";
|
||||
|
||||
void updateLibrary();
|
||||
void removeLibrary();
|
||||
public LibraryContributingFacet(@NotNull FacetType facetType,
|
||||
@NotNull Module module,
|
||||
@NotNull String name, @NotNull T configuration, Facet underlyingFacet) {
|
||||
super(facetType, module, name, configuration, underlyingFacet);
|
||||
final MessageBusConnection connection = module.getMessageBus().connect();
|
||||
connection.subscribe(FacetManager.FACETS_TOPIC, new FacetManagerAdapter() {
|
||||
@Override
|
||||
public void beforeFacetRemoved(@NotNull Facet facet) {
|
||||
if (facet instanceof LibraryContributingFacet) {
|
||||
((LibraryContributingFacet) facet).removeLibrary();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void facetConfigurationChanged(@NotNull Facet facet) {
|
||||
if (facet instanceof LibraryContributingFacet) {
|
||||
((LibraryContributingFacet) facet).updateLibrary();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public abstract void updateLibrary();
|
||||
public abstract void removeLibrary();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user