
    ը	f\/                         d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
 efdZ G d d	e      Z G d
 de      Z G d de      Zy)aP  
@package iscatt.toolbars

@brief Scatter plot - toolbars

Classes:
 - toolbars::MainToolbar

(C) 2013 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 Stepan Turek <stepan.turek seznam.cz> (mentor: Martin Landa)
    N)MetaIcon)BaseToolbar	BaseIcons
RunCommand)SettingsDialogc                 (    t        | |      r| d   S | S )zGet tool name

    :param str|tuple tool_name: tool name
    :param type tool_name_type: tool name type with default
                                tuple type

    :return str: tool name
    r   )
isinstance)	tool_nametool_name_types     0/usr/lib/grass83/gui/wxpython/iscatt/toolbars.pyget_tool_namer      s     )^,|    c                   H    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zy)MainToolbarMain toolbarNc                    t        j                  | |       || _        || _        | j	                  | j                                | j                          | j                  j                  j                  | j                         y N)
r   __init__	scatt_mgr	opt_toolsInitToolbar_toolbarDataRealizemodeSetconnectModeSet)selfparentr   r   s       r   r   zMainToolbar.__init__)   s^    T6*""**,- 	&&t||4r   c                 V    t        dt        d            t        d   t        d   t        dt        d            t        dt        d	            t        d
t        d            t        dt        d            t        dt        d            t        dt        d            d	}d|d   j                  f|d    fdfdd|d   j                  f|d    fdt        j
                  fdd
|d
   j                  f|d
    fdt        j
                  fd|d   j                  f|d    fdt        j
                  fd|d   j                  f|d    fdt        j
                  fdd |d!   j                  f|d!    j                  t        j
                  fdd|d   j                  f|d    j                  fd|d   j                  f|d    j                  fg} j                  r8d" j                  v r*|j                  d#d$|d$   j                  f|d$    fd%f        j                  |      S )&Nzlayer-group-addzSelect imagery groupimglabelsettingshelpzlayer-raster-analyzezAdd scatter plotpolygonzSelect area with polygonpanzPan mode for scatter plotszzoom-inz6Zoom mode for scatter plots (left mouse button, wheel)zzoom-extentzSZoom to scatter plot data extend mode (click on scatter plot for zooming to extend)ztable-managerzShow/hide class manager)	selectGroupr$   r%   add_scatt_pl	selCatPolr'   zoomIn
