|
Control.ModelViewController | Portability | portable | Stability | experimental | Maintainer | joost.visser@di.uminho.pt |
|
|
|
|
|
Description |
A framework for the Model-View-Controller design pattern. In particular,
this module allows easy constructions of on-line applications that offer
a simple menu structure for manipulation of an underlying model.
|
|
Synopsis |
|
data Controller model = Controller {} | | data ModelOperation model = forall p l v h . (ConnectCGI p l v h, InputHandle h) => MO l (model -> p) (model -> v -> model) | | data ModelView' model = forall p l v h . (ConnectCGI p l v h, InputHandle h) => MV' l (model -> p) (model -> v -> WithHTML () CGI ()) | | data ModelView model = MV (model -> WithHTML () CGI ()) | | mvc :: (Read model, Show model) => Controller model -> CGI () | | menuQuery :: (Read model, Show model) => Controller model -> model -> (String, ModelView model) -> CGI () | | mkMenuButtons :: (Read model, Show model) => Controller model -> model -> [(String, ModelView model)] -> [(String, ModelOperation model)] -> [(String, CGI ())] | | mkView :: (String, ModelView model) -> model -> WithHTML () CGI () | | graphView :: String -> (model -> String) -> ModelView model |
|
|
|
Representation |
|
data Controller model |
The type of controllers parameterized by the type of models. | Constructors | Controller | | initModel :: (FileReference -> IO model) | Action to initialize the model. | modelOperations :: [(String, ModelOperation model)] | List of operations on the model. | modelViews :: [(String, ModelView model)] | List of views on the model. |
|
|
|
|
data ModelOperation model |
The type of operations on the model. | Constructors | forall p l v h . (ConnectCGI p l v h, InputHandle h) => MO l (model -> p) (model -> v -> model) | |
|
|
|
data ModelView' model |
The type of views on the model. | Constructors | forall p l v h . (ConnectCGI p l v h, InputHandle h) => MV' l (model -> p) (model -> v -> WithHTML () CGI ()) | |
|
|
|
data ModelView model |
Constructors | MV (model -> WithHTML () CGI ()) | |
|
|
|
Create a full online application. |
|
mvc :: (Read model, Show model) => Controller model -> CGI () |
Create application for a model and its controller. |
|
Create parts. |
|
menuQuery |
:: (Read model, Show model) | | => Controller model | Controller | -> model | Current model | -> (String, ModelView model) | Selected view | -> CGI () | Main application window. | Create the main application window with menu and selected view. |
|
|
mkMenuButtons :: (Read model, Show model) => Controller model -> model -> [(String, ModelView model)] -> [(String, ModelOperation model)] -> [(String, CGI ())] |
Create menu buttons for continuation to other views. |
|
mkView :: (String, ModelView model) -> model -> WithHTML () CGI () |
Create a view on the model. |
|
Creating specific views. |
|
graphView |
:: String | Label | -> (model -> String) | create dot string from model | -> ModelView model | | View a graph generated from the current model. |
|
|
Produced by Haddock version 0.6 |