version 1.1, 2000/07/03 05:57:43 |
version 1.4, 2000/09/07 09:12:28 |
|
|
/** |
/** |
* $OpenXM$ |
* $OpenXM: OpenXM/src/OpenMath/OXplot.java,v 1.3 2000/07/10 06:48:06 tam Exp $ |
*/ |
*/ |
|
|
import JP.ac.kobe_u.math.tam.OpenXM.*; |
import JP.ac.kobe_u.math.tam.OpenXM.*; |
import java.util.Stack; |
import java.util.Stack; |
//import java.io.*; |
import java.util.Vector; |
|
import java.awt.*; |
|
|
public class OXplot extends OpenXMserver{ |
public class OXplot extends OpenXMserver{ |
private Stack stack = new Stack(); |
private Stack stack = new Stack(); |
Line 18 public class OXplot extends OpenXMserver{ |
|
Line 19 public class OXplot extends OpenXMserver{ |
|
|
|
public void computeProcess(OpenXMconnection stream){ |
public void computeProcess(OpenXMconnection stream){ |
debug("OXplot started."); |
debug("OXplot started."); |
|
stack = new Stack(); |
|
plotframe = new Vector(); |
try{ |
try{ |
while(true){ |
while(true){ |
|
Thread.yield(); |
try{ |
try{ |
OXmessage message = stream.receive(); |
OXmessage message = stream.receive(); |
int ox_tag = message.getTag(); |
int ox_tag = message.getTag(); |
Line 54 public class OXplot extends OpenXMserver{ |
|
Line 58 public class OXplot extends OpenXMserver{ |
|
} |
} |
} |
} |
|
|
class plotframe extends java.awt.Frame{ |
class plotframe extends java.awt.Frame implements java.awt.event.MouseListener{ |
|
Canvas canvas; |
int pixels[][]; |
int pixels[][]; |
|
|
plotframe(int width,int height){ |
plotframe(int width,int height){ |
super("plotframe"); |
super("plotframe"); |
setSize(width,height); |
add("Center", new Panel().add(canvas = new Canvas())); |
|
canvas.setSize(width,height); |
setResizable(false); |
setResizable(false); |
|
canvas.addMouseListener(this); |
|
|
pixels = new int[width][]; |
pixels = new int[height][]; |
for(int i=0;i<pixels.length;i++){ |
for(int i=0;i<pixels.length;i++){ |
pixels[i] = new int[height]; |
pixels[i] = new int[width]; |
|
for(int j=0;j<pixels[i].length;j++){ |
|
pixels[i][j] = 255*j/width; |
|
} |
} |
} |
|
|
|
pack(); |
|
show(); |
} |
} |
|
|
|
public void paint(Graphics gr){ |
|
paint(); |
|
} |
|
|
|
public void paint(){ |
|
Graphics g = canvas.getGraphics(); |
|
|
|
for(int y=0;y<pixels.length;y++){ |
|
for(int x=0;x<pixels[y].length;x++){ |
|
g.setColor(new Color(pixels[y][x],pixels[y][x],pixels[y][x])); |
|
g.fillRect(x,y,1,1); |
|
} |
|
} |
|
} |
|
|
|
public void mouseClicked(java.awt.event.MouseEvent e){ |
|
paint(); |
|
} |
|
|
|
public void mousePressed(java.awt.event.MouseEvent e){ |
|
} |
|
|
|
public void mouseReleased(java.awt.event.MouseEvent e){ |
|
} |
|
|
|
public void mouseEntered(java.awt.event.MouseEvent e){ |
|
} |
|
|
|
public void mouseExited(java.awt.event.MouseEvent e){ |
|
} |
|
|
|
public void pset(int x,int y,int bright){ |
|
pixels[y][x] = bright; |
|
} |
} |
} |
|
|
private void SM_popCMO(OpenXMconnection stream) throws java.io.IOException{ |
private void SM_popCMO(OpenXMconnection stream) throws java.io.IOException{ |
Line 102 public class OXplot extends OpenXMserver{ |
|
Line 150 public class OXplot extends OpenXMserver{ |
|
argv[i] = (CMO)stack.pop(); |
argv[i] = (CMO)stack.pop(); |
} |
} |
|
|
if(function_name.equals("CREATE") && argc==2){ |
if(function_name.equals("create") && argc==2){ |
stack.push(CREATE(argv)); |
stack.push(CREATE(argv)); |
}else if(function_name.equals("CMO2OMXML") && argc==1){ |
}else if(function_name.equals("pset") && argc==4){ |
//stack.push(CMO2OMXML(argv[0])); |
PSET(argv); |
}else{ |
}else{ |
stack.push(new CMO_ERROR2(new CMO_NULL())); |
stack.push(new CMO_ERROR2(new CMO_NULL())); |
} |
} |
Line 194 public class OXplot extends OpenXMserver{ |
|
Line 242 public class OXplot extends OpenXMserver{ |
|
} |
} |
} |
} |
|
|
private CREATE(CMO[] argv){ |
private CMO CREATE(CMO[] argv){ |
plotframe tmp = new plotframe(argv[0],argv[1]); |
plotframe tmp = new plotframe(((CMO_INT32)argv[0]).intValue() |
int i; |
,((CMO_INT32)argv[1]).intValue()); |
|
|
for(i=0;i<plotframe.size();i++){ |
for(int i=0;i<plotframe.size();i++){ |
if(plotframe.elementAt(i) == null){ |
if(plotframe.elementAt(i) == null){ |
plotframe.setElementAt(tmp,i); |
plotframe.setElementAt(tmp,i); |
return i; |
return new CMO_INT32(i); |
} |
} |
} |
} |
|
|
plotframe.addElement(tmp); |
plotframe.addElement(tmp); |
|
plotframe.trimToSize(); |
|
|
|
return new CMO_INT32(plotframe.size()-1); |
} |
} |
|
|
|
private CMO PSET(CMO[] argv){ |
|
plotframe tmp = (plotframe)plotframe.elementAt(((CMO_INT32)argv[0]).intValue()); |
|
|
|
tmp.pset(((CMO_INT32)argv[1]).intValue(), |
|
((CMO_INT32)argv[2]).intValue(), |
|
((CMO_INT32)argv[3]).intValue()); |
|
return new CMO_NULL(); |
|
} |
|
|
private void debug(String str){ |
private void debug(String str){ |
if(debug){ |
if(debug){ |
System.err.println(str); |
System.err.println(str); |
Line 251 public class OXplot extends OpenXMserver{ |
|
Line 311 public class OXplot extends OpenXMserver{ |
|
} |
} |
|
|
//ox = new OpenXMserver(hostname,ControlPort,DataPort); |
//ox = new OpenXMserver(hostname,ControlPort,DataPort); |
ox = new OMproxy(hostname,ControlPort,DataPort); |
ox = new OXplot(hostname,ControlPort,DataPort); |
/* |
/* |
try{ |
try{ |
}catch(java.net.UnknownHostException e){ |
}catch(java.net.UnknownHostException e){ |