protected static void drawDataPoint(double x,double y,int size,int shape,Graphics gx){
  Font lf=new Font("Monospaced",Font.PLAIN,12);
  FontMetrics fm=gx.getFontMetrics(lf);
  if (size == 0) {
    size=1;
  }
  if (shape != ERROR_SHAPE && shape != MISSING_SHAPE) {
    shape=shape % 5;
  }
switch (shape) {
case X_SHAPE:
    drawX(gx,x,y,size);
  break;
case PLUS_SHAPE:
drawPlus(gx,x,y,size);
break;
case DIAMOND_SHAPE:
drawDiamond(gx,x,y,size);
break;
case TRIANGLEUP_SHAPE:
drawTriangleUp(gx,x,y,size);
break;
case TRIANGLEDOWN_SHAPE:
drawTriangleDown(gx,x,y,size);
break;
case ERROR_SHAPE:
gx.drawRect((int)(x - size),(int)(y - size),(size * 2),(size * 2));
break;
case MISSING_SHAPE:
int hf=fm.getAscent();
int width=fm.stringWidth("M");
gx.drawString("M",(int)(x - (width / 2)),(int)(y + (hf / 2)));
break;
}
}

protected static void drawDataPoint ( double x , double y , int size , int shape , Graphics gx ) { Font lf = new Font ( "Monospaced" , Font . PLAIN , 12 ) ; FontMetrics fm = gx . getFontMetrics ( lf ) ; if ( size == 0 ) { size = 1 ; } if ( shape != ERROR_SHAPE && shape != MISSING_SHAPE ) { shape = shape % 5 ; } switch ( shape ) { case X_SHAPE : drawX ( gx , x , y , size ) ; break ; case PLUS_SHAPE : drawPlus ( gx , x , y , size ) ; break ; case DIAMOND_SHAPE : drawDiamond ( gx , x , y , size ) ; break ; case TRIANGLEUP_SHAPE : drawTriangleUp ( gx , x , y , size ) ; break ; case TRIANGLEDOWN_SHAPE : drawTriangleDown ( gx , x , y , size ) ; break ; case ERROR_SHAPE : gx . drawRect ( ( int ) ( x - size ) , ( int ) ( y - size ) , ( size * 2 ) , ( size * 2 ) ) ; break ; case MISSING_SHAPE : int hf = fm . getAscent ( ) ; int width = fm . stringWidth ( "M" ) ; gx . drawString ( "M" , ( int ) ( x - ( width / 2 ) ) , ( int ) ( y + ( hf / 2 ) ) ) ; break ; } }
draws a data point at a given set of panel coordinates at a given size .
