mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
hide flex modules from 'available elements' tree in artifact editor
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2000-2013 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.intellij.packaging.ui;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public abstract class PackagingSourceItemFilter {
|
||||
public static final ExtensionPointName<PackagingSourceItemFilter> EP_NAME = ExtensionPointName.create("com.intellij.packaging.sourceItemFilter");
|
||||
|
||||
public abstract boolean isAvailable(@NotNull PackagingSourceItem item, @NotNull ArtifactEditorContext context);
|
||||
}
|
||||
+1
@@ -104,6 +104,7 @@ public class ModuleSourceItemGroup extends PackagingSourceItem {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Module getModule() {
|
||||
return myModule;
|
||||
}
|
||||
|
||||
+7
-5
@@ -46,10 +46,10 @@ public class ModulesAndLibrariesSourceItemsProvider extends PackagingSourceItems
|
||||
public Collection<? extends PackagingSourceItem> getSourceItems(@NotNull ArtifactEditorContext editorContext, @NotNull Artifact artifact,
|
||||
PackagingSourceItem parent) {
|
||||
if (parent == null) {
|
||||
return createModuleItems(editorContext, artifact, ArrayUtil.EMPTY_STRING_ARRAY);
|
||||
return createModuleItems(editorContext, ArrayUtil.EMPTY_STRING_ARRAY);
|
||||
}
|
||||
else if (parent instanceof ModuleGroupItem) {
|
||||
return createModuleItems(editorContext, artifact, ((ModuleGroupItem)parent).getPath());
|
||||
return createModuleItems(editorContext, ((ModuleGroupItem)parent).getPath());
|
||||
}
|
||||
else if (parent instanceof ModuleSourceItemGroup) {
|
||||
return createClasspathItems(editorContext, artifact, ((ModuleSourceItemGroup)parent).getModule());
|
||||
@@ -57,8 +57,9 @@ public class ModulesAndLibrariesSourceItemsProvider extends PackagingSourceItems
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
private static Collection<? extends PackagingSourceItem> createClasspathItems(ArtifactEditorContext editorContext,
|
||||
Artifact artifact, @NotNull Module module) {
|
||||
@NotNull
|
||||
private static Collection<? extends PackagingSourceItem> createClasspathItems(@NotNull ArtifactEditorContext editorContext,
|
||||
@NotNull Artifact artifact, @NotNull Module module) {
|
||||
final List<PackagingSourceItem> items = new ArrayList<PackagingSourceItem>();
|
||||
final ModuleRootModel rootModel = editorContext.getModulesProvider().getRootModel(module);
|
||||
List<Library> libraries = new ArrayList<Library>();
|
||||
@@ -83,7 +84,8 @@ public class ModulesAndLibrariesSourceItemsProvider extends PackagingSourceItems
|
||||
return items;
|
||||
}
|
||||
|
||||
private static Collection<? extends PackagingSourceItem> createModuleItems(ArtifactEditorContext editorContext, Artifact artifact, @NotNull String[] groupPath) {
|
||||
@NotNull
|
||||
private static Collection<? extends PackagingSourceItem> createModuleItems(@NotNull ArtifactEditorContext editorContext, @NotNull String[] groupPath) {
|
||||
final Module[] modules = editorContext.getModulesProvider().getModules();
|
||||
final List<PackagingSourceItem> items = new ArrayList<PackagingSourceItem>();
|
||||
Set<String> groups = new HashSet<String>();
|
||||
|
||||
+15
-7
@@ -17,15 +17,12 @@ package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems;
|
||||
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.ide.util.treeView.NodeDescriptor;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactEditorEx;
|
||||
import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.ArtifactsTreeNode;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.packaging.ui.ArtifactEditorContext;
|
||||
import com.intellij.packaging.ui.PackagingSourceItem;
|
||||
import com.intellij.packaging.ui.PackagingSourceItemsProvider;
|
||||
import com.intellij.packaging.ui.TreeNodePresentation;
|
||||
import com.intellij.packaging.ui.*;
|
||||
import com.intellij.ui.treeStructure.SimpleNode;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -61,12 +58,13 @@ public abstract class SourceItemNodeBase extends ArtifactsTreeNode {
|
||||
|
||||
@Override
|
||||
protected SimpleNode[] buildChildren() {
|
||||
final PackagingSourceItemsProvider[] providers = Extensions.getExtensions(PackagingSourceItemsProvider.EP_NAME);
|
||||
final PackagingSourceItemsProvider[] providers = PackagingSourceItemsProvider.EP_NAME.getExtensions();
|
||||
PackagingSourceItemFilter[] filters = PackagingSourceItemFilter.EP_NAME.getExtensions();
|
||||
List<SimpleNode> children = new ArrayList<SimpleNode>();
|
||||
for (PackagingSourceItemsProvider provider : providers) {
|
||||
final Collection<? extends PackagingSourceItem> items = provider.getSourceItems(myContext, myArtifact, getSourceItem());
|
||||
for (PackagingSourceItem item : items) {
|
||||
if (myArtifact.getArtifactType().isSuitableItem(item)) {
|
||||
if (myArtifact.getArtifactType().isSuitableItem(item) && isAvailable(item, myContext, filters)) {
|
||||
children.add(new SourceItemNode(myContext, this, item, myArtifactEditor));
|
||||
}
|
||||
}
|
||||
@@ -74,6 +72,16 @@ public abstract class SourceItemNodeBase extends ArtifactsTreeNode {
|
||||
return children.isEmpty() ? NO_CHILDREN : children.toArray(new SimpleNode[children.size()]);
|
||||
}
|
||||
|
||||
private static boolean isAvailable(@NotNull PackagingSourceItem item, @NotNull ArtifactEditorContext context,
|
||||
@NotNull PackagingSourceItemFilter[] filters) {
|
||||
for (PackagingSourceItemFilter filter : filters) {
|
||||
if (!filter.isAvailable(item, context)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected abstract PackagingSourceItem getSourceItem();
|
||||
}
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
<extensionPoint name="packaging.elementType" interface="com.intellij.packaging.elements.PackagingElementType"/>
|
||||
<extensionPoint name="packaging.artifactPropertiesProvider" interface="com.intellij.packaging.artifacts.ArtifactPropertiesProvider"/>
|
||||
<extensionPoint name="packaging.sourceItemProvider" interface="com.intellij.packaging.ui.PackagingSourceItemsProvider"/>
|
||||
<extensionPoint name="packaging.sourceItemFilter" interface="com.intellij.packaging.ui.PackagingSourceItemFilter"/>
|
||||
<extensionPoint name="packaging.artifactType" interface="com.intellij.packaging.artifacts.ArtifactType"/>
|
||||
|
||||
<extensionPoint name="frameworkSupport" interface="com.intellij.ide.util.frameworkSupport.FrameworkSupportProvider"/>
|
||||
|
||||
Reference in New Issue
Block a user