public void SetCurrentLine(PoemPart poemPart) { PoemLine line = poemPart.GetFirstLine(); if (CurrentLine != line) { SetOneLine(line); } }
internal PoemLineIdentifier GetID() { PoemLineIdentifier result = new PoemLineIdentifier(); result.LineString = this.Line; PoemPart curPoemPart = this.ParentPoemPart; Poem curPoem = this.ParentPoem; result.PoemName = curPoem.Name; result.PoemFirstLine = curPoem.GetFirstLine().Line; PoemLinesCollection collLines = null; if (curPoemPart != null) { collLines = curPoemPart.Lines; result.PoemPartName = curPoemPart.Name; result.PoemPartFirstLine = curPoemPart.GetFirstLine().Line; result.PoemPartIndex = curPoem.Parts.IndexOf(curPoemPart); } else { collLines = curPoem.Lines; } result.LineIndex = collLines.IndexOf(this); SABlockPart curBlockPart = curPoem.ParentBlockPart; SABlock curBlock = curPoem.ParentBlock; result.BlockName = curBlock.Name; result.BlockIndex = curBlock.ParentSA.Blocks.IndexOf(curBlock); PoemCollection collPoems = null; if (curBlockPart != null) { collPoems = curBlockPart.Poems; result.BlockPartName = curBlockPart.Name; result.BlockPartFirstLine = curBlockPart.GetFirstLine().Line; result.BlockPartIndex = curBlock.Parts.IndexOf(curBlockPart); } else { collPoems = curBlock.Poems; } result.PoemIndex = collPoems.IndexOf(curPoem); return(result); }
private PoemLine GenerateNextPoemPart(PoemLine currentLine, bool forward) { if (currentLine.ParentPoemPart != null) { PoemPart nextPoemPart = this.mySAIterator.GetNextPoemPart(currentLine.ParentPoemPart, forward); if (nextPoemPart != null) { return(nextPoemPart.GetFirstLine()); } } return(GenerateNextPoem(currentLine, forward)); }
public void GetRandomPoemPart(Poem poem) { PoemLine result = null; if (poem != null && poem.Parts.Count > 0) { int partsCount = poem.Parts.Count; int randomIndex = CommonOperations.rnd.Next(partsCount); PoemPart poemPart = poem.Parts[randomIndex]; result = poemPart.GetFirstLine(); } SetOneLine(result); }
public void GoPoemPartBegining() { PoemLine curLine = this.CurrentLine; if (systemAccumulation != null) { if (curLine == null) { curLine = systemAccumulation.GetFirstLine(); SetOneLine(curLine); } else { PoemPart curPoemPart = curLine.ParentPoemPart; Poem curPoem = curLine.ParentPoem; if (curPoemPart != null) { bool isFirstLine = curPoemPart.IsFirstLine(curLine); if (!isFirstLine) { SetOneLine(curPoemPart.GetFirstLine()); } } else { bool isFirstLine = curPoem.IsFirstLine(curLine); if (!isFirstLine) { SetOneLine(curPoem.GetFirstLine()); } } } } }