# JGraph



## pditty (5. Jul 2006)

hat jemand tipps und tricks zum thema JGraph??? außerdem hab ich Probleme ein JGraph in einen View zu implementieren, ich hoffe ihr könnt mir dabei weiterhelfen


----------



## AlArenal (5. Jul 2006)

Noch allgemeiner konntest du nicht fragen, oder?

Tipps spezifisch wozu? Was für ein Proplem? Code? Fehlerbeschreibung?


----------



## pditty (5. Jul 2006)

hab ne perspektive mit zwei views, in einen davon möchte ich ein jgraph einfügen(das "Hello World" Beispiel von jgraph).
In diesem "Hello World" Beispiel ist der jgraph in einem frame sichtbar, ich will jgraph aber im frame:



```
public void createPartControl(Composite parent) {
final Composite c=new Composite(parent,SWT.NONE);
				
		c.addPaintListener (new PaintListener () { 
		      public void paintControl (PaintEvent event) { 
		    	  HelloWorld hw=new HelloWorld(c);	    	
		    
		      }
		   });
```

Das ist meine Methode im View, über die ich meine "Hello World" Klasse aufruf.



```
public class HelloWorld {

	public HelloWorld([b]Composite c[/b]) {

		// Construct Model and Graph
		GraphModel model = new DefaultGraphModel();
		JGraph graph = new JGraph(model);

		// Control-drag should clone selection
		graph.setCloneable(true);

		// Enable edit without final RETURN keystroke
		graph.setInvokesStopCellEditing(true);

		// When over a cell, jump to its default port (we only 
		// have one, anyway)
		graph.setJumpToDefaultPort(true);

		// Insert all three cells in one call, so we need an 
		// array to store them
		DefaultGraphCell[] cells = new DefaultGraphCell[3];

		// Create Hello Vertex
		cells[0] = createVertex("Hello", 20, 20, 40, 20, 
					null, false);

		// Create World Vertex
		cells[1] = createVertex("World", 140, 140, 40, 20, 
					Color.ORANGE, true);

		// Create Edge
		DefaultEdge edge = new DefaultEdge();
		// Fetch the ports from the new vertices, 
		// and connect them with the edge
		edge.setSource(cells[0].getChildAt(0));
		edge.setTarget(cells[1].getChildAt(0));
		cells[2] = edge;

		// Set Arrow Style for edge
		int arrow = GraphConstants.ARROW_CLASSIC;
		GraphConstants.setLineEnd(edge.getAttributes(), arrow);
		GraphConstants.setEndFill(edge.getAttributes(), true);

		// Insert the cells via the cache, so they get selected
		graph.getGraphLayoutCache().insert(cells);

		// Show in Frame
		[b]JFrame frame = new JFrame();
		frame.setContentPane(graph);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);[/b]	}

	public static DefaultGraphCell createVertex(String name, double x,
		double y, double w, double h, Color bg, boolean raised) {

		// Create vertex with the given name
		DefaultGraphCell cell = new DefaultGraphCell(name);

		// Set bounds
		GraphConstants.setBounds(cell.getAttributes(),
				new Rectangle2D.Double(x, y, w, h));

		// Set fill color
		if (bg != null) {
			GraphConstants.setGradientColor(
				cell.getAttributes(), Color.orange);
			GraphConstants.setOpaque(
				cell.getAttributes(), true);
		}

		// Set raised border
		if (raised)
			GraphConstants.setBorder(
				cell.getAttributes(), 
				BorderFactory.createRaisedBevelBorder());
		else
			// Set black border
			GraphConstants.setBorderColor(
				cell.getAttributes(), Color.black);

		// Add a Port
		DefaultPort port = new DefaultPort();
		cell.add(port);
		port.setParent(cell);

		return cell;
	}

}
```

das ist die Klasse, das fett gedruckte ist mein Problem, wie kann ich jgraph meinem übergebenen *Composite c *zuordnen????

hast du vielleicht sonst noch irgendwelche tutorials oder gute webseiten zum thema jgraph???


----------



## pditty (5. Jul 2006)

hab grad gelesen dass es die möglichkeit gibt swing in swt einzubetten, vielleicht liegt auch darin das problem, hoffe mir kann irgendjemand helfen....


----------



## AlArenal (5. Jul 2006)

Mal ne Gegenfrage:
Bist du sicher das das kunterbunte Mischen von Swing und SWT ne gute Idee ist und funktioniert? Ganz abgesehen davon, dass in HelloWorld Composite c nicht verwendet wird.

Ansonsten macht das User Manual nen guten Eindruck. Zusammen mit den JavaDocs und Beispielen, sollte man da ganz gut voran kommen.


----------



## AlArenal (5. Jul 2006)

pditty hat gesagt.:
			
		

> hab grad gelesen dass es die möglichkeit gibt swing in swt einzubetten, vielleicht liegt auch darin das problem, hoffe mir kann irgendjemand helfen....



Wenn du JGraph benutzen willst, arbeite mit Swing. Wenn du SWT benutzen willst, schau dir GEF an.


----------



## pditty (5. Jul 2006)

klar wird *Composite c *nicht verwendet, weil ich ja bisher  keine möglichkeit gefunden hab, c und graph zu verbinden...
habs beispielsweise mit 
hab mir gef schon angeschaut, find jgraph aber irgendwie schöner, sieht besser aus und wirkt dynamischer... oder gibts in gef auch die möglichkeit verschiedene objekte mit der maus zu verschieben??? verbinden geht ja mittels *PolylineConnection* aber hab noch nichts gefunden was dem vom jgraph entspricht...


----------



## Guest (5. Jul 2006)

pditty hat gesagt.:
			
		

> klar wird *Composite c *nicht verwendet, weil ich ja bisher  keine möglichkeit gefunden hab, c und graph zu verbinden...
> habs beispielsweise mit
> hab mir gef schon angeschaut, find jgraph aber irgendwie schöner, sieht besser aus und wirkt dynamischer... oder gibts in gef auch die möglichkeit verschiedene objekte mit der maus zu verschieben??? verbinden geht ja mittels *PolylineConnection* aber hab noch nichts gefunden was dem vom jgraph entspricht...



schitt hab was vergessen:"hab beispielsweise mit" 


```
JGraph graph = new JGraph(c);
```
probiert es irgendwie hinzubekommen, geht aber alles nicht...
das problem ist, dass ich auf jeden fall *perspectives* und *views* verwenden will, das geht mit swing leider nicht...


----------



## AlArenal (5. Jul 2006)

Mit GEF kannst du alles mögliche machen. Diverse UML-Plugins oder BPM-Plugins, oder oder oder ... nutzen das auch.


----------



## pditty (5. Jul 2006)

hast du vielleicht (ganz zufällig) ein geeignetes tuturial oder links???


----------



## AlArenal (5. Jul 2006)

Auch nur, was Google so ausspuckt. Ich habe selbst nämlich weder mit SWT noch GEF was am Hut.

Link


----------



## pditty (5. Jul 2006)

alles klar, vielen dank, hast mir sehr weitergeholfen...


----------

