Jiri,

Sounds like the state pattern would be helpful here. Define a class for each state of the application. Each class will contain methods for actions the user can take in that state, like selectListItem. When the user takes the given action (ex., selecting a list item), the associated function in the current state is called, and the correct actions are performed. Once those actions are performed, move the application to the new state. Essentially the current state class decides what actions to take in response to user interaction with the application.

Thanks,
Raymond Simmons

----- Original Message ----- From: "Jiri Heitlager" <[EMAIL PROTECTED]>
To: "Flash Coders List" <flashcoders@chattyfig.figleaf.com>
Sent: Tuesday, April 01, 2008 6:03 AM
Subject: [Flashcoders] Some feedback on a coding design question


Hello List,

I am currently building an application that uses panels. The Panels implement a Composite Pattern. The panel holds instances of panelButtonSets class. The panel displays certain sets based on a selected item in the client code.

Now my question is, how do I get around a lot of if statements in the panel like so:
if(clientcode.selecteditem.type == 1){
 panel.addSet("position_panel")
 panel.addSet("rotation_panel")
 panel.addSet("edit_panel")
}else if(clientcode.selecteditem.type == 2){
//different sets of button sets
}

etc...

One solution I am thinking about is the following, but I would like to get some feedback on this approach.

BasicButtonSet() {

addSets(new panelButtonSets("position_panel"))
addSets(new panelButtonSets("rotation_panel"))
}

ColorButtonSet() extends BasicButtonSet {

addSets(new panelButtonSets("color_panel"))
addSets(new panelButtonSets("brightness_panel"))
}

var basicSet:ButtonSet = new BasicButtonSet();
var colorSet:ButtonSet = new ColorButtonSet();

Then the selected item holds a reference to a certain set that can be loaded into the panel.


var set = selectItem.GetButtonSet();

Panel.loadSetObject(set )
{
for every set in the parameter set, call its render method and place it at the right position

};

The thing in this solution is that every set is allready instantiated and therefore is probably a quit expensive solution?


Jiri

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to