public boolean parseImageRec(DrawFrame f) { parseB(); boolean bgflag; // iq.printLine(); if (iq.rString("img(")) { bgflag = false; } else if (iq.rString("bgimg(")) { bgflag = true; } else { return false; } parseB(); if (!iq.rString("name(")) return false; StringBuffer str = iq.rStrConst(); if (!iq.rString(").")) return false; // name(<string>) if (str == null) return false; String name = str.toString(); if (!iq.rString("(")) return false; if (!rNumPair()) return false; if (!iq.rString(").")) return false; // (<number>,<number). int offx = x1; int offy = y1; if (!iq.rString("width(")) return false; Integer wi = iq.rInteger(); if (!iq.rString(").")) return false; // width(<number>). if (wi == null) return false; int w = wi.intValue(); if (!iq.rString("height(")) return false; Integer hi = iq.rInteger(); if (!iq.rString(").")) return false; // height(<number>). if (hi == null) return false; int h = hi.intValue(); boolean isFirstTime = false; ImageOperator img = f.imageManager.getImageOperator(name); if (iq.rString("create.")) { if (img == null) { isFirstTime = true; img = new ImageOperator(f.canvas, gui.communicationNode.getNodeSettings()); f.imageManager.setImageOperator(name, img); } if (offx == 0 && offy == 0 && w == 10) { // System.out.println("xxx"); } if (!iq.rString("color(")) return false; Integer ci = iq.rInteger(); if (!iq.rString(")")) return false; // color(<number>) if (hi == null) return false; int cx = ci.intValue(); Color color = new Color(cx); // if (isFirstTime) { img.createNewImage(w, h); try { img.fillRect(0, 0, w, h, color); } catch (NullPointerException e) { System.out.println("img-create"); } FigCanvas fc = f.canvas; MyImage newfig = new MyImage(fc, img, this.getNodeSettings()); img.setMyImage(newfig); newfig.imageName = name; newfig.newFig(); newfig.offX = offx; newfig.offY = offy; if (bgflag) { fc.fs.add(newfig); newfig.depth = 25; fc.fs.setStep(-10); // f.depthIndicator.setValue(newfig.depth); } else { fc.ftemp.add(newfig); newfig.depth = 0; f.depthIndicator.setValue(newfig.depth); } } else { img.isCreatingImage = true; img.imageUpdate(null, 0, offx, offy, w, h); } parseB(); if (!iq.rString(")")) return false; // img( .... ) // return true; } else if (iq.rString("tile.")) { while (true) { if (!iq.rString("color(")) return false; Integer ci = iq.rInteger(); if (!iq.rString(")")) return false; // color(<number>) if (hi == null) return false; int cx = ci.intValue(); Color color = new Color(cx); img = gui.imageManager.getImageOperator(name); if (img == null) return false; img.fillRect(offx, offy, w, h, color); if (!iq.rString("-")) break; // - offx = offx + w; } parseB(); if (!iq.rString(")")) return false; // img( .... ) return true; } else if (iq.rString("binary")) { img = gui.imageManager.getImageOperator(name); if (img == null) return false; img.setBinaryImage(offx, offy, w, h, this.binary); // parseB(); if (!iq.rString(")")) return false; // img( .... ) return true; } else if (iq.rString("jpeg")) { img = gui.imageManager.getImageOperator(name); if (img == null) return false; img.setJpegImage(offx, offy, w, h, this.binary); parseB(); if (!iq.rString(")")) return false; // img( .... ) return true; } else if (iq.rString("sImg(")) { StringBuffer sb = iq.rStrConst(); if (sb == null) return false; if (!iq.rString(")")) return false; img = gui.imageManager.getImageOperator(name); if (img == null) return false; img.setSlowFineImage(sb.toString(), offx, offy, w, h, this.binary); parseB(); if (!iq.rString(")")) return false; // img( ...) return true; } else if (iq.rString("bmp.")) { str = iq.rStrConst(); if (str == null) return false; img = gui.imageManager.getImageOperator(name); if (img == null) return false; img.string2subImg(offx, offy, w, h, str.toString()); parseB(); if (!iq.rString(")")) return false; // img( .... ) return true; } else return false; // gui.canvas.repaint(); // return true; }