Giter Site home page Giter Site logo

vba-toolbox's People

Contributors

greedquest avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

vba-toolbox's Issues

Order Events need raising

The synchrolist raises buffered events on addition which is good for ui. But on sorting/filtering only 1 event is raised (1st change event).

Solution would be to have a clear from index method in content. First change index can be found then cleared from there raising no event and re added as normal. That gives proper re-ordering events although it would trigger a load more on-removal then on-addition events. Perhaps another limbo state is in-order

Asynchronous Buffering

A fully Asynchronous buffer (one which raises events on timer not just on capacity) will lead to some problems with interrupted actions.

There may be more, but so far it looks like changing filter mode/ sort mode will have the biggest effect. Changing one of these modes while the buffer is filling up will lead to the buffer containing some unsorted/unfiltered data - the content wrapper expects fully sorted+filtered data.

Only the first batch out of the buffer after re-sort/filter can be affected by this problem though - as any new items that trigger buffer events will necessarily match the Sort/Filter criteria, it's only the ones already in the buffer that we need to worry about.

  • Change filter mode
    • Buffer will contain some items that match the current filter, and some that match the old
    • If the re-filter reaches buffer capacity, the mixed items will be added, triggering an incorrect event, but then the content wrapper will filter them out
    • If the re-filter doesn't fill the buffer, the content will re-filter first then the buffer items will be added when the buffer timeouts - this will leave incorrect items in the content wrapper v bad
  • Change sort mode
    • Buffer will contain a mix of sorted and unsorted stuff
    • If buffer overflows first, items will be added (duplicates removed, i.e. only unsorted stuff remains). These don't match the actual sort order, so if SortOnAddition is set then the wrong item will be tracked, and the incorrect event will be raised. Then content wrapper will sort correctly
    • If buffer doesn't overflow, the content will sort first and then the buffer items will be added on timeout. The wrong event will be raised and the content will remain unsorted

A combination of the two is feasible and messy.

Solution:
Perhaps the buffer could be flushed to avoid these problems. But better would be to sort and filter buffer items after leaving the buffer rather than when entering, as this is a synchronous uninterruptible process.

Unit tests for these interrupted actions should be included

Option Explicit in compressed file

There's an extra option explicit inserted automatically in the compressed file, which ends up at the end. File should be cleared first

Add Attributions

It'd be good to find sources for some of the larger code segments (that'll definitely be kept medium/long term) and add attributions for them; SO requires it.

Particularly thinking about

  • LogManager
  • Strings.Format

Attribution can go into the '@ModuleDescription annotation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.