Back to index

wims  3.65+svn20090927
Public Member Functions | Static Public Member Functions | Protected Attributes
rene.zirkel.constructors.FunctionConstructor Class Reference
Inheritance diagram for rene.zirkel.constructors.FunctionConstructor:
Inheritance graph
[legend]
Collaboration diagram for rene.zirkel.constructors.FunctionConstructor:
Collaboration graph
[legend]

List of all members.

Public Member Functions

boolean construct (XmlTree tree, Construction c) throws ConstructionException
String getTag ()
void construct (Construction c, String name, String params[], int nparams) throws ConstructionException
void mousePressed (MouseEvent e, ZirkelCanvas zc)
void mouseReleased (MouseEvent e, ZirkelCanvas zc)
void mouseDragged (MouseEvent e, ZirkelCanvas zc)
void mouseMoved (MouseEvent e, ZirkelCanvas zc, boolean simple)
void finishConstruction (MouseEvent e, ZirkelCanvas zc)
boolean waitForLastPoint ()
boolean waitForPoint ()
void reset (ZirkelCanvas zc)
void resetFirstTime (ZirkelCanvas zc)
void invalidate (ZirkelCanvas zc)
void showStatus (ZirkelCanvas zc)
boolean testTree (XmlTree t, String tag)
void setName (XmlTag tag, ConstructionObject o)
void set (XmlTree tree, ConstructionObject o) throws ConstructionException
void setConditionals (XmlTree tree, Construction c, ConstructionObject o)
void pause (boolean flag)
boolean useSmartBoard ()

Static Public Member Functions

static void setType (XmlTag tag, FunctionObject p)

Protected Attributes

boolean Dragging = false

Detailed Description

Definition at line 11 of file FunctionConstructor.java.


Member Function Documentation

Reimplemented from rene.zirkel.constructors.ObjectConstructor.

Definition at line 12 of file FunctionConstructor.java.

