Lines 45-50
Link Here
|
45 |
import java.awt.Point; |
45 |
import java.awt.Point; |
46 |
import java.awt.Rectangle; |
46 |
import java.awt.Rectangle; |
47 |
import java.awt.event.ActionEvent; |
47 |
import java.awt.event.ActionEvent; |
|
|
48 |
import java.io.File; |
48 |
import java.io.IOException; |
49 |
import java.io.IOException; |
49 |
import java.util.ArrayList; |
50 |
import java.util.ArrayList; |
50 |
import java.util.Collection; |
51 |
import java.util.Collection; |
Lines 56-61
Link Here
|
56 |
import javax.swing.JPopupMenu; |
57 |
import javax.swing.JPopupMenu; |
57 |
import javax.swing.JScrollPane; |
58 |
import javax.swing.JScrollPane; |
58 |
import javax.swing.JSeparator; |
59 |
import javax.swing.JSeparator; |
|
|
60 |
import javax.swing.filechooser.FileNameExtensionFilter; |
59 |
import org.apache.maven.artifact.Artifact; |
61 |
import org.apache.maven.artifact.Artifact; |
60 |
import org.apache.maven.artifact.versioning.ArtifactVersion; |
62 |
import org.apache.maven.artifact.versioning.ArtifactVersion; |
61 |
import org.apache.maven.artifact.versioning.DefaultArtifactVersion; |
63 |
import org.apache.maven.artifact.versioning.DefaultArtifactVersion; |
Lines 71-76
Link Here
|
71 |
import org.netbeans.api.visual.action.TwoStateHoverProvider; |
73 |
import org.netbeans.api.visual.action.TwoStateHoverProvider; |
72 |
import org.netbeans.api.visual.action.WidgetAction; |
74 |
import org.netbeans.api.visual.action.WidgetAction; |
73 |
import org.netbeans.api.visual.anchor.AnchorFactory; |
75 |
import org.netbeans.api.visual.anchor.AnchorFactory; |
|
|
76 |
import org.netbeans.api.visual.export.SceneExporter; |
74 |
import org.netbeans.api.visual.graph.GraphScene; |
77 |
import org.netbeans.api.visual.graph.GraphScene; |
75 |
import org.netbeans.api.visual.layout.SceneLayout; |
78 |
import org.netbeans.api.visual.layout.SceneLayout; |
76 |
import org.netbeans.api.visual.model.ObjectState; |
79 |
import org.netbeans.api.visual.model.ObjectState; |
Lines 89-94
Link Here
|
89 |
import org.openide.DialogDescriptor; |
92 |
import org.openide.DialogDescriptor; |
90 |
import org.openide.DialogDisplayer; |
93 |
import org.openide.DialogDisplayer; |
91 |
import org.openide.awt.StatusDisplayer; |
94 |
import org.openide.awt.StatusDisplayer; |
|
|
95 |
import org.openide.filesystems.FileChooserBuilder; |
92 |
import org.openide.util.Exceptions; |
96 |
import org.openide.util.Exceptions; |
93 |
import org.openide.util.NbBundle; |
97 |
import org.openide.util.NbBundle; |
94 |
import org.openide.util.NbBundle.Messages; |
98 |
import org.openide.util.NbBundle.Messages; |
Lines 332-342
Link Here
|
332 |
} |
336 |
} |
333 |
}*/ |
337 |
}*/ |
334 |
|
338 |
|
335 |
@Messages("ACT_Show_Graph=Show Dependency Graph") |
339 |
@Messages({ |
|
|
340 |
"ACT_Show_Graph=Show Dependency Graph", |
341 |
"ACT_Export_As_Image=Export As Image", |
342 |
"ACT_Export_As_Image_Title=Export Dependency Graph As PNG" |
343 |
}) |
336 |
@Override public JPopupMenu getPopupMenu(Widget widget, Point localLocation) { |
344 |
@Override public JPopupMenu getPopupMenu(Widget widget, Point localLocation) { |
337 |
JPopupMenu popupMenu = new JPopupMenu(); |
345 |
JPopupMenu popupMenu = new JPopupMenu(); |
338 |
if (widget == DependencyGraphScene.this) { |
346 |
if (widget == DependencyGraphScene.this) { |
339 |
popupMenu.add(sceneZoomToFitAction); |
347 |
popupMenu.add(sceneZoomToFitAction); |
|
|
348 |
|
349 |
popupMenu.add(new AbstractAction(Bundle.ACT_Export_As_Image()) { |
350 |
@Override |
351 |
public void actionPerformed(ActionEvent e) { |
352 |
File file = new FileChooserBuilder("DependencyGraphScene-ExportDir").setTitle(Bundle.ACT_Export_As_Image_Title()) |
353 |
.setAcceptAllFileFilterUsed(false).addFileFilter(new FileNameExtensionFilter("PNG file", "png")).showSaveDialog(); |
354 |
if (file != null) { |
355 |
try { |
356 |
DependencyGraphScene theScene = DependencyGraphScene.this; |
357 |
SceneExporter.createImage(theScene, file, SceneExporter.ImageType.PNG, SceneExporter.ZoomType.CURRENT_ZOOM_LEVEL, false, false, -1, -1, -1); |
358 |
} catch (IOException ex) { |
359 |
Exceptions.printStackTrace(ex); |
360 |
} |
361 |
} |
362 |
} |
363 |
}); |
340 |
} else { |
364 |
} else { |
341 |
ArtifactGraphNode node = (ArtifactGraphNode)findObject(widget); |
365 |
ArtifactGraphNode node = (ArtifactGraphNode)findObject(widget); |
342 |
if (isEditable()) { |
366 |
if (isEditable()) { |