()
| 8413 | } |
| 8414 | |
| 8415 | private Variable doProperty() { |
| 8416 | interp.getToken(); |
| 8417 | if (interp.token!='.') |
| 8418 | interp.error("'.' expected"); |
| 8419 | interp.getToken(); |
| 8420 | if (!(interp.token==WORD||interp.token==STRING_FUNCTION||interp.token==NUMERIC_FUNCTION||interp.token==ARRAY_FUNCTION)) |
| 8421 | interp.error("Function name expected: "); |
| 8422 | String name = interp.tokenString; |
| 8423 | ImagePlus imp = getImage(); |
| 8424 | if (name.equals("set")) { |
| 8425 | String key = getFirstString(); |
| 8426 | String value = getLastString(); |
| 8427 | if (value.length()==0) value = null; |
| 8428 | imp.setProp(key, value); |
| 8429 | return null; |
| 8430 | } else if (name.equals("get")) { |
| 8431 | String value = imp.getProp(getStringArg()); |
| 8432 | return new Variable(value!=null?value:""); |
| 8433 | } else if (name.equals("getNumber") || name.equals("getValue")) { |
| 8434 | String svalue = imp.getProp(getStringArg()); |
| 8435 | double nvalue = svalue!=null?Tools.parseDouble(svalue):Double.NaN; |
| 8436 | return new Variable(nvalue); |
| 8437 | } else if (name.equals("getInfo")) { |
| 8438 | interp.getParens(); |
| 8439 | String value = (String)imp.getProperty("Info"); |
| 8440 | return new Variable(value!=null?value:""); |
| 8441 | } else if (name.equals("setInfo")) { |
| 8442 | imp.setProperty("Info", getStringArg()); |
| 8443 | return null; |
| 8444 | } else if (name.equals("getSliceLabel")) { |
| 8445 | String label = imp.getStack().getSliceLabel(imp.getCurrentSlice()); |
| 8446 | if (interp.nextToken()=='(') { |
| 8447 | if (interp.nextNextToken()==')') |
| 8448 | interp.getParens(); |
| 8449 | else |
| 8450 | label = imp.getStack().getSliceLabel((int)getArg()); |
| 8451 | } |
| 8452 | Variable v = new Variable(label!=null?label:""); |
| 8453 | return v; |
| 8454 | } else if (name.equals("setSliceLabel")) { |
| 8455 | String label = getFirstString(); |
| 8456 | int slice = imp.getCurrentSlice(); |
| 8457 | if (interp.nextToken()==',') |
| 8458 | slice = (int)getLastArg(); |
| 8459 | else |
| 8460 | interp.getRightParen(); |
| 8461 | if (slice<1 || slice>imp.getStackSize()) |
| 8462 | interp.error("Argument must be >=1 and <="+imp.getStackSize()); |
| 8463 | imp.getStack().setSliceLabel(label, slice); |
| 8464 | if (!Interpreter.isBatchMode()) imp.repaintWindow(); |
| 8465 | return null; |
| 8466 | } else if (name.equals("getDicomTag")) { |
| 8467 | String value = imp.getStringProperty(getStringArg()); |
| 8468 | return new Variable(value!=null?value:""); |
| 8469 | } else if (name.equals("setList")) { |
| 8470 | setPropertiesFromString(imp.getImageProperties()); |
| 8471 | return null; |
| 8472 | } else if (name.equals("getList")) { |
no test coverage detected