Changeset 379


Ignore:
Timestamp:
04/22/2010 01:06:40 PM (10 years ago)
Author:
michael.kriegel
Message:

completed world model simulator, changed the place where registration of ion handlers for migration takes place (without this change cmion won't start if migration competency is not loaded)

Location:
libs/cmion
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libs/cmion/cmionAddOns/src/cmion/addOns/simulators/WorldModelSimulator.java

    r378 r379  
    5454import javax.swing.tree.DefaultMutableTreeNode; 
    5555import javax.swing.tree.DefaultTreeModel; 
     56import javax.swing.tree.TreeNode; 
     57import javax.swing.tree.TreePath; 
    5658import javax.swing.tree.TreeSelectionModel; 
    5759 
     
    162164public void registerHandlers()  
    163165{ 
    164         architecture.getWorldModel().registerEventHandlerWithSubContainers(new HandleAnyCmionEvent()); 
     166        // create a new handler 
     167        HandleAnyCmionEvent handler = new HandleAnyCmionEvent(); 
     168        // listen to any world model events 
     169        architecture.getWorldModel().getEventHandlers().add(handler); 
     170        // and any sub container events of the world model       
     171        architecture.getWorldModel().registerEventHandlerWithSubContainers(handler); 
    165172} 
    166173 
     
    333340                containers.put(entityContainer.getContainerName(), node); 
    334341                rootNode.add(node); 
    335                 treeModel.reload(rootNode); 
     342                updateTree(rootNode); 
    336343                return node; 
    337344        } 
     
    345352        { 
    346353                rootNode.remove(node); 
    347                 treeModel.reload(rootNode); 
     354                containers.remove(entityName); 
     355                updateTree(rootNode); 
    348356        } 
    349357        } 
     
    375383                node.add(propNode);  
    376384        }        
    377                 treeModel.reload(node); 
     385                updateTree(node); 
    378386        } 
    379387     
     
    396404                                        propNode = childNode; 
    397405                                        node.remove(propNode); 
    398                                         treeModel.reload(node); 
     406                                        updateTree(node); 
    399407                                        break; 
    400408                                } 
     
    403411        }        
    404412        } 
     413 
     414    private void updateTree(TreeNode manipulated) 
     415    { 
     416                TreePath path = tree.getSelectionPath(); 
     417                treeModel.reload(manipulated); 
     418                tree.setSelectionPath(path); 
     419    } 
    405420     
    406421    private synchronized void updateGui() 
     
    430445        public void actionPerformed(ActionEvent arg0)  
    431446        { 
    432                 //updateList(); 
     447                if (arg0.getSource() == this.btnAddEntity) 
     448                { 
     449                        String entityName = this.txtEntity.getText().trim(); 
     450                        if ((entityName.length()>0) && (!architecture.getWorldModel().hasSubContainer(entityName))) 
     451                                architecture.getWorldModel().requestAddAgent(entityName); 
     452                } 
     453                else if (arg0.getSource() == this.btnRemoveEntity) 
     454                { 
     455                        String entityName = this.txtEntity.getText().trim(); 
     456                        if ((entityName.length()>0) && (architecture.getWorldModel().hasSubContainer(entityName))) 
     457                                architecture.getWorldModel().requestRemoveSubContainer(entityName); 
     458                } 
     459                else if (arg0.getSource() == this.btnSetProperty) 
     460                { 
     461                        String entityName = this.txtEntity.getText().trim(); 
     462                        if ((entityName.length()>0) && (architecture.getWorldModel().hasSubContainer(entityName))) 
     463                        {        
     464                                String propertyName = this.txtPropertyName.getText().trim(); 
     465                                String propertyValue = this.txtPropertyValue.getText().trim(); 
     466                                if ((propertyName.length()>0)) 
     467                                        architecture.getWorldModel().getSubContainer(entityName). 
     468                                                     requestSetProperty(propertyName, propertyValue); 
     469                        }        
     470                } 
     471                else if (arg0.getSource() == this.btnRemoveProperty) 
     472                { 
     473                        String entityName = this.txtEntity.getText().trim(); 
     474                        if ((entityName.length()>0) && (architecture.getWorldModel().hasSubContainer(entityName))) 
     475                        {        
     476                                CmionStorageContainer entity = architecture.getWorldModel().getSubContainer(entityName); 
     477                                String propertyName = this.txtPropertyName.getText().trim(); 
     478                                if ((propertyName.length()>0) && (entity.hasProperty(propertyName))) 
     479                                        entity.requestRemoveProperty(propertyName); 
     480                        }        
     481                } 
     482 
    433483        } 
    434484 
  • libs/cmion/cmionLauncher/src/cmion/architecture/Architecture.java

    r367 r379  
    129129                        if (element instanceof CmionComponent) 
    130130                                ((CmionComponent)element).registerHandlers(); 
    131                  
    132                 // registering all migration related handlers for all migrating and migration aware components 
    133                 MigrationUtils.registerAllComponents(Simulation.instance); 
    134                  
     131                                 
    135132                System.out.println("CMION initialised"); 
    136133        } 
  • libs/cmion/cmionMain/src/cmion/level2/competencies/Migration.java

    r366 r379  
    66import ion.Meta.Request; 
    77import ion.Meta.RequestHandler; 
     8import ion.Meta.Simulation; 
    89import ion.Meta.TypeSet; 
    910import ion.Meta.Events.IAdded; 
     
    4041import cmion.level2.migration.MigrationFailed; 
    4142import cmion.level2.migration.MigrationStart; 
     43import cmion.level2.migration.MigrationUtils; 
    4244import cmion.level2.migration.Reply; 
    4345import cmion.level2.migration.ResumeMigration; 
     
    140142                this.occupied = false; 
    141143                this.finishedMigration = false; 
    142                  
    143                 // These handlers detect when the MigrationCompetency is added or 
    144                 // removed from the simulation and add/remove Synchronization 
    145                 // element accordingly. 
    146                 this.getEventHandlers().add(new SimulationAddedHandler()); 
    147                 this.getEventHandlers().add(new SimulationRemovedHandler()); 
    148                  
    149                 this.getRequestHandlers().add(new MigrationExecuter()); 
    150                 this.getEventHandlers().add(new MigrationStartHandler()); 
    151                  
     144                                 
    152145                //Get and parse the initialization file 
    153146                 
     
    178171                        return; 
    179172                } 
     173                 
     174                available = true; 
     175        } 
     176 
     177        @Override 
     178        public final void registerHandlers()  
     179        { 
     180                super.registerHandlers(); 
     181                // registering all migration related handlers for all migrating and migration aware components 
     182                MigrationUtils.registerAllComponents(Simulation.instance); 
     183                 
     184                // These handlers detect when the MigrationCompetency is added or 
     185                // removed from the simulation and add/remove Synchronization 
     186                // element accordingly. 
     187                this.getEventHandlers().add(new SimulationAddedHandler()); 
     188                this.getEventHandlers().add(new SimulationRemovedHandler()); 
     189                 
     190                this.getRequestHandlers().add(new MigrationExecuter()); 
     191                this.getEventHandlers().add(new MigrationStartHandler()); 
     192                 
    180193                this.sync.getEventHandlers().add(new ReceiveMessages()); 
    181194                this.sync.getEventHandlers().add(new MessageDelivery()); 
    182195                this.sync.getEventHandlers().add(new MessageFailure()); 
    183                 this.sync.getEventHandlers().add(new SynchronizationStartRelay()); 
    184                  
    185                 available = true; 
    186         } 
    187  
     196                this.sync.getEventHandlers().add(new SynchronizationStartRelay());               
     197        } 
     198         
    188199        @Override 
    189200        public boolean runsInBackground() { 
Note: See TracChangeset for help on using the changeset viewer.