Lines 48-58
Link Here
|
48 |
import java.io.IOException; |
48 |
import java.io.IOException; |
49 |
import java.util.ArrayList; |
49 |
import java.util.ArrayList; |
50 |
import java.util.Collection; |
50 |
import java.util.Collection; |
|
|
51 |
import java.util.HashMap; |
51 |
import java.util.HashSet; |
52 |
import java.util.HashSet; |
52 |
import java.util.List; |
53 |
import java.util.List; |
|
|
54 |
import java.util.Map; |
53 |
import java.util.Set; |
55 |
import java.util.Set; |
54 |
import javax.swing.AbstractAction; |
56 |
import javax.swing.AbstractAction; |
55 |
import javax.swing.Action; |
57 |
import javax.swing.Action; |
|
|
58 |
import javax.swing.Icon; |
56 |
import javax.swing.JPopupMenu; |
59 |
import javax.swing.JPopupMenu; |
57 |
import javax.swing.JScrollPane; |
60 |
import javax.swing.JScrollPane; |
58 |
import javax.swing.JSeparator; |
61 |
import javax.swing.JSeparator; |
Lines 63-68
Link Here
|
63 |
import org.apache.maven.shared.dependency.tree.DependencyNode; |
66 |
import org.apache.maven.shared.dependency.tree.DependencyNode; |
64 |
import org.netbeans.api.annotations.common.CheckForNull; |
67 |
import org.netbeans.api.annotations.common.CheckForNull; |
65 |
import org.netbeans.api.project.Project; |
68 |
import org.netbeans.api.project.Project; |
|
|
69 |
import org.netbeans.api.project.ProjectUtils; |
70 |
import org.netbeans.api.project.ui.OpenProjects; |
66 |
import org.netbeans.api.visual.action.ActionFactory; |
71 |
import org.netbeans.api.visual.action.ActionFactory; |
67 |
import org.netbeans.api.visual.action.EditProvider; |
72 |
import org.netbeans.api.visual.action.EditProvider; |
68 |
import org.netbeans.api.visual.action.MoveProvider; |
73 |
import org.netbeans.api.visual.action.MoveProvider; |
Lines 126-131
Link Here
|
126 |
|
131 |
|
127 |
private static Set<ArtifactGraphNode> EMPTY_SELECTION = new HashSet<ArtifactGraphNode>(); |
132 |
private static Set<ArtifactGraphNode> EMPTY_SELECTION = new HashSet<ArtifactGraphNode>(); |
128 |
private POMModel model; |
133 |
private POMModel model; |
|
|
134 |
private final Map<Artifact, Icon> projectIcons; |
129 |
|
135 |
|
130 |
/** Creates a new instance ofla DependencyGraphScene */ |
136 |
/** Creates a new instance ofla DependencyGraphScene */ |
131 |
DependencyGraphScene(MavenProject prj, Project nbProj, DependencyGraphTopComponent tc, |
137 |
DependencyGraphScene(MavenProject prj, Project nbProj, DependencyGraphTopComponent tc, |
Lines 145-150
Link Here
|
145 |
getActions().addAction(panAction); |
151 |
getActions().addAction(panAction); |
146 |
getActions().addAction(editAction); |
152 |
getActions().addAction(editAction); |
147 |
getActions().addAction(popupMenuAction); |
153 |
getActions().addAction(popupMenuAction); |
|
|
154 |
this.projectIcons = getIconsForOpenProjects(); |
148 |
} |
155 |
} |
149 |
|
156 |
|
150 |
|
157 |
|
Lines 183-188
Link Here
|
183 |
} |
190 |
} |
184 |
return null; |
191 |
return null; |
185 |
} |
192 |
} |
|
|
193 |
/** |
194 |
* @return map of maven artifact mapped to project icon |
195 |
*/ |
196 |
Map<Artifact, Icon> getIconsForOpenProjects() { |
197 |
Map<Artifact, Icon> result = new HashMap<Artifact, Icon>(); |
198 |
//NOTE: surely not the best way to get the project icon |
199 |
Project[] openProjects = OpenProjects.getDefault().getOpenProjects(); |
200 |
for (Project project : openProjects) { |
201 |
NbMavenProject mavenProject = project.getLookup().lookup(NbMavenProject.class); |
202 |
if (null != mavenProject) { |
203 |
Artifact artifact = mavenProject.getMavenProject().getArtifact(); |
204 |
//get icon from opened project |
205 |
Icon icon = ProjectUtils.getInformation(project).getIcon(); |
206 |
if (null != icon) { |
207 |
result.put(artifact, icon); |
208 |
} |
209 |
} |
210 |
} |
211 |
return result; |
212 |
} |
186 |
|
213 |
|
187 |
@Override protected Widget attachNodeWidget(ArtifactGraphNode node) { |
214 |
@Override protected Widget attachNodeWidget(ArtifactGraphNode node) { |
188 |
if (rootNode == null) { |
215 |
if (rootNode == null) { |
Lines 191-197
Link Here
|
191 |
if (node.getPrimaryLevel() > maxDepth) { |
218 |
if (node.getPrimaryLevel() > maxDepth) { |
192 |
maxDepth = node.getPrimaryLevel(); |
219 |
maxDepth = node.getPrimaryLevel(); |
193 |
} |
220 |
} |
194 |
ArtifactWidget root = new ArtifactWidget(this, node); |
221 |
Artifact artifact = node.getArtifact().getArtifact(); |
|
|
222 |
Icon icon = projectIcons.get(artifact); |
223 |
ArtifactWidget root = new ArtifactWidget(this, node, icon); |
195 |
mainLayer.addChild(root); |
224 |
mainLayer.addChild(root); |
196 |
node.setWidget(root); |
225 |
node.setWidget(root); |
197 |
root.setOpaque(true); |
226 |
root.setOpaque(true); |