Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Include Page
Header, Design
Header,

...

Design

...

scrollbar

Currently events are handled very bad since everything is subscribed to everything (Project explorer to Model.DataItems.Added/Removed,

...

Folder.DataItems.Added/Removed,

...

etc.).

...

As

...

result

...

it

...

makes

...

things

...

very

...

difficult

...

to

...

manage

...

when

...

objects

...

are

...

added

...

/

...

removed.

...

Especially

...

when

...

these

...

subsciption

...

happen

...

in

...

external

...

plugins

...

(HABITAT,

...

Verkenner...).

...

Better

...

way

...

to

...

inform

...

containers

...

of

...

the

...

collections

...

is

...

to

...

inform

...

parent

...

about

...

changes

...

(INotifyPropertyChanged)

...

of

...

the

...

underlying

...

object

...

or

...

let

...

only

...

container

...

subscribe

...

to

...

collection

...

contained

...

in

...

it.

...

In

...

a

...

few

...

words:

...

Arrows

...

show

...

what

...

object

...

is

...

subscribed

...

to

...

what.

...

Allowed

...

Subscription

...

of

...

events

Anti-Pattern

In general the rule is: when you need to Subscribe / Unsubscribe frequently to events - you have to review your design of how event subscription is organized.

Consequences for DelftShell

  • Refactor all subscription of events in ProjectExplorer, HABITAT, etc.

Points of interest

  • INotifyPropertyChanging in .NET 3.5
  • WeakEvent in .NET 3.5