Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [bpel-dev] inconsistency in o.e.bpel.ui.editparts.ActivityEditPart.addAllAdapters

Hey Vitaly,

I am OK with rewriting. The only think I'd suggest is testing well with
add/remove/undo/redo and see if anything goes wrong.

Cheers
Simon

Simon Moser, M.Eng.


                                                                          
 Websphere Integration       Mail:           IBM Deutschland Entwicklung  
 Developer Development       smoser@xxxxxx.  GmbH                         
 Team Lead BPEL Editor       com             Vorsitzender des             
 Dept. 4722, Bldg.           Phone:          Aufsichtsrats: Martin Jetter 
 71032-01, Room 086          +49-7031-16-43  Geschäftsführung: Herbert    
 Websphere Solutions and     04              Kircher                      
 Services                    Fax:            Sitz der Gesellschaft:       
 IBM Deutschland             +49-7031-16-48  Böblingen                    
 Entwicklung GmbH            90              Registergericht: Amtsgericht 
 Schönaicherstr. 220, D –                    Stuttgart, HRB 243294        
 71032 Boeblingen                                                         
                                                                          








                                                                           
             "Tishkov, Vitaly                                              
             V"                                                            
             <vitaly.v.tishkov                                          To 
             @intel.com>               "BPEL Designer project developer    
             Sent by:                  discussions."                       
             bpel-dev-bounces@         <bpel-dev@xxxxxxxxxxx>              
             eclipse.org                                                cc 
                                                                           
                                                                   Subject 
             08/13/2007 03:00          [bpel-dev] inconsistency in         
             PM                        o.e.bpel.ui.editparts.ActivityEditP 
                                       art.addAllAdapters                  
                                                                           
             Please respond to                                             
              "BPEL Designer                                               
             project developer                                             
               discussions."                                               
             <bpel-dev@eclipse                                             
                   .org>                                                   
                                                                           
                                                                           




Hi there,

During my work on synchronizing src and design tabs for Flow I’ve found a
little inconsistency in
o.e.bpel.ui.editparts.ActivityEditPart.addAllAdapters():

      protected void addAllAdapters() {
            super.addAllAdapters();
            Sources sources = getActivity().getSources();
            if (sources != null) {
                  adapter.addToObject(sources);
                  for (Iterator it = sources.getChildren().iterator();
it.hasNext(); ) {
                        Source source = (Source)it.next();
                        // also include the link, if there is one (since we
indirectly
                        // control the activation of the LinkEditPart)
                        if (source.getLink() != null) adapter
.addToObject(source.getLink());

                        // Okay--the real problem here, is that the
Activity might be
                        // referred to by a Source object, but the Activity
is not going
                        // to find out about the creation of a new Sources
that references
                        // it.  Therefore, our model listeners don't know
what to do!

                        // TODO: temporarily hacked around in
FlowEditPart.FlowContentAdapter.

                        // TODO: also include any parent flows, and the
Links object of
                        // any parent flows that have one.  !
                        // TODO: in future, use a global listener to handle
refreshing the
                        // correct source editpart.
                  }
            }
            Targets targets = getActivity().getTargets();
            if (targets != null) {
                  adapter.addToObject(targets);
                  for (Iterator it = targets.getChildren().iterator();
it.hasNext(); ) {
                        adapter.addToObject((Target)it.next());
                  }
            }
      }


Please note that if you remove all the comments then the method will look
this way:

      protected void addAllAdapters() {
            super.addAllAdapters();
            Sources sources = getActivity().getSources();
            if (sources != null) {
                  adapter.addToObject(sources);
                  for (Iterator it = sources.getChildren().iterator();
it.hasNext(); ) {
                        Source source = (Source)it.next();
                        if (source.getLink() != null) adapter
.addToObject(source.getLink());

                  }
            }
            Targets targets = getActivity().getTargets();
            if (targets != null) {
                  adapter.addToObject(targets);
                  for (Iterator it = targets.getChildren().iterator();
it.hasNext(); ) {
                        adapter.addToObject((Target)it.next());
                  }
            }
      }

This inconsistent behavior leads to different sets of eAdapters created for
SourceImpl and TargetImpl (try to set breakpoints at the end of
SourceImpl.setActivity() and TargetImpl.setActivity() to ensure that.
The different sets of eAdapters is an obstacle for restoring links in the
design tab when editing the source tab.

The question:
is there any reason not to make the ‘sources’ part of the method be similar
to the ‘target’ part, i.e. the method will look this way:

      protected void addAllAdapters() {
            super.addAllAdapters();
            Sources sources = getActivity().getSources();
            if (sources != null) {
                  adapter.addToObject(sources);
                  for (Iterator it = sources.getChildren().iterator();
it.hasNext(); ) {
                        adapter.addToObject((Source)it.next());

                  }
            }
            Targets targets = getActivity().getTargets();
            if (targets != null) {
                  adapter.addToObject(targets);
                  for (Iterator it = targets.getChildren().iterator();
it.hasNext(); ) {
                        adapter.addToObject((Target)it.next());
                  }
            }
      }

If it’s OK to rewrite the ‘source’ part of the method then I’ll file a bug
and submit a patch.

Thanks,
            Vitaly._______________________________________________
bpel-dev mailing list
bpel-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/bpel-dev

Back to the top