Project

General

Profile

Feature #2254

Feature #2252: implement GUI client support

eliminate the logic in the Config* classes and make them simple containers with public members

Added by Greg Shah about 10 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD

History

#1 Updated by Greg Shah about 10 years ago

  • Subject changed from eliminate the Config* classes to eliminate the logic in the Config* classes and make them simple containers with public members

The current approach of having a parallel set of Config classes for each widget type is overcomplicated. In particular, it has a great deal of logic implemented there instead of in the widgets themselves.

The basic design is this:

Server Widget <-----> Config instance <-----> Client Widget

The config instances should be simple containers that hold common data for bidirectional transport between the server and client widgets. We don't even need to implement the bean interfaces or any other methods except what is needed for Externalizable. All server-specific logic can be put in the server widgets and client logic in the client widgets. The whole apply() processing needs to be eliminated.

The problem is that today, with substantial logic being implemented in the config classes, it is hard to know where to find logic (server logic can be in 2 places and client logic can be in 2 places). In addition there is alot of useless methods there that can save effort in maintenance and reduce future effort in implementing new attributes. We want the config classes to be dumb containers with public data.

#2 Updated by Greg Shah over 9 years ago

  • Assignee set to Constantin Asofiei
  • Parent task set to #2252

#3 Updated by Constantin Asofiei over 9 years ago

  • % Done changed from 0 to 100
  • Status changed from New to WIP

#4 Updated by Greg Shah over 9 years ago

  • Target version set to Milestone 12
  • Status changed from WIP to Closed

#5 Updated by Greg Shah over 7 years ago

  • Target version changed from Milestone 12 to GUI Support for a Complex ADM2 App

Also available in: Atom PDF