Changeset 2116

Show
Ignore:
Timestamp:
09/24/08 13:57:20 (2 months ago)
Author:
dsugar
Message:

Fix problem noticed where deleting a module wasn't refreshing the policy.xml (interface view) or the policy explorer
some cleanup of the content providers at the same time
remove the policy.xml file before rebuilding so it was sure to rebuild

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/slide-plugin/src/com/tresys/slide/plugin/builder/HeaderModuleProjectBuilder.java

    r2110 r2116  
    1212import java.util.Vector; 
    1313 
     14import org.eclipse.core.resources.IFile; 
    1415import org.eclipse.core.resources.IProject; 
    1516import org.eclipse.core.resources.IResource; 
     
    2425import com.tresys.slide.plugin.nature.BaseProjectNature; 
    2526import com.tresys.slide.plugin.nature.HeaderModuleProjectNature; 
     27import com.tresys.slide.plugin.nature.SLIDEProjectNature; 
    2628import com.tresys.slide.plugin.preferences.PreferenceConstants; 
    2729 
     
    120122                        delta.accept(visitor); 
    121123 
     124                        SLIDEProjectNature nat = (SLIDEProjectNature)getProject ().getNature (SLIDEProjectNature.NATURE_ID); 
     125 
    122126                        monitor.subTask(BuildMessages.make_clean); 
    123127                        if (visitor.m_bMakeClean) 
     
    126130                        monitor.worked(TOTAL_WORK * 1); 
    127131 
    128                         if( monitor.isCanceled()
     132                        if (monitor.isCanceled()
    129133                                return; 
    130134 
    131135                        monitor.subTask(BuildMessages.make_xml); 
    132136                        if (visitor.m_bMakeXML) 
     137                        { 
     138                                IFile xmlFile = nat.getPolicyXMLPath (null); 
     139                                if (xmlFile.exists ()) 
     140                                        xmlFile.delete (true, null); 
    133141                                RunCommand (new String[] {getMakeCommand (), TARGET_XML}); 
     142                        } 
    134143                        monitor.worked(TOTAL_WORK * 2); 
    135144 
  • trunk/slide-plugin/src/com/tresys/slide/plugin/builder/PolicyProjectBuilder.java

    r2103 r2116  
    162162        } 
    163163 
    164         protected void incrementalBuild(IResourceDelta delta, IProgressMonitor monitor) throws CoreException 
     164        protected void incrementalBuild(IResourceDelta delta, IProgressMonitor monitor)  
     165                throws CoreException 
    165166        { 
    166167                try 
     
    202203                        monitor.subTask(BuildMessages.make_xml); 
    203204                        IProject proj = getProject (); 
    204                         SLIDEProjectNature snat = (SLIDEProjectNature)proj.getNature(SLIDEProjectNature.NATURE_ID); 
    205                         if (snat != null) 
     205                        SLIDEProjectNature nat = (SLIDEProjectNature)proj.getNature(SLIDEProjectNature.NATURE_ID); 
     206                        if (nat != null) 
    206207                        { 
    207208                                if (visitor.m_bMakeXML) 
     209                                {        
     210                                        IFile xmlFile = nat.getPolicyXMLPath (null); 
     211                                        if (xmlFile.exists ()) 
     212                                                xmlFile.delete (true, null); 
    208213                                        RunCommand (new String[]{getMakeCommand (), TARGET_XML}); 
    209  
    210                                 BuildConfFile buildFile = new BuildConfFile (snat.GetBuildConfPath(proj)); 
     214                                } 
     215                                 
     216                                BuildConfFile buildFile = new BuildConfFile (nat.GetBuildConfPath(proj)); 
    211217                                if (buildFile != null && buildFile.isMonolithic()) 
    212218                                        buildFileContexts = true; 
  • trunk/slide-plugin/src/com/tresys/slide/plugin/nature/HeaderModuleProjectNature.java

    r2091 r2116  
    218218 
    219219                // must not happen 
    220                 if( policyPath == null) 
     220                if (policyPath == null) 
    221221                        return null; 
    222222 
    223                 return policyXML; //.getRawLocation().toFile(); 
     223                return policyXML; 
    224224        } 
    225225 
  • trunk/slide-plugin/src/com/tresys/slide/plugin/nature/contentprovider/FullContentProvider.java

    r2072 r2116  
    1919import org.eclipse.core.resources.IResource; 
    2020import org.eclipse.core.resources.IResourceDelta; 
     21import org.eclipse.core.resources.IResourceDeltaVisitor; 
    2122import org.eclipse.core.runtime.CoreException; 
    2223import org.eclipse.jface.viewers.TreeViewer; 
    2324 
     25import com.tresys.slide.plugin.SLIDEPlugin; 
    2426import com.tresys.slide.plugin.nature.BaseProjectNature; 
    2527import com.tresys.slide.plugin.views.policyexplorer.PLayer; 
     
    3133        extends AbstractPolicyContentProvider 
    3234{ 
    33         private Vector mLayers = new Vector(); 
    34         private boolean mNeedRefresh = false; 
     35        protected Vector mLayers = new Vector(); 
    3536 
    3637        public FullContentProvider (IProject i_proj) 
     
    245246        public boolean processDelta(IResourceDelta delta, final TreeViewer viewer) 
    246247        { 
    247                 mNeedRefresh = false; 
    248                 processLayerDelta(delta); 
    249                 return mNeedRefresh; 
    250 //              viewer.getControl().getDisplay().asyncExec(             // asyncExec?? 
    251 //                              new Runnable() 
    252 //                              { 
    253 //                                      public void run() 
    254 //                                      { 
    255 //                                              if(viewer == null) 
    256 //                                                      return; 
    257 //                                              viewer.refresh(); 
    258 //                                      } 
    259 //                              } 
    260 //                      ); 
    261         } 
    262  
    263         private void processLayerDelta(IResourceDelta delta) 
    264         { 
    265                 IResourceDelta[] changedChildren = delta.getAffectedChildren(); 
    266  
    267                 for(int i = 0; i < changedChildren.length; i++) 
    268                 { 
    269                         IResource rsrc = changedChildren[i].getResource(); 
     248                try 
     249                { 
     250                        DeltaVisitor visitor = new DeltaVisitor (); 
     251                        delta.accept (visitor); 
     252                        return visitor.mNeedRefresh; 
     253                } 
     254                catch (CoreException ce) 
     255                { 
     256                        SLIDEPlugin.log(ce); 
     257                        if( SLIDEPlugin.getDefault().isDebugging() ) 
     258                                ce.printStackTrace(); 
     259                        return false; 
     260                } 
     261         
     262        } 
     263 
     264 
     265        protected void getModulesFromLayer(PLayer layer, IFolder layerFolder) 
     266        { 
     267                try 
     268                { 
     269                        IResource[] children = layerFolder.members(); 
     270                        for (int i = 0; i < children.length; i++) 
     271                        { 
     272                                if(!(children[i] instanceof IFile)) 
     273                                        continue; 
     274 
     275                                if (children[i].getFileExtension() != null && 
     276                                                children[i].getFileExtension().equals(BaseProjectNature.IF_EXTENSION)) 
     277                                { 
     278                                        PModule currModule = new PModule((IFile)children[i], layer); 
     279                                        layer.Add(currModule); 
     280                                } 
     281                        } 
     282                } catch (CoreException ce) { 
     283                } 
     284        } 
     285 
     286        public PModule getModule (Module comp) 
     287        { 
     288                Iterator itr = mLayers.iterator(); 
     289                while( itr.hasNext()) 
     290                { 
     291                        PLayer lay = ((PLayer)itr.next()); 
     292                        PModule mod = (PModule)lay.GetModule(comp.getName()); 
     293                        if( mod != null ) 
     294                                return mod; 
     295                } 
     296                return null; 
     297        } 
     298 
     299        public PModule getModule(IFile file) 
     300        { 
     301                for (Iterator itr = mLayers.iterator(); itr.hasNext(); ) 
     302                { 
     303                        PLayer lay = ((PLayer)itr.next()); 
     304                        for (Iterator litr = lay.getModules().values().iterator(); litr.hasNext(); ) 
     305                        { 
     306                                Object obj = litr.next(); 
     307                                if (obj instanceof PModule) 
     308                                { 
     309                                        PModule mod = (PModule)obj; 
     310//                                      if( mod.getFileName().equals(file.getName())) 
     311                                        if (mod.contains(file)) 
     312                                                return mod; 
     313                                } 
     314                        } 
     315                } 
     316                return null; 
     317        } 
     318         
     319        private void initLayers () 
     320        { 
     321                IFolder modulesDir = m_project.getFolder("policy/modules"); 
     322 
     323                try 
     324                { 
     325                        IResource[] childFolders = modulesDir.members(IResource.FOLDER); 
     326         
     327                        for (int i = 0; i < childFolders.length; i++) 
     328                        { 
     329                                if (!(childFolders[i] instanceof IFolder)) 
     330                                        continue; 
     331         
     332                                String folderName = childFolders[i].getName(); 
     333         
     334                                if (folderName.equals("CVS") || folderName.startsWith(".")) 
     335                                { 
     336                                        continue; 
     337                                } 
     338         
     339                                // first time add to layer list 
     340                                PLayer currLayer = new PLayer((IFolder) childFolders[i]); 
     341         
     342                                // add modules to layer 
     343                                getModulesFromLayer(currLayer, (IFolder) childFolders[i]); 
     344         
     345                                mLayers.add(currLayer); 
     346                        } 
     347                }  
     348                catch (CoreException ce) 
     349                {} 
     350        } 
     351 
     352 
     353        private class DeltaVisitor 
     354                implements IResourceDeltaVisitor 
     355        { 
     356                protected boolean mNeedRefresh = false; 
     357 
     358                public DeltaVisitor () 
     359                {} 
     360                 
     361                public boolean visit (IResourceDelta delta) 
     362                { 
     363                        IResource rsrc = delta.getResource(); 
    270364 
    271365                        if (rsrc instanceof IProject) 
    272366                        { 
    273                                 if( changedChildren[i].getFlags() == IResourceDelta.OPEN ) 
     367                                if (delta.getFlags() == IResourceDelta.OPEN ) 
    274368                                { 
    275369                                        mNeedRefresh = true; 
    276                                         return; 
    277                                 } 
    278  
    279                                 if ( ((IProject) rsrc).isOpen() ) 
    280                                 { 
    281                                         processLayerDelta(changedChildren[i]); 
    282                                 } 
     370                                        return false; 
     371                                } 
     372 
     373                                if (!((IProject) rsrc).isOpen()) 
     374                                        return false; 
    283375                        } 
    284376                        // adding/removing module 
     
    289381                                        PLayer currLayer = null; 
    290382                                        { 
    291                                                 for(int j = 0; j < mLayers.size(); j++) 
     383                                                for (int j = 0; j < mLayers.size(); j++) 
    292384                                                { 
    293385                                                        PLayer tmpLayer = (PLayer)mLayers.elementAt(j); 
    294          
     386 
    295387                                                        if (tmpLayer.getProject().equals(rsrc.getProject()) 
    296388                                                                && tmpLayer.getName().equals(rsrc.getParent().getName())) 
     
    301393                                                } 
    302394                                        } 
    303          
    304                                         IResource changedResource = changedChildren[i].getResource(); 
    305          
     395 
    306396                                        // added 
    307                                         if(currLayer != null && changedChildren[i].getKind() == IResourceDelta.ADDED) 
    308                                         { 
    309          
    310                                                 String moduleName = changedResource.getName(); 
     397                                        if(currLayer != null && delta.getKind() == IResourceDelta.ADDED) 
     398                                        { 
     399 
     400                                                String moduleName = rsrc.getName(); 
    311401                                                if(moduleName.lastIndexOf(".") > 0) 
    312402                                                        moduleName = moduleName.substring(0, moduleName.lastIndexOf(".")); 
    313403                                                else 
    314                                                         continue; 
    315          
     404                                                        return false; 
     405 
    316406                                                PModule currModule = new PModule((IFile) rsrc, currLayer); 
    317407                                                currLayer.Add(currModule); 
     
    319409                                        } 
    320410                                        // deleted 
    321                                         else if(currLayer != null && changedChildren[i].getKind() == IResourceDelta.REMOVED) 
    322                                         { 
    323                                                 String moduleName = changedResource.getName(); 
     411                                        else if (currLayer != null && delta.getKind() == IResourceDelta.REMOVED) 
     412                                        { 
     413                                                String moduleName = rsrc.getName(); 
    324414                                                moduleName = moduleName.substring(0, moduleName.length() - 3); 
    325415         
    326416                                                Iterator itr = mLayers.iterator(); 
    327                                                 while(itr.hasNext()) 
     417                                                while (itr.hasNext()) 
    328418                                                { 
    329419                                                        PLayer lay = ((PLayer)itr.next()); 
     
    337427                                                } 
    338428                                        } 
    339                                         else if(changedChildren[i].getKind() == IResourceDelta.REMOVED) 
     429                                        else if (delta.getKind() == IResourceDelta.REMOVED) 
    340430                                                mNeedRefresh = true; 
    341431                                } 
     
    350440                                IProject proj = changedFolder.getProject(); 
    351441 
    352                                 if(changedChildren[i].getKind() == IResourceDelta.ADDED) 
    353                                 { 
    354                                         if(!changedFolder.getParent().getName().equals("modules")) 
    355                                                 continue; 
     442                                if(delta.getKind() == IResourceDelta.ADDED) 
     443                                { 
     444                                        if (!changedFolder.getParent().getName().equals("modules")) 
     445                                                return false; 
    356446 
    357447                                        Iterator itr = mLayers.iterator(); 
     
    368458                                        } 
    369459 
    370                                         if( !layerMatch
     460                                        if (!layerMatch
    371461                                        { 
    372462                                                PLayer currLayer = new PLayer(changedFolder); 
     
    376466                                        } 
    377467                                } 
    378                                 processLayerDelta(changedChildren[i]); 
    379                         } 
    380                 } 
    381         } 
    382  
    383         private void getModulesFromLayer(PLayer layer, IFolder layerFolder) 
    384         { 
    385                 try 
    386                 { 
    387                         IResource[] children = layerFolder.members(); 
    388                         for (int i = 0; i < children.length; i++) 
    389                         { 
    390                                 if(!(children[i] instanceof IFile)) 
    391                                         continue; 
    392  
    393                                 if (children[i].getFileExtension() != null && 
    394                                                 children[i].getFileExtension().equals(BaseProjectNature.IF_EXTENSION)) 
    395                                 { 
    396                                         PModule currModule = new PModule((IFile)children[i], layer); 
    397                                         layer.Add(currModule); 
    398                                 } 
    399                         } 
    400                 } catch (CoreException ce) { 
    401                 } 
    402         } 
    403  
    404         public PModule getModule (Module comp) 
    405         { 
    406                 Iterator itr = mLayers.iterator(); 
    407                 while( itr.hasNext()) 
    408                 { 
    409                         PLayer lay = ((PLayer)itr.next()); 
    410                         PModule mod = (PModule)lay.GetModule(comp.getName()); 
    411                         if( mod != null ) 
    412                                 return mod; 
    413                 } 
    414                 return null; 
    415         } 
    416  
    417         public PModule getModule(IFile file) 
    418         { 
    419                 for (Iterator itr = mLayers.iterator(); itr.hasNext(); ) 
    420                 { 
    421                         PLayer lay = ((PLayer)itr.next()); 
    422                         for (Iterator litr = lay.getModules().values().iterator(); litr.hasNext(); ) 
    423                         { 
    424                                 Object obj = litr.next(); 
    425                                 if (obj instanceof PModule) 
    426                                 { 
    427                                         PModule mod = (PModule)obj; 
    428 //                                      if( mod.getFileName().equals(file.getName())) 
    429                                         if (mod.contains(file)) 
    430                                                 return mod; 
    431                                 } 
    432                         } 
    433                 } 
    434                 return null; 
    435         } 
    436          
    437         private void initLayers () 
    438         { 
    439                 IFolder modulesDir = m_project.getFolder("policy/modules"); 
    440  
    441                 try 
    442                 { 
    443                         IResource[] childFolders = modulesDir.members(IResource.FOLDER); 
    444          
    445                         for (int i = 0; i < childFolders.length; i++) 
    446                         { 
    447                                 if (!(childFolders[i] instanceof IFolder)) 
    448                                         continue; 
    449          
    450                                 String folderName = childFolders[i].getName(); 
    451          
    452                                 if (folderName.equals("CVS") || folderName.startsWith(".")) 
    453                                 { 
    454                                         continue; 
    455                                 } 
    456          
    457                                 // first time add to layer list 
    458                                 PLayer currLayer = new PLayer((IFolder) childFolders[i]); 
    459          
    460                                 // add modules to layer 
    461                                 getModulesFromLayer(currLayer, (IFolder) childFolders[i]); 
    462          
    463                                 mLayers.add(currLayer); 
    464                         } 
    465                 }  
    466                 catch (CoreException ce) 
    467                 {} 
     468 
     469                                return true; 
     470                        } 
     471                         
     472                        return true; 
     473                } 
    468474        } 
    469475} 
  • trunk/slide-plugin/src/com/tresys/slide/plugin/nature/contentprovider/HeaderContentProvider.java

    r2072 r2116  
    1919import org.eclipse.core.resources.IResource; 
    2020import org.eclipse.core.resources.IResourceDelta; 
     21import org.eclipse.core.resources.IResourceDeltaVisitor; 
    2122import org.eclipse.core.runtime.CoreException; 
    2223import org.eclipse.jface.viewers.TreeViewer; 
    2324 
     25import com.tresys.slide.plugin.SLIDEPlugin; 
    2426import com.tresys.slide.plugin.nature.BaseProjectNature; 
    2527import com.tresys.slide.plugin.views.policyexplorer.PLayer; 
     
    3133{ 
    3234 
    33         private Vector mLayers = new Vector(); 
    34         private Vector mModules = new Vector(); 
    35       private boolean mNeedRefresh = true; 
     35        protected Vector mLayers = new Vector(); 
     36        protected Vector mModules = new Vector(); 
     37//    private boolean mNeedRefresh = true; 
    3638 
    3739        private static final String[] HEADER_FILTER = { 
     
    128130                        } 
    129131                } 
    130                 else if( parentElement instanceof PLayer) 
     132                else if (parentElement instanceof PLayer) 
    131133                { 
    132134                        Collection modules = ((PLayer) parentElement).getModules().values(); 
     
    138140        public Object getParent(Object element) 
    139141        { 
    140  
    141142                if( element instanceof PLayer) 
    142143                { 
     
    224225        public boolean processDelta(IResourceDelta delta, final TreeViewer viewer) 
    225226        { 
    226                 mNeedRefresh = false; 
    227                 processLayerDelta(delta); 
    228                 return mNeedRefresh; 
     227                try 
     228                { 
     229                        DeltaVisitor visitor = new DeltaVisitor ();  
     230                        delta.accept (visitor); 
     231                        return visitor.mNeedRefresh; 
     232                } 
     233                catch (CoreException ce) 
     234                { 
     235                        SLIDEPlugin.log(ce); 
     236                        if( SLIDEPlugin.getDefault().isDebugging() ) 
     237                                ce.printStackTrace(); 
     238                        return false; 
     239                } 
    229240        } 
    230241 
     
    300311        } 
    301312 
    302  
    303         private void processLayerDelta(IResourceDelta delta) 
    304         { 
    305                 IResourceDelta[] changedChildren = delta.getAffectedChildren(); 
    306  
    307                 for(int i = 0; i < changedChildren.length; i++) 
    308                 { 
    309                         IResource rsrc = changedChildren[i].getResource(); 
     313        private class DeltaVisitor 
     314                implements IResourceDeltaVisitor 
     315        { 
     316                protected boolean mNeedRefresh = false; 
     317                 
     318                DeltaVisitor () 
     319                {} 
     320                 
     321                 
     322                public boolean visit (IResourceDelta delta) 
     323                { 
     324                        IResource rsrc = delta.getResource (); 
    310325                        boolean bIsModule = false; 
    311326 
    312327                        if (rsrc instanceof IProject) 
    313328                        { 
    314                                 if( changedChildren[i].getFlags() == IResourceDelta.OPEN
     329                                if (delta.getFlags() == IResourceDelta.OPEN
    315330                                { 
    316331                                        mNeedRefresh = true; 
    317                                         return; 
    318                                 } 
    319  
    320                                 if ( ((IProject) rsrc).isOpen() ) 
    321                                 { 
    322                                         processLayerDelta(changedChildren[i]); 
    323                                 } 
    324                                 else 
    325                                         return; 
     332                                        return false; 
     333                                } 
     334 
     335                                if (!((IProject) rsrc).isOpen() ) 
     336                                        return false; 
    326337                        } 
    327338                        // in case of layer 
    328                         else if(rsrc instanceof IFolder) 
    329                         { 
    330                                 processLayerDelta(changedChildren[i])
     339                        else if (rsrc instanceof IFolder) 
     340                        { 
     341                                return true
    331342                        } 
    332343                        else if (rsrc instanceof IFile) 
     
    344355                                        { 
    345356                                                currLayer = layerExist(layerDir); 
    346                                                 if( currLayer == null
     357                                                if (currLayer == null
    347358                                                { 
    348359                                                        // we have a new layer 
     
    356367                                } 
    357368 
    358                                 IResource changedResource = changedChildren[i].getResource(); 
    359  
    360369                                // module added 
    361                                 if(changedChildren[i].getKind() == IResourceDelta.ADDED && bIsModule) 
    362                                 { 
    363                                         if( currLayer == null
     370                                if(delta.getKind() == IResourceDelta.ADDED && bIsModule) 
     371                                { 
     372                                        if(currLayer == null
    364373                                        { 
    365374                                                // we know new module has no layer 
    366375                                                // and check if module already exist caused by multiple resource change events 
    367                                                 PModule mod = moduleExistinModules((IFile)changedResource); 
    368                                                 if( mod != null) 
    369                                                         continue; 
    370                                                 PModule currModule = new PModule((IFile)changedResource, currLayer); 
     376                                                PModule mod = moduleExistinModules((IFile)rsrc); 
     377                                                if (mod != null) 
     378                                                        return false; 
     379                                                PModule currModule = new PModule((IFile)rsrc, currLayer); 
    371380                                                mModules.add(currModule); 
    372381                                                mNeedRefresh = true; 
    373                                                 return
     382                                                return false
    374383                                        } 
    375384                                        else 
    376385                                        { 
    377386                                                // we have layer just add new module to it. 
    378                                                 String moduleName = changedResource.getName().substring(0, changedResource.getName().length() - 3); 
    379                                                 if( currLayer.GetModule(moduleName) != null) 
    380                                                         return
    381  
    382                                                 PModule currModule = new PModule((IFile)changedResource, currLayer); 
     387                                                String moduleName = rsrc.getName().substring(0, rsrc.getName().length() - 3); 
     388                                                if(currLayer.GetModule(moduleName) != null) 
     389                                                        return false
     390 
     391                                                PModule currModule = new PModule ((IFile)rsrc, currLayer); 
    383392                                                currLayer.Add(currModule); 
    384393                                                mNeedRefresh = true; 
    385                                                 return
     394                                                return false
    386395                                        } 
    387396                                } 
    388397                                // module removed 
    389                                 else if(changedChildren[i].getKind() == IResourceDelta.REMOVED && bIsModule) 
    390                                 { 
    391                                         String moduleName = changedResource.getName(); 
    392  
    393                                         if(moduleName.lastIndexOf(".") > 0) 
     398                                else if (delta.getKind() == IResourceDelta.REMOVED && bIsModule) 
     399                                { 
     400                                        String moduleName = rsrc.getName(); 
     401 
     402                                        if (moduleName.lastIndexOf(".") > 0) 
    394403                                                moduleName = moduleName.substring(0, moduleName.lastIndexOf(".")); 
    395404 
     
    397406 
    398407                                        Iterator itr = mLayers.iterator(); 
    399                                         while( !removed && itr.hasNext()
     408                                        while (!removed && itr.hasNext()
    400409                                        { 
    401410                                                PLayer lay = (PLayer)itr.next(); 
    402                                                 if ( lay.getModules().remove(moduleName) != null
     411                                                if (lay.getModules().remove(moduleName) != null
    403412                                                { 
    404413                                                        removed = true; 
     414                                                        mNeedRefresh = true; 
    405415                                                } 
    406416                                        } 
    407417 
    408                                         if( !removed
     418                                        if(!removed
    409419                                        { 
    410420                                                itr = mModules.iterator(); 
    411                                                 while ( itr.hasNext()
     421                                                while (itr.hasNext()
    412422                                                { 
    413423                                                        PModule module = ((PModule)itr.next()); 
    414                                                         if( module.getName().equals(moduleName) && module.getProject().equals(changedResource.getProject())) 
     424                                                        if(module.getName().equals(moduleName) && module.getProject().equals(rsrc.getProject())) 
    415425                                                        { 
    416426                                                                mModules.remove(module); 
    417427                                                                mNeedRefresh = true; 
    418                                                                 return
     428                                                                return false
    419429                                                        } 
    420430                                                } 
    421431                                        } 
    422                                 } 
    423                         } 
     432 
     433                                } 
     434                        } 
     435                        return true; 
    424436                } 
    425437        } 
     
    430442                // starts with 
    431443                { 
    432                         if( st.startsWith(".")
    433                                 return false; 
    434                         if( st.startsWith("Rules.")) 
     444                        if (st.startsWith(".")
     445                                return false; 
     446                        if (st.startsWith("Rules.")) 
    435447                                return false; 
    436448                } 
    437449              &nbs