# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: D:\ws\main
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: maven.graph/nbproject/project.xml
--- maven.graph/nbproject/project.xml
+++ maven.graph/nbproject/project.xml
@@ -121,6 +121,15 @@
+ org.netbeans.modules.projectuiapi
+
+
+
+ 1
+ 1.71
+
+
+
org.netbeans.modules.xml.xam
Index: maven.graph/src/org/netbeans/modules/maven/graph/ArtifactWidget.java
--- maven.graph/src/org/netbeans/modules/maven/graph/ArtifactWidget.java
+++ maven.graph/src/org/netbeans/modules/maven/graph/ArtifactWidget.java
@@ -50,11 +50,15 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
+import javax.swing.Icon;
import javax.swing.Timer;
import javax.swing.UIManager;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.shared.dependency.tree.DependencyNode;
import org.netbeans.api.annotations.common.StaticResource;
+import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectUtils;
+import org.netbeans.api.project.ui.OpenProjects;
import org.netbeans.api.visual.action.ActionFactory;
import org.netbeans.api.visual.action.SelectProvider;
import org.netbeans.api.visual.border.BorderFactory;
@@ -65,6 +69,7 @@
import org.netbeans.api.visual.widget.LevelOfDetailsWidget;
import org.netbeans.api.visual.widget.Scene;
import org.netbeans.api.visual.widget.Widget;
+import org.netbeans.modules.maven.api.NbMavenProject;
import static org.netbeans.modules.maven.graph.Bundle.*;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle.Messages;
@@ -109,7 +114,8 @@
private Timer hoverTimer;
private Color hoverBorderC;
- private LabelWidget artifactW, versionW;
+ private Widget artifactW;
+ private LabelWidget versionW;
private Widget contentW;
private ImageWidget lockW, fixHintW;
@@ -277,8 +283,17 @@
contentW = new LevelOfDetailsWidget(scene, 0.05, 0.1, Double.MAX_VALUE, Double.MAX_VALUE);
contentW.setBorder(BorderFactory.createLineBorder(10));
contentW.setLayout(LayoutFactory.createVerticalFlowLayout(LayoutFactory.SerialAlignment.JUSTIFY, 1));
- artifactW = new LabelWidget(scene);
- artifactW.setLabel(artifact.getArtifactId() + " ");
+
+ //Artifact name (with optional project icon on the left)
+ artifactW = new Widget(scene);
+ artifactW.setLayout(LayoutFactory.createHorizontalFlowLayout(LayoutFactory.SerialAlignment.CENTER, 4));
+
+ ImageWidget projectIcon = getProjectIcon(artifact, scene);
+ if (projectIcon != null) {
+ artifactW.addChild(projectIcon);
+ }
+ artifactW.addChild(new LabelWidget(scene, artifact.getArtifactId() + " "));
+
if (node.isRoot()) {
Font defF = scene.getDefaultFont();
artifactW.setFont(defF.deriveFont(Font.BOLD, defF.getSize() + 3f));
@@ -569,4 +584,22 @@
}
}
+ private ImageWidget getProjectIcon(Artifact artifact, DependencyGraphScene scene) {
+ //NOTE: surely not the best way to get the project icon
+ Project[] openProjects = OpenProjects.getDefault().getOpenProjects();
+ for (Project project : openProjects) {
+ NbMavenProject mavenProject = project.getLookup().lookup(NbMavenProject.class);
+ if (null != mavenProject) {
+ Artifact artifactFromNode = artifact;
+ Artifact artifactFromProject = mavenProject.getMavenProject().getArtifact();
+ if (artifactFromNode.equals(artifactFromProject)) {
+ //get icon from opened project
+ Icon icon = ProjectUtils.getInformation(project).getIcon();
+ return new ImageWidget(scene, ImageUtilities.icon2Image(icon));
}
+ }
+ }
+ return null;
+ }
+
+}