Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mylar-dev] [enhancement] remove duplicated redrawing when uninstalling InterestFilter from StructuredViewer.

OK. I'll create a bug reports for them. Thanks!

 
2006/2/19, Eugene Kuleshov <eu@xxxxxxxx>:

  This is all great, but, seriously, why don't you create bug reports
for those issues and attach correspond patches to those reports?
  It will keep this mail list clear and more importantly will save some
time to Mik if he accept those patches. See
http://www.eclipse.org/mylar/dev.php

  By the way, Mik, it seems that link to "Reference" page from
"Patches" section is broken.

  regards,
  Eugene


bin Wang wrote:
> AbstractApplyMylarAction#uninstallInterestFilter(StructuredViewer) will
> reDraw StructuredViewer more than one if there are more than one
> InterestFilter to be removed.
>
> Below is the original method
>
>  protected void uninstallInterestFilter(StructuredViewer viewer) {
>   if (viewer != null) {
>    for (int i = 0; i < viewer.getFilters().length; i++) {
>     ViewerFilter filter = viewer.getFilters()[i];
>     if (filter instanceof InterestFilter) {
>       viewer.getControl().setRedraw(false);
>      viewer.removeFilter(filter);
>      viewer.getControl().setRedraw(true);
>     }
>    }
>   } else {
>    MylarStatusHandler.log("Could not uninstall interest filter", this);
>   }
>  }
>
> We can see if there aremore than one InterestFilter to be removed, below
> code is excuted more than one.
>
>      viewer.getControl().setRedraw(false);
>       viewer.removeFilter(filter);
>      viewer.getControl().setRedraw(true);
>
> So I suggest cache alled the filters to be removed as below code does.
>
>  protected void uninstallInterestFilter(StructuredViewer viewer) {
>   if (viewer == null) {
>    MylarStatusHandler.log("Could not uninstall interest filter", this);
>    return;
>   }
>
>   List<ViewerFilter> filtersToRemove = new ArrayList<ViewerFilter>();
>
>   for (ViewerFilter filter : viewer.getFilters()) {
>    if (filter instanceof InterestFilter) {
>     filtersToRemove.add(filter);
>    }
>   }
>
>   if (! filtersToRemove.isEmpty ()) {
>    viewer.getControl ().setRedraw(false);
>
>    for (ViewerFilter filter : filtersToRemove) {
>     viewer.removeFilter(filter);
>    }
>
>    viewer.getControl().setRedraw(true);
>   }
>  }
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> mylar-dev mailing list
> mylar-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/mylar-dev

_______________________________________________
mylar-dev mailing list
mylar-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/mylar-dev


Back to the top