Changeset 2119

Show
Ignore:
Timestamp:
10/10/08 11:06:55 (2 months ago)
Author:
dsugar
Message:

NEW - ticket:245: Delete layer - doesn't go away
http://oss.tresys.com/projects/slide/ticket/245
Now the layer is removed from the Policy Explorer
also some cleanup

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/slide-plugin/src/com/tresys/slide/plugin/nature/contentprovider/FullContentProvider.java

    r2116 r2119  
    5555                                        if (res instanceof IFolder) 
    5656                                        { 
    57                                                 if (!res.getName().equals("policy")) 
     57                                                if (!res.getName().equals(BaseProjectNature.DIR_POLICY)) 
    5858                                                        continue; 
    5959                                        } 
     
    7474                        try 
    7575                        { 
    76                                 if (parentFolder.getName().equals("policy")) 
    77                                 { 
    78                                         parentFolder = parentFolder.getFolder("modules"); 
     76                                if (parentFolder.getName().equals(BaseProjectNature.DIR_POLICY)) 
     77                                { 
     78                                        parentFolder = parentFolder.getFolder(BaseProjectNature.DIR_MODULES); 
    7979                                        IResource[] childFolders = parentFolder.members(IResource.FOLDER); 
    8080 
     
    141141        { 
    142142//              System.out.print("FullContentProvider.getParent() --> "); 
    143                 if( element instanceof PLayer) 
     143                if (element instanceof PLayer) 
    144144                { 
    145145                        PLayer layer = (PLayer)element; 
     
    149149//                      return ((PLayer)mLayers.get(mLayers.indexOf(element))).getParent(); 
    150150                } 
    151                 else if( element instanceof PModule) 
     151                else if (element instanceof PModule) 
    152152                { 
    153153//                      System.out.print("Module --> "); 
     
    210210                        return !((PLayer)element).getModules().isEmpty(); 
    211211                } 
    212                 else if( element instanceof IProject && ((IProject)element).isOpen() ) 
     212                else if (element instanceof IProject && ((IProject)element).isOpen() ) 
    213213                { 
    214214                        try 
     
    255255                { 
    256256                        SLIDEPlugin.log(ce); 
    257                         if( SLIDEPlugin.getDefault().isDebugging()
     257                        if (SLIDEPlugin.getDefault().isDebugging()
    258258                                ce.printStackTrace(); 
    259259                        return false; 
     
    270270                        for (int i = 0; i < children.length; i++) 
    271271                        { 
    272                                 if(!(children[i] instanceof IFile)) 
     272                                if (!(children[i] instanceof IFile)) 
    273273                                        continue; 
    274274 
     
    319319        private void initLayers () 
    320320        { 
    321                 IFolder modulesDir = m_project.getFolder("policy/modules"); 
     321                IFolder modulesDir = m_project.getFolder(BaseProjectNature.DIR_POLICY + "/" + BaseProjectNature.DIR_MODULES); 
    322322 
    323323                try 
     
    377377                        else if (rsrc instanceof IFile) 
    378378                        { 
    379                                 if (rsrc.getName().endsWith(".if")) 
     379                                if (rsrc.getName().endsWith("." + BaseProjectNature.IF_EXTENSION)) 
    380380                                { 
    381381                                        PLayer currLayer = null; 
     
    434434                        } 
    435435                        // adding a new layer 
    436                         else if(rsrc instanceof IFolder) 
     436                        else if (rsrc instanceof IFolder) 
    437437                        { 
    438438                                IFolder changedFolder = (IFolder) rsrc; 
     
    440440                                IProject proj = changedFolder.getProject(); 
    441441 
    442                                 if(delta.getKind() == IResourceDelta.ADDED) 
    443                                 { 
    444                                         if (!changedFolder.getParent().getName().equals("modules")) 
     442                                if (delta.getKind() == IResourceDelta.ADDED) 
     443                                { 
     444                                        if (!changedFolder.getParent().getName().equals(BaseProjectNature.DIR_MODULES)) 
    445445                                                return false; 
    446446 
    447                                         Iterator itr = mLayers.iterator(); 
    448  
    449447                                        boolean layerMatch = false; 
    450  
    451                                         while( !layerMatch && itr.hasNext() ) 
     448                                        for (Iterator itr = mLayers.iterator (); !layerMatch && itr.hasNext (); ) 
    452449                                        { 
    453450                                                PLayer l = ((PLayer)itr.next()); 
    454                                                 if( l.getProject().equals(proj) && l.getName().equals(changedFolder.getName())
     451                                                if (l.getProject().equals(proj) && l.getName().equals(changedFolder.getName())
    455452                                                { 
    456453                                                        layerMatch = true; 
     
    467464                                } 
    468465 
     466                                if (delta.getKind () == IResourceDelta.REMOVED) 
     467                                { 
     468                                        if (!changedFolder.getParent().getName().equals(BaseProjectNature.DIR_MODULES)) 
     469                                                return false; 
     470 
     471                                        for (Iterator itr = mLayers.iterator (); itr.hasNext (); ) 
     472                                        { 
     473                                                PLayer l = ((PLayer)itr.next()); 
     474                                                if (l.getProject().equals(proj) && l.getName().equals(changedFolder.getName())) 
     475                                                { 
     476                                                        itr.remove (); 
     477                                                } 
     478                                        } 
     479                                } 
     480 
    469481                                return true; 
    470482                        } 
    471                          
     483 
    472484                        return true; 
    473485                } 
  • trunk/slide-plugin/src/com/tresys/slide/plugin/nature/contentprovider/HeaderContentProvider.java

    r2116 r2119  
    153153                } 
    154154 
    155                 else if( element instanceof PModule) 
     155                else if (element instanceof PModule) 
    156156                { 
    157157 
    158158                        PModule mod = ((PModule)element); 
    159                         if( mod.getParent() == null) 
     159                        if (mod.getParent() == null) 
    160160                                return mod.getProject(); 
    161161                } 
    162162 
    163                 else if( element instanceof IProject && ((IProject)element).isOpen()
    164                 { 
    165                         return((IProject)element).getParent(); 
    166                 } 
    167  
    168                 else if( element instanceof IFolder) 
     163                else if (element instanceof IProject && ((IProject)element).isOpen()
     164                { 
     165                        return ((IProject)element).getParent(); 
     166                } 
     167 
     168                else if (element instanceof IFolder) 
    169169                { 
    170170                        return ((IFolder)element).getParent(); 
    171171                } 
    172172 
    173                 else if( element instanceof IFile) 
     173                else if (element instanceof IFile) 
    174174                { 
    175175                        return ((IFile)element).getParent(); 
     
    181181        public boolean hasChildren(Object element) 
    182182        { 
    183                 if( element instanceof PLayer) 
     183                if (element instanceof PLayer) 
    184184                { 
    185185                        return !((PLayer)element).getModules().isEmpty(); 
    186186                } 
    187                 else if( element instanceof IProject && ((IProject)element).isOpen() ) 
     187                else if (element instanceof IProject && ((IProject)element).isOpen() ) 
    188188                { 
    189189                        try 
     
    204204                        } 
    205205                } 
    206                 else if( element instanceof IFolder) 
     206                else if (element instanceof IFolder) 
    207207                { 
    208208                        try 
     
    298298 
    299299                                if (children[i].getFileExtension() != null && 
    300                                                 children[i].getFileExtension().equals("if")) 
     300                                                children[i].getFileExtension().equals(BaseProjectNature.IF_EXTENSION)) 
    301301                                { 
    302302                                        PModule currModule = new PModule((IFile)children[i], layer); 
     
    345345                                PLayer currLayer = null; 
    346346 
    347                                 if (rsrc.getName().endsWith(".if")) 
     347                                if (rsrc.getName().endsWith("." + BaseProjectNature.IF_EXTENSION)) 
    348348                                { 
    349349                                        bIsModule = true; 
     
    449449                // ends with 
    450450                { 
    451                         if (st.endsWith(".pp")) 
    452                                 return false; 
    453                         if (st.endsWith(".fc")) 
    454                                 return false; 
    455                         if (st.endsWith(".te")) 
    456                                 return false; 
    457                         if (st.endsWith(".conf")) 
    458                                 return false; 
    459                         if (st.endsWith(".xml")) 
     451                        if (st.endsWith("." + BaseProjectNature.MODULE_EXTENSION)) 
     452                                return false; 
     453                        if (st.endsWith("." + BaseProjectNature.FC_EXTENSION)) 
     454                                return false; 
     455                        if (st.endsWith("." + BaseProjectNature.TE_EXTENSION)) 
     456                                return false; 
     457                        if (st.endsWith("." + BaseProjectNature.CONF_EXTENSION)) 
     458                                return false; 
     459                        if (st.endsWith("." + BaseProjectNature.XML_EXTENSION)) 
    460460                                return false; 
    461461                } 
  • trunk/slide-plugin/src/com/tresys/slide/plugin/nature/contentprovider/SystemContentProvider.java

    r2063 r2119  
    2424 
    2525import com.tresys.slide.plugin.SLIDEPlugin; 
     26import com.tresys.slide.plugin.nature.BaseProjectNature; 
    2627import com.tresys.slide.plugin.nature.SystemProjectNature; 
    2728import com.tresys.slide.plugin.views.policyexplorer.PLayer; 
     
    159160                        { 
    160161                                IFolder systemDir = i_pSystem.getFolder(); 
    161                                 IFolder modulesDir = systemDir.getFolder("policy/modules"); 
     162                                IFolder modulesDir = systemDir.getFolder(BaseProjectNature.DIR_POLICY + "/" + BaseProjectNature.DIR_MODULES); 
    162163                                 
    163164                                Vector layers = new Vector (); 
     
    298299                                 
    299300                                if (children[i].getFileExtension() != null &&  
    300                                                 children[i].getFileExtension().equals("if"))  
     301                                                children[i].getFileExtension().equals(BaseProjectNature.IF_EXTENSION))  
    301302                                { 
    302303                                        PModule currModule = new PModule((IFile) children[i], layer); 
     
    328329                        if (rsrc instanceof IProject) 
    329330                        { 
    330                                 if( delta.getFlags() == IResourceDelta.OPEN
     331                                if (delta.getFlags() == IResourceDelta.OPEN
    331332                                { 
    332333                                        mNeedRefresh = true; 
     
    334335                                } 
    335336                                 
    336                                 if (! ((IProject) rsrc).isOpen()) 
     337                                if (!((IProject) rsrc).isOpen()) 
    337338                                        return false; 
    338339                         
     
    356357                        if (rsrc instanceof IFile) 
    357358                        { 
    358                                 if (!rsrc.getName().endsWith(".if")) 
     359                                if (!rsrc.getName().endsWith("." + BaseProjectNature.IF_EXTENSION)) 
    359360                                        return false; 
    360361                         
     
    454455                                        } 
    455456                                } 
    456                                 else if (rsrc.getParent().getName().equals("modules")) 
     457                                else if (rsrc.getParent().getName().equals(BaseProjectNature.DIR_MODULES)) 
    457458                                { 
    458459                                        // layer added 
     
    467468                                                                if (layers == null) 
    468469                                                                        return false; 
    469                                                                  
    470                                                                  
     470 
    471471                                                                for (Iterator itr2 = layers.iterator(); itr2.hasNext(); ) 
    472472                                                                { 
     
    475475                                                                                return false; 
    476476                                                                } 
    477                                                                  
     477 
    478478                                                                layers.add (new PLayer ((IFolder) rsrc)); 
    479479                                                                mNeedRefresh = true; 
     
    481481                                                } 
    482482                                        } 
     483 
     484                                        if (delta.getKind () == IResourceDelta.REMOVED) 
     485                                        { 
     486                                                for (Iterator itr = getSystems(m_proj).iterator (); itr.hasNext (); ) 
     487                                                { 
     488                                                        PSystem system = (PSystem) itr.next (); 
     489                                                        if (system.contains (rsrc)) 
     490                                                        { 
     491                                                                Vector layers = (Vector) m_Layers.get (system); 
     492                                                                if (layers == null) 
     493                                                                        return false; 
     494         
     495                                                                for (Iterator itr2 = layers.iterator(); itr2.hasNext(); ) 
     496                                                                { 
     497                                                                        PLayer layer =  (PLayer) itr2.next(); 
     498                                                                        if (layer.getFolder().equals(rsrc)) 
     499                                                                        { 
     500                                                                                itr2.remove (); 
     501                                                                                mNeedRefresh = true; 
     502                                                                                return false; 
     503                                                                        } 
     504                                                                } 
     505                                                        } 
     506                                                } 
     507                                        } 
    483508                                } 
    484509                        }