| 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){ |