Hi Frnd's,
m using prefuse visulation,it's have one display class and this class have one saveImage(outPu tStream, String jpg,double size);. now graph is converting ia jpg image properly.now my problem is tht,If graph is to large if it going out of screen thn ,i m getting jpg image on screen disply graph,m not getting the image of tht graph which going out of screen. this is my code
This is my code
[CODE=java] import com.sun.corba.s e.impl.orbutil. graph.Node;
import java.awt.Border Layout;
import java.awt.Dimens ion;
import java.awt.Point;
import java.awt.dnd.Dr agSource;
import java.awt.event. ActionEvent;
import java.awt.event. ActionListener;
import java.awt.event. ItemEvent;
import java.awt.event. MouseAdapter;
import java.awt.event. MouseEvent;
import java.awt.event. MouseListener;
import java.awt.event. WindowAdapter;
import java.awt.event. WindowEvent;
import java.awt.event. WindowListener;
import java.awt.image. BufferedImage;
import java.io.File;
import java.io.FileOut putStream;
import java.io.IOExcep tion;
import java.io.OutputS tream;
import java.util.Itera tor;
import javax.crypto.Nu llCipher;
import javax.swing.JBu tton;
import javax.swing.JFr ame;
import javax.swing.JOp tionPane;
import javax.swing.bor der.Border;
import prefuse.Constan ts;
import prefuse.Display ;
import prefuse.Visuali zation;
import prefuse.action. Action;
import prefuse.action. ActionList;
import prefuse.action. RepaintAction;
import prefuse.action. assignment.Colo rAction;
import prefuse.action. assignment.Data ColorAction;
import prefuse.action. layout.graph.Fo rceDirectedLayo ut;
import prefuse.activit y.Activity;
import prefuse.activit y.ActivityAdapt er;
import prefuse.activit y.ActivityListe ner;
import prefuse.control s.DragControl;
import prefuse.control s.PanControl;
import prefuse.control s.ToolTipContro l;
import prefuse.control s.ZoomControl;
import prefuse.control s.FocusControl;
import prefuse.control s.DragControl;
import prefuse.data.Gr aph;
import prefuse.data.Ta ble;
import prefuse.data.Tu ple;
import prefuse.data.io .DataIOExceptio n;
import prefuse.data.io .GraphMLReader;
import prefuse.data.io .GraphWriter;
import prefuse.data.tu ple.TupleSet;
import prefuse.render. DefaultRenderer Factory;
import prefuse.render. LabelRenderer;
import prefuse.render. ShapeRenderer;
import prefuse.util.Co lorLib;
import prefuse.util.fo rce.DragForce;
import prefuse.visual. NodeItem;
import prefuse.visual. VisualItem;
import javax.swing.*;
import java.awt.Contai ner;
import java.io.FileInp utStream;
import java.awt.Canvas ;
import java.awt.event. WindowAdapter;
import java.awt.event. WindowListener;
import java.awt.Image;
import java.util.Set;
class DrawGrahp extends JFrame{
private FileOutputStrea m fileOutPutStrea m=null;
private JButton button;
private JFrame frame;
private Visualization vis;
private LabelRenderer r;
private ActionList layout;
private ActionList color;
private Display d ;
private int a,b;
private Graph graph = null;
private JPanel jpanel;
public DrawGrahp(){
jpanel=new JPanel();
button=new JButton("Save") ;
Container con= getContentPane( );
jpanel.setLayou t(null);
button.setBound s(200,300,70,40 );
con.setSize(500 ,600);
jpanel.setSize( 1000,800);
final int l= jpanel.getHeigh t();
final int m=jpanel.getWid th();
Canvas canvas=new Canvas();
jpanel.add(butt on);
con.setVisible( true);
jpanel.setDoubl eBuffered(true) ;
jpanel.setPrefe rredSize(new Dimension(500,6 00));
Point location=new Point();
System.out.prin tln("Panel Size"+ jpanel.getSize( ));
System.out.prin tln("panel height----------"+jpanel.getHei ght()+"Panel width-------------"+jpanel.getWid th());
con.add(jpanel, BorderLayout.NO RTH);
try {
graph = new GraphMLReader() .readGraph("\\J avaApplicationS wing\\graph.xml ");
} catch (DataIOExceptio n e ) {
e.printStackTra ce();
System.err.prin tln("Error loading graph. Exiting...");
System.exit(1);
}
// nodes and edges are accessible as "graph.node s" and "graph.edge s"
vis = new Visualization() ;
vis.add("graph" , graph);
vis.setInteract ive("graph.edge s", null, false);
// -- 3. the renderers and renderer factory ---------------------------
r = new LabelRenderer(" name");
r.setRoundedCor ner(8, 8); // round the corners
ShapeRenderer sh=new ShapeRenderer() ;
sh.star(2,3,4);
sh.setBaseSize( 4);
// return our name label renderer as the default for all non-EdgeItems
// includes straight line edges for EdgeItems by default
vis.setRenderer Factory(new DefaultRenderer Factory(r));
d = new Display(vis);
// -- 4. the processing actions ---------------------------------------
int[] palette = new int[] {
ColorLib.rgb(25 5,180,180), ColorLib.rgb(19 0,190,255)
};
// map nominal data values to colors using our provided palette
DataColorAction fill = new DataColorAction ("graph.node s", "gender",
Constants.NOMIN AL, VisualItem.FILL COLOR, palette);
ColorAction text = new ColorAction("gr aph.nodes",
VisualItem.TEXT COLOR, ColorLib.gray(0 ));
if(text.equals( "sriniwas") )
{
new ColorAction("gr aph.nodes",Visu alItem.TEXTCOLO R, ColorLib.green( 240));
}
ColorAction edges = new ColorAction("gr aph.edges",
VisualItem.STRO KECOLOR, ColorLib.gray(2 00));
color = new ActionList();
color.add(fill) ;
color.add(text) ;
color.add(edges );
int aa;
for(int i=0;i<color.siz e();i++){
System.out.prin tln("sdhfshdfhs f" +i);
}
layout = new ActionList(Acti vity.INFINITY);
layout.add(new ForceDirectedLa yout("graph"));
layout.add(new RepaintAction() );
vis.putAction(" color", color);
vis.putAction(" layout", layout);
// -- 5. the display and interactive controls -------------------------
d = new Display(vis);
// d.setSize(1000, 600); // set display size
d.addControlLis tener(new DragControl());
d.addControlLis tener(new PanControl());
d.addControlLis tener(new ZoomControl());
d.addControlLis tener(new FrameFocusContr ol());
// d.addControlLis tener(new ToolTipControl( ){
//d.addControlLis tener(new DragSource());
// -- 6. launch the visualization -------------------------------------
jpanel.add(d);
vis.run("color" );
vis.run("layout ");
button.addActio nListener(new ActionListener( ){
public void actionPerformed (ActionEvent e){
if(e.getSource( )==button){
try{
jpanel.setSize( new Dimension(l*10, m*10));
System.out.prin tln("Panel Hieght"+jpanel. getHeight());
System.out.prin tln("Panel width"+jpanel.g etWidth());
Image img =d.getOffscreen Buffer();
img.getSource() ;
System.out.prin tln("A fter increase Panel Size"+ jpanel.getSize( ));
fileOutPutStrea m=new FileOutputStrea m("c:/sri/img.jpg");
d.saveImage(fil eOutPutStream," jpg",2.6);
fileOutPutStrea m.flush();
fileOutPutStrea m.close();
System.out.prin tln("------------------"+jpanel.getHei ght());
}catch(IOExcept ion ex){ex.printSta ckTrace();}
}
}
});
}
}
public class DrawGrahpDemo{
public static void main(String Arg[]){
DrawGrahp drawGraph=new DrawGrahp();
drawGraph.setVi sible(true);
drawGraph.setSi ze(500,600);
drawGraph.setDe faultCloseOpera tion(JFrame.EXI T_ON_ CLOSE);
}
}
[/CODE]
it's very importtant for me, plz help me.
m using prefuse visulation,it's have one display class and this class have one saveImage(outPu tStream, String jpg,double size);. now graph is converting ia jpg image properly.now my problem is tht,If graph is to large if it going out of screen thn ,i m getting jpg image on screen disply graph,m not getting the image of tht graph which going out of screen. this is my code
This is my code
[CODE=java] import com.sun.corba.s e.impl.orbutil. graph.Node;
import java.awt.Border Layout;
import java.awt.Dimens ion;
import java.awt.Point;
import java.awt.dnd.Dr agSource;
import java.awt.event. ActionEvent;
import java.awt.event. ActionListener;
import java.awt.event. ItemEvent;
import java.awt.event. MouseAdapter;
import java.awt.event. MouseEvent;
import java.awt.event. MouseListener;
import java.awt.event. WindowAdapter;
import java.awt.event. WindowEvent;
import java.awt.event. WindowListener;
import java.awt.image. BufferedImage;
import java.io.File;
import java.io.FileOut putStream;
import java.io.IOExcep tion;
import java.io.OutputS tream;
import java.util.Itera tor;
import javax.crypto.Nu llCipher;
import javax.swing.JBu tton;
import javax.swing.JFr ame;
import javax.swing.JOp tionPane;
import javax.swing.bor der.Border;
import prefuse.Constan ts;
import prefuse.Display ;
import prefuse.Visuali zation;
import prefuse.action. Action;
import prefuse.action. ActionList;
import prefuse.action. RepaintAction;
import prefuse.action. assignment.Colo rAction;
import prefuse.action. assignment.Data ColorAction;
import prefuse.action. layout.graph.Fo rceDirectedLayo ut;
import prefuse.activit y.Activity;
import prefuse.activit y.ActivityAdapt er;
import prefuse.activit y.ActivityListe ner;
import prefuse.control s.DragControl;
import prefuse.control s.PanControl;
import prefuse.control s.ToolTipContro l;
import prefuse.control s.ZoomControl;
import prefuse.control s.FocusControl;
import prefuse.control s.DragControl;
import prefuse.data.Gr aph;
import prefuse.data.Ta ble;
import prefuse.data.Tu ple;
import prefuse.data.io .DataIOExceptio n;
import prefuse.data.io .GraphMLReader;
import prefuse.data.io .GraphWriter;
import prefuse.data.tu ple.TupleSet;
import prefuse.render. DefaultRenderer Factory;
import prefuse.render. LabelRenderer;
import prefuse.render. ShapeRenderer;
import prefuse.util.Co lorLib;
import prefuse.util.fo rce.DragForce;
import prefuse.visual. NodeItem;
import prefuse.visual. VisualItem;
import javax.swing.*;
import java.awt.Contai ner;
import java.io.FileInp utStream;
import java.awt.Canvas ;
import java.awt.event. WindowAdapter;
import java.awt.event. WindowListener;
import java.awt.Image;
import java.util.Set;
class DrawGrahp extends JFrame{
private FileOutputStrea m fileOutPutStrea m=null;
private JButton button;
private JFrame frame;
private Visualization vis;
private LabelRenderer r;
private ActionList layout;
private ActionList color;
private Display d ;
private int a,b;
private Graph graph = null;
private JPanel jpanel;
public DrawGrahp(){
jpanel=new JPanel();
button=new JButton("Save") ;
Container con= getContentPane( );
jpanel.setLayou t(null);
button.setBound s(200,300,70,40 );
con.setSize(500 ,600);
jpanel.setSize( 1000,800);
final int l= jpanel.getHeigh t();
final int m=jpanel.getWid th();
Canvas canvas=new Canvas();
jpanel.add(butt on);
con.setVisible( true);
jpanel.setDoubl eBuffered(true) ;
jpanel.setPrefe rredSize(new Dimension(500,6 00));
Point location=new Point();
System.out.prin tln("Panel Size"+ jpanel.getSize( ));
System.out.prin tln("panel height----------"+jpanel.getHei ght()+"Panel width-------------"+jpanel.getWid th());
con.add(jpanel, BorderLayout.NO RTH);
try {
graph = new GraphMLReader() .readGraph("\\J avaApplicationS wing\\graph.xml ");
} catch (DataIOExceptio n e ) {
e.printStackTra ce();
System.err.prin tln("Error loading graph. Exiting...");
System.exit(1);
}
// nodes and edges are accessible as "graph.node s" and "graph.edge s"
vis = new Visualization() ;
vis.add("graph" , graph);
vis.setInteract ive("graph.edge s", null, false);
// -- 3. the renderers and renderer factory ---------------------------
r = new LabelRenderer(" name");
r.setRoundedCor ner(8, 8); // round the corners
ShapeRenderer sh=new ShapeRenderer() ;
sh.star(2,3,4);
sh.setBaseSize( 4);
// return our name label renderer as the default for all non-EdgeItems
// includes straight line edges for EdgeItems by default
vis.setRenderer Factory(new DefaultRenderer Factory(r));
d = new Display(vis);
// -- 4. the processing actions ---------------------------------------
int[] palette = new int[] {
ColorLib.rgb(25 5,180,180), ColorLib.rgb(19 0,190,255)
};
// map nominal data values to colors using our provided palette
DataColorAction fill = new DataColorAction ("graph.node s", "gender",
Constants.NOMIN AL, VisualItem.FILL COLOR, palette);
ColorAction text = new ColorAction("gr aph.nodes",
VisualItem.TEXT COLOR, ColorLib.gray(0 ));
if(text.equals( "sriniwas") )
{
new ColorAction("gr aph.nodes",Visu alItem.TEXTCOLO R, ColorLib.green( 240));
}
ColorAction edges = new ColorAction("gr aph.edges",
VisualItem.STRO KECOLOR, ColorLib.gray(2 00));
color = new ActionList();
color.add(fill) ;
color.add(text) ;
color.add(edges );
int aa;
for(int i=0;i<color.siz e();i++){
System.out.prin tln("sdhfshdfhs f" +i);
}
layout = new ActionList(Acti vity.INFINITY);
layout.add(new ForceDirectedLa yout("graph"));
layout.add(new RepaintAction() );
vis.putAction(" color", color);
vis.putAction(" layout", layout);
// -- 5. the display and interactive controls -------------------------
d = new Display(vis);
// d.setSize(1000, 600); // set display size
d.addControlLis tener(new DragControl());
d.addControlLis tener(new PanControl());
d.addControlLis tener(new ZoomControl());
d.addControlLis tener(new FrameFocusContr ol());
// d.addControlLis tener(new ToolTipControl( ){
//d.addControlLis tener(new DragSource());
// -- 6. launch the visualization -------------------------------------
jpanel.add(d);
vis.run("color" );
vis.run("layout ");
button.addActio nListener(new ActionListener( ){
public void actionPerformed (ActionEvent e){
if(e.getSource( )==button){
try{
jpanel.setSize( new Dimension(l*10, m*10));
System.out.prin tln("Panel Hieght"+jpanel. getHeight());
System.out.prin tln("Panel width"+jpanel.g etWidth());
Image img =d.getOffscreen Buffer();
img.getSource() ;
System.out.prin tln("A fter increase Panel Size"+ jpanel.getSize( ));
fileOutPutStrea m=new FileOutputStrea m("c:/sri/img.jpg");
d.saveImage(fil eOutPutStream," jpg",2.6);
fileOutPutStrea m.flush();
fileOutPutStrea m.close();
System.out.prin tln("------------------"+jpanel.getHei ght());
}catch(IOExcept ion ex){ex.printSta ckTrace();}
}
}
});
}
}
public class DrawGrahpDemo{
public static void main(String Arg[]){
DrawGrahp drawGraph=new DrawGrahp();
drawGraph.setVi sible(true);
drawGraph.setSi ze(500,600);
drawGraph.setDe faultCloseOpera tion(JFrame.EXI T_ON_ CLOSE);
}
}
[/CODE]
it's very importtant for me, plz help me.
Comment