
    ը	fy8                        d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZ  ed	 ed
             ed ed             ed ed             ed ed             ed ed             ed ed             ed ed             ed ed             ed ed            d	Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Zy)%a  
@package iclass.toolbars

@brief wxIClass toolbars and icons.

Classes:
 - toolbars::IClassMapToolbar
 - toolbars::IClassToolbar
 - toolbars::IClassMapManagerToolbar
 - toolbars::IClassMiscToolbar

(C) 2006-2011 by the GRASS Development Team
This program is free software under the GNU General Public
License (>=v2). Read the file COPYING that comes with GRASS
for details.

@author Vaclav Petras <wenzeslaus gmail.com>
@author Anna Kratochvilova <kratochanna gmail.com>
    )print_functionN)BaseToolbar	BaseIcons)MetaIcon)IClassMapDialogContrastColor)GUI)
StaticTextzlayer-opacityzSet opacity level)imglabelztable-managerzClass managerzlayer-group-addzSelect imagery groupexecutez4Run analysis, update histogram and coincidence plotszscript-savez Save signature file for i.maxlikzlayer-removezRemove selected map layerzlayer-exportz#Export training areas to vector mapzlayer-importz%Import training areas from vector mapzlayer-rgb-addzAdd RGB map layer)	opacityclassManagerselectGrouprunsigFiledelCmdexportAreasimportAreasaddRgbc                   .    e Zd ZdZd Zd Zd Zd Zd Zy)IClassMapToolbarzIClass Map toolbarc           
         t        j                  | ||       | j                  | j                                | j                  | _        t        j                  | t        j                  t        d      t        d      g      | _
        | j                  d| j                         | j                  | j                  j                         t        d      dt        d   j                         dt        d             | j                  | j                   | j"                  fD ]   }| j$                  j'                  d	| |
       " | j)                          | j+                  | j,                  d       y)zIClass Map toolbar constructorTrainingPreview)parentidchoices	   zSet map canvas for  zoomBackz/ Zoom to mapmouseUse)grouptoolbartoolFN)r   __init__InitToolbar_toolbarDatapan_defaultwxChoiceID_ANY_	togglemapInsertControlSetToolShortHelpGetIdr   GetLabelzoomInzoomOuttoolSwitcherAddToolToGroupRealize
EnableToolr!   )selfr   r6   r%   s       0/usr/lib/grass83/gui/wxpython/iclass/toolbars.pyr&   zIClassMapToolbar.__init__7   s   T6<8**,- BII*q|/L
 	1dnn-NN  " '(*%..0/"		
 XXt{{DLL9 	XD,,:tRV,W	X 	u-    c                     | j                   S )z'Return widget for selecting active maps)r/   r:   s    r;   GetActiveMapToolz!IClassMapToolbar.GetActiveMapToolV   s    ~~r<   c                 6    | j                   j                         S )zGet currently selected map)r/   GetSelectionr>   s    r;   GetActiveMapzIClassMapToolbar.GetActiveMapZ   s    ~~**,,r<   c                 8    | j                   j                  |      S )zSet currently selected map)r/   SetSelection)r:   indexs     r;   SetActiveMapzIClassMapToolbar.SetActiveMap^   s    ~~**511r<   c                 :   t         }| j                  d|d   j                  f|d   | j                  j                  fd|d   j                  f|d   | j                  j
                  fd|d   j                  f|d   | j                  j                  fdd|d   j                  f|d   | j                  j                  t        j                  fd|d   j                  f|d   | j                  j                  t        j                  fd	|d	   j                  f|d	   | j                  j                  t        j                  fd
|d
   j                  f|d
   | j                  j                  fd|d   j                  f|d   | j                  j                  fdd|d   j                  f|d   | j                  j                  fd|d   j                  f|d   | j                  j                  fdt         d   j                  ft         d   | j                  j                   ff      S )Toolbar data
displaymapdisplay	rendermaprendereraseNr)   r4   r5   
zoomRegionzoomMenur!   	zoomToMap
zoomExtentmapDispSettings)r   _getToolbarDatar   r   OnDrawOnRenderOnEraseOnPanr+   
ITEM_CHECKOnZoomIn	OnZoomOutOnZoomToWind
OnZoomMenu
OnZoomBackOnZoomToMapOnMapDisplayPropertiesr:   iconss     r;   r(   zIClassMapToolbar._toolbarDatab   s:   ## "5#3#9#9:)$KK&& !%/"7"78(OKK(( eGn223'NKK''
 E%L../%LKK%%MM	 uX445(OKK((MM	 i 0 6 67)$KK))MM	 "5#6#<#<=,'KK,,  z!2!8!89*%KK**
 z!2!8!89*%KK** !%"5";";<,'KK++ '	2C(D(J(JK/0KK66q=?
 ?	
r<   N)	__name__
__module____qualname____doc__r&   r?   rB   rF   r(    r<   r;   r   r   4   s    .>-2B
r<   r   c                   l    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZddZd Zy)IClassToolbarIClass toolbarc                     || _         t        j                  | |       | j                  | j	                                t        j                  | t
        j                  d      | _        | j                  d| j                         | j                  j                  t
        j                  | j                         | j                  dt        | t
        j                  d             t        j                  | t
        j                  dt
        j                        | _        | j#                          | j                  d	| j                          | j%                  d
       | j                   j                  t
        j&                  | j(                         | j                   j                  t
        j*                  | j,                         | j                   j.                  j1                  | j2                         | j                   j4                  j1                  | j2                         | j                   j6                  j1                  | j2                         | j                   j8                  j1                  | j2                         | j;                          y)IClass toolbar constructor)n   r   r   size      r    )r   r   )   rn   )r   rp   style   FN)
stats_datar   r&   r'   r(   r+   r,   r-   choicer0   Bind
EVT_CHOICEOnSelectCategoryr
   ComboBoxTE_PROCESS_ENTERcombo
InitStddevEnableControlsEVT_COMBOBOXOnStdChangeSelectionEVT_TEXT_ENTEROnStdChangeTextstatisticsAddedconnectUpdatestatisticsDeletedallStatisticsDeletedstatisticsSetr8   )r:   r   rv   s      r;   r&   zIClassToolbar.__init__   s   $T6***,-iit			J1dkk*(=(=> 	1j"))3GH[[RYYYb6I6I

 	1djj)E"

)B)BC

))4+?+?@''//<))11$++>,,44T[[A%%--dkk: 	r<   c                     t         } j                  d|d   j                  f|d    fdfdd|d   j                  f|d    j                  j                  fdd|d   j                  f|d    j                  j
                  fdd|d   j                  f|d    j                  j                  fd|d   j                  f|d    j                  j                  fd	|d	   j                  f|d	    j                  j                  ff	      S )
rH   r   c                 8    j                   j                         S rN   )r   AddBands)eventr:   s    r;   <lambda>z,IClassToolbar._toolbarData.<locals>.<lambda>   s    $++"6"6"8 r<   rN   r   runAnalysisr   r   r   r   )	iClassIconsrT   r   r   OnCategoryManagerOnRunAnalysisOnImportAreasOnExportAreasOnSaveSigFilera   s   ` r;   r(   zIClassToolbar._toolbarData   s7   ## #E-$8$>$>?-(8
 #U>%:%@%@A.)KK11
 "E%L$6$67%LKK--
 "E-$8$>$>?-(KK-- #E-$8$>$>?-(KK-- i 0 6 67)$KK--;"$
 $	
