wiki:TEXT_AUTO_CHAIN_BEHAVIOUR_R1

Version 28 (modified by milen, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=TEXT_AUTO_CHAIN_BEHAVIOUR_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

(Give as much as possible of the needed information for designing and implementing the task in the following sections.)

Overview

There should be an automatic chaining availability when text frame is used.

Task requirements

  • Add a new object in the frame list for chaining: "Auto chain".
  • When setting auto chaining to a text frame the following things should be acquired:
    • If there is no other text frame on the page and the text overflows:
      • If next page exist and it is empty (without any content) then on the next page text frame is created with the same properties as the first one (position, size, background etc.).The both frames are linked.
      • If next page exist and it is not empty then a new page is created after the current page and a text frame is created with the same properties as the first one (position, size, background etc.).The both frames are linked. All the pages after the new created one are shifted after it.
      • If there is no next page, then it's created with a text frame with the same properties as the first one (position, size, background etc.).The both frames are linked.
      • If there are some text frames(not one) on the page and the last text frame overflow then a new page with the same number, location, size and style of the linked text frames is created and the new created frames are linked in the same way as in the previous page and they are linked with the last one of the first page.
      • If there are some other content besides the text frames and the text frame overflow then on the new page all kinds of the frames from the previous page are created with the same number, location, size and style of their prototypes in the previous page. The both frames are linked.
  • Deleting a text frame which is part of linked text frames deletes the frame and:
    • If the frame is the first one in the chain, then the frame and all the text in the chain is deleted but the text is saved in Resources
    • If the frame is a middle frame in the chain, then destruct the links between the frames before and after the deleted frame, save the links between the other frames in the new created two chains, save the text in the first chain and delete all the pages having no other content besides empty text frames but save the link between the other frames in the second chain.
    • If the answer is "yes" the text in the frame is reordered in the next frames in the line(in need a new frame as last one is created in the appropriate way).
    • If the answer is "no" the frame and the text in the frame are deleted permanently.
  • Deleting a page that contain linked text frames with other pages' frames should act in the same way as deleting a frame but including all the linked frames in the page.
  • Unlinking text frames should come with a PopUp asking where the text after the point of interception to be saved: before or after this point:
    • If before is chosen:
      • The text is saved before the point of interception
      • If the frames before are not big enough for the entire text, the text after the last frame of them becomes floating and invisible.
      • The frames after the point of unlinking stays empty but not deleted.
      • All the other links between the other text frames still exist.
    • If after is chosen:
      • All the text frames and text in them remain.
      • This link is broken but all the other links between the other frames still exist.

Task result

The result is code.

Implementation idea

Add auto chain in the list of chained frames:



Auto chain should always be available for a text frame.

TEXT_AUTO_CHAIN_BEHAVIOUR_R0
TEXT_CHAINING_BEHAVIOUR_R0
TEXT_AUTO_CHAIN_MULTI_FLOW_R0
TEXT_CHAIN_HALOS_R0

How to demo

  1. Create a new book.
  2. Insert a frame in it.
  3. Choose an Auto chain for the frame.
  4. Overflow by writing in the frame.

Expected behavior: A new page with a frame with the same properties as the first one (position, size, background etc.) should be create and it should be linked the overflowed one.
5.Insert a new frame on the first page.
Expected behavior: The first frame with auto chain option is automatically chained to the new inserted frame and then the new inserted frame automatically changes from not chained to auto chain and links to the frame in the second page.

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)

Attachments