Git Product home page Git Product logo

graphtea's Introduction

Gitter Build StatusPreview

GraphTea

GraphTea is a software framework to work on graphs and social networks. It helps you to:

  • draw a graph
  • get reports about it
  • run algorithms on it
  • visualize it

DOWNLOAD GraphTea

it runs under window/linux/mac osx (based on java).

YouTube demo

see this video

RUN

execute run.bat (windows), or run.sh (linux/mac).

manually:

java -jar graphtea-main.jar

DEVELOP

for working on the source,

  1. make your changes
  2. run make.sh (or type in terminal ./make.sh)
  3. it will compile your changes and run the application.

manually:

  1. open terminal
  2. cd src/scripts
  3. ant. this will build the application for you in the binary folder.
  4. for seeing your changes do the steps described for "run"

note that you should have appache ant installed.

Write a graph algorithm,

go change this file: SampleAlgorithm.java. you can make also reports, generators, file formats and actions.

What can you do with graphtea?

  • Drawing your graph with a mouse or using predefined graphs (under graph > generate), like trees, complete graphs, stars, generalized peterson, etc.

  • Getting information about your graphs (under graph > reports menu), like num of connected components, chromatic number, independence number, girth size, num of triangles etc.

  • Run algorithms step by step on your graph and see how they work. This is very usefull for teaching graph algorithms. You can pause, and it shows the current state of algorithm by coloring edges and vertices.

  • Visualizing your graphs. You made a social network from your database and want to represent it in a meaningfull way? Use the visualizations.

  • Presenting your graphs in your papers, websites or reports. GraphTea has a wide range of options to draw graphs, having different colors for edges and vertices, different borders, fonts, sizes, etc. When you finish drawing your graph, you can save to an image file or even to a Tex document to put in your report.

  • making new graph generators, graph reports, file types, actions, algorithms by writing extensions. Extensions provide a gateway to add new functionalities as simple as putting a file to extensions directory. You can write them using Java and Matlab. For more samples take a look at extensions directory.

Need help?

more docs will come soon. if you have any questions just post it in the issues, and we will write you back as soon as possible.

CONTRIBUTE

(http://help.github.com/send-pull-requests/)

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Web Frontend

Look at GTea (https:/github.com/rostam/GTea).


Credits

  • Current Developers:

    • Mohammad Ali Rostami rostamiev [at] gmail [dot] com
    • Azin Azadi aazadi [at] gmail [dot] com
    • E. Suresh sureshkako [at] gmail [dot] com
  • GraphTea is base on GraphLab, a software developed in Sharif university of Technology [0].

    • Supervisor: Dr. Amir Daneshgar [1]
    • Contributors: Azin Azadi, Ruzbeh Ebrahimi, Omid Aladini, Reza Mohammadi, Mohammad Ali Rostami [2], Mina Naghshnejad, Ali Ershadi, Soroosh Sabet, With Thanks to: Soheil Siadatnejad

graphtea's People

Contributors

adiknoth avatar azinazadi avatar birddevelper avatar gitter-badger avatar masoumeh avatar rostam avatar sureshkako avatar welcius avatar zyr00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graphtea's Issues

Zooming and Box resizing

A feature that would make the program better is being able to zoom. Being able to zoom by pressing ctrl and +, - or ctrl and scroll wheel.

The horizontal line separating the tree area and the top bit is hard to resize because the area that the resize handle appears is so small that it is hard to do on a touchpad

Help broken!

I got this error when I run the help:

java.lang.UnsupportedOperationException: Desktop API is not supported on the current platform.

It closed GraphTea.

Also, when I click on "more" in the welcome message on the status bar.

Coloring

Coloring are not correct. For the bug generation, use Banana Tree with default parameters, i.e. (3,3) and check coloring. However it seems that the report of chromatic number is correct.

Dijkstra

Hello,

I am a teacher in France.

Thank you very much for this beautiful software.
I begin to use it.

Sometimes there is an error using Dijkstra's algorithm.
I sent you an example.
BugExample.pdf

Best regards

Dijkstra

The Dijkstra algorithm provides minumum distance 13 between 1 and 6 but actually the minimum distance is 9

java.lang.Throwable: Error while loading graphtea.plugins.main.core.actions.RightClickAction. skipped.
at graphtea.ui.xml.UIHandlerImpl.handle_action(Unknown Source)
at graphtea.ui.xml.UIParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at graphtea.ui.xml.UIParser.parse(Unknown Source)
at graphtea.ui.xml.UIParser.parse(Unknown Source)
at graphtea.ui.xml.UIParser.parse(Unknown Source)
at graphtea.ui.UI.loadXML(Unknown Source)
at graphtea.ui.UI.loadXML(Unknown Source)
at graphtea.plugins.main.core.Init.init(Unknown Source)
at graphtea.plugins.main.Init.init(Unknown Source)
at graphtea.platform.plugin.Plugger.load(Unknown Source)
at graphtea.platform.plugin.Plugger.dfs(Unknown Source)
at graphtea.platform.plugin.Plugger.dfs(Unknown Source)
at graphtea.platform.plugin.Plugger.plug(Unknown Source)
at graphtea.platform.Application.loadPlugins(Unknown Source)
at graphtea.platform.Application.run(Unknown Source)
at graphtea.platform.Application.init(Unknown Source)
at graphtea.platform.Application.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:65)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:101)
at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:26)

