source: trunk/SRC/ToBeReviewed/HOPE/rh_alldomains.pro @ 325

Last change on this file since 325 was 325, checked in by pinsard, 17 years ago

modification of some headers (+some corrections) to prepare usage of the new idldoc

  • Property svn:keywords set to Id
File size: 6.2 KB
Line 
1;+
2;
3; @file_comments
4;
5; @categories
6;
7; @param TOPID
8;
9; @param SELECTED
10;
11; @returns
12;
13; @uses
14;
15; @restrictions
16;
17; @examples
18;
19; @history
20;
21; @version
22; $Id$
23;
24; @todo seb
25;
26;-
27PRO rh_alldomains, topid, selected
28;
29  compile_opt idl2, strictarrsubs
30;
31
32   widget_control, topid, get_uvalue=top_uvalue
33   widget_control, topid, update=0
34;
35   selectedline=(*top_uvalue[1, findline(top_uvalue, 'linetype')])[selected]
36;
37; we get the size of the dimension id of this section
38;
39   dimvar = *top_uvalue[1, findline(top_uvalue, 'dimvar')]
40   typedim = *top_uvalue[1, findline(top_uvalue, 'typedim')]
41   dimlist = *top_uvalue[1, findline(top_uvalue, 'dimlist')]
42   sizedim = *top_uvalue[1, findline(top_uvalue, 'sizedim')]
43;
44; buttons to select type of line : odd, even or odd-even
45;
46   linechoicebase=widget_info(topid,find_by_uname = 'linechoicebase')
47   id = widget_info(linechoicebase,find_by_uname = 'linechoice')
48   IF id NE 0 THEN widget_control, id, /destroy
49   choice = ''
50   if (where(selectedline EQ 'odd'))[0] NE -1 then choice = [choice, 'odd']
51   if (where(selectedline EQ 'even'))[0] NE -1 then choice = [choice, 'even']
52   if (where(selectedline EQ 'odd-even'))[0] NE -1 then choice = [choice, 'odd-even']
53   choice = choice[1:n_elements(choice)-1]
54   nothing = cw_bgroup(linechoicebase,choice, /row,/exclusive, /return_name, uname = 'linechoice', uvalue = {name:'linechoice'})
55   widget_control, nothing, set_value = 0
56   sensitive = bytarr(3)
57   sensitive[where(['odd', 'even', 'odd-even'] eq choice[0])] = 1
58;
59;  odd points domain
60;
61   basedomainodd=widget_info(topid,find_by_uname = 'basedomainodd')
62   id = widget_info(basedomainodd,find_by_uname = 'title')
63   IF id NE 0 THEN widget_control, id, /destroy
64   oddsecchoice = where(selectedline EQ 'odd')
65   if oddsecchoice[0] NE -1 then BEGIN
66      oddsecchoice = selected[oddsecchoice]
67      nothing=widget_label(basedomainodd, value = 'Domain of the odd points', uname = 'title')
68      IF n_elements(oddsecchoice) GT 1 THEN BEGIN
69         selecteddim = dimvar[*, oddsecchoice]
70         sorteddim = selecteddim
71         FOR i = 0, n_elements(oddsecchoice)-1 DO $
72          sorteddim[*, i] = selecteddim[sortdim(typedim[selecteddim[*, i]]), i]
73         zdim = sorteddim[2, *]
74         sizedims = sizedim[zdim]
75         sortedzdim = sort(sizedims)
76         sizedims = sizedims[sortedzdim]
77         oddsecchoice = oddsecchoice[sortedzdim]
78         nothing=widget_droplist(basedomainodd,title = 'number of levels', value = strtrim(sizedims, 2), uvalue = {name:'oddsecchoice'}, uname='oddsecchoice')
79      ENDIF
80      domainpart, top_uvalue, basedomainodd, oddsecchoice[0]
81      widget_control, basedomainodd, set_uvalue = oddsecchoice
82   ENDIF ELSE BEGIN
83      nothing=widget_label(basedomainodd, value = ' ', uname = 'title')
84      domainpart, top_uvalue, basedomainodd, /destroy
85      widget_control, basedomainodd, set_uvalue = -1
86   ENDELSE
87   widget_control, basedomainodd, sensitive = sensitive[0]
88;
89;  even points domain
90;
91   basedomaineven=widget_info(topid,find_by_uname = 'basedomaineven')
92   id = widget_info(basedomaineven,find_by_uname = 'title')
93   IF id NE 0 THEN widget_control, id, /destroy
94   evensecchoice = where(selectedline EQ 'even')
95   if evensecchoice[0] NE -1 then BEGIN
96      evensecchoice = selected[evensecchoice]
97      nothing=widget_label(basedomaineven, value = 'Domain of the even points', uname = 'title')
98      IF n_elements(evensecchoice) GT 1 THEN BEGIN
99         selecteddim = dimvar[*, evensecchoice]
100         sorteddim = selecteddim
101         FOR i = 0, n_elements(evensecchoice)-1 DO $
102          sorteddim[*, i] = selecteddim[sortdim(typedim[selecteddim[*, i]]), i]
103         zdim = sorteddim[2, *]
104         sizedims = sizedim[zdim]
105         sortedzdim = sort(sizedims)
106         sizedims = sizedims[sortedzdim]
107         evensecchoice = evensecchoice[sortedzdim]
108         nothing=widget_droplist(basedomaineven,title = 'number of levels', value = strtrim(sizedims, 2), uvalue = {name:'evensecchoice'}, uname='evensecchoice')
109      ENDIF
110      domainpart, top_uvalue, basedomaineven, evensecchoice[0]
111      widget_control, basedomaineven, set_uvalue = evensecchoice
112   ENDIF ELSE BEGIN
113      domainpart, top_uvalue, basedomaineven, /destroy
114      nothing=widget_label(basedomaineven, value = ' ', uname = 'title')
115      widget_control, basedomaineven, set_uvalue = -1
116   ENDELSE
117   widget_control, basedomaineven, sensitive = sensitive[1]
118;
119;  odd-even points domain
120;
121   basedomainoddeven=widget_info(topid,find_by_uname = 'basedomainodd-even')
122   id = widget_info(basedomainoddeven,find_by_uname = 'title')
123   IF id NE 0 THEN widget_control, id, /destroy
124   oddevensecchoice = where(selectedline EQ 'odd-even')
125   if oddevensecchoice[0] NE -1 then BEGIN
126      oddevensecchoice = selected[oddevensecchoice]
127      nothing=widget_label(basedomainoddeven, value = 'Domain of the odd-even points', uname = 'title')
128      IF n_elements(oddevensecchoice) GT 1 THEN BEGIN
129         selecteddim = dimvar[*, oddevensecchoice]
130         sorteddim = selecteddim
131         FOR i = 0, n_elements(oddevensecchoice)-1 DO $
132          sorteddim[*, i] = selecteddim[sortdim(typedim[selecteddim[*, i]]), i]
133         zdim = sorteddim[2, *]
134         sizedims = sizedim[zdim]
135         sortedzdim = sort(sizedims)
136         sizedims = sizedims[sortedzdim]
137         oddevensecchoice = oddevensecchoice[sortedzdim]
138         nothing=widget_droplist(basedomainoddeven,title = 'number of levels', value = strtrim(sizedims, 2), uvalue = {name:'odd-evensecchoice'}, uname='odd-evensecchoice')
139      ENDIF
140      domainpart, top_uvalue, basedomainoddeven, oddevensecchoice[0]
141      widget_control, basedomainoddeven, set_uvalue = oddevensecchoice
142   ENDIF ELSE BEGIN
143      domainpart, top_uvalue, basedomainoddeven, /destroy
144      nothing=widget_label(basedomainoddeven, value = ' ', uname = 'title')
145      widget_control, basedomainoddeven, set_uvalue = -1
146   ENDELSE
147   widget_control, basedomainoddeven, sensitive = sensitive[2]
148;
149   case (where(sensitive EQ 1))[0] of
150      0:*top_uvalue[1, findline(top_uvalue, 'selected')] = oddsecchoice[0]
151      1:*top_uvalue[1, findline(top_uvalue, 'selected')] = evensecchoice[0]
152      2:*top_uvalue[1, findline(top_uvalue, 'selected')] = oddevensecchoice[0]
153   endcase
154;
155   widget_control, topid, update=1
156   return
157end
Note: See TracBrowser for help on using the repository browser.