This is an automated email from the ASF dual-hosted git repository.
sdedic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new d9b2a57ca7 Present project view files as tree leaves.
new 1ba07fdf92 Merge pull request #4267 from
sdedic/lsp/project-files-leaves
d9b2a57ca7 is described below
commit d9b2a57ca736ec7e88693e3ad3489d2a65d93d02
Author: Svata Dedic <[email protected]>
AuthorDate: Wed Jun 22 11:37:46 2022 +0200
Present project view files as tree leaves.
---
.../server/explorer/DefaultDecorationsImpl.java | 1 -
.../java/lsp/server/explorer/ProjectExplorer.java | 40 ++++++++++++++++++++--
.../java/lsp/server/explorer/TreeViewProvider.java | 4 +++
.../java/lsp/server/explorer/api/TreeItemData.java | 12 +++++++
4 files changed, 54 insertions(+), 3 deletions(-)
diff --git
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/DefaultDecorationsImpl.java
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/DefaultDecorationsImpl.java
index 81812ba560..db6069ede1 100644
---
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/DefaultDecorationsImpl.java
+++
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/DefaultDecorationsImpl.java
@@ -45,7 +45,6 @@ import org.openide.loaders.DataObjectNotFoundException;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
-import org.openide.util.Exceptions;
import org.openide.util.lookup.ServiceProvider;
/**
diff --git
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/ProjectExplorer.java
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/ProjectExplorer.java
index 5c9c811fd9..cff0271854 100644
---
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/ProjectExplorer.java
+++
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/ProjectExplorer.java
@@ -26,6 +26,9 @@ import java.util.concurrent.CompletionStage;
import org.netbeans.api.project.FileOwnerQuery;
import org.netbeans.api.project.Project;
import org.netbeans.api.project.ui.OpenProjects;
+import org.netbeans.modules.java.lsp.server.explorer.api.TreeDataListener;
+import org.netbeans.modules.java.lsp.server.explorer.api.TreeDataProvider;
+import org.netbeans.modules.java.lsp.server.explorer.api.TreeItemData;
import org.netbeans.spi.project.ui.LogicalViewProvider;
import org.openide.explorer.ExplorerManager;
import org.openide.filesystems.FileObject;
@@ -43,9 +46,10 @@ import org.openide.util.lookup.ServiceProviders;
*/
@ServiceProviders({
@ServiceProvider(path = "Explorers/" +
ProjectExplorer.ID_PROJECT_LOGICAL_VIEW, service =
ExplorerManagerFactory.class),
- @ServiceProvider(path = "Explorers/" +
ProjectExplorer.ID_PROJECT_LOGICAL_VIEW, service = PathFinder.class)
+ @ServiceProvider(path = "Explorers/" +
ProjectExplorer.ID_PROJECT_LOGICAL_VIEW, service = PathFinder.class),
+ @ServiceProvider(service = TreeDataProvider.Factory.class, path =
"Explorers/" + ProjectExplorer.ID_PROJECT_LOGICAL_VIEW)
})
-public class ProjectExplorer implements ExplorerManagerFactory, PathFinder {
+public class ProjectExplorer implements ExplorerManagerFactory, PathFinder,
TreeDataProvider.Factory {
static final String ID_PROJECT_LOGICAL_VIEW = "foundProjects"; // NOI18N
private static final RequestProcessor PROJECT_INIT_RP = new
RequestProcessor(ProjectExplorer.class.getName());
@@ -112,4 +116,36 @@ public class ProjectExplorer implements
ExplorerManagerFactory, PathFinder {
}
return null;
}
+
+ @Override
+ public TreeDataProvider createProvider(String treeId) {
+ return new ProjectDecorator();
+ }
+
+ static class ProjectDecorator implements TreeDataProvider {
+
+ @Override
+ public TreeItemData createDecorations(Node n, boolean expanded) {
+ TreeItemData tid = new TreeItemData();
+ FileObject f = n.getLookup().lookup(FileObject.class);
+ if (f != null && f.isData()) {
+ // set leaf status for all files in the projects view.
+ tid.makeLeaf();
+ }
+ return tid;
+ }
+
+ @Override
+ public void addTreeItemDataListener(TreeDataListener l) {
+ }
+
+ @Override
+ public void removeTreeItemDataListener(TreeDataListener l) {
+ }
+
+ @Override
+ public void nodeReleased(Node n) {
+
+ }
+ }
}
diff --git
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
index 4f67cccd64..5ed7cbfdcb 100644
---
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
+++
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
@@ -44,6 +44,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.netbeans.modules.java.lsp.server.explorer.TreeItem.CollapsibleState;
import org.netbeans.modules.java.lsp.server.explorer.TreeItem.IconDescriptor;
import org.openide.explorer.ExplorerManager;
import org.openide.nodes.AbstractNode;
@@ -399,6 +400,9 @@ public abstract class TreeViewProvider {
v = data.getContextValues() == null ? "" : String.join(" ",
data.getContextValues()); // NOI18N
TreeItem ti = new TreeItem(id, n, expanded, v);
+ if (data.isLeaf()) {
+ ti.collapsibleState = CollapsibleState.None;
+ }
if (data.getIconImage() != null && data.getIconImage() !=
DUMMY_NODE.getIcon(BeanInfo.ICON_COLOR_16x16)) {
TreeNodeRegistry.ImageDataOrIndex idoi =
nodeRegistry.imageOrIndex(data.getIconImage());
diff --git
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/api/TreeItemData.java
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/api/TreeItemData.java
index 7857c635d2..e6fa4da8da 100644
---
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/api/TreeItemData.java
+++
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/api/TreeItemData.java
@@ -39,6 +39,7 @@ public final class TreeItemData {
private String[] contextValues;
private String command;
private URI resourceURI;
+ private boolean leaf;
static {
try {
@@ -51,6 +52,16 @@ public final class TreeItemData {
public TreeItemData() {
}
+ public boolean isLeaf() {
+ return leaf;
+ }
+
+ public TreeItemData makeLeaf() {
+ this.leaf = true;
+ return this;
+ }
+
+
public URI getResourceURI() {
return resourceURI;
}
@@ -122,6 +133,7 @@ public final class TreeItemData {
if (data.getIconImage() != null) {
setIconImage(data.getIconImage());
}
+ leaf |= data.isLeaf();
return this;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists