Hi David,

Just a guess: maybe you should add the constructor without parameters?

What I wanted to remark:
The intention of the updateListeners method is to remove and add listeners. 
This function is called many times. And your code keeps adding new listeners, 
without ever removing them...

Also, your function removeAssociationListener() has the intention to ADD a 
listener, so you better name it addRemoveAssociationListener().

Also, why would you want to listen to the removal of modelelements? You can use 
the removeFromDiagramImpl() method to do some cleaning up. 

Regards,
Michiel



  ----- Original Message ----- 
  From: David Orejuela 
  To: [email protected] 
  Sent: Thursday, July 12, 2007 1:28 PM
  Subject: Re: [argouml-dev] ModelEventPump's property names


  I've override the updateListeners method with my new 
removeAssociationListener, that only registers the new event listener (at the 
moment it does nothig), to see if works fine and the code is executed when I 
delete an association. 

  But there is a problem: now the associations aren't created! 
  Someone knows why?
  The code is the following ( I have created my own associaton fig class 
FigMacmasAssociation)

  public class FigMacmasAssociation extends FigAssociation { 
      
      public FigMacmasAssociation(Object edge, Layer lay){
      super(edge, lay);
      }
      public void updateListeners(Object oldOwner, Object newOwner) {
      removeAssociationListener();
      super.updateListeners (oldOwner, newOwner);      
      }

      protected void removeAssociationListener(){
      
      Model.getPump().addModelEventListener(new PropertyChangeListener() {

                 public void propertyChange(PropertyChangeEvent evt) { 
                    
                     if (evt instanceof RemoveAssociationEvent) {
                         // do what you want to do when this event is fired
                     
                     }
                 } 
             }, Model.getMetaTypes().getModelElement());
      }

  }


  2007/7/12, David Orejuela <[EMAIL PROTECTED] >:
    Very thanks for all the information, actually I'm working with it


    2007/7/12, Michiel van der Wulp <[EMAIL PROTECTED]>:
      Hi David,

      For the FigAssociation to receive other events, you may have to overrule 
the following method of FigAssociation:

          public void updateListeners(Object oldOwner, Object newOwner) {
              removeAllElementListeners();
              if (newOwner != null) {
                  addElementListener(newOwner, new String[] {"isAbstract", 
"remove"});
              }
              /* No further listeners required in this case - the rest is 
handled 
               * by the notationProvider and sub-Figs. */
          }

      Regards,
      Michiel


        ----- Original Message ----- 
        From: David Orejuela 
        To: [email protected] 
        Sent: Thursday, July 12, 2007 9:05 AM
        Subject: Re: [argouml-dev] ModelEventPump's property names


        Hi Bogdan,

        I'm also interested in this topic but I want to capture a 
RemoveAssociationEvent from a FigAssociation class. I'm a newbie and I don't 
know what I must do, I have written a modelChangued method with code for this 
event, but this method is never executed. have I more to do to enable it ? 



        2007/7/11, Bogdan Ciprian Pistol <[EMAIL PROTECTED]>: 
          Hello,

          I have some trouble understanding what are the valid property names of
          the ModelEventPump.

          Here is what I investigated so far (please notify me if I'm wrong):

          The ModelEventPump notify it's listeners on only 4 kinds of events 
changes: 
          DeleteInstanceEvent, AttributeChangeEvent, RemoveAssociationEvent and
          AddAssociationEvent.

          DeleteInstanceEvent uses the source UML element (the notifier) and a
          property name (a string)
          that in some parts of ArgoUML is expected to be "remove" and in other 
          parts it doesn't matter it's value, the only test done is if the event
          is instance of DeleteInstanceEvent.

          AttributeChangeEvent is initialized with the source UML element, a
          property name, old and new values. The propery name can have very 
          different values like: "name", "isAbstract", "isActive",
          "isRoot", "isLeaf", "isSpecification", "visibility", "multiplicity",
          "ownerScope", "changeability", 
          "targetScope" and maybe other values. (I extracted these values while
          debugging).

          RemoveAssociation and AddAssociation events (from the MDR
          implementation source code) doesn't give me clues how should be used 
          because the AssociationEvent (from MDR) has no source code or javadoc.
          The events are using AssociationEvent#getNewElement(),
          AssociationEvent#getEndName(), AssociationEvent#getFixedElement(),
          which I do not know what are doing. 

          The main problem for me are the valid values for property names.

          Bogdan,

          ---------------------------------------------------------------------
          To unsubscribe, e-mail: [EMAIL PROTECTED]
          For additional commands, e-mail: [EMAIL PROTECTED]






------------------------------------------------------------------------


        No virus found in this incoming message.
        Checked by AVG Free Edition. 
        Version: 7.5.476 / Virus Database: 269.10.2/894 - Release Date: 
10/07/2007 17:44








------------------------------------------------------------------------------


  No virus found in this incoming message.
  Checked by AVG Free Edition. 
  Version: 7.5.476 / Virus Database: 269.10.2/894 - Release Date: 10/07/2007 
17:44

Reply via email to