r<   c                 J    t        | j                  j                                y rN   )printrw   GetStringSelection)r:   r   s     r;   OnMotionzIClassToolbar.OnMotion   s    dkk,,./r<   c                     | j                   j                         }| j                   j                  |      }| j                  |       | j                  j                  |       y )N)
currentCat)rw   rA   GetClientData_updateColorr   CategoryChanged)r:   r   idxcats       r;   rz   zIClassToolbar.OnSelectCategory   sK    kk&&(kk'',###s#3r<   c                 *   |r|| j                   j                  |      }t        j                  |j                  j                  d      D cg c]  }t        |       c}      }t        j                  t        |       }nZt        j                  j                  t        j                        }t        j                  j                  t        j                        }| j                  j                  |       | j                  j                  |       y c c}w )N:)rv   GetStatisticsr+   Colourcolorsplitintr   SystemSettings	GetColourSYS_COLOUR_BACKGROUNDSYS_COLOUR_BTNTEXTrw   SetForegroundColourSetBackgroundColour)r:   r   statxback_ctext_cs         r;   r   zIClassToolbar._updateColor   s    ??005DYY

0@0@0EF1AFGFYYf 56F&&001I1IJF&&001F1FGF''/''/  Gs   
Dc                     | j                   j                          t        ||      D ]!  \  }}| j                   j                  ||       # y rN   )rw   ClearzipAppend)r:   catNamescatIdxnamer   s        r;   SetCategorieszIClassToolbar.SetCategories  s@    Xv. 	*ID#KKtS)	*r<   c                 6    | j                   j                         S rN   )rw   r   r>   s    r;   GetSelectedCategoryNamez%IClassToolbar.GetSelectedCategoryName  s    {{--//r<   c                     | j                   j                         }|t        j                  k7  r| j                   j	                  |      S y rN   )rw   rA   r+   	NOT_FOUNDr   )r:   r   s     r;   GetSelectedCategoryIdxz$IClassToolbar.GetSelectedCategoryIdx  s8    kk&&(",,;;,,S11r<   c                     | j                   j                         }| j                   j                  |      }| j                  |       y rN   )r}   rA   r   StddevChanged)r:   r   r   nstds       r;   r   z"IClassToolbar.OnStdChangeSelection  s6    jj%%'zz'',4 r<   c                    | j                   j                         j                         }	 t        |      }|| j                  |       y y # t        $ r2 	 t        |j                         d         }n# t        $ r d }Y nw xY wY Ow xY w)Nr   )r}   GetValuestripfloat
ValueErrorr   r   )r:   r   valr   s       r;   r   zIClassToolbar.OnStdChangeText   s    jj!!#))+	:D t$   	SYY[^, 	s5   A
 
	BA10B1A?<B>A??BBc                 d    | j                         }|sy | j                  j                  ||       y )N)r   r   )r   r   r   )r:   r   r   s      r;   r   zIClassToolbar.StddevChanged-  s-    ))+!!c!5r<   c                 t    | j                   j                  dj                  d|z  t        d      f             y )Nr    %.2fstd dev)r}   SetValuejoinr.   r:   r   s     r;   UpdateStddevzIClassToolbar.UpdateStddev4  s*    

CHHftmQy\%BCDr<   c           	          t        ddd      D ]A  }|dz  }| j                  j                  dj                  d|z  t	        d      f      |       C | j                  j                  d	       y )
N2         g      Y@r    r   r   )item
clientDatarr   )ranger}   r   r   r.   rD   r   s     r;   r~   zIClassToolbar.InitStddev7  si    "c2& 	DEMDJJXXv}a	l;<  	
 	

"r<   c                 p    | j                   j                  |       | j                  j                  |       y rN   )r}   Enablerw   )r:   enables     r;   r   zIClassToolbar.EnableControls?  s&    

&!6"r<   c                    | j                         }g }| j                  j                         }|D ]8  }| j                  j                  |      }|j	                  |j
                         : | j                  ||       ||v r,| j                  j                  |       | j                         }n0|r,| j                  j                  d       | j                         }nd }| j                  j                         r| j                  d       n| j                  d       | j                  |       | j                  j                  |       y )N)r   r   r   FT)r   rv   GetCategoriesr   appendr   r   rw   SetStringSelectionr   rD   IsEmptyr   r   r   r   )r:   argskwargsr   r   catsr   r   s           r;   r   zIClassToolbar.UpdateC  s   ++-,,. 	'C??005DOODII&	' 	HT:8KK**40--/CKK$$Q'--/CC;; &%###C(r<   N)T)rc   rd   re   rf   r&   r(   r   rz   r   r   r   r   r   r   r   r   r~   r   r   rg   r<   r;   ri   ri      sS     D'
R04
0*
0!%6E##)r<   ri   c                   @    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)IClassMapManagerToolbarrj   c                    t        j                  | |       | j                  | j                                t	        j
                  | t        j                  d      | _        | j                  | j                        | _	        | j                  j                  t        j                  | j                         || _        | j                          y)rl   )i,  rn   ro   N)r   r&   r'   r(   r+   r,   r-   rw   
