public virtual void testGetSignatureVector_Old() { testBuildOldLayout(); JDFLayout lo = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0); VElement v = lo.getSignatureVector(); JDFSignature sig = (JDFSignature)v[0]; Assert.AreEqual(sig.getName(), sig.getSignatureName()); Assert.AreEqual("Sig1", sig.getSignatureName()); JDFSignature sig2 = (JDFSignature)v[1]; Assert.AreEqual(sig2.getName(), sig2.getSignatureName()); Assert.AreEqual("Sig2", sig2.getSignatureName()); VElement vSheet = sig2.getSheetVector(); JDFSheet s1 = (JDFSheet)vSheet[1]; // don't try 0 it will // fail because it is // referenced... Assert.AreEqual("Sig2", s1.getSignatureName()); Assert.AreEqual("Sheet2_2", s1.getSheetName()); JDFSurface su = s1.getCreateBackSurface(); Assert.AreEqual("Sig2", su.getSignatureName()); Assert.AreEqual("Sheet2_2", su.getSheetName()); Assert.AreEqual(su, s1.getSurfaceVector()[0]); }
/// /// <summary> * (31) create inter-resource link to refTarget /// * </summary> /// * <param name="JDFSurface"> /// * refTarget the element that is referenced </param> /// public virtual void refSurface(JDFSurface refTarget) { if (JDFLayout.isNewLayout(this)) { throw new JDFException("refSheet: attempting to reference a partition"); } refElement(refTarget); }
/// /// <summary> * remove back element Surface </summary> /// public virtual void removeBackSurface() { JDFSurface e = getSurface(EnumSide.Back); if (e != null) { e.deleteNode(); } }
/// /// <summary> * remove first element Surface </summary> /// public virtual void removeFrontSurface() { JDFSurface e = getSurface(EnumSide.Front); if (e != null) { e.deleteNode(); } }
public virtual void testBuildNewLayout() { reset(); JDFLayout lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null); Assert.IsTrue(JDFLayout.isNewLayout(lo), "lo 1.3"); JDFSignature si = lo.appendSignature(); Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name"); si = lo.appendSignature(); Assert.AreEqual(2, lo.numSignatures(), "num sigs"); Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name"); JDFSheet sh = si.appendSheet(); sh = si.appendSheet(); Assert.AreEqual(2, si.numSheets(), "num sheets"); Assert.AreEqual(ElementName.LAYOUT, sh.LocalName, "sheet name"); sh = si.getCreateSheet(4); Assert.AreEqual(3, si.numSheets(), "num sheets"); Assert.AreEqual(ElementName.LAYOUT, sh.LocalName, "sheet name"); sh = si.getSheet(2); Assert.AreEqual(3, si.numSheets(), "num sheets"); Assert.AreEqual(ElementName.LAYOUT, sh.LocalName, "sheet name"); JDFSurface su = sh.appendFrontSurface(); Assert.AreEqual(1, sh.numSurfaces(), "num surfaces"); Assert.AreEqual(ElementName.LAYOUT, su.LocalName, "sheet name"); Assert.IsTrue(sh.hasFrontSurface(), "hasfrontSurface"); su = sh.appendBackSurface(); Assert.AreEqual(2, sh.numSurfaces(), "num surfaces"); Assert.AreEqual(ElementName.LAYOUT, su.LocalName, "sheet name"); try { sh.appendBackSurface(); Assert.Fail("no two back surfaces"); } catch (JDFException) { // nop } si = lo.getCreateSignature(4); Assert.AreEqual(3, lo.numSignatures(), "num sigs"); Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name"); si = lo.getSignature(2); Assert.AreEqual(3, lo.numSignatures(), "num sigs"); Assert.AreEqual(ElementName.LAYOUT, si.LocalName, "signature name"); si = lo.getSignature(5); Assert.IsNull(si, "si null"); Assert.IsTrue(lo.isValid(EnumValidationLevel.Complete), "layout valid"); Assert.AreEqual(lo.numSignatures(), lo.getSignatureVector().Count); }
// _______________________________________________________________ // Start BACK Surface // _______________________________________________________________ public virtual JDFSurface getCreateBackSurface() { JDFSurface e = getSurface(EnumSide.Back); if (e == null) { e = appendBackSurface(); } return(e); }
/// /// <summary> * gets or appends a signature in both old and new Layouts if old: a /// * <Surface> element if new: a Side partition leaf /// * </summary> /// * <param name="iSkip"> /// * the number of signatures to skip </param> /// public virtual JDFSurface getCreateSurface(int iSkip) { JDFSurface s = getSurface(iSkip); if (s == null) { s = appendSurface(); } return(s); }
// ________________________________________________________________________________________ // Start FRONT Surface // ________________________________________________________________________________________ public virtual JDFSurface getCreateFrontSurface() { JDFSurface e = getSurface(EnumSide.Front); if (e == null) { e = appendSurface(); e.setSide(JDFPart.EnumSide.Front); } return(e); }
public virtual void testGetPlacedObjectVector() { testBuildOldLayout(); JDFLayout lo = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0); JDFSurface su = lo.getSignature(1).getSheet(2).getSurface(EnumSide.Front); VElement v = su.getPlacedObjectVector(); Assert.AreEqual(v.Count, 4); Assert.IsTrue(v[0] is JDFContentObject); Assert.IsTrue(v[1] is JDFMarkObject); Assert.IsTrue(v[2] is JDFContentObject); Assert.IsTrue(v[3] is JDFContentObject); }
public virtual JDFSurface appendBackSurface() { JDFSurface e = getSurface(EnumSide.Back); if (e != null) { throw new JDFException("appendBackSurface surface already exists"); } e = appendSurface(); e.setSide(JDFPart.EnumSide.Back); return(e); }
public virtual VElement getSurfaceVector(JDFAttributeMap mAttrib, bool bAnd) { VElement myResource = new VElement(); VElement vElem = getChildElementVector(ElementName.SURFACE, null, mAttrib, bAnd, 0, true); for (int i = 0; i < vElem.Count; i++) { JDFElement k = (JDFElement)vElem[i]; JDFSurface myJDFSurface = (JDFSurface)k; myResource.Add(myJDFSurface); } return(myResource); }
public virtual void testFixFromFlatNewLayout() { n.setVersion(EnumVersion.Version_1_3); JDFLayout loNew = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null); JDFContentObject co1 = loNew.appendContentObject(); n.fixVersion(EnumVersion.Version_1_2); JDFLayout lo = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0); Assert.IsFalse(JDFLayout.isNewLayout(lo)); JDFSignature si = lo.getSignature(0); Assert.AreEqual(ElementName.SIGNATURE, si.LocalName); JDFSheet sh = si.getSheet(0); JDFSurface su = sh.getSurface(EnumSide.Front); Assert.AreEqual(co1, su.getContentObject(0)); }
public virtual void testGetSignatureName_New() { testBuildNewLayout(); JDFLayout lo = (JDFLayout)n.getMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null, 0); JDFSignature sig = lo.getSignature(0); Assert.AreEqual("SignatureName1", sig.getSignatureName()); JDFSignature sig2 = lo.getSignature(1); Assert.AreEqual("SignatureName2", sig2.getSignatureName()); JDFSheet s1 = sig2.getSheet(1); // don't try 0 it will fail because it // is referenced... Assert.AreEqual("SignatureName2", s1.getSignatureName()); Assert.AreEqual("SheetName2", s1.getSheetName()); JDFSurface su = s1.getCreateBackSurface(); Assert.AreEqual("SignatureName2", su.getSignatureName()); Assert.AreEqual("SheetName2", su.getSheetName()); }
public virtual void testContextSensitiveElementNames() { // HoleType, Method, Shape and Surface are context sensitive elements // The type casts below should all succeed JDFDoc doc = new JDFDoc(ElementName.JDF); KElement rootNode = doc.getRoot(); JDFStringSpan kelem21 = (JDFStringSpan)rootNode.appendElement("HoleType", null); kelem21.setAttribute("Type", "org.cip4.jdflib.span.JDFStringSpan"); KElement kelem22 = rootNode.appendElement("RingBinding", null); JDFSpanHoleType kelem23 = (JDFSpanHoleType)kelem22.appendElement("HoleType", null); kelem23.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanHoleType"); JDFNameSpan kelem11 = (JDFNameSpan)rootNode.appendElement("Method", null); kelem11.setAttribute("Type", "org.cip4.jdflib.span.JDFNameSpan"); KElement kelem12 = rootNode.appendElement("InsertingIntent", null); JDFSpanMethod kelem13 = (JDFSpanMethod)kelem12.appendElement("Method", null); kelem13.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanMethod"); JDFShapeElement kelem4 = (JDFShapeElement)rootNode.appendElement("Shape", null); kelem4.setAttribute("Type", "org.cip4.jdflib.resource.JDFShapeElement"); KElement kelem5 = rootNode.appendElement("BookCase", null); JDFSpanShape kelem6 = (JDFSpanShape)kelem5.appendElement("Shape", null); kelem6.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanShape"); JDFSurface kelem7 = (JDFSurface)rootNode.appendElement("Surface", null); kelem7.setAttribute("Type", "org.cip4.jdflib.resource.process.JDFSurface"); KElement kelem8 = rootNode.appendElement("LaminatingIntent", null); JDFSpanSurface kelem9 = (JDFSpanSurface)kelem8.appendElement("Surface", null); kelem9.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanSurface"); }
/// /// <summary> * const get surface with the correct partition key </summary> /// public virtual JDFSurface getSurface(EnumSide side) { JDFSurface s = getSurface(0); if (s == null) { return(null); } if (s.getSide() == side) { return(s); } s = getSurface(1); if (s == null) { return(null); } if (s.getSide() == side) { return(s); } return(null); }
/// /// <summary> * create inter-resource link to refTarget /// * </summary> /// * <param name="JDFSurface"> /// * refTarget the element that is referenced </param> /// public virtual void refBackSurface(JDFSurface refTarget) { refElement(refTarget); refTarget.setSide(EnumSide.Back); }
public virtual void testBuildOldLayout() { reset(); n.setVersion(EnumVersion.Version_1_2); JDFLayout lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null); Assert.IsFalse(JDFLayout.isNewLayout(lo), "lo 1.3"); JDFSignature si = lo.appendSignature(); si.setName("Sig1"); Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name"); Assert.IsFalse(si.hasAttribute(AttributeName.CLASS)); si = lo.appendSignature(); si.setName("Sig2"); Assert.AreEqual(2, lo.numSignatures(), "num sigs"); Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name"); JDFSheet sh = si.appendSheet(); sh.setName("Sheet2_1"); sh.makeRootResource(null, null, true); // see what happens with // refelements sh = si.appendSheet(); sh.setName("Sheet2_2"); Assert.AreEqual(2, si.numSheets(), "num sheets"); Assert.AreEqual(ElementName.SHEET, sh.LocalName, "sheet name"); sh = si.getCreateSheet(4); Assert.AreEqual(3, si.numSheets(), "num sheets"); Assert.AreEqual(ElementName.SHEET, sh.LocalName, "sheet name"); sh = si.getSheet(2); Assert.AreEqual(3, si.numSheets(), "num sheets"); Assert.AreEqual(ElementName.SHEET, sh.LocalName, "sheet name"); JDFSurface su = sh.appendFrontSurface(); Assert.AreEqual(1, sh.numSurfaces(), "num surfaces"); Assert.AreEqual(ElementName.SURFACE, su.LocalName, "sheet name"); Assert.IsTrue(sh.hasFrontSurface(), "hasfrontSurface"); su.appendContentObject(); su.appendMarkObject(); su.appendContentObject(); su.appendContentObject(); su = sh.appendBackSurface(); su.makeRootResource(null, null, true); su.appendContentObject(); su.appendMarkObject(); su.appendContentObject(); su.appendContentObject(); su.appendMarkObject(); Assert.AreEqual(2, sh.numSurfaces(), "num surfaces"); Assert.AreEqual(ElementName.SURFACE, su.LocalName, "sheet name"); Assert.IsTrue(sh.hasBackSurface(), "hasBackSurface"); try { sh.appendBackSurface(); Assert.Fail("append second surface"); } catch (JDFException) { // nop } si = lo.getCreateSignature(4); Assert.AreEqual(3, lo.numSignatures(), "num sigs"); Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name"); si = lo.getSignature(2); Assert.AreEqual(3, lo.numSignatures(), "num sigs"); Assert.AreEqual(ElementName.SIGNATURE, si.LocalName, "signature name"); si = lo.getSignature(5); Assert.IsNull(si, "si null"); Assert.AreEqual(lo.numSignatures(), lo.getSignatureVector().Count); }
public virtual void testDynamicMarks() { JDFElement.setLongID(false); JDFLayout lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null); lo.setXMLComment("Layout that illustrates dynamic mark placement - all margins are 25 points (gutter=2*25)"); lo.setSurfaceContentsBox(new JDFRectangle(0, 0, 500, 350)); JDFSheet s = lo.appendSheet(); JDFSurface su = s.appendFrontSurface(); JDFContentObject co0 = su.appendContentObject(); co0.setOrd(0); JDFMatrix m1 = (JDFMatrix)JDFMatrix.unitMatrix.Clone(); m1.shift(25, 25); co0.setCTM(JDFMatrix.unitMatrix); co0.setTrimSize(new JDFXYPair(200, 300)); string[] id = new string[2]; id[0] = co0.appendAnchor(null); JDFContentObject co1 = su.appendContentObject(); m1 = (JDFMatrix)JDFMatrix.unitMatrix.Clone(); m1.shift(275, 25); co1.setCTM(m1); co1.setTrimSize(200, 300); id[1] = co1.appendAnchor(null); { JDFMarkObject mark0 = su.appendMarkObject(); mark0.setXMLComment("Register Mark on the top right of the sheet - assumed size is 20*30, assumed sheet size is 500*350"); mark0.setTrimSize(20, 30); mark0.setCTM(new JDFMatrix(1, 0, 0, 1, 500 - 20, 350 - 30)); mark0.appendDeviceMark().setAttribute("Anchor", "TopRight"); mark0.appendRegisterMark().setXMLComment("mark metadata goes here"); appendRefAnchor(mark0, "TopRight", "Parent", null); } { JDFMarkObject mark0 = su.appendMarkObject(); mark0.setXMLComment("Vertical Slug Line beginning at the top of the bottom margin of of the sheet between the 2 pages" + "\nnote that no TrimSize need be specified and therefore TrimCTM / CTM place the point defined by @Anchor" + "\nnote also that the anchor points to centerleft which is in the unrotated (horizontal) cs of the slug line"); JDFMatrix m0 = new JDFMatrix(1, 0, 0, 1, 0, 0); m0.rotate(90); m0.shift(250, 25); mark0.setCTM(m0); JDFDeviceMark dm = mark0.appendDeviceMark(); dm.setAttribute("Anchor", "CenterLeft"); dm.setFontSize(10); dm.setFont("GhostCrypt"); JDFJobField jf = mark0.appendJobField(); jf.setXMLComment("Result: Sheet Printed by Dracula at the moonphase FullMoon"); jf.setAttribute("JobFormat", "Sheet Printed by %s at the moonphase %s"); jf.setAttribute("JobTemplate", "Operator,MoonPhase"); appendRefAnchor(mark0, "BottomCenter", "Parent", null); } for (int i = 0; i < 2; i++) { JDFMarkObject mark0 = su.appendMarkObject(); mark0.setXMLComment("Horizonzal Slug Line, centered 5 points over the top of page " + i + "\nnote that page is not yet a predefined token\n"); JDFMatrix m0 = new JDFMatrix(1, 0, 0, 1, 0, 0); m0.rotate(90); m0.shift(25 + 100, 300 + 25 + 5); if (i == 1) { m0.shift(250, 0); } mark0.setCTM(m0); JDFDeviceMark dm = mark0.appendDeviceMark(); dm.setAttribute("Anchor", "BottomCenter"); dm.setFontSize(8); JDFJobField jf = mark0.appendJobField(); jf.setXMLComment("Result: Page # " + i + " for Customer, Polanski - Job: J11"); jf.setAttribute("JobFormat", "Page # %i for Customer, %s - Job: %s"); jf.setAttribute("JobTemplate", "Page,JobRecipientName,JobID"); appendRefAnchor(mark0, "BottomCenter", "Sibling", id[i]); } doc.write2File(sm_dirTestDataTemp + "LayoutDynamicMarks.jdf", 2, false); }