zoomExtentcats_mgr	add_scattr)   c                 8    j                   j                         S r   )r   AddScattPloteventr   s    r   <lambda>z*MainToolbar._toolbarData.<locals>.<lambda>S   s    dnn99; r   r   r-   c                 V    j                   j                  | j                               S r   )r   ShowCategoryPanel	IsCheckedr1   s    r   r3   z*MainToolbar._toolbarData.<locals>.<lambda>Y   s    dkk;;EOO<MN r   c                 (    j                  | d      S )Nr'   SetPloltsModer1   s    r   r3   z*MainToolbar._toolbarData.<locals>.<lambda>`   s    d00> r   zoomr+   c                 (    j                  | d      S )Nr:   r8   r1   s    r   r3   z*MainToolbar._toolbarData.<locals>.<lambda>f   s    d00? r   zoom_extendr,   c                 (    j                  | d      S )Nr<   r8   r1   s    r   r3   z*MainToolbar._toolbarData.<locals>.<lambda>l   s    d00F r   sel_pol_moder*   	add_groupr   r(   c                 8    j                   j                         S r   )r   SetDatar1   s    r   r3   z*MainToolbar._toolbarData.<locals>.<lambda>   s    $.."8"8": r   )r   _r   r#   wx
ITEM_CHECKActivateSelectionPolygonMode
OnSettingsOnHelpr   insert_getToolbarData)r   iconstoolss   `  r   r   zMainToolbar._toolbarData4   sf   #%Q/E-F "*-f%$*!4F2G "iq9S7TUQ/K-LMPQ #!i !#1-F+G+
8 eN399:n%;
 U:.445j!N	 e**+e>	 x../h?	 l 3 9 9:l#F	 {!3!9!9:k"11	 U:.445j! v,,-f[2
h >>kT^^;LL"E-$8$>$>?-(: ##E**r   c                     t        |       |   S r   varsr   toolNames     r   	GetToolIdzMainToolbar.GetToolId       Dz(##r   c                    | j                   j                  j                  | j                         |j	                         rs| j
                  j                  D ]=  }t        |d         }|r|dv r||k(  rt        |       |   }| j                  |d       ? | j                   j                  |       n| j                   j                  d        | j                   j                  j                  | j                         y )Nr   r-   r>   F)moder   r   
disconnectr   r6   
controllerdatar   rN   
ToggleToolSetPlotsModer   r   r2   r   i_tool_datai_tool_name	i_tool_ids         r   r9   zMainToolbar.SetPloltsMode   s    ))$,,7??#33 2+KN;"k5Q&Q)+ J{3		512 NN''Y'7NN''T'2&&t||4r   c                     | j                   j                  |j                               }| j                  j	                  |       t        |       d   }| j                  ||       y )Nr>   )r   rE   r6   r   ShowPlotEditingToolbarrN   rZ   )r   r2   	activatedr_   s       r   rE   z(MainToolbar.ActivateSelectionPolygonMode   sK    NN??@QR	**95J~.		9-r   c                 $    | j                          y r   	UnsetModer   rU   s     r   r   zMainToolbar.ModeSet   s    r   c                     | j                   j                  D ]7  }t        |d         }|r|dv rt        |       |   }| j	                  |d       9 y )Nr   rT   FrX   rY   r   rN   rZ   r   r]   r^   r_   s       r   re   zMainToolbar.UnsetMode   sS    ??// 	.K'A7K+1M"MT
;/IOOIu-	.r   c                     t        | t        j                  t        d      | j                        }|j                          |j                          y )NSettings)r   idtitler   )r   rC   ID_ANYrB   r   	ShowModalDestroy)r   r2   dlgs      r   rF   zMainToolbar.OnSettings   s5    BIIQz]dnn
 	r   c                     t        dd       y )Nzg.manualzwxGUI.iscatt)entryr   )r   r2   s     r   rG   zMainToolbar.OnHelp   s    :^4r   r   )__name__
__module____qualname____doc__r   r   rQ   r9   rE   r   re   rF   rG    r   r   r   r   &   s4    	5Y+v$5"..5r   r   c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	EditingToolbarr   c                     t        j                  | |       || _        | j                  | j	                                | j                          | j                  j                  j                  | j                         y r   )	r   r   r   r   r   r   r   r   r   )r   r   r   s      r   r   zEditingToolbar.__init__   sW    T6*"**,- 	&&t||4r   c                     t        dt        d      t        d            t        dt        d      t        d            t        dt        d      t        d            t        d	t        d
      t        d            t        dt        d      t        d            t        dt        d      t        d            t        dt        d            d _         j                  d j                  d   j                  f j                  d    fdfd j                  d   j                  f j                  d    fdfdd j                  d   j                  f j                  d    fdt
        j                  fd j                  d   j                  f j                  d    fd t
        j                  fd! j                  d"   j                  f j                  d"    fd#t
        j                  fd$ j                  d%   j                  f j                  d%    fd&t
        j                  fd' j                  d(   j                  f j                  d(    fd)t
        j                  ff      S )*Toolbar data	layer-addzInclude selected area to class)r"   r#   desclayer-removez Exclude selected area from classzvertex-createzAdd new vertexz/Add new vertex to polygon boundary scatter plotzpolygon-createzCreate selection polygonz<Add new vertex between last and first points of the boundaryzvertex-movezMove vertexzMove boundary vertexzvertex-deletezRemove vertexzRemove boundary vertexzpolygon-deletez@Remove polygon (click on scatter plot for removing it's polygon)r!   )sel_add
sel_remove	addVertexeditLine
moveVertexremoveVertexdeleter   c                 :    j                   j                  d      S )Naddr   ProcessSelectionPolygonsr1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>   s    $.."I"I%"P r   r   c                 :    j                   j                  d      S )Nremover   r1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>  s    $.."I"I("S r   r   
add_vertexr   c                 (    j                  | d      S )Nr   SetModer1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>  s    $,,ul"C r   add_boundary_vertexr   c                 (    j                  | d      S )Nr   r   r1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>  s    $,,u6K"L r   move_vertexr   c                 (    j                  | d      S )Nr   r   r1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>  s    $,,um"D r   delete_vertexr   c                 (    j                  | d      S )Nr   r   r1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>  s    $,,uo"F r   remove_polygonr   c                 (    j                  | d      S )Nr   r   r1   s    r   r3   z-EditingToolbar._toolbarData.<locals>.<lambda>  s    $,,u6F"G r   )r   rB   rJ   rI   r#   rC   rD   r   s   `r   r   zEditingToolbar._toolbarData   sY     8978
 #":;9:
 "#()HI
 !$23UV
 #!&-.
 %#(/0
 $V?%