Subgraph Zooming

U can zoom to some subgraph,
it mean that the other part of graphs are just a imagical representation.

Is Eulerian? feature doesnt work properly

UPDATE:

Pulled a new request solving it

Pull request

Working on GraphTea newrooz 1.5.4
Reports -> General -> Is Eulerian?

theorem

Doesn't work properly in my graph, as you see all the vertices have even degrees so it should be an Eulerian graph, correct me if I am wrong.

Graph

Adding time dimension to graph.

It would be nice if edges have delay property .(transit time of the edge)
So following algorithms could be added to GraphTea based on delay of edges :
1-maximum flow over time
2-quickest flow over time
3-earliest flow over time
...

graph to json

get rid of xml representation and introduce json to be able to save/load and cut/copy/paste and connect to other programing languages using redis.

Prim algo

After selecting vertex nothing happens,
no tree is shown or calculated.

Using reports though,
an array solution is given (u can choose the starting point)

Latex not generating properly

Hello,
Recently I tried to generate a latex drawing for a graph and I cannot get the same look as the one I generate in the program. Is there something specific I should do to make it work?

Project doen't build

I just clone the repo and tried to build the project but to no effect

Uname -r

[redacted@arch GraphTea]$ uname -a 
Linux arch 5.5.4-arch1-1 #1 SMP PREEMPT Sat, 15 Feb 2020 00:36:29 +0000 x86_64 GNU/Linux 

Output:

[redacted@arch GraphTea]$ ./make.sh 
Buildfile: /home/redacted/projects/GraphTea/build.xml 
clean: 
   [delete] Deleting directory /home/redacted/projects/GraphTea/binary 
   [delete] Deleting directory /home/redacted/projects/GraphTea/build 
BUILD SUCCESSFUL 
Total time: 0 seconds 
Buildfile: /home/redacted/projects/GraphTea/build.xml 
depends: 
    [mkdir] Created dir: /home/redacted/projects/GraphTea/build 
    [mkdir] Created dir: /home/redacted/projects/GraphTea/binary 
    [mkdir] Created dir: /home/redacted/projects/GraphTea/binary/lib 
    [mkdir] Created dir: /home/redacted/projects/GraphTea/binary/plugins 
    [mkdir] Created dir: /home/redacted/projects/GraphTea/binary/extensions 