AddControlchoiceidrx   ry   OnSelectLayer
mapManagerr8   )r:   r   r   s      r;   r&   z IClassMapManagerToolbar.__init__b  s    T6***,-iit			J4(:(:;$r<   c                 d   | j                  dt        d   j                  ft        d   | j                  fdt        d   j                  ft        d   | j
                  fdt        d   j                  ft        d   | j                  fdt        d   j                  ft        d   | j                  ff      S )rH   addRastr   delRastr   
setOpacityr   )rT   r   r   	OnAddRastr   OnAddRGB	OnDelRastOnSetOpacityr>   s    r;   r(   z$IClassMapManagerToolbar._toolbarDataq  s    ## 	) 4 : :;i(NN {84::;)MM H 5 ; ;<)NN ";y#9#?#?@	*%%!
 	
r<   c                 p    | j                   j                         }| j                  j                  |       y Nr   )rw   r   r   SelectLayer)r:   r   layers      r;   r   z%IClassMapManagerToolbar.OnSelectLayer  s)    ..0###/r<   c                 &   t        | t        d      d      }|j                         t        j                  k(  rIt        j                  |j                         d      }|d   r| j                  j                  |d          |j                          y )NzAdd raster mapraster)titleelementcell)r   r   fullnamer   )r   r.   	ShowModalr+   ID_OKgrass	find_fileGetMapr   AddLayerDestroy)r:   r   dlgr   s       r;   r   z!IClassMapManagerToolbar.OnAddRast  si    d!,<*=xP==?bhh&__#**,GFj!((fZ.@(Ar<   c                 r    dg}t        | j                        j                  || j                  ddf       y )Nzd.rgb)r    )	completed)r	   r   ParseCommand
GetOptData)r:   r   cmds      r;   r   z IClassMapManagerToolbar.OnAddRGB  s1    i4;;,,ST__bRT<U,Vr<   c                 B    |r| j                   j                  |       y y )N)r	  )r   AddLayerRGB)r:   dcmdr   paramspropwins        r;   r  z"IClassMapManagerToolbar.GetOptData  s    OO''D'1 r<   c                     | j                   j                         }| j                   j                         }|r| j                  j	                  ||       y y )N)r   r   )rw   r   rA   r   RemoveLayerr:   r   r   r   s       r;   r   z!IClassMapManagerToolbar.OnDelRast  sE    ..0kk&&(OO''U'< r<   c                     | j                   j                         }| j                   j                         }|t        j                  k(  ry | j
                  j                  |       y r   )rw   r   rA   r+   r   r   
SetOpacityr  s       r;   r   z$IClassMapManagerToolbar.OnSetOpacity  sJ    ..0kk&&(",,""".r<   N)rc   rd   re   rf   r&   r(   r   r   r   r  r   r   rg   r<   r;   r   r   _  s.    
60W2=/r<   r   c                       e Zd ZdZd Zd Zy)IClassMiscToolbarrj   c                     t        j                  | |       | j                  | j                                | j	                          y)rl   N)r   r&   r'   r(   r8   )r:   r   s     r;   r&   zIClassMiscToolbar.__init__  s2    T6***,-r<   c                     t         }| j                  d|d   j                  f|d   | j                  j                  fd|d   j                  f|d   | j                  j
                  ff      S )rH   helpquit)r   rT   r   r   OnHelpOnCloseWindowra   s     r;   r(   zIClassMiscToolbar._toolbarData  sy    ## U6]001&MKK&& U6]001&MKK--
 	
r<   N)rc   rd   re   rf   r&   r(   rg   r<   r;   r  r    s    
r<   r  )rf   
__future__r   r+   gui_core.toolbarsr   r   
icons.iconr   iclass.dialogsr   r   gui_core.formsr	   gui_core.wrapr
   grass.scriptscriptr   r.   r   r   ri   r   r  rg   r<   r;   <module>r$     s  ( & 	 4  9  $  O15H3IJ/8JK 1;Q9RSQUV M3U1VW>3N1OP!$I"J !$K"L ?!4G2HI&p
{ p
ft)K t)pN/k N/b
 
r<   