Showing suite dependencies matrixview_root
authorjtulach@netbeans.org
Sat, 13 May 2006 22:36:45 +0000
changeset 7142e5f5c9b9bb5b
parent 7141 697175b61732
child 7143 924df1cb4843
Showing suite dependencies
lib.graphlayout/nbproject/project.properties
lib.graphlayout/src/org/netbeans/lib/graphlayout/Renderer.java
projectdeps/build.xml
projectdeps/manifest.mf
projectdeps/nbproject/project.properties
projectdeps/nbproject/project.xml
projectdeps/src/org/netbeans/modules/projectdeps/Bundle.properties
projectdeps/src/org/netbeans/modules/projectdeps/ShowProjectDependenciesAction.java
projectdeps/src/org/netbeans/modules/projectdeps/layer.xml
     1.1 --- a/lib.graphlayout/nbproject/project.properties	Sat May 13 20:25:29 2006 +0000
     1.2 +++ b/lib.graphlayout/nbproject/project.properties	Sat May 13 22:36:45 2006 +0000
     1.3 @@ -15,6 +15,7 @@
     1.4  dist.dir=dist
     1.5  dist.jar=${dist.dir}/graphlayout.jar
     1.6  dist.javadoc.dir=${dist.dir}/javadoc
     1.7 +is.autoload=true
     1.8  jar.compress=false
     1.9  javac.classpath=
    1.10  javac.deprecation=false
     2.1 --- a/lib.graphlayout/src/org/netbeans/lib/graphlayout/Renderer.java	Sat May 13 20:25:29 2006 +0000
     2.2 +++ b/lib.graphlayout/src/org/netbeans/lib/graphlayout/Renderer.java	Sat May 13 22:36:45 2006 +0000
     2.3 @@ -30,7 +30,7 @@
     2.4      private java.util.HashMap colors = new java.util.HashMap ();
     2.5      private int colorindex = 0;
     2.6      private static Color[] basecolors = {
     2.7 -        Color.CYAN, Color.YELLOW, Color.BLUE, Color.RED, Color.MAGENTA, Color.ORANGE, Color.BLACK
     2.8 +        Color.CYAN, Color.YELLOW, Color.BLUE, Color.RED, Color.MAGENTA, Color.ORANGE, Color.DARK_GRAY
     2.9      };
    2.10      private int zoom = 100;
    2.11      private AffineTransform lastTransform;
    2.12 @@ -60,6 +60,9 @@
    2.13      private Color findColor (Vertex v) {
    2.14          Color c = (Color)colors.get (v.info);
    2.15          if (c == null) {
    2.16 +            if (colorindex == basecolors.length) {
    2.17 +                colorindex = 0;
    2.18 +            }
    2.19              c = basecolors[colorindex++];
    2.20              colors.put (v.info, c);
    2.21          }
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/projectdeps/build.xml	Sat May 13 22:36:45 2006 +0000
     3.3 @@ -0,0 +1,5 @@
     3.4 +<?xml version="1.0" encoding="UTF-8"?>
     3.5 +<project basedir="." default="netbeans" name="contrib/graphlayout/projectdeps">
     3.6 +    <description>Builds, tests, and runs the project org.netbeans.modules.projectdeps</description>
     3.7 +    <import file="../../../nbbuild/templates/projectized.xml"/>
     3.8 +</project>
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/projectdeps/manifest.mf	Sat May 13 22:36:45 2006 +0000
     4.3 @@ -0,0 +1,6 @@
     4.4 +Manifest-Version: 1.0
     4.5 +OpenIDE-Module: org.netbeans.modules.projectdeps
     4.6 +OpenIDE-Module-Layer: org/netbeans/modules/projectdeps/layer.xml
     4.7 +OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/projectdeps/Bundle.properties
     4.8 +OpenIDE-Module-Specification-Version: 1.0
     4.9 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/projectdeps/nbproject/project.properties	Sat May 13 22:36:45 2006 +0000
     5.3 @@ -0,0 +1,2 @@
     5.4 +javac.compilerargs=-Xlint:unchecked
     5.5 +javac.source=1.5
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/projectdeps/nbproject/project.xml	Sat May 13 22:36:45 2006 +0000
     6.3 @@ -0,0 +1,62 @@
     6.4 +<?xml version="1.0" encoding="UTF-8"?>
     6.5 +<project xmlns="http://www.netbeans.org/ns/project/1">
     6.6 +    <type>org.netbeans.modules.apisupport.project</type>
     6.7 +    <configuration>
     6.8 +        <data xmlns="http://www.netbeans.org/ns/nb-module-project/2">
     6.9 +            <code-name-base>org.netbeans.modules.projectdeps</code-name-base>
    6.10 +            <module-dependencies>
    6.11 +                <dependency>
    6.12 +                    <code-name-base>org.netbeans.lib.graphlayout</code-name-base>
    6.13 +                    <build-prerequisite/>
    6.14 +                    <compile-dependency/>
    6.15 +                    <run-dependency>
    6.16 +                        <specification-version>1.0</specification-version>
    6.17 +                    </run-dependency>
    6.18 +                </dependency>
    6.19 +                <dependency>
    6.20 +                    <code-name-base>org.netbeans.modules.projectapi</code-name-base>
    6.21 +                    <build-prerequisite/>
    6.22 +                    <compile-dependency/>
    6.23 +                    <run-dependency>
    6.24 +                        <release-version>1</release-version>
    6.25 +                        <specification-version>1.10</specification-version>
    6.26 +                    </run-dependency>
    6.27 +                </dependency>
    6.28 +                <dependency>
    6.29 +                    <code-name-base>org.netbeans.modules.projectuiapi</code-name-base>
    6.30 +                    <build-prerequisite/>
    6.31 +                    <compile-dependency/>
    6.32 +                    <run-dependency>
    6.33 +                        <release-version>1</release-version>
    6.34 +                        <specification-version>1.15</specification-version>
    6.35 +                    </run-dependency>
    6.36 +                </dependency>
    6.37 +                <dependency>
    6.38 +                    <code-name-base>org.openide.filesystems</code-name-base>
    6.39 +                    <build-prerequisite/>
    6.40 +                    <compile-dependency/>
    6.41 +                    <run-dependency>
    6.42 +                        <specification-version>6.5</specification-version>
    6.43 +                    </run-dependency>
    6.44 +                </dependency>
    6.45 +                <dependency>
    6.46 +                    <code-name-base>org.openide.util</code-name-base>
    6.47 +                    <build-prerequisite/>
    6.48 +                    <compile-dependency/>
    6.49 +                    <run-dependency>
    6.50 +                        <specification-version>7.0</specification-version>
    6.51 +                    </run-dependency>
    6.52 +                </dependency>
    6.53 +                <dependency>
    6.54 +                    <code-name-base>org.openide.windows</code-name-base>
    6.55 +                    <build-prerequisite/>
    6.56 +                    <compile-dependency/>
    6.57 +                    <run-dependency>
    6.58 +                        <specification-version>6.6</specification-version>
    6.59 +                    </run-dependency>
    6.60 +                </dependency>
    6.61 +            </module-dependencies>
    6.62 +            <public-packages/>
    6.63 +        </data>
    6.64 +    </configuration>
    6.65 +</project>
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/projectdeps/src/org/netbeans/modules/projectdeps/Bundle.properties	Sat May 13 22:36:45 2006 +0000
     7.3 @@ -0,0 +1,1 @@
     7.4 +OpenIDE-Module-Name=Visualize Project Dependencies
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/projectdeps/src/org/netbeans/modules/projectdeps/ShowProjectDependenciesAction.java	Sat May 13 22:36:45 2006 +0000
     8.3 @@ -0,0 +1,108 @@
     8.4 +/*
     8.5 + *                 Sun Public License Notice
     8.6 + * 
     8.7 + * The contents of this file are subject to the Sun Public License
     8.8 + * Version 1.0 (the "License"). You may not use this file except in
     8.9 + * compliance with the License. A copy of the License is available at
    8.10 + * http://www.sun.com/
    8.11 + * 
    8.12 + * The Original Code is NetBeans. The Initial Developer of the Original
    8.13 + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
    8.14 + * Microsystems, Inc. All Rights Reserved.
    8.15 + */
    8.16 +
    8.17 +package org.netbeans.modules.projectdeps;
    8.18 +
    8.19 +import java.awt.BorderLayout;
    8.20 +import java.util.HashSet;
    8.21 +import java.util.Set;
    8.22 +import javax.swing.Action;
    8.23 +import org.netbeans.api.project.Project;
    8.24 +import org.netbeans.api.project.ProjectInformation;
    8.25 +import org.netbeans.api.project.ProjectUtils;
    8.26 +import org.netbeans.lib.graphlayout.Graph;
    8.27 +import org.netbeans.lib.graphlayout.Vertex;
    8.28 +import org.netbeans.spi.project.SubprojectProvider;
    8.29 +import org.netbeans.spi.project.ui.support.ProjectActionPerformer;
    8.30 +import org.netbeans.spi.project.ui.support.ProjectSensitiveActions;
    8.31 +import org.openide.filesystems.FileObject;
    8.32 +import org.openide.windows.TopComponent;
    8.33 +
    8.34 +/**
    8.35 + *
    8.36 + * @author Jaroslav Tulach
    8.37 + */
    8.38 +final class ShowProjectDependenciesAction 
    8.39 +implements ProjectActionPerformer {
    8.40 +    
    8.41 +    /** Creates a new instance of ShowProjectDependenciesAction */
    8.42 +    private ShowProjectDependenciesAction() {
    8.43 +    }
    8.44 +    
    8.45 +    public static Action create() {
    8.46 +        return ProjectSensitiveActions.projectSensitiveAction(new ShowProjectDependenciesAction(), "Show Project Dependencies", null);
    8.47 +    }
    8.48 +
    8.49 +    public boolean enable(Project project) {
    8.50 +        return project != null;
    8.51 +    }
    8.52 +
    8.53 +    public void perform(Project project) {
    8.54 +        Graph g = Graph.create();
    8.55 +        HashSet<FileObject> direct = new HashSet<FileObject>();
    8.56 +        
    8.57 +        direct.add(project.getProjectDirectory());
    8.58 +        SubprojectProvider prov = project.getLookup().lookup(SubprojectProvider.class);
    8.59 +        if (prov != null) {
    8.60 +            for (Object o : prov.getSubprojects()) {
    8.61 +                Project p = (Project)o;
    8.62 +                
    8.63 +                direct.add(p.getProjectDirectory());
    8.64 +            }
    8.65 +        }
    8.66 +        
    8.67 +        collectProjects(g, new HashSet<FileObject>(), direct, project);
    8.68 +
    8.69 +        ProjectInformation info = ProjectUtils.getInformation(project);
    8.70 +        
    8.71 +        TopComponent tc = new TopComponent();
    8.72 +        tc.setName(info.getName());
    8.73 +        tc.setDisplayName(info.getDisplayName());
    8.74 +        tc.setLayout(new BorderLayout());
    8.75 +        tc.add(BorderLayout.CENTER, g.createRenderer());
    8.76 +        tc.open();
    8.77 +        tc.requestActive();
    8.78 +    }
    8.79 +    
    8.80 +    private static void collectProjects(Graph g, Set<FileObject> visited, Set<FileObject> include, Project p) {
    8.81 +        if (!include.contains(p.getProjectDirectory())) {
    8.82 +            return;
    8.83 +        }
    8.84 +        if (!visited.add(p.getProjectDirectory())) {
    8.85 +            return;
    8.86 +        }
    8.87 +        
    8.88 +        ProjectInformation info = ProjectUtils.getInformation(p);
    8.89 +        Vertex v = g.createVertex(info.getName(), info.getDisplayName());
    8.90 +
    8.91 +        SubprojectProvider prov = p.getLookup().lookup(SubprojectProvider.class);
    8.92 +        for (Object o : prov.getSubprojects()) {
    8.93 +            Project sub = (Project)o;
    8.94 +            
    8.95 +            if (include.contains(sub.getProjectDirectory())) {
    8.96 +                ProjectInformation info2 = ProjectUtils.getInformation(sub);
    8.97 +                Vertex subVer = g.createVertex(info2.getName(), info2.getDisplayName());
    8.98 +
    8.99 +                g.createEdge(v, subVer, 1);
   8.100 +            }
   8.101 +        }
   8.102 +        
   8.103 +        for (Object o : prov.getSubprojects()) {
   8.104 +            Project sub = (Project)o;
   8.105 +
   8.106 +            collectProjects(g, visited, include, sub);
   8.107 +        }
   8.108 +    }
   8.109 +    
   8.110 +    
   8.111 +}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/projectdeps/src/org/netbeans/modules/projectdeps/layer.xml	Sat May 13 22:36:45 2006 +0000
     9.3 @@ -0,0 +1,19 @@
     9.4 +<?xml version="1.0" encoding="UTF-8"?>
     9.5 +<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
     9.6 +<filesystem>
     9.7 +    <folder name="Actions">
     9.8 +        <folder name="Project">
     9.9 +            <file name="org-netbeans-modules-projectdeps-ShowProjectDependenciesAction.instance">
    9.10 +                <attr name="instanceCreate" methodvalue="org.netbeans.modules.projectdeps.ShowProjectDependenciesAction.create"/>
    9.11 +            </file>
    9.12 +        </folder>
    9.13 +    </folder>
    9.14 +    
    9.15 +    <folder name="Menu">
    9.16 +        <folder name="Tools">
    9.17 +            <file name="org-netbeans-modules-projectdeps-ShowProjectDependenciesAction.shadow">
    9.18 +                <attr name="originalFile" stringvalue="Actions/Project/org-netbeans-modules-projectdeps-ShowProjectDependenciesAction.instance"/>
    9.19 +            </file>            
    9.20 +        </folder>
    9.21 +    </folder>
    9.22 +</filesystem>