compile: 
    [javac] /home/redacted/projects/GraphTea/build.xml:67: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 
    [javac] Compiling 878 source files to /home/tunes/projects/GraphTea/build 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/extensions/io/GraphSaveObject.java:7: error: package javax.xml.bind does not exist 
    [javac] import javax.xml.bind.DatatypeConverter; 
    [javac]                      ^ 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/plugins/main/core/AlgorithmUtils.java:75: warning: [dep-ann] deprecated item is not annotated with @Deprecated 
    [javac]     ArrayList<ArrayList<Integer>> getAdjList(BaseGraph<VertexType, EdgeType> g) { 
    [javac]                                   ^ 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/plugins/main/core/AlgorithmUtils.java:96: warning: [dep-ann] deprecated item is not annotated with @Deprecated 
    [javac]     int getDegree(BaseGraph<VertexType, EdgeType> bg, int node) { 
    [javac]         ^ 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/plugins/main/core/AlgorithmUtils.java:116: warning: [dep-ann] deprecated item is not annotated with @Deprecated 
    [javac]     ArrayList<VertexType> getNeighbors(BaseGraph<VertexType, EdgeType> g, VertexType source) { 
    [javac]                           ^ 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/plugins/main/core/AlgorithmUtils.java:135: warning: [dep-ann] deprecated item is not annotated with @Deprecated 
    [javac]     ArrayList<VertexType> getNeighbors2(BaseGraph<VertexType, EdgeType> g, VertexType source) { 
    [javac]                           ^ 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/extensions/io/GraphSaveObject.java:79: error: cannot find symbol 
    [javac]         return DatatypeConverter.printBase64Binary(getBytesOfGraph(g)); 
    [javac]                ^ 
    [javac]   symbol:   variable DatatypeConverter 
    [javac]   location: class GraphSaveObject 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/extensions/io/GraphSaveObject.java:83: error: cannot find symbol 
    [javac]         return getGraphFromBytes(DatatypeConverter.parseBase64Binary(s)); 
    [javac]                                  ^ 
    [javac]   symbol:   variable DatatypeConverter 
    [javac]   location: class GraphSaveObject 
    [javac] /home/redacted/projects/GraphTea/src/graphtea/extensions/io/GraphSaveObject.java:87: error: cannot find symbol 
    [javac]         return getGraphSaveOobjectfromBytes(DatatypeConverter.parseBase64Binary(s)); 
    [javac]                                             ^ 
    [javac]   symbol:   variable DatatypeConverter 
    [javac]   location: class GraphSaveObject 
    [javac] Note: Some input files use or override a deprecated API. 
    [javac] Note: Recompile with -Xlint:deprecation for details. 
    [javac] Note: Some input files use unchecked or unsafe operations. 
    [javac] Note: Recompile with -Xlint:unchecked for details. 
    [javac] 4 errors 
    [javac] 4 warnings 
BUILD FAILED 
/home/redacted/projects/GraphTea/build.xml:67: Compile failed; see the compiler error output for details. 
Total time: 3 seconds 
Error: Unable to access jarfile binary/graphtea-main.jar 

undo / redo

we had a action based undo / redo, which was very problematic. for every action we had to define undo and redo methods. then we switched to a time based undo / redo , which saves the graph state every two seconds. this makes it easier to write new actions and extensions, but still is not finished.

currently it save the graph state in json. it can be other things like our new simplegraph format. we should think about a good format, and the rest is almost done. the code is at:

UndoManager, UndoAction, RedoAction

Sudoku 4x4

In my opinion the regular graph with 16 vertices each of degree 7 is the model for the sudoku 4x4.
Therefore the chromatic number is 4 but GraphtTea says 6.
Who is right?
Thanks

the banana tree vertex positioning, sucks

it is like this:
Screenshot_08 04 13_11_43

it should be like this:
Screenshot_08 04 13_11_44-5

this is very important issue, because banana tree is the most used generator in graphtea. probably because it is the first item in the generate menu

Self-connected vertices

Hi guys. I just started using GraphTea and I can't work out how to draw an edge from a vertex to itself. Can you let me know how to do this? Sorry if I'm missing something obvious.

Does graphTea work missing java -jar graphtea-main.jar

I am trying to install the software on ubuntu 15.10. It keeps complaining about the java -jar graphtea-main.jar file. Even the deb version of the software doesn't make a software icon so I can find it in the software library of installed software.

Make graphtea runnable from any directory

Hi!

I'm currently working on Debian's graphtea package. During the build process, we create the following symlink:

adi@foh:~$ ls -lh /usr/bin/graphtea
lrwxrwxrwx 1 root root 35 Apr 23 17:16 /usr/bin/graphtea -> ../share/graphtea/graphtea-main.jar

However, executing graphtea results in

adi@foh:~$ graphtea
There is no directory with name plugins.

When I run it from /usr/share/graphtea instead, it works as expected.

So graphtea has the notion of always running from a directory in which it also finds the plugin/, extensions/, and lib/ subdirectory.

I've started to make graphtea find its own plugin directory by querying the location of the current jar file. See commit ecb8c8e

Unfortunately, this is not enough. The GUI starts, but the "Generate graphs" menu item is empty. I have absolutely no Java experience, so somebody who knows graphtea should have a look. In the end, it should be possible to say

$ java -jar /path/to/graphtea-main.jar

with full functionality, e.g., omit the "cd binary/" and try

$ java -jar binary/graphtea-main.jar

instead. This has to work.

Cheers

Reset Graph button functionality!!

The reset button resets the color of the graph to a constant color "0". It is not correct when the user changes the color of the vertex.

Download Problem in Windows 10

Clicking the download button for Windows causes the following message to appear: We're sorry, but something went wrong.

Prüfer sequence

I have been searching for this feature in the program and I didn't find it (sorry if already exists and I didn't see)

Weights are not shown

Using
$ java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

Complement Issue

"Make selection complement" isn't deleting existing edges, only adding ones which aren't there

Status Bar Size

In my mind the status bar, where the welcome message comes, does not have a suitable size.

I think it should be smaller then the most part of the page used for Graph Drawing.

graph based vector graphics

http://azingoft.blogspot.de/2008/11/blog-post_10.html
with this code:

Init.java:
public class Init implements PluginInterface {
HashSet addedGRs = new HashSet();
static final String CURVE_WIDTH = "Curve Width";

public void init(final BlackBoard blackboard) {
blackboard.addListener(new Event(AbstractGraphRenderer.name), new Listener() {
public void notifyRelevantActions(Event notifierName, Object value) {
AbstractGraphRenderer gr = AbstractGraphRenderer.getCurrentGraphRenderer(blackboard);
if (addedGRs.contains(gr)) return;
gr.addPaintHandler(new Painter());
addedGRs.add(gr);
}
});
VertexModel.addGlobalUserDefinedAttribute(CURVE_WIDTH, 5);
}
}

Painter.java:
public class Painter implements PaintHandler {
GraphData gd = new GraphData(GraphLab.blackboard);
GraphModel G = gd.getGraph();

public void paint(Graphics gr1d, Object destinationComponent) {
final Graphics2D gr = (Graphics2D) gr1d;
final int n = G.getVerticesCount();
if (n == 0) return;

AbstractGraphRenderer.getCurrentGraphRenderer(GraphLab.blackboard).ignoreRepaints(new Runnable() {
public void run() {
boolean[] marks = new boolean[n];
BaseVertex V[] = G.getVertexArray();
final VertexModel parent[] = new VertexModel[n];

   //consider the hole structure as a tree
   AlgorithmUtils.BFSrun(G, (VertexModel) V[0], new AlgorithmUtils.BFSListener() {
     public void visit(VertexModel v, VertexModel p) {
       parent[v.getId()] = p;
     }
   });


   for (VertexModel v : G) {
     if (v.getId() == 0) continue;
     if (v.getColor() == 0) {
       VertexModel v1 = parent[v.getId()];
       if (v1 == null || v1.getColor() != 0) continue;

       VertexModel v2 = parent[v1.getId()];
       if (v2 == null || v2.getColor() != 0) continue;

       //generate the curve between v1, v2 and v3
       GraphPoint p1 = v.getLocation();
       GraphPoint p2 = v1.getLocation();
       GraphPoint p3 = v2.getLocation();

       GraphPoint m1 = AlgorithmUtils.getMiddlePoint(p1, p2);
       GraphPoint m2 = AlgorithmUtils.getMiddlePoint(p2, p3);
       GraphPoint cp = p2;

       Integer w1 = v.getUserDefinedAttribute(CURVE_WIDTH);
       Integer w2 = v1.getUserDefinedAttribute(CURVE_WIDTH);
       Integer w3 = v2.getUserDefinedAttribute(CURVE_WIDTH);

       int startWidth = (w1 + w2) / 2;
       int endWidth = (w3 + w2) / 2;
       int middleWidth = w2;

       double teta1 = AlgorithmUtils.getAngle(p1, p2);
       double teta2 = AlgorithmUtils.getAngle(p1, p3);
       double teta3 = AlgorithmUtils.getAngle(p2, p3);

       //generate boundary curves
       java.awt.geom.QuadCurve2D c1 = new QuadCurve2D.Double(
         m1.x - startWidth * sin(teta1), m1.y + startWidth * cos(teta1),
         cp.x - middleWidth * sin(teta2), cp.y + middleWidth * cos(teta2),
         m2.x - endWidth * sin(teta3), m2.y + endWidth * cos(teta3));

       java.awt.geom.QuadCurve2D c2 = new QuadCurve2D.Double(
         m2.x + endWidth * sin(teta3), m2.y - endWidth * cos(teta3),
         cp.x + middleWidth * sin(teta2), cp.y - middleWidth * cos(teta2),
         m1.x + startWidth * sin(teta1), m1.y - startWidth * cos(teta1));

       //mix them
       GeneralPath gp = new GeneralPath(c1);
       gp.append(c2, true);
       gp.closePath();
       gr.setColor(Color.black);

       //fill the curve
       gr.fill(gp);
     }
   }

 }

}, false /* dont repaint after*/);
}
}

Menu color so dark

The menu in linux (at least in my ubuntu) is so dark. It is hard to read which one is which.

dfs function on AlgorithmUtils.java doesn't work properly

IsEulerian still doesn't work because isConnected fails due an error on the dfs function on AlgorithmUtils.java, seems that it only gets executed once. (tried debugging it by myself but I am not familiar with java and the project itself yet).

The code of the faulty dfs function it's this one:

public static <VertexType extends BaseVertex, EdgeType extends BaseEdge<VertexType>>
void dfs(BaseGraph<VertexType, EdgeType> g,
         int node, ArrayList visit, int parent[]) {
    visit.add(node);
    ArrayList e = getAdjList(g);
    ArrayList neighbors = (ArrayList) e.get(node);
    for (Object neighbor1 : neighbors) {
        int neighbor = (Integer) neighbor1;
        if (parent[neighbor] == -1) {
            parent[neighbor] = node;
            dfs(g, neighbor, visit, parent);
        }
    }
}

maximum flow error

The maximum flow report generates exception sometimes, for example for Generalized Peterson (20,5)

Edge Weight

Edge Weight is of type integer; this is a undesirable limitation of the tool as sometimes weights are decimal values. I have re-coded the tool to utilize Double instead of integer within a few hours, however reading old data files fail, thus this version is a major change.

I did not investigate the file format to see if there is versioning information held that would allow a conditional check, but if that version number is not in the file, you should consider it for future releases.

Show weight

I have changed the weights of edges, I click "Show weight" but nothing appears. Thanks
java.lang.Throwable: Error while loading graphtea.plugins.main.core.actions.RightClickAction. skipped.
at graphtea.ui.xml.UIHandlerImpl.handle_action(Unknown Source)
at graphtea.ui.xml.UIParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at graphtea.ui.xml.UIParser.parse(Unknown Source)
at graphtea.ui.xml.UIParser.parse(Unknown Source)
at graphtea.ui.xml.UIParser.parse(Unknown Source)
at graphtea.ui.UI.loadXML(Unknown Source)
at graphtea.ui.UI.loadXML(Unknown Source)
at graphtea.plugins.main.core.Init.init(Unknown Source)
at graphtea.plugins.main.Init.init(Unknown Source)
at graphtea.platform.plugin.Plugger.load(Unknown Source)
at graphtea.platform.plugin.Plugger.dfs(Unknown Source)
at graphtea.platform.plugin.Plugger.dfs(Unknown Source)
at graphtea.platform.plugin.Plugger.plug(Unknown Source)
at graphtea.platform.Application.loadPlugins(Unknown Source)
at graphtea.platform.Application.run(Unknown Source)
at graphtea.platform.Application.init(Unknown Source)
at graphtea.platform.Application.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:65)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:101)
at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:26)

Number of Edges not working

Reports>General>Number_Of_Edges
seems to not work properly and gives way more edges than exist. I think this might be an issue when multiple edges and vertices have been created and deleted.

Heres the stack trace that the program told me to include:

graphtea.library.exceptions.InvalidVertexException: You are trying to access or use a vertex that does not exist:Invalid
at graphtea.library.ListGraph.checkVertex(Unknown Source)
at graphtea.library.ListGraph.getEdges(Unknown Source)
at graphtea.library.ListGraph.isEdge(Unknown Source)
at graphtea.graph.graph.GraphModel.insertEdge(Unknown Source)
at graphtea.plugins.main.core.actions.edge.AddEdge.doJob(Unknown Source)
at graphtea.plugins.main.core.actions.edge.AddEdge.performAction(Unknown Source)
at graphtea.platform.core.AbstractAction.keyChanged(Unknown Source)
at graphtea.platform.core.BlackBoard.fireListeners(Unknown Source)
at graphtea.platform.core.BlackBoard.setData(Unknown Source)
at graphtea.graph.graph.FastRenderer.ActionPerformed(Unknown Source)
at graphtea.graph.graph.GraphControl.sendEventToBlackBoard(Unknown Source)
at graphtea.graph.graph.GraphControl.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.