Changes I Made
In order to get SoNIA to do what we needed it to do, I need to make changes to the code. This is a list of what I did, and in which files.
In a number of files there is a Point translate. I used that to keep track of how I should translate the picture. So that is in
SoniaController? ,
LayoutWindow? , and
NodeMover? for sure, but just in case. Just know anything that has translate in it, was added by me.
Also, everything except for the above mentioned has a comment 'Added by
GregAllan' next to it. So if you search that in the .java files, you will see what all I changed.
sonia.SoniaController.java
Added the fields:
- private NodeClickedWindow? nodeClickedWindow;
- private NodeClickedArt? nodeClickedArt;
main():
- boolean tempBigfont = false;
- boolean tempStep = false;
- boolean tempChirp = false;
- The 7 or so commented lines under these for debugging purposes
In the
for loop in
main():
- if (arg.startsWith("output:")){...}
- if (arg.startsWith("bigfont:")){...}
- if (arg.startsWith("step:")) {...}
- if (arg.startsWith("chirp:")){...}
In
loadFile() :
- else if (fileName.endsWith(".xml")) {...}
runBatch():
- if(step){...}
- else if(outputFileName!=null){...}
createLayout():
- added the NodeClickedWindow? stuff
- added the NodeClickedArt? stuff
I also added the last 7 methods in the file.
sonia.ui.ExportableFrame.java
Added the whole
kludgeExportContent(), used in batch mode when you want to output only one frame instead of a movie.
sonia.NodeMover.java
Added the fields:
- public static final String STARS = "**********************";
- public static final String ARROWS = "<><><><><><><><><><><>";
Added everything in the
mouseClicked()
sonia.parsers.DotSonParser.java
at the end of the
ParseNetwork() there is a try-catch block I added. It checks to see if there is a .meta file with the same name as the .son file it just read it. If there is, it then calls the parseMetaData(s, nodeList). s being the scanner it tried to open with the file name. If there is no .meta file, then things proceed as normal.
sonia.MetaData.java
I added this whole file to be able to associate more data with a particular node.
NodeAttribute? uses this.
sonia.NodeAttribute.java
Added field
- public MetaData? meta_data = new MetaData? ();
sonia.LayoutSlice.java
Added the gOutDegree();
Added the gInDegree();
Added Vector
users
Added Vector apps
added the populateUsersCombo()
added the populateAppsCombo()
sonia.settings.{LayoutSettingsDialog.java, GraphicsSettingsDialog? .java, ApplySettingsDialog? .java} & sonia.layouts.MultiCompKKLayout.java
Changed a couple of the fields so that they would default to what I wanted them to default to
sonia.render.Render.java
Modified the paintNodeLabels method, add the last parameter to it, boolean bigFont. So this way when you call it, it checks to see if that flag is set and if it is then it will make the labels be a size eighteen.
sonia.render.Graphics2DRender.java
In the paintNodeLabels() function i added the if(bigFont){...} statement, it changes for a moment paints the label, and then changes back
sonia.parser.XMLtoSon.java
Added the whole file. Takes an XML file and graphs the hierarchy
sonia.parser.ChirpXML.java
Added the whole file. Pings the chrip site, then graphs the data.
sonia.ui.NodeClickedWindow.java
Added the whole file. Makes a new frame which you can output data about a node that you clicked
soina.ui.NodeClickedArt.java
Added the whole file. Does nothing except pop up as of now. But we talked about using it to draw something, hence the art in the title;
soina.settings.GraphicsSettingsDialog.java
I commented out four lines in readsettings(), the ones to do with WindowHeight? , and WindowWidth? , this is because when you had resized your pane, and then you clicked the View Options button, it would put the original height and width into the boxes, and I wanted it to put the current height and width into the appropriate boxes. Commenting these four line out made that possible.
sonia.ui.LayoutWindow.java
Added a mouseMotionListener, and a mouseListener, and the functions associated with them
Added the function APPLY(), used in KludgeExportContent? , this was so you could apply the apply settings without actually having to click on any buttons.
in the moveNodes() method i added the LayoutArea? .removeMouseListeners and LayoutArea? .addMouseListeners, so that when you instantiated another listener they wouldn't mess with each other.
sonia.Meta2Data
Added the whole file. It parses the .meta2 file that is associated with a .son file.
-- GregAllan - 31 Jul 2007