+ Console.debug(
+ "Successfully opened viewer for " + structureFilepath);
+ String structureImageFilename = ArgParser.getValueFromSubValOrArg(
+ avm, av, Arg.STRUCTUREIMAGE, subVals);
+ if (sv != null && structureImageFilename != null)
+ {
+ ArgValue siAv = avm.getClosestNextArgValueOfArg(av,
+ Arg.STRUCTUREIMAGE);
+ SubVals sisv = null;
+ if (structureImageFilename.equals(siAv.getValue()))
+ {
+ sisv = siAv.getSubVals();
+ }
+ File structureImageFile = new File(structureImageFilename);
+ String width = ArgParser.getValueFromSubValOrArg(avm, av,
+ Arg.STRUCTUREIMAGEWIDTH, sisv);
+ String height = ArgParser.getValueFromSubValOrArg(avm, av,
+ Arg.STRUCTUREIMAGEHEIGHT, sisv);
+ String scale = ArgParser.getValueFromSubValOrArg(avm, av,
+ Arg.STRUCTUREIMAGESCALE, sisv);
+ String renderer = ArgParser.getValueFromSubValOrArg(avm, av,
+ Arg.STRUCTUREIMAGETEXTRENDERER, sisv);
+ String typeS = ArgParser.getValueFromSubValOrArg(avm, av,
+ Arg.STRUCTUREIMAGETYPE, sisv);
+ if (typeS == null || typeS.length() == 0)
+ {
+ typeS = FileUtils.getExtension(structureImageFile);
+ }
+ TYPE imageType;
+ try
+ {
+ imageType = Enum.valueOf(TYPE.class,
+ typeS.toUpperCase(Locale.ROOT));
+ } catch (IllegalArgumentException e)
+ {
+ addWarn("Do not know image format '" + typeS
+ + "', using PNG");
+ imageType = TYPE.PNG;
+ }
+ BitmapImageSizing userBis = ImageMaker
+ .parseScaleWidthHeightStrings(scale, width, height);
+ // TODO MAKE THIS VIEWER INDEPENDENT!!
+ switch (StructureViewer.getViewerType())
+ {
+ case JMOL:
+ JalviewStructureDisplayI sview = sv
+ .getJalviewStructureDisplay();
+ if (sview instanceof AppJmol)
+ {
+ AppJmol jmol = (AppJmol) sview;
+ try
+ {
+ boolean success = this.checksBeforeWritingToFile(avm,
+ subVals, false, structureImageFilename,
+ "structure image", isError);
+ if (!success)
+ {
+ continue;
+ }
+
+ Console.debug("Rendering image to " + structureImageFile);
+ jmol.makePDBImage(structureImageFile, imageType, renderer,
+ userBis);
+ Console.debug("Finished Rendering image to "
+ + structureImageFile);
+
+ } catch (ImageOutputException ioexc)
+ {
+ addError("Unexpected error whilst exporting image to "
+ + structureImageFile, ioexc);
+ isError = true;
+ continue;
+ }
+
+ }
+ break;
+ default:
+ addWarn("Cannot export image for structure viewer "
+ + sv.getViewerType() + " yet");
+ continue;
+ }
+ }