N ## 

9 5 ; ;<JJy)P "4::l#;#A#ABJJ|,S
 !4::j#9#?#?@JJz*CMM	 +DJJ{,C,I,IJJJ{+LMM	 #DJJ|$<$B$BCJJ|,DMM	 %djj&@&F&FGJJ~.FMM	 &tzz(';'A'ABJJx(GMM	I*,
 ,	
r   c                    | j                   j                  j                  | j                         |j	                         rn| j
                  j                  D ]9  }t        |d         }|s||k(  rt        |       |   }| j                  |d       ; | j                   j                  |       n| j                   j                  d        | j                   j                  j                  | j                         y Nr   FrV   r\   s         r   r   zEditingToolbar.SetMode%  s    ))$,,7??#33 2+KN;")+ J{3		512 NN''	2NN''-&&t||4r   c                 .    |dv r| j                          y y )N)r:   r'   r<   Nrd   rf   s     r   r   zEditingToolbar.ModeSet5  s    77NN 8r   c                     | j                   j                  D ]3  }t        |d         }|st        |       |   }| j	                  |d       5 y r   rh   ri   s       r   re   zEditingToolbar.UnsetMode9  sK    ??// 	.K'A7KT
;/IOOIu-	.r   c                     t        |       |   S r   rM   rO   s     r   rQ   zEditingToolbar.GetToolIdA  rR   r   N)
rt   ru   rv   rw   r   r   r   r   re   rQ   rx   r   r   rz   rz      s%    5U
n5 .$r   rz   c                       e Zd ZdZd Zd Zy)CategoryToolbarr   c                     t        j                  | |       || _        | j                  j                         | _        || _        | j                  | j                                | j                          y r   )	r   r   r   GetCategoriesManagerr-   	cats_listr   r   r   )r   r   r   r   s       r   r   zCategoryToolbar.__init__H  sV    T6*";;="**,- 	r   c                 >    t        dt        d            t        dt        d            d _         j                  d j                  d   j                  f j                  d    fdfd	 j                  d	   j                  f j                  d	    fd
ff      S )r}   r~   z	Add classr!   r   zRemove selected class)	add_classremove_classr   c                 8    j                   j                         S r   )r-   AddCategoryr1   s    r   r3   z.CategoryToolbar._toolbarData.<locals>.<lambda>a  s    $--";";"= r   r   c                 8    j                   j                         S r   )r   DeleteCategoryr1   s    r   r3   z.CategoryToolbar._toolbarData.<locals>.<lambda>f  s    $.."?"?"A r   )r   rB   rJ   rI   r#   r   s   `r   r   zCategoryToolbar._toolbarDataS  s     "k;H$"!,C*D

 ## !$**["9"?"?@JJ{+= $TZZ%?%E%EFJJ~.A
 	
r   N)rt   ru   rv   rw   r   r   rx   r   r   r   r   E  s    	
r   r   )rw   rC   
icons.iconr   gui_core.toolbarsr   r   	core.gcmdr   iscatt.dialogsr   tupler   r   rz   r   rx   r   r   <module>r      sO    
  4   ) -2 X5+ X5vA$[ A$H$
k $
r   