Ignore:
Timestamp:
11/22/11 19:38:16 (13 years ago)
Author:
masberg
Message:

Use generics.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/org.modelica.mdt.ui/src/org/modelica/mdt/ui/actions/CustomFiltersActionGroup.java

    r1104 r1113  
    4848import java.util.StringTokenizer;
    4949import java.util.TreeSet;
    50 import java.util.Map.Entry;
    5150
    5251import org.eclipse.swt.SWT;
     
    9493 * @since 0.6.8
    9594 */
    96 @SuppressWarnings("unchecked")
    9795public class CustomFiltersActionGroup extends ActionGroup {
    9896
     
    184182
    185183    private NamePatternFilter fPatternFilter;
    186     private Map fInstalledBuiltInFilters;
    187    
    188     private Map/*<String, Boolean>*/ fEnabledFilterIds;
     184    private Map<String, ViewerFilter> fInstalledBuiltInFilters;
     185   
     186    private Map<String, Boolean> fEnabledFilterIds;
    189187    private boolean fUserDefinedPatternsEnabled;
    190188    private String[] fUserDefinedPatterns;
     
    196194     * @since 0.6.8
    197195     */
    198     private Stack fLRUFilterIdsStack;
     196    private Stack<String> fLRUFilterIdsStack;
    199197    /**
    200198     * Handle to menu manager to dynamically update
     
    217215     */
    218216    private String[] fFilterIdsUsedInLastViewMenu;
    219     private HashMap fFilterDescriptorMap;
     217    private Map<String, FilterDescriptor> fFilterDescriptorMap;
    220218    private String fTargetId;
    221219   
     
    242240        fViewer= viewer;
    243241
    244         fLRUFilterIdsStack= new Stack();
     242        fLRUFilterIdsStack= new Stack<String>();
    245243
    246244        initializeWithPluginContributions();
     
    271269     */
    272270    public String[] internalGetEnabledFilterIds() {
    273         Set enabledFilterIds= new HashSet(fEnabledFilterIds.size());
    274         Iterator iter= fEnabledFilterIds.entrySet().iterator();
    275         while (iter.hasNext()) {
    276             Map.Entry entry= (Map.Entry)iter.next();
    277             String id= (String)entry.getKey();
    278             boolean isEnabled= ((Boolean)entry.getValue()).booleanValue();
    279             if (isEnabled)
     271        Set<String> enabledFilterIds= new HashSet<String>();
     272        for (Map.Entry<String, Boolean> entry : fEnabledFilterIds.entrySet()) {
     273            String id= entry.getKey();
     274            boolean isEnabled = entry.getValue();
     275            if (isEnabled) {
    280276                enabledFilterIds.add(id);
    281         }
    282         return (String[])enabledFilterIds.toArray(new String[enabledFilterIds.size()]);
     277            }
     278        }
     279        String[] enabledFilterIdsArray = enabledFilterIds.toArray(new String[0]);
     280        return enabledFilterIdsArray;
    283281    }
    284282
     
    295293    public String[] removeFiltersFor(Object parent, Object element, IContentProvider contentProvider) {
    296294        String[] enabledFilters= internalGetEnabledFilterIds();
    297         Set newFilters= new HashSet();
    298         for (int i= 0; i < enabledFilters.length; i++) {
    299             String filterName= enabledFilters[i];
    300             ViewerFilter filter= (ViewerFilter) fInstalledBuiltInFilters.get(filterName);
    301             if (filter == null)
     295        Set<String> newFilters= new HashSet<String>();
     296        for (String filterName : enabledFilters) {
     297            ViewerFilter filter= fInstalledBuiltInFilters.get(filterName);
     298            if (filter == null) {
    302299                newFilters.add(filterName);
    303             else if (isSelected(parent, element, contentProvider, filter))
     300            }
     301            else if (isSelected(parent, element, contentProvider, filter)) {
    304302                newFilters.add(filterName);
     303            }
    305304        }
    306         if (newFilters.size() == enabledFilters.length)
    307             return new String[0];
    308         return (String[])newFilters.toArray(new String[newFilters.size()]);
     305       
     306        String[] newFiltersArray = new String[0];
     307       
     308        if (newFilters.size() != enabledFilters.length) {
     309            Assert.isTrue(newFilters.size() < enabledFilters.length);
     310            newFiltersArray = newFilters.toArray(new String[0]);
     311        }
     312       
     313        return newFiltersArray;
    309314    }
    310315   
     
    351356       
    352357    private void setEnabledFilterIds(String[] enabledIds) {
    353         Iterator iter= fEnabledFilterIds.keySet().iterator();
    354         while (iter.hasNext()) {
    355             String id= (String)iter.next();
    356             fEnabledFilterIds.put(id, Boolean.FALSE);
    357         }
    358         for (int i= 0; i < enabledIds.length; i++)
    359             fEnabledFilterIds.put(enabledIds[i], Boolean.TRUE);
     358        for (String id : fEnabledFilterIds.keySet()) {
     359            fEnabledFilterIds.put(id, false);
     360        }
     361       
     362        for (String id : enabledIds) {
     363            fEnabledFilterIds.put(id, true);
     364        }
    360365    }
    361366
     
    371376     * @since 3.0
    372377     */
    373     private void setRecentlyChangedFilters(Stack changeHistory) {
    374         Stack oldestFirstStack= new Stack();
     378    private void setRecentlyChangedFilters(Stack<FilterDescriptor> changeHistory) {
     379        Stack<String> oldestFirstStack= new Stack<String>();
    375380       
    376381        int length= Math.min(changeHistory.size(), MAX_FILTER_MENU_ENTRIES);
    377         for (int i= 0; i < length; i++)
    378             oldestFirstStack.push(((FilterDescriptor)changeHistory.pop()).getId());
     382        for (int i= 0; i < length; i++) {
     383            FilterDescriptor filterDesc = changeHistory.pop();
     384            String id = filterDesc.getId();
     385            oldestFirstStack.push(id);
     386        }
    379387       
    380388        length= Math.min(fLRUFilterIdsStack.size(), MAX_FILTER_MENU_ENTRIES - oldestFirstStack.size());
    381389        int NEWEST= 0;
    382390        for (int i= 0; i < length; i++) {
    383             Object filter= fLRUFilterIdsStack.remove(NEWEST);
    384             if (!oldestFirstStack.contains(filter))
     391            String filter= fLRUFilterIdsStack.remove(NEWEST);
     392            if (!oldestFirstStack.contains(filter)) {
    385393                oldestFirstStack.push(filter);
    386         }
    387         fLRUFilterIdsStack= oldestFirstStack;
     394            }
     395        }
     396        fLRUFilterIdsStack = oldestFirstStack;
    388397    }
    389398   
     
    439448        }
    440449       
    441         SortedSet sortedFilters= new TreeSet(fLRUFilterIdsStack);
     450        SortedSet<String> sortedFilters= new TreeSet<String>(fLRUFilterIdsStack);
    442451        String[] recentlyChangedFilterIds= (String[])sortedFilters.toArray(new String[sortedFilters.size()]);
    443452       
     
    466475   
    467476    private void initializeWithPluginContributions() {
    468         fUserDefinedPatterns= new String[0];
    469         fUserDefinedPatternsEnabled= false;
    470 
    471         FilterDescriptor[] filterDescs= getCachedFilterDescriptors();
    472         fFilterDescriptorMap= new HashMap(filterDescs.length);
    473         fEnabledFilterIds= new HashMap(filterDescs.length);
    474         for (int i= 0; i < filterDescs.length; i++) {
    475             String id= filterDescs[i].getId();
    476             Boolean isEnabled= Boolean.valueOf(filterDescs[i].isEnabled());
    477             if (fEnabledFilterIds.containsKey(id))
    478                 System.err.println("duplicateFilterId:"+id);
     477        fUserDefinedPatterns = new String[0];
     478        fUserDefinedPatternsEnabled = false;
     479
     480        FilterDescriptor[] filterDescs = getCachedFilterDescriptors();
     481        fFilterDescriptorMap = new HashMap<String, FilterDescriptor>();
     482        fEnabledFilterIds = new HashMap<String, Boolean>();
     483        for (FilterDescriptor filterDesc : filterDescs) {
     484            String id= filterDesc.getId();
     485            boolean isEnabled= filterDesc.isEnabled();
     486            if (fEnabledFilterIds.containsKey(id)) {
     487                System.err.println("duplicateFilterId: " + id);
     488            }
    479489            fEnabledFilterIds.put(id, isEnabled);
    480             fFilterDescriptorMap.put(id, filterDescs[i]);
     490            fFilterDescriptorMap.put(id, filterDesc);
    481491        }
    482492    }
     
    485495   
    486496    private void installFilters() {
    487         fInstalledBuiltInFilters= new HashMap(fEnabledFilterIds.size());
     497        fInstalledBuiltInFilters= new HashMap<String, ViewerFilter>(fEnabledFilterIds.size());
    488498        fPatternFilter= new NamePatternFilter();
    489499        fPatternFilter.setPatterns(getUserAndBuiltInPatterns());
     
    503513   
    504514    private void updateBuiltInFilters() {
    505         Set installedFilters= fInstalledBuiltInFilters.keySet();
    506         Set filtersToAdd= new HashSet(fEnabledFilterIds.size());
    507         Set filtersToRemove= new HashSet(fEnabledFilterIds.size());
    508         Iterator iter= fEnabledFilterIds.entrySet().iterator();
    509         while (iter.hasNext()) {
    510             Map.Entry entry= (Map.Entry)iter.next();
    511             String id= (String)entry.getKey();
    512             boolean isEnabled= ((Boolean)entry.getValue()).booleanValue();
    513             if (isEnabled && !installedFilters.contains(id))
     515        Set<String> installedFilters= fInstalledBuiltInFilters.keySet();
     516        Set<String> filtersToAdd= new HashSet<String>();
     517        Set<String> filtersToRemove= new HashSet<String>();
     518        for (Map.Entry<String, Boolean> entry : fEnabledFilterIds.entrySet()) {
     519            String id = entry.getKey();
     520            boolean isEnabled = entry.getValue();
     521            if (isEnabled && !installedFilters.contains(id)) {
    514522                filtersToAdd.add(id);
    515             else if (!isEnabled && installedFilters.contains(id))
     523            }
     524            else if (!isEnabled && installedFilters.contains(id)) {
    516525                filtersToRemove.add(id);
     526            }
    517527        }
    518528       
    519529        // Install the filters
    520530        FilterDescriptor[] filterDescs= getCachedFilterDescriptors();
    521         for (int i= 0; i < filterDescs.length; i++) {
    522             String id= filterDescs[i].getId();
     531        for (FilterDescriptor filterDesc : filterDescs) {
     532            String id = filterDesc.getId();
    523533            // just to double check - id should denote a custom filter anyway
    524             boolean isCustomFilter= filterDescs[i].isCustomFilter();
     534            boolean isCustomFilter = filterDesc.isCustomFilter();
    525535            if (isCustomFilter) {
    526536                if (filtersToAdd.contains(id)) {
    527                     ViewerFilter filter= filterDescs[i].createViewerFilter();
     537                    ViewerFilter filter = filterDesc.createViewerFilter();
    528538                    if (filter != null) {
    529539                        fViewer.addFilter(filter);
     
    532542                }
    533543                if (filtersToRemove.contains(id)) {
    534                     fViewer.removeFilter((ViewerFilter)fInstalledBuiltInFilters.get(id));
     544                    fViewer.removeFilter(fInstalledBuiltInFilters.get(id));
    535545                    fInstalledBuiltInFilters.remove(id);
    536546                }
     
    540550
    541551    private String[] getUserAndBuiltInPatterns() {
    542         List patterns= new ArrayList(fUserDefinedPatterns.length);
    543         if (areUserDefinedPatternsEnabled())
     552        List<String> patterns= new ArrayList<String>();
     553        if (areUserDefinedPatternsEnabled()) {
    544554            patterns.addAll(Arrays.asList(fUserDefinedPatterns));
     555        }
    545556        FilterDescriptor[] filterDescs= getCachedFilterDescriptors();
    546557        for (int i= 0; i < filterDescs.length; i++) {
     
    560571        setUserDefinedPatterns(CustomFiltersDialog.convertFromString("", SEPARATOR));
    561572
    562         Iterator iter= fEnabledFilterIds.entrySet().iterator();
    563         while (iter.hasNext())
    564         {
    565             Entry entry= (Entry) iter.next();
    566             String id= (String) entry.getKey();
     573        for (String id : fEnabledFilterIds.keySet()) {
    567574            fEnabledFilterIds.put(id, true);
    568575        }
     
    585592        store.setValue(getPreferenceKey(TAG_USER_DEFINED_PATTERNS), CustomFiltersDialog.convertToString(fUserDefinedPatterns ,SEPARATOR));
    586593
    587         Iterator iter= fEnabledFilterIds.entrySet().iterator();
     594        for (Map.Entry<String, Boolean> entry : fEnabledFilterIds.entrySet()) {
     595            String id = entry.getKey();
     596            boolean isEnabled = entry.getValue();
     597            store.setValue(id, isEnabled);
     598        }
     599
     600        StringBuffer buf= new StringBuffer(fLRUFilterIdsStack.size() * 20);
     601       
     602        Iterator<String> iter= fLRUFilterIdsStack.iterator();
    588603        while (iter.hasNext()) {
    589             Map.Entry entry= (Map.Entry)iter.next();
    590             String id= (String)entry.getKey();
    591             boolean isEnabled= ((Boolean)entry.getValue()).booleanValue();
    592             store.setValue(id, isEnabled);
    593         }
    594 
    595         StringBuffer buf= new StringBuffer(fLRUFilterIdsStack.size() * 20);
    596         iter= fLRUFilterIdsStack.iterator();
    597         while (iter.hasNext()) {
    598             buf.append((String)iter.next());
     604            buf.append(iter.next());
    599605            buf.append(SEPARATOR);
    600606        }
     
    624630        if(fEnabledFilterIds != null && !fEnabledFilterIds.isEmpty()) {
    625631            IMemento xmlDefinedFilters= memento.createChild(TAG_XML_DEFINED_FILTERS);
    626             Iterator iter= fEnabledFilterIds.entrySet().iterator();
    627             while (iter.hasNext()) {
    628                 Map.Entry entry= (Map.Entry)iter.next();
    629                 String id= (String)entry.getKey();
    630                 Boolean isEnabled= (Boolean)entry.getValue();
     632            for (Map.Entry<String, Boolean> entry : fEnabledFilterIds.entrySet()) {
     633                String id = entry.getKey();
     634                Boolean isEnabled = entry.getValue();
    631635                IMemento child= xmlDefinedFilters.createChild(TAG_CHILD);
    632636                child.putString(TAG_FILTER_ID, id);
     
    645649        if(fLRUFilterIdsStack != null && !fLRUFilterIdsStack.isEmpty()) {
    646650            IMemento lruFilters= memento.createChild(TAG_LRU_FILTERS);
    647             Iterator iter= fLRUFilterIdsStack.iterator();
    648             while (iter.hasNext()) {
    649                 String id= (String)iter.next();
     651            for (String id : fLRUFilterIdsStack) {
    650652                IMemento child= lruFilters.createChild(TAG_CHILD);
    651653                child.putString(TAG_FILTER_ID, id);
     
    731733        if (!areUserDefinedPatternsEnabled())
    732734            return;
    733         List userDefinedPatterns= new ArrayList(Arrays.asList(fUserDefinedPatterns));
     735        List<String> userDefinedPatterns = Arrays.asList(fUserDefinedPatterns);
    734736        FilterDescriptor[] filters= getCachedFilterDescriptors();
    735737
Note: See TracChangeset for help on using the changeset viewer.