diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java
index 5ef45a71cf4..45a8d1bab5c 100644
--- a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/inject/JavaGinModule.java
@@ -123,6 +123,9 @@ protected void configure() {
GinMapBinder.newMapBinder(binder(), String.class, FqnProvider.class);
fqnProviders.addBinding("maven").to(JavaFqnProvider.class);
+ install(
+ new GinFactoryModuleBuilder()
+ .build(org.eclipse.che.ide.ext.java.client.navigation.filestructure.NodeFactory.class));
install(new GinFactoryModuleBuilder().build(JavaNodeFactory.class));
install(
new GinFactoryModuleBuilder()
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/ElementSelectionDelegate.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/ElementSelectionDelegate.java
similarity index 89%
rename from plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/ElementSelectionDelegate.java
rename to plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/ElementSelectionDelegate.java
index 981d41a4afd..eda37418598 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/ElementSelectionDelegate.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/ElementSelectionDelegate.java
@@ -9,7 +9,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
-package org.eclipse.che.plugin.languageserver.ide.filestructure;
+package org.eclipse.che.ide.ext.java.client.navigation.filestructure;
/**
* Interface to signal selection of an element
diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructurePresenter.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructurePresenter.java
index 3610b254362..eff79e222db 100644
--- a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructurePresenter.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructurePresenter.java
@@ -21,7 +21,6 @@
import org.eclipse.che.ide.util.loging.Log;
import org.eclipse.che.jdt.ls.extension.api.dto.ExtendedSymbolInformation;
import org.eclipse.che.jdt.ls.extension.api.dto.FileStructureCommandParameters;
-import org.eclipse.che.plugin.languageserver.ide.filestructure.ElementSelectionDelegate;
import org.eclipse.che.plugin.languageserver.ide.util.DtoBuildHelper;
import org.eclipse.che.plugin.languageserver.ide.util.OpenFileInEditorHelper;
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureTree.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureTree.java
similarity index 96%
rename from plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureTree.java
rename to plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureTree.java
index b1594579fe5..3f03d44afde 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureTree.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureTree.java
@@ -9,7 +9,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
-package org.eclipse.che.plugin.languageserver.ide.filestructure;
+package org.eclipse.che.ide.ext.java.client.navigation.filestructure;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.Event;
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureView.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureView.java
similarity index 97%
rename from plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureView.java
rename to plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureView.java
index 07ad2ba6a91..74d832208f5 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureView.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureView.java
@@ -9,7 +9,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
-package org.eclipse.che.plugin.languageserver.ide.filestructure;
+package org.eclipse.che.ide.ext.java.client.navigation.filestructure;
import static org.eclipse.che.ide.ui.smartTree.SelectionModel.Mode.SINGLE;
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureView.ui.xml b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureView.ui.xml
similarity index 83%
rename from plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureView.ui.xml
rename to plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureView.ui.xml
index e6e83e662c7..1033c120098 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/FileStructureView.ui.xml
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureView.ui.xml
@@ -12,6 +12,6 @@
-->
+ xmlns:g="urn:import:org.eclipse.che.ide.ext.java.client.navigation.filestructure">
\ No newline at end of file
diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureWindow.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureWindow.java
index b6f0d7aabbe..1e22a98851d 100644
--- a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureWindow.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/FileStructureWindow.java
@@ -35,9 +35,6 @@
import org.eclipse.che.ide.util.input.SignalEvent;
import org.eclipse.che.ide.util.input.SignalEventUtils;
import org.eclipse.che.jdt.ls.extension.api.dto.ExtendedSymbolInformation;
-import org.eclipse.che.plugin.languageserver.ide.filestructure.ElementSelectionDelegate;
-import org.eclipse.che.plugin.languageserver.ide.filestructure.FileStructureView;
-import org.eclipse.che.plugin.languageserver.ide.filestructure.NodeFactory;
/**
* A window showing a java specific file structure
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/NodeFactory.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/NodeFactory.java
similarity index 89%
rename from plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/NodeFactory.java
rename to plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/NodeFactory.java
index 74a917ab01d..65ea555ff81 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/NodeFactory.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/NodeFactory.java
@@ -9,7 +9,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
-package org.eclipse.che.plugin.languageserver.ide.filestructure;
+package org.eclipse.che.ide.ext.java.client.navigation.filestructure;
import org.eclipse.che.jdt.ls.extension.api.dto.ExtendedSymbolInformation;
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/SymbolNode.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/SymbolNode.java
similarity index 84%
rename from plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/SymbolNode.java
rename to plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/SymbolNode.java
index 026f19b000c..b595e9b4d3e 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/filestructure/SymbolNode.java
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/navigation/filestructure/SymbolNode.java
@@ -9,7 +9,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
-package org.eclipse.che.plugin.languageserver.ide.filestructure;
+package org.eclipse.che.ide.ext.java.client.navigation.filestructure;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
@@ -17,13 +17,13 @@
import java.util.stream.Collectors;
import org.eclipse.che.api.promises.client.Promise;
import org.eclipse.che.api.promises.client.PromiseProvider;
+import org.eclipse.che.ide.ext.java.client.util.SymbolIcons;
import org.eclipse.che.ide.ui.smartTree.data.AbstractTreeNode;
import org.eclipse.che.ide.ui.smartTree.data.HasAction;
import org.eclipse.che.ide.ui.smartTree.data.Node;
import org.eclipse.che.ide.ui.smartTree.presentation.HasNewPresentation;
import org.eclipse.che.ide.ui.smartTree.presentation.NewNodePresentation;
import org.eclipse.che.jdt.ls.extension.api.dto.ExtendedSymbolInformation;
-import org.eclipse.che.plugin.languageserver.ide.navigation.symbol.SymbolKindHelper;
/**
* A node presenting {@link ExtendedSymbolInformation} objects
@@ -31,18 +31,18 @@
* @author Thomas Mäder
*/
public class SymbolNode extends AbstractTreeNode implements HasNewPresentation, HasAction {
- private SymbolKindHelper symbolHelper;
+ private SymbolIcons symbolIcons;
private PromiseProvider promiseProvider;
private ElementSelectionDelegate delegate;
private ExtendedSymbolInformation symbol;
@Inject
public SymbolNode(
- SymbolKindHelper symbolHelper,
+ SymbolIcons symbolIcons,
PromiseProvider promiseProvider,
@Assisted ElementSelectionDelegate delegate,
@Assisted ExtendedSymbolInformation symbol) {
- this.symbolHelper = symbolHelper;
+ this.symbolIcons = symbolIcons;
this.promiseProvider = promiseProvider;
this.delegate = delegate;
this.symbol = symbol;
@@ -64,7 +64,7 @@ protected Promise> getChildrenImpl() {
symbol
.getChildren()
.stream()
- .map(child -> new SymbolNode(symbolHelper, promiseProvider, delegate, child))
+ .map(child -> new SymbolNode(symbolIcons, promiseProvider, delegate, child))
.collect(Collectors.toList()));
}
@@ -72,7 +72,7 @@ protected Promise> getChildrenImpl() {
public NewNodePresentation getPresentation() {
String name = symbol.getInfo().getName();
return new NewNodePresentation.Builder()
- .withIcon(symbolHelper.getIcon(symbol.getInfo().getKind()))
+ .withIcon(symbolIcons.get(symbol))
.withNodeText(name)
.build();
}
diff --git a/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/util/SymbolIcons.java b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/util/SymbolIcons.java
new file mode 100644
index 00000000000..cfecb9610f7
--- /dev/null
+++ b/plugins/plugin-java/che-plugin-java-ext-lang-client/src/main/java/org/eclipse/che/ide/ext/java/client/util/SymbolIcons.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2012-2018 Red Hat, Inc.
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ */
+package org.eclipse.che.ide.ext.java.client.util;
+
+import com.google.common.collect.ImmutableMap;
+import java.util.Map;
+import org.eclipse.che.ide.ext.java.client.JavaResources;
+import org.eclipse.che.jdt.ls.extension.api.Visibility;
+import org.eclipse.che.jdt.ls.extension.api.dto.ExtendedSymbolInformation;
+import org.eclipse.lsp4j.SymbolKind;
+import org.vectomatic.dom.svg.ui.SVGResource;
+
+public class SymbolIcons {
+ private static final Map> resources;
+
+ static {
+ resources =
+ new ImmutableMap.Builder>()
+ .put(
+ Visibility.PUBLIC,
+ new ImmutableMap.Builder()
+ .put(SymbolKind.Package, JavaResources.INSTANCE.packageItem())
+ .put(SymbolKind.Class, JavaResources.INSTANCE.svgClassItem())
+ .put(SymbolKind.Method, JavaResources.INSTANCE.publicMethod())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.publicField())
+ .put(SymbolKind.Constructor, JavaResources.INSTANCE.publicMethod())
+ .put(SymbolKind.Enum, JavaResources.INSTANCE.enumItem())
+ .put(SymbolKind.Interface, JavaResources.INSTANCE.interfaceItem())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.publicField())
+ .put(SymbolKind.Constant, JavaResources.INSTANCE.publicField())
+ .put(SymbolKind.EnumMember, JavaResources.INSTANCE.publicField())
+ .build())
+ .put(
+ Visibility.PROTECTED,
+ new ImmutableMap.Builder()
+ .put(SymbolKind.Package, JavaResources.INSTANCE.packageItem())
+ .put(SymbolKind.Class, JavaResources.INSTANCE.svgClassItem())
+ .put(SymbolKind.Method, JavaResources.INSTANCE.protectedMethod())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.protectedField())
+ .put(SymbolKind.Constructor, JavaResources.INSTANCE.protectedMethod())
+ .put(SymbolKind.Enum, JavaResources.INSTANCE.enumItem())
+ .put(SymbolKind.Interface, JavaResources.INSTANCE.interfaceItem())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.protectedField())
+ .put(SymbolKind.Constant, JavaResources.INSTANCE.protectedField())
+ .put(SymbolKind.EnumMember, JavaResources.INSTANCE.protectedField())
+ .build())
+ .put(
+ Visibility.PACKAGE,
+ new ImmutableMap.Builder()
+ .put(SymbolKind.Package, JavaResources.INSTANCE.packageItem())
+ .put(SymbolKind.Class, JavaResources.INSTANCE.svgClassItem())
+ .put(SymbolKind.Method, JavaResources.INSTANCE.defaultMethod())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.defaultField())
+ .put(SymbolKind.Constructor, JavaResources.INSTANCE.defaultMethod())
+ .put(SymbolKind.Enum, JavaResources.INSTANCE.enumItem())
+ .put(SymbolKind.Interface, JavaResources.INSTANCE.interfaceItem())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.defaultField())
+ .put(SymbolKind.Constant, JavaResources.INSTANCE.defaultField())
+ .put(SymbolKind.EnumMember, JavaResources.INSTANCE.defaultField())
+ .build())
+ .put(
+ Visibility.PRIVATE,
+ new ImmutableMap.Builder()
+ .put(SymbolKind.Package, JavaResources.INSTANCE.packageItem())
+ .put(SymbolKind.Class, JavaResources.INSTANCE.svgClassItem())
+ .put(SymbolKind.Method, JavaResources.INSTANCE.privateMethod())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.privateField())
+ .put(SymbolKind.Constructor, JavaResources.INSTANCE.privateMethod())
+ .put(SymbolKind.Enum, JavaResources.INSTANCE.enumItem())
+ .put(SymbolKind.Interface, JavaResources.INSTANCE.interfaceItem())
+ .put(SymbolKind.Field, JavaResources.INSTANCE.privateField())
+ .put(SymbolKind.Constant, JavaResources.INSTANCE.privateField())
+ .put(SymbolKind.EnumMember, JavaResources.INSTANCE.privateField())
+ .build())
+ .build();
+ }
+
+ public SVGResource get(ExtendedSymbolInformation symbol) {
+ Visibility visiblity = symbol.getVisiblity();
+ return resources
+ .get(visiblity == null ? Visibility.PACKAGE : visiblity)
+ .get(symbol.getInfo().getKind());
+ }
+}
diff --git a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/inject/LanguageServerGinModule.java b/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/inject/LanguageServerGinModule.java
index 1c2b149ebf6..c53b68ace4b 100644
--- a/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/inject/LanguageServerGinModule.java
+++ b/plugins/plugin-languageserver/che-plugin-languageserver-ide/src/main/java/org/eclipse/che/plugin/languageserver/ide/inject/LanguageServerGinModule.java
@@ -48,9 +48,6 @@ protected void configure() {
install(new GinFactoryModuleBuilder().build(LanguageServerReconcileStrategyFactory.class));
install(new GinFactoryModuleBuilder().build(LanguageServerSignatureHelpFactory.class));
install(new GinFactoryModuleBuilder().build(RenameNodeFactory.class));
- install(
- new GinFactoryModuleBuilder()
- .build(org.eclipse.che.plugin.languageserver.ide.filestructure.NodeFactory.class));
bind(PublishDiagnosticsReceiver.class).asEagerSingleton();
bind(ShowMessageJsonRpcReceiver.class).asEagerSingleton();
diff --git a/pom.xml b/pom.xml
index 5f2b30fbcd1..b37881a3093 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,7 +52,7 @@
6.14.0-SNAPSHOT
6.14.0-SNAPSHOT
6.14.0-SNAPSHOT
- 0.0.1
+ 0.0.2-SNAPSHOT
6.14.0-SNAPSHOT
1.0-beta2