/[eiffelstudio]/branches/Eiffel_57_docking/Src/Eiffel/interface/new_graphical/commands/eb_select_depth_command.e
ViewVC logotype

Diff of /branches/Eiffel_57_docking/Src/Eiffel/interface/new_graphical/commands/eb_select_depth_command.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 37492 by manus, Fri May 30 21:08:32 2003 UTC revision 47280 by bennob, Tue Dec 28 19:29:19 2004 UTC
# Line 22  feature -- Basic operations Line 22  feature -- Basic operations
22          execute is          execute is
23                          -- User clicked on the button.                          -- User clicked on the button.
24                  local                  local
25                          d: CONTEXT_DIAGRAM                          cd: EIFFEL_CLUSTER_DIAGRAM
                         cd: CLUSTER_DIAGRAM  
                         sel: EB_VIEW_SELECTOR  
                         tmp: LINKED_LIST [STRING]  
26                          dial: EB_CONTEXT_DEPTH_DIALOG                          dial: EB_CONTEXT_DEPTH_DIALOG
27                          cancelled: BOOLEAN                          d: EIFFEL_CLASS_DIAGRAM
28                            cg: ES_CLASS_GRAPH
29                  do                  do
30                          if cancelled then                          d := tool.class_view
31                                  if d /= Void then                          if d = Void then
32                                          d.cancel                                  cd := tool.cluster_view
33                                  elseif cd /= Void then                                  create dial.make_for_cluster_view
34                                          cd.cancel                                  dial.preset_for_cluster_view (cd)
35                                    dial.show_modal_to_window (tool.development_window.window)
36                                    if
37                                            not dial.cancelled
38                                    and
39                                            dial.supercluster_depth /= cd.model.supercluster_depth or
40                                            dial.subcluster_depth /= cd.model.subcluster_depth
41                                    then
42                                            history.wipe_out
43                                            cd.model.set_supercluster_depth (dial.supercluster_depth)              
44                                            cd.model.set_subcluster_depth (dial.subcluster_depth)
45                                            tool.create_cluster_view (cd.model.center_cluster.cluster_i, False)
46                                  end                                  end
47                          else                          else
48                                  d ?= tool.class_view                                  create dial.make_for_class_view
49                                  if d = Void then                                  dial.preset_for_class_view (d)
50                                          cd ?= tool.cluster_view                                  dial.show_modal_to_window (tool.development_window.window)
51                                          check cd /= Void end                                  cg := d.model
52                                          create dial.make_for_cluster_view                                  if
53                                          dial.preset_for_cluster_view (cd)                                          not dial.cancelled
54                                          dial.show_modal_to_window (tool.development_window.window)                                  and
55                                          if                                          (dial.ancestor_depth /= cg.ancestor_depth or
56                                                  not dial.cancelled                                          dial.descendant_depth /= cg.descendant_depth or
57                                          and                                          dial.client_depth /= cg.client_depth or
58                                                  dial.supercluster_depth /= cd.supercluster_depth or                                          dial.supplier_depth /= cg.supplier_depth or
59                                                  dial.subcluster_depth /= cd.subcluster_depth                                          dial.all_classes_of_cluster /= cg.include_all_classes_of_cluster or
60                                          then                                          dial.only_classes_of_cluster /= cg.include_only_classes_of_cluster)
61                                                  history.wipe_out                                  then
62                                                  sel := dial.view_selector                                          cg.set_ancestor_depth (dial.ancestor_depth)
63                                                  if not sel.text.is_empty then                                          cg.set_descendant_depth (dial.descendant_depth)
64                                                          if sel.selected_item = Void then                                          cg.set_client_depth (dial.client_depth)
65                                                                  tmp := sel.strings                                          cg.set_supplier_depth (dial.supplier_depth)
66                                                                  if not tmp.has (sel.text) then                                          cg.set_include_all_classes_of_cluster (dial.all_classes_of_cluster)
67                                                                          tmp.put_front (sel.text)                                          cg.set_include_only_classes_of_cluster (dial.only_classes_of_cluster)
68                                                                          sel.set_strings (tmp)                                          tool.create_class_view (cg.center_class.class_i, False)
                                                                         sel.i_th (1).enable_select  
                                                                 else                                      
                                                                         tmp.compare_objects  
                                                                         tmp.search (sel.text)  
                                                                         sel.i_th (tmp.index).enable_select  
                                                                         tmp.compare_references  
                                                                 end  
                                                         end  
                                                         check  
                                                                 a_view_is_selected: sel.selected_item /= Void  
                                                         end  
                                                         if not sel.selected_item.text.is_equal (cd.current_view) then  
                                                                 tool.view_selector.select_actions.block  
                                                                 tool.view_selector.set_strings (sel.strings)  
                                                                 tool.view_selector.select_actions.resume  
                                                                 tool.view_selector.set_text (sel.selected_item.text)  
                                                                 tool.view_selector.return_actions.call (Void)  
                                                         end      
                                                 end  
                                                 tool.progress_dialog.set_title ("Synchronizing progress")  
                                                 tool.progress_dialog.set_message ("Diagram for " + cd.center_cluster.cluster_i.cluster_name)  
                                                 tool.progress_dialog.enable_cancel  
                                                 tool.progress_dialog.start (5)  
                                                 tool.progress_dialog.set_value (0)  
                                                 tool.progress_dialog.show  
                                                 history.wipe_out  
                                                 cd.set_supercluster_depth (dial.supercluster_depth)              
                                                 cd.set_subcluster_depth (dial.subcluster_depth)  
                                                 cd.enable_placement_needed  
                                                 cd.synchronize (True, tool.progress_dialog)  
                                         end  
                                 else  
                                         create dial.make_for_class_view  
                                         dial.preset_for_class_view (d)  
                                         dial.show_modal_to_window (tool.development_window.window)  
                                         if  
                                                 not dial.cancelled  
                                         and  
                                                 (dial.ancestor_depth /= d.ancestor_depth or  
                                                 dial.descendant_depth /= d.descendant_depth or  
                                                 dial.client_depth /= d.client_depth or  
                                                 dial.supplier_depth /= d.supplier_depth or  
                                                 dial.all_classes_of_cluster /= d.include_all_classes_of_cluster or  
                                                 dial.only_classes_of_cluster /= d.include_only_classes_of_cluster)  
                                         then  
                                                 history.wipe_out  
                                                 sel := dial.view_selector  
                                                 if not sel.text.is_empty then  
                                                         if sel.selected_item = Void then  
                                                                 tmp := sel.strings  
                                                                 if not tmp.has (sel.text) then  
                                                                         tmp.put_front (sel.text)  
                                                                         sel.set_strings (tmp)  
                                                                         sel.i_th (1).enable_select  
                                                                 else                                      
                                                                         tmp.compare_objects  
                                                                         tmp.search (sel.text)  
                                                                         sel.i_th (tmp.index).enable_select  
                                                                         tmp.compare_references  
                                                                 end  
                                                         end  
                                                         check  
                                                                 a_view_is_selected: sel.selected_item /= Void  
                                                         end  
                                                         if not sel.selected_item.text.is_equal (d.current_view) then  
                                                                 tool.view_selector.select_actions.block  
                                                                 tool.view_selector.set_strings (sel.strings)  
                                                                 tool.view_selector.select_actions.resume  
                                                                 tool.view_selector.set_text (sel.selected_item.text)  
                                                                 tool.view_selector.return_actions.call (Void)  
                                                         end      
                                                 end  
                                                 tool.progress_dialog.set_title ("Synchronizing progress")  
                                                 tool.progress_dialog.set_message ("Diagram for " + d.center_class.class_i.name_in_upper)  
                                                 tool.progress_dialog.enable_cancel  
                                                 tool.progress_dialog.start (6)  
                                                 tool.progress_dialog.set_value (0)  
                                                 tool.progress_dialog.show  
                                                 history.wipe_out  
                                                 d.set_ancestor_depth (dial.ancestor_depth)  
                                                 d.set_descendant_depth (dial.descendant_depth)  
                                                 d.set_client_depth (dial.client_depth)  
                                                 d.set_supplier_depth (dial.supplier_depth)  
                                                 d.set_include_all_classes_of_cluster (dial.all_classes_of_cluster)  
                                                 d.set_include_only_classes_of_cluster (dial.only_classes_of_cluster)  
                                                 d.enable_placement_needed  
                                                 d.synchronize (True, tool.progress_dialog)  
                                         end  
69                                  end                                  end
70                          end                          end
                 rescue  
                         cancelled := True  
                         Error_handler.error_list.wipe_out  
                         tool.Progress_dialog.hide  
                         tool.clear_area  
                         tool.disable_toolbar  
                         tool.development_window.window.set_pointer_style (tool.Default_pixmaps.standard_cursor)  
                         retry    
71                  end                  end
72    
73  feature {NONE} -- Implementation  feature {NONE} -- Implementation

Legend:
Removed from v.37492  
changed lines
  Added in v.47280

  ViewVC Help
Powered by ViewVC 1.1.23