Changeset 2531

Show
Ignore:
Timestamp:
10/20/08 16:34:10 (3 months ago)
Author:
pataphil
Message:

Specified parameters can now be chosen from a drop-down list of node attributes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plugins/visualization/edu.iu.nwb.visualization.prefuse.beta/src/edu/iu/nwb/visualization/prefuse/beta/common/PrefuseBetaAlgorithmFactory.java

    r1975 r2531  
    7070                } 
    7171        } 
     72         
     73        protected AttributeDefinition[] createAttributeDefinitions(AttributeDefinition[] oldAttributeDefinitions, 
     74                                                                                                                           String[] nodeAttributesArray, 
     75                                                                                                                           String[] edgeAttributesArray) 
     76        { 
     77                final int numAttributeDefinitions = oldAttributeDefinitions.length; 
     78                AttributeDefinition[] newAttributeDefinitions = new AttributeDefinition [numAttributeDefinitions]; 
     79                 
     80                for (int ii = 0; ii < numAttributeDefinitions; ii++) 
     81                { 
     82                        String id = oldAttributeDefinitions[ii].getID(); 
     83                         
     84                        if(id.equals(Constants.nodeSizeField)) 
     85                        { 
     86                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.nodeSizeField, 
     87                                        "Node Size", "The label for the node size property", AttributeDefinition.STRING, 
     88                                        nodeAttributesArray, nodeAttributesArray); 
     89                        } 
     90                        else if(id.equals(Constants.edgeSizeField)) 
     91                        { 
     92                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.edgeSizeField, 
     93                                        "Edge Size", "The label for the edge size property", 
     94                                        AttributeDefinition.STRING, edgeAttributesArray, edgeAttributesArray); 
     95                        } 
     96                        else if(id.equals(Constants.nodeColorField)) 
     97                        { 
     98                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.nodeColorField, 
     99                                        "Node Color", "The label for the node color property", 
     100                                        AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray); 
     101                        } 
     102                        else if(id.equals(Constants.edgeColorField)) 
     103                        { 
     104                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.edgeColorField, 
     105                                        "Edge Color", "The label for the edge color property", 
     106                                        AttributeDefinition.STRING, edgeAttributesArray, edgeAttributesArray); 
     107                        } 
     108                        else if(id.equals(Constants.ringColorField)) 
     109                        { 
     110                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.ringColorField, 
     111                                        "Ring Color", "The label for the ring color property", 
     112                                        AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray); 
     113                        } 
     114                        else if(id.equals(Constants.nodeShapeField)) 
     115                        { 
     116                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.nodeShapeField, 
     117                                        "Node Shape", "The label for the node shape property", 
     118                                        AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray); 
     119                        } 
     120                        else 
     121                                newAttributeDefinitions[ii] = oldAttributeDefinitions[ii]; 
     122                } 
     123                 
     124                return newAttributeDefinitions; 
     125        } 
    72126 
    73         public ObjectClassDefinition mutateParameters(Data[] data, ObjectClassDefinition parameters) { 
     127        public ObjectClassDefinition mutateParameters(Data[] data, ObjectClassDefinition parameters) 
     128        { 
    74129                Graph graph = (prefuse.data.Graph) data[0].getData(); 
     130                BasicObjectClassDefinition objectClassDefinition; 
    75131                 
    76                 BasicObjectClassDefinition definition; 
    77                 try { 
    78                         definition = new BasicObjectClassDefinition(parameters.getID(), parameters.getName(), parameters.getDescription(), parameters.getIcon(16)); 
    79                 } catch (IOException e) { 
    80                         definition = new BasicObjectClassDefinition(parameters.getID(), parameters.getName(), parameters.getDescription(), null); 
     132                try 
     133                { 
     134                        objectClassDefinition = new BasicObjectClassDefinition(parameters.getID(), 
     135                                        parameters.getName(), parameters.getDescription(), parameters.getIcon(16)); 
     136                } 
     137                catch (IOException e) 
     138                { 
     139                        objectClassDefinition = new BasicObjectClassDefinition(parameters.getID(), 
     140                                        parameters.getName(), parameters.getDescription(), null); 
    81141                } 
    82142 
     
    84144                String[] edgeAttributesArray = createKeyArray(graph.getEdgeTable().getSchema()); 
    85145 
    86                 //System.err.println(oldDefinition.getID()); 
     146                AttributeDefinition[] oldRequiredAttributes = 
     147                        parameters.getAttributeDefinitions(ObjectClassDefinition.REQUIRED);      
     148                AttributeDefinition[] newRequiredAttributes = 
     149                        createAttributeDefinitions(oldRequiredAttributes, nodeAttributesArray, edgeAttributesArray); 
     150                 
     151                AttributeDefinition[] oldOptionalAttributes = 
     152                        parameters.getAttributeDefinitions(ObjectClassDefinition.OPTIONAL); 
     153                AttributeDefinition[] newOptionalAttributes = 
     154                        createAttributeDefinitions(oldOptionalAttributes, nodeAttributesArray, edgeAttributesArray); 
     155                 
     156                for (int ii = 0; ii < newRequiredAttributes.length; ii++) 
     157                        objectClassDefinition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, newRequiredAttributes[ii]); 
     158                 
     159                for (int ii = 0; ii < newOptionalAttributes.length; ii++) 
     160                        objectClassDefinition.addAttributeDefinition(ObjectClassDefinition.OPTIONAL, newOptionalAttributes[ii]); 
    87161 
    88                 AttributeDefinition[] definitions = parameters.getAttributeDefinitions(ObjectClassDefinition.ALL); 
    89  
    90                 for(int ii = 0; ii < definitions.length; ii++) { 
    91                         String id = definitions[ii].getID(); 
    92                         //System.err.println(id); 
    93                         if(id.equals("nodeSize")) { 
    94                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, 
    95                                                 new BasicAttributeDefinition("nodeSize", "Node Size", "The label for the node size property", AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray)); 
    96                         } else if(id.equals("edgeSize")) { 
    97                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, 
    98                                                 new BasicAttributeDefinition("edgeSize", "Edge Size", "The label for the edge size property", AttributeDefinition.STRING, edgeAttributesArray, edgeAttributesArray)); 
    99                         } else if(id.equals("nodeColor")) { 
    100                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, 
    101                                                 new BasicAttributeDefinition("nodeColor", "Node Color", "The label for the node color property", AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray)); 
    102                         } else if(id.equals("edgeColor")) { 
    103                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, 
    104                                                 new BasicAttributeDefinition("edgeColor", "Edge Color", "The label for the edge color property", AttributeDefinition.STRING, edgeAttributesArray, edgeAttributesArray)); 
    105                         } else if(id.equals("ringColor")) { 
    106                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, 
    107                                                 new BasicAttributeDefinition("ringColor", "Ring Color", "The label for the ring color property", AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray)); 
    108                         } else if(id.equals("nodeShape")) { 
    109                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, 
    110                                                 new BasicAttributeDefinition("nodeShape", "Node Shape", "The label for the node shape property", AttributeDefinition.STRING, nodeAttributesArray, nodeAttributesArray)); 
    111                         } else { 
    112                                 definition.addAttributeDefinition(ObjectClassDefinition.REQUIRED, definitions[ii]); 
    113                         } 
    114                 } 
    115  
    116                 return definition; 
     162                return objectClassDefinition; 
    117163        } 
    118164} 
  • trunk/plugins/visualization/edu.iu.nwb.visualization.prefuse.beta/src/edu/iu/nwb/visualization/prefuse/beta/specified/Specified.java

    r1975 r2531  
    11package edu.iu.nwb.visualization.prefuse.beta.specified; 
    22 
     3import org.cishell.framework.data.Data; 
     4import org.cishell.reference.service.metatype.BasicAttributeDefinition; 
     5import org.cishell.reference.service.metatype.BasicObjectClassDefinition; 
     6import org.osgi.service.metatype.AttributeDefinition; 
     7import org.osgi.service.metatype.ObjectClassDefinition; 
     8 
     9import edu.iu.nwb.visualization.prefuse.beta.common.Constants; 
    310import edu.iu.nwb.visualization.prefuse.beta.common.PrefuseBetaAlgorithmFactory; 
    411import edu.iu.nwb.visualization.prefuse.beta.common.PrefuseBetaVisualization; 
     
    1219        protected PrefuseBetaVisualization getVisualization() { 
    1320        return new SpecifiedVisualization(); 
    14     } 
     21        } 
     22         
     23        protected AttributeDefinition[] createAttributeDefinitions(AttributeDefinition[] oldAttributeDefinitions, 
     24                                                                                                                           String[] nodeAttributesArray, 
     25                                                                                                                           String[] edgeAttributesArray) 
     26        { 
     27                final int numAttributeDefinitions = oldAttributeDefinitions.length; 
     28                AttributeDefinition[] newAttributeDefinitions = new AttributeDefinition [numAttributeDefinitions]; 
     29                 
     30                for (int ii = 0; ii < numAttributeDefinitions; ii++) 
     31                { 
     32                        String id = oldAttributeDefinitions[ii].getID(); 
     33                 
     34                        if(id.equals(Constants.x)) 
     35                        { 
     36                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.x, 
     37                                        "X", "The label of the x dimension", AttributeDefinition.STRING, 
     38                                        nodeAttributesArray, nodeAttributesArray); 
     39                        } 
     40                        else if(id.equals(Constants.y)) 
     41                        { 
     42                                newAttributeDefinitions[ii] = new BasicAttributeDefinition(Constants.y, "Y", 
     43                                        "The label of the y dimension", AttributeDefinition.STRING, 
     44                                        nodeAttributesArray, nodeAttributesArray); 
     45                        } 
     46                        else 
     47                                newAttributeDefinitions[ii] = oldAttributeDefinitions[ii]; 
     48                } 
     49                 
     50                return newAttributeDefinitions; 
     51        } 
    1552} 
  • trunk/plugins/visualization/edu.iu.nwb.visualization.prefuse.beta/src/edu/iu/nwb/visualization/prefuse/beta/specified/SpecifiedVisualization.java

    r1975 r2531  
    115115                 
    116116                 
     117                 
    117118         
    118119