# HG changeset patch # User Jaroslav Tulach # Date 1213430922 -7200 # Node ID 763bf709a318f540db47d9b97796f95d4262d5f2 # Parent 266127621c8fbd1070208bd72eea36307bf9dd54 Merge: Patrick's touches diff -r 266127621c8f -r 763bf709a318 samples/componentinjection/anagram-modular/build.xml --- a/samples/componentinjection/anagram-modular/build.xml Sat Jun 14 10:08:35 2008 +0200 +++ b/samples/componentinjection/anagram-modular/build.xml Sat Jun 14 10:08:42 2008 +0200 @@ -47,10 +47,14 @@ + + + + - + @@ -89,17 +93,27 @@ - + - + + + + + + + + + + + @@ -126,4 +140,22 @@ + + + + + + + + + + + + + + + + + + diff -r 266127621c8f -r 763bf709a318 samples/componentinjection/anagram-modular/nbproject/project.xml --- a/samples/componentinjection/anagram-modular/nbproject/project.xml Sat Jun 14 10:08:35 2008 +0200 +++ b/samples/componentinjection/anagram-modular/nbproject/project.xml Sat Jun 14 10:08:42 2008 +0200 @@ -94,6 +94,9 @@ clean + + run + test @@ -226,6 +229,7 @@ + @@ -300,7 +304,7 @@ src-test - src-new-api:../libs/dist/junit-4.4.jar + src-api:../../libs/dist/junit-4.4.jar::../../libs/dist/org-netbeans-modules-nbjunit.jar:../../libs/dist/org-netbeans-insane.jar:src-gui:../../libs/dist/org-openide-util.jar:src-app-lookup:src-app-serviceloader 1.5 diff -r 266127621c8f -r 763bf709a318 samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java --- a/samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java Sat Jun 14 10:08:35 2008 +0200 +++ b/samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java Sat Jun 14 10:08:42 2008 +0200 @@ -6,6 +6,8 @@ import org.openide.util.Lookup; // BEGIN: anagram.lookup.Anagrams +import org.openide.util.LookupEvent; +import org.openide.util.LookupListener; class AnagramsWithLookup extends Anagrams { public AnagramsWithLookup() { @@ -20,6 +22,24 @@ protected Scrambler getScrambler() { return Lookup.getDefault().lookup(Scrambler.class); } - +// FINISH: anagram.lookup.Anagrams + + private Lookup.Result scramblers = Lookup.getDefault().lookupResult(Scrambler.class); +// BEGIN: anagram.lookup.Listeners + private Lookup.Result libraries + = Lookup.getDefault().lookupResult(WordLibrary.class); + private LookupListener listener = new LookupListener() { + public void resultChanged(LookupEvent ev) { + initWord(); + } + }; + { + libraries.addLookupListener(listener); +// FINISH: anagram.lookup.Listeners + + scramblers.addLookupListener(listener); + // initialize the results for listening + libraries.allItems(); + scramblers.allItems(); + } } -// END: anagram.lookup.Anagrams diff -r 266127621c8f -r 763bf709a318 samples/componentinjection/anagram-modular/src-app-serviceloader/org/apidesign/anagram/app/serviceloader/AnagramsWithServiceLoader.java --- a/samples/componentinjection/anagram-modular/src-app-serviceloader/org/apidesign/anagram/app/serviceloader/AnagramsWithServiceLoader.java Sat Jun 14 10:08:35 2008 +0200 +++ b/samples/componentinjection/anagram-modular/src-app-serviceloader/org/apidesign/anagram/app/serviceloader/AnagramsWithServiceLoader.java Sat Jun 14 10:08:42 2008 +0200 @@ -1,5 +1,6 @@ package org.apidesign.anagram.app.serviceloader; +import java.util.Iterator; import org.apidesign.anagram.api.Scrambler; import org.apidesign.anagram.api.WordLibrary; import org.apidesign.anagram.gui.Anagrams; @@ -13,12 +14,14 @@ @Override protected WordLibrary getWordLibrary() { - return ServiceLoader.load(WordLibrary.class).iterator().next(); + Iterator it = ServiceLoader.load(WordLibrary.class).iterator(); + return it.hasNext() ? it.next() : null; } @Override protected Scrambler getScrambler() { - return ServiceLoader.load(Scrambler.class).iterator().next(); + Iterator it = ServiceLoader.load(Scrambler.class).iterator(); + return it.hasNext() ? it.next() : null; } } diff -r 266127621c8f -r 763bf709a318 samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java --- a/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java Sat Jun 14 10:08:35 2008 +0200 +++ b/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java Sat Jun 14 10:08:42 2008 +0200 @@ -28,6 +28,7 @@ protected abstract Scrambler getScrambler(); public void display() { + initWord(); setVisible(true); } // FINISH: anagram.ui.Anagrams @@ -35,10 +36,12 @@ String original; String scrambled; - @Override - public void addNotify() { - super.addNotify(); - initWord(); + public final String getOriginalWord() { + return original; + } + + public final String getScrambledWord() { + return scrambled; } /** This method is called from within the constructor to @@ -190,13 +193,14 @@ guessedWord.requestFocus(); }//GEN-LAST:event_nextTrialActionPerformed - private void initWord() { + protected final void initWord() { String[] words = getWordLibrary().getWords(); int index = wordIdx % words.length; original = words[index]; - scrambled = getScrambler().scramble(original); + Scrambler scrambler = getScrambler(); + scrambled = scrambler != null ? scrambler.scramble(original) : original; scrambledWord.setText(scrambled); }