Changeset 2141


Ignore:
Timestamp:
Jan 23, 2012, 11:13:46 AM (5 years ago)
Author:
work@…
Message:

base study comparison wizard

Location:
trunk/grails-app
Files:
17 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/query/StudyCompareController.groovy

    r2140 r2141  
     1package dbnp.query
     2
    13/**
    2  * StudyCompareController Controler
     4 * ajaxflow Controller
    35 *
    4  * Description of my controller
    5  *
    6  * @author  your email (+name?)
    7  * @since       2010mmdd
    8  * @package     ???
     6 * @author      Jeroen Wesbeek
     7 * @since       20120123
    98 *
    109 * Revision information:
    11  * $Rev$
    12  * $Author$
    13  * $Date$
     10 * $Rev:  66849 $
     11 * $Author:  duh $
     12 * $Date:  2010-12-08 15:12:54 +0100 (Wed, 08 Dec 2010) $
    1413 */
    15 package dbnp.query
    16 
    1714class StudyCompareController {
     15        // the pluginManager is used to check if the Grom
     16        // plugin is available so we can 'Grom' development
     17        // notifications to the unified notifications daemon
     18        // (see http://www.grails.org/plugin/grom)
     19        def pluginManager
     20       
    1821        /**
    19          * index closure
     22         * index method, redirect to the webflow
     23         * @void
    2024         */
    21     def index = { }
     25        def index = {
     26                // Grom a development message
     27                if (pluginManager.getGrailsPlugin('grom')) "redirecting into the webflow".grom()
     28
     29                /**
     30                 * Do you believe it in your head?
     31                 * I can go with the flow
     32                 * Don't say it doesn't matter (with the flow) matter anymore
     33                 * I can go with the flow (I can go)
     34                 * Do you believe it in your head?
     35                 */
     36                redirect(action: 'pages')
     37        }
     38
     39        /**
     40         * WebFlow definition
     41         * @void
     42         */
     43        def pagesFlow = {
     44                // start the flow
     45                onStart {
     46                        // Grom a development message
     47                        if (pluginManager.getGrailsPlugin('grom')) "entering the WebFlow".grom()
     48
     49                        // define variables in the flow scope which is availabe
     50                        // throughout the complete webflow also have a look at
     51                        // the Flow Scopes section on http://www.grails.org/WebFlow
     52                        //
     53                        // The following flow scope variables are used to generate
     54                        // wizard tabs. Also see common/_tabs.gsp for more information
     55                        flow.page = 0
     56                        flow.pages = [
     57                                [title: 'Page One'],
     58                                [title: 'Page Two'],
     59                                [title: 'Page Three'],
     60                                [title: 'Page Four'],
     61                                [title: 'Done']
     62                        ]
     63                        flow.cancel = true;
     64                        flow.quickSave = true;
     65
     66                        success()
     67                }
     68
     69                // render the main wizard page which immediately
     70                // triggers the 'next' action (hence, the main
     71                // page dynamically renders the study template
     72                // and makes the flow jump to the study logic)
     73                mainPage {
     74                        render(view: "/studyCompare/index")
     75                        onRender {
     76                                // Grom a development message
     77                                if (pluginManager.getGrailsPlugin('grom')) "rendering the main Ajaxflow page (index.gsp)".grom()
     78
     79                                // let the view know we're in page 1
     80                                flow.page = 1
     81                                success()
     82                        }
     83                        on("next").to "pageOne"
     84                }
     85
     86                // first wizard page
     87                pageOne {
     88                        render(view: "_page_one")
     89                        onRender {
     90                                // Grom a development message
     91                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial: pages/_page_one.gsp".grom()
     92
     93                                flow.page = 1
     94                                success()
     95                        }
     96                        on("next") {
     97                                // put your bussiness logic (if applicable) in here
     98                        }.to "pageTwo"
     99                        on("toPageTwo") {
     100                                // put your bussiness logic (if applicable) in here
     101                        }.to "pageTwo"
     102                        on("toPageThree") {
     103                                // put your bussiness logic (if applicable) in here
     104                        }.to "pageThree"
     105                        on("toPageFour") {
     106                                // put your bussiness logic (if applicable) in here
     107                        }.to "pageFour"
     108                        on("toPageFive") {
     109                                // put your bussiness logic (if applicable) in here
     110                                flow.page = 5
     111                        }.to "save"
     112                }
     113
     114                // second wizard page
     115                pageTwo {
     116                        render(view: "_page_two")
     117                        onRender {
     118                                // Grom a development message
     119                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial: pages/_page_two.gsp".grom()
     120
     121                                flow.page = 2
     122                                success()
     123                        }
     124                        on("next").to "pageThree"
     125                        on("previous").to "pageOne"
     126                        on("toPageOne").to "pageOne"
     127                        on("toPageThree").to "pageThree"
     128                        on("toPageFour").to "pageFour"
     129                        on("toPageFive") {
     130                                flow.page = 5
     131                        }.to "save"
     132                }
     133
     134                // second wizard page
     135                pageThree {
     136                        render(view: "_page_three")
     137                        onRender {
     138                                // Grom a development message
     139                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_page_three.gsp".grom()
     140
     141                                flow.page = 3
     142                                success()
     143                        }
     144                        on("next").to "pageFour"
     145                        on("previous").to "pageTwo"
     146                        on("toPageOne").to "pageOne"
     147                        on("toPageTwo").to "pageTwo"
     148                        on("toPageFour").to "pageFour"
     149                        on("toPageFive") {
     150                                flow.page = 5
     151                        }.to "save"
     152                }
     153
     154                // second wizard page
     155                pageFour {
     156                        render(view: "_page_four")
     157                        onRender {
     158                                // Grom a development message
     159                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_page_four.gsp".grom()
     160
     161                                flow.page = 4
     162                                success()
     163                        }
     164                        on("next") {
     165                                // put some logic in here
     166                                flow.page = 5
     167                        }.to "save"
     168                        on("previous").to "pageThree"
     169                        on("toPageOne").to "pageOne"
     170                        on("toPageTwo").to "pageTwo"
     171                        on("toPageThree").to "pageThree"
     172                        on("toPageFive") {
     173                                flow.page = 5
     174                        }.to "save"
     175                }
     176
     177                // save action
     178                save {
     179                        action {
     180                                // here you can validate and save the
     181                                // instances you have created in the
     182                                // ajax flow.
     183                                try {
     184                                        // Grom a development message
     185                                        if (pluginManager.getGrailsPlugin('grom')) ".persisting instances to the database...".grom()
     186
     187                                        // put your bussiness logic in here
     188                                        success()
     189                                } catch (Exception e) {
     190                                        // put your error handling logic in
     191                                        // here
     192                                        flow.page = 4
     193                                        error()
     194                                }
     195                        }
     196                        on("error").to "error"
     197                        on(Exception).to "error"
     198                        on("success").to "finalPage"
     199                }
     200
     201                // render errors
     202                error {
     203                        render(view: "_error")
     204                        onRender {
     205                                // Grom a development message
     206                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_error.gsp".grom()
     207
     208                                // set page to 4 so that the navigation
     209                                // works (it is disabled on the final page)
     210                                flow.page = 4
     211                        }
     212                        on("next").to "save"
     213                        on("previous").to "pageFour"
     214                        on("toPageOne").to "pageOne"
     215                        on("toPageTwo").to "pageTwo"
     216                        on("toPageThree").to "pageThree"
     217                        on("toPageFour").to "pageFour"
     218                        on("toPageFive").to "save"
     219
     220                }
     221
     222                // last wizard page
     223                finalPage {
     224                        render(view: "_final_page")
     225                        onRender {
     226                                // Grom a development message
     227                                if (pluginManager.getGrailsPlugin('grom')) ".rendering the partial pages/_final_page.gsp".grom()
     228                               
     229                                success()
     230                        }
     231                }
     232        }
    22233}
  • trunk/grails-app/views/common/_topnav.gsp

    r2111 r2141  
    6363                        <li><g:link controller="advancedQuery">Search</g:link></li>
    6464                        <li><g:link controller="visualize" action="index">Visualize</g:link></li>
     65                        <li><g:link controller="studyCompare" action="index">Compare</g:link></li>
    6566                </ul>
    6667        </li>
Note: See TracChangeset for help on using the changeset viewer.