{      public boolean construct (XmlTree tree, Construction c)
              throws ConstructionException
       {      if (!testTree(tree,"Function")) return false;
              XmlTag tag=tree.getTag();
              if (tag.hasParam("f")) // function
              {      if (!tag.hasParam("var"))
                                   throw new ConstructionException("Function invalid!");
                     try
                     {      String y=tag.getValue("f");
                            String var=tag.getValue("var");
                            UserFunctionObject f=new UserFunctionObject(c);
                            f.setDefaults();
                            setName(tag,f);
                            set(tree,f);
                            c.add(f);
                            double xpos,ypos;
                            try
                            {      if (tag.hasParam("fixed"))
                                   {      f.setFixed(tag.getValue("x"),tag.getValue("y"));
                                   }
                                   else
                                   {      xpos=new Expression(tag.getValue("x"),c,f).getValue();
                                          ypos=new Expression(tag.getValue("y"),c,f).getValue();
                                          f.move(xpos,ypos);
                                   }
                            }
                            catch (Exception e) {}
                            if (tag.hasParam("filled")) f.setFilled(true);
                            f.setExpressions(var,y);
                            setConditionals(tree,c,f);
                            f.updateText();
                            return true;
                     }
                     catch (Exception e)
                     {      throw new ConstructionException("Function invalid!");
                     }
              }
              else // curve
              {      if (!tag.hasParam("min") &&
                            !tag.hasParam("max") &&
                            !tag.hasParam("d") &&
                            !tag.hasParam("var") &&
                            !tag.hasParam("x") &&
                            !tag.hasParam("y"))
                                   throw new ConstructionException("Function invalid!");
                     try
                     {      String x=tag.getValue("x");
                            String y=tag.getValue("y");
                            String var=tag.getValue("var");
                            String d=tag.getValue("d");
                            String min=tag.getValue("min");
                            String max=tag.getValue("max");
                            FunctionObject f=new FunctionObject(c);
                            f.setDefaults();
                            setType(tag,f);
                            setName(tag,f);
                            set(tree,f);
                            c.add(f);
                            if (tag.hasParam("filled")) f.setFilled(true);
                            f.setExpressions(var,x,y);
                            f.setRange(min,max,d);
                            f.setSpecial(tag.hasTrueParam("special"));
                            setConditionals(tree,c,f);
                            if (tag.hasParam("center")) f.setCenter(tag.getValue("center"));
                            f.updateText();
                            return true;
                     }
                     catch (Exception e)
                     {      throw new ConstructionException("Function invalid!");
                     }
              }
       }

Here is the call graph for this function:

void rene.zirkel.constructors.FunctionConstructor.construct ( Construction  c,
String  name,
String  params[],
int  nparams 
) throws ConstructionException [inline]

Reimplemented from rene.zirkel.constructors.ObjectConstructor.

Definition at line 99 of file FunctionConstructor.java.

       {      if (nparams!=6)
                     throw new ConstructionException(Zirkel.name("exception.nparams"));
              boolean added=false;
              try
              {      FunctionObject F=new FunctionObject(c);
                     c.add(F);
                     added=true;
                     if (!name.equals("")) F.setNameCheck(name);
                     F.setRange(params[0],params[1],params[2]);
                     F.setExpressions(params[3],params[4],params[5]);
                     F.setDefaults();
              }
              catch (ConstructionException e)
              {      if (added) c.back();
                     throw e;
              }
              catch (Exception e)
              {      if (added) c.back();
                     throw new ConstructionException("Function Invalid!");
              }
       }

Here is the call graph for this function:

void rene.zirkel.constructors.ObjectConstructor.finishConstruction ( MouseEvent  e,
ZirkelCanvas  zc 
) [inline, inherited]

Reimplemented from rene.zirkel.constructors.ObjectConstructor.

Definition at line 97 of file FunctionConstructor.java.

{ return "Function"; }
void rene.zirkel.constructors.ObjectConstructor.mouseDragged ( MouseEvent  e,
ZirkelCanvas  zc 
) [inline, inherited]
void rene.zirkel.constructors.ObjectConstructor.mouseMoved ( MouseEvent  e,
ZirkelCanvas  zc,
boolean  simple 
) [inline, inherited]
void rene.zirkel.constructors.ObjectConstructor.mousePressed ( MouseEvent  e,
ZirkelCanvas  zc 
) [inline, inherited]
void rene.zirkel.constructors.ObjectConstructor.mouseReleased ( MouseEvent  e,
ZirkelCanvas  zc 
) [inline, inherited]
void rene.zirkel.constructors.ObjectConstructor.pause ( boolean  flag) [inline, inherited]

Reimplemented in rene.zirkel.tools.ObjectTracker.

Definition at line 216 of file ObjectConstructor.java.

       {
       }

Here is the caller graph for this function:

Reimplemented in rene.zirkel.tools.MoverTool.

Definition at line 56 of file ObjectConstructor.java.

       {      reset(zc);
       }

Here is the call graph for this function:

Definition at line 76 of file ObjectConstructor.java.

       {      XmlTag tag=tree.getTag();
              if (tag.hasParam("n"))
              {      try
                     {      o.setNCount(new Integer(tag.getValue("n")).intValue());
                            o.setGotNCount(true);
                     }
                     catch (Exception ex)
                     {      throw new ConstructionException("Illegal count!");
                     }
              }
              if (tag.hasParam("hidden"))
              {      if (tag.getValue("hidden").equals("super")) o.setSuperHidden(true);
                     else o.setHidden(true);
              }
              if (tag.hasTrueParam("showvalue"))
              {      o.setShowValue(true);
              }
              if (tag.hasTrueParam("showname"))
              {      o.setShowName(true);
              }
              if (tag.hasTrueParam("background"))
              {      o.setBack(true);
              }
              else o.setBack(false);
              if (tag.hasTrueParam("parameter"))
              {      o.setParameter();
              }
              if (tag.hasTrueParam("mainparameter"))
              {      o.setMainParameter();
              }
              if (tag.hasTrueParam("target"))
              {      o.setTarget(true);
              }
              if (tag.hasTrueParam("break"))
              {      o.setBreak(true);
              }
              if (tag.hasTrueParam("hidebreak"))
              {      o.setHideBreak(true);
              }
              if (tag.hasTrueParam("solid"))
              {      o.setSolid(true);
              }
              if (tag.hasTrueParam("bold"))
              {      o.setBold(true);
              }
              if (tag.hasTrueParam("large"))
              {      o.setLarge(true);
              }
              if (tag.hasParam("xoffset") || tag.hasParam("yoffset"))
              {      int x=0,y=0;
                     try
                     {      if (tag.hasParam("xoffset"))
                                   x=Integer.parseInt(tag.getValue("xoffset"));
                            if (tag.hasParam("yoffset"))
                                   y=Integer.parseInt(tag.getValue("yoffset"));
                            o.setOffset(x,y);
                     }
                     catch (Exception e)
                     {      throw new ConstructionException("Illegal offset value");
                     }
              }
              if (tag.hasTrueParam("keepclose"))
              {      o.setKeepClose(true);
              }
              if (tag.hasParam("xcoffset") || tag.hasParam("ycoffset"))
              {      double x=0,y=0;
                     try
                     {      if (tag.hasParam("xcoffset"))
                                   x=new Double(tag.getValue("xcoffset")).doubleValue();
                            if (tag.hasParam("ycoffset"))
                                   y=new Double(tag.getValue("ycoffset")).doubleValue();
                            o.setcOffset(x,y);
                     }
                     catch (Exception e)
                     {      throw new ConstructionException("Illegal offset value");
                     }
              }
              if (tag.hasParam("color"))
              {      try
                     {      String s=tag.getValue("color");
                            int n=-1;
                            for (int i=0; i<ZirkelFrame.ColorStrings.length; i++)
                            {      if (s.equals(ZirkelFrame.ColorStrings[i]))
                                   {      o.setColor(i); n=i; break;
                                   }
                            }
                            if (n<0)
                            {      n=Integer.parseInt(s);
                                   if (n<0 || n>=ZirkelFrame.Colors.length)
                                          throw new Exception("");
                                   o.setColor(n);
                            }
                     }
                     catch (Exception ex)
                     {      throw new ConstructionException("Illegal color index (1-"+
                                   (ZirkelFrame.Colors.length-1)+")");
                     }
              }
              if (tag.hasParam("type"))
              {      String type=tag.getValue("type");
                     if (type.equals("thick")) o.setColorType(ConstructionObject.THICK);
                     if (type.equals("thin")) o.setColorType(ConstructionObject.THIN);
                     if (type.equals("invisible")) o.setColorType(ConstructionObject.INVISIBLE);
              }
              if (tag.hasParam("unit"))
                     o.setUnit(tag.getValue("unit"));
              else
                     o.setUnit("");
              Enumeration e=tree.getContent();
              while (e.hasMoreElements())
              {      tree=(XmlTree)e.nextElement();
                     if (tree.getTag() instanceof XmlTagText)
                     {      o.setText(((XmlTagText)tree.getTag()).getContent(),true);
                     }
              }
       }

Here is the call graph for this function:

Definition at line 194 of file ObjectConstructor.java.

       {      o.clearConditionals();
              int i=0;
              XmlTag tag=tree.getTag();
              while (tag.hasParam("ctag"+i) && tag.hasParam("cexpr"+i))
              {      String t=tag.getValue("ctag"+i);
                     String e=tag.getValue("cexpr"+i);
                     Expression ex=new Expression(e,c,o);
                     o.addConditional(t,ex);
                     i++;
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 68 of file ObjectConstructor.java.

       {      if (tag.hasParam("name"))
              {      o.setName(tag.getValue("name"));
              }
              if (tag.hasParam("alias"))
              {      o.setAlias(tag.getValue("alias"));
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

static void rene.zirkel.constructors.FunctionConstructor.setType ( XmlTag  tag,
FunctionObject  p 
) [inline, static]

Definition at line 85 of file FunctionConstructor.java.

       {      if (tag.hasParam("shape"))
              {      String s=tag.getValue("shape");
                     if (s.equals("square")) p.setType(0);
                     if (s.equals("diamond")) p.setType(1);
                     if (s.equals("circle")) p.setType(2);
                     if (s.equals("dot")) p.setType(3);
                     if (s.equals("cross")) p.setType(4);
                     if (s.equals("dcross")) p.setType(5);
              }
       }

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented in rene.zirkel.tools.MoverTool, rene.zirkel.tools.ObjectTracker, rene.zirkel.constructors.AngleConstructor, rene.zirkel.constructors.CircleConstructor, rene.zirkel.constructors.IntersectionConstructor, rene.zirkel.tools.AnimatorTool, rene.zirkel.constructors.LineConstructor, rene.zirkel.tools.Tracker, rene.zirkel.constructors.AreaConstructor, rene.zirkel.constructors.PointConstructor, rene.zirkel.constructors.ParallelConstructor, rene.zirkel.tools.ReorderTool, rene.zirkel.constructors.Circle3Constructor, rene.zirkel.tools.EditTool, rene.zirkel.tools.ZoomerTool, rene.zirkel.tools.LabelMover, rene.zirkel.tools.Ruler, rene.zirkel.tools.SetFixedAngle, rene.zirkel.tools.BinderTool, rene.zirkel.tools.BreakpointAnimator, rene.zirkel.tools.SetParameterTool, rene.zirkel.tools.SetFixedCircle, rene.zirkel.constructors.SegmentConstructor, rene.zirkel.constructors.ImageConstructor, rene.zirkel.tools.SaveJob, rene.zirkel.tools.SetAwayTool, rene.zirkel.tools.SetRangeTool, rene.zirkel.constructors.ExpressionConstructor, rene.zirkel.tools.DrawerTool, rene.zirkel.constructors.BoundedPointConstructor, rene.zirkel.constructors.QuadricConstructor, rene.zirkel.tools.SetTargetsTool, rene.zirkel.tools.RenamerTool, rene.zirkel.tools.SetCurveCenterTool, rene.zirkel.constructors.TextConstructor, rene.zirkel.tools.HiderTool, rene.zirkel.tools.DeleteTool, rene.zirkel.constructors.MidpointConstructor, rene.zirkel.constructors.PlumbConstructor, and rene.zirkel.constructors.RayConstructor.

Definition at line 60 of file ObjectConstructor.java.

{}
boolean rene.zirkel.constructors.ObjectConstructor.testTree ( XmlTree  t,
String  tag 
) [inline, inherited]

Definition at line 65 of file ObjectConstructor.java.

       {      return t.getTag().name().equals(tag);
       }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Reimplemented in rene.zirkel.tools.ZoomerTool, and rene.zirkel.tools.DrawerTool.

Definition at line 15 of file ObjectConstructor.java.


The documentation for this class was generated from the following file: