wiki:LOGICR3_REDESIGN_R0
Last modified 16 years ago Last modified on 07/29/09 16:15:28

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

Error: Macro TicketQuery(summary=LOGICR3_REDESIGN_R0, 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

Overview

  • Remove the old Logic. All classes should use LogicR3 instead of Logic.

Task requirements

  • Refactor ImageFrameLogic, FrameLogic, PageLogic, BookLogic, AppLogic classes to use LogicR3 instead Logic.
  • JButtons that perform different actions across Sophie2 should also fire their events through the LogicR3.

Task result

  • The result of this task should be source code.

Implementation idea

  • Remove the abstract method clicked() from MenuItem class.
  • Change menu hierarchy to use the LogicR3 and EventR3.

How to demo

  • Demonstrate the changes made in the source code.

Design

  • Make the clicked() method in MenuItem class final. When a menu item is clicked, an event will be fired that a menu item is clicked.
  • Create MenuItemIds enum with one element - CLICKED - the id of the event that will be fired.
  • Create logic for every menu item that will filters events with id - MenuItemIds.CLICKED and source - the item itself. When handled such events, another event will be fired depending on which menu item is clicked.
  • BookLogic should implement OperationDef.
  • Change buttons from NavigationPanel to fire events that will be handled in BookLogic.
  • Change AppLogic to implement OperationDef. AppLogic should handle events connected with creation of book and closure of book.
  • Change PageLogic to implement OperationDef. Should handle events connected with modification of work area.
  • Move the logic from FrameLogic class to FrameLogicR3 class.

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.)