samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:08:31 +0200
changeset 250 c6f1ccdd37f3
parent 246 128db998ee1c
child 251 266127621c8f
permissions -rw-r--r--
Example how lookup can listen to and react to changes
jtulach@229
     1
package org.apidesign.anagram.app.lookup;
jtulach@229
     2
jtulach@229
     3
import org.apidesign.anagram.api.Scrambler;
jtulach@229
     4
import org.apidesign.anagram.api.WordLibrary;
jtulach@229
     5
import org.apidesign.anagram.gui.Anagrams;
jtulach@229
     6
import org.openide.util.Lookup;
jtulach@229
     7
jtulach@246
     8
// BEGIN: anagram.lookup.Anagrams
jtulach@250
     9
import org.openide.util.LookupEvent;
jtulach@250
    10
import org.openide.util.LookupListener;
jtulach@229
    11
class AnagramsWithLookup extends Anagrams {
jtulach@229
    12
jtulach@229
    13
    public AnagramsWithLookup() {
jtulach@229
    14
    }
jtulach@229
    15
jtulach@229
    16
    @Override
jtulach@229
    17
    protected WordLibrary getWordLibrary() {
jtulach@229
    18
        return Lookup.getDefault().lookup(WordLibrary.class);
jtulach@229
    19
    }
jtulach@229
    20
jtulach@229
    21
    @Override
jtulach@229
    22
    protected Scrambler getScrambler() {
jtulach@229
    23
        return Lookup.getDefault().lookup(Scrambler.class);
jtulach@229
    24
    }
jtulach@250
    25
// FINISH: anagram.lookup.Anagrams
jtulach@250
    26
    
jtulach@250
    27
    private Lookup.Result<Scrambler> scramblers = Lookup.getDefault().lookupResult(Scrambler.class);
jtulach@250
    28
// BEGIN: anagram.lookup.Listeners      
jtulach@250
    29
    private Lookup.Result<WordLibrary> libraries 
jtulach@250
    30
        = Lookup.getDefault().lookupResult(WordLibrary.class);
jtulach@250
    31
    private LookupListener listener = new LookupListener() {
jtulach@250
    32
        public void resultChanged(LookupEvent ev) {
jtulach@250
    33
            initWord();
jtulach@250
    34
        }
jtulach@250
    35
    };
jtulach@250
    36
    {
jtulach@250
    37
        libraries.addLookupListener(listener);
jtulach@250
    38
// FINISH: anagram.lookup.Listeners      
jtulach@250
    39
        
jtulach@250
    40
        scramblers.addLookupListener(listener);
jtulach@250
    41
        // initialize the results for listening
jtulach@250
    42
        libraries.allItems();
jtulach@250
    43
        scramblers.allItems();
jtulach@250
    44
    }
jtulach@229
    45
}