samples/extensionpoint/src-api/org/apidesign/extensionpoint/Main.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:56:12 +0200
changeset 132 3bc4c54f4bcc
parent 86 adf4440db888
child 153 b5cbb797ec0a
permissions -rw-r--r--
Truncating all examples to 80 characters per line
     1 package org.apidesign.extensionpoint;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.Collections;
     6 import java.util.List;
     7 import javax.swing.JOptionPane;
     8 import org.apidesign.extensionpoint.api.TipOfTheDay;
     9 import org.openide.util.Lookup;
    10 
    11 public class Main {
    12     public static void main(String[] args) {
    13         for (;;) {
    14             // BEGIN: extension.point.Query
    15             Collection<? extends TipOfTheDay> all = 
    16                 Lookup.getDefault().lookupAll(TipOfTheDay.class);
    17             List<TipOfTheDay> arr = new ArrayList<TipOfTheDay>(all);
    18             Collections.shuffle(arr);
    19 
    20             String msg;
    21             String title;
    22             int type;
    23             if (arr.isEmpty()) {
    24                 msg = "I do not know what to say!";
    25                 title = "No provider registered";
    26                 type = JOptionPane.WARNING_MESSAGE;
    27             } else {
    28                 msg = arr.get(0).sayHello();
    29                 title = "Selected from " + arr.size() + " providers";
    30                 type = JOptionPane.INFORMATION_MESSAGE;
    31             }
    32             // END: extension.point.Query
    33 
    34             String again = "Once Again";
    35             String exit = "Exit";
    36             String[] options = new String[] { again, exit };
    37             int ret = JOptionPane.showOptionDialog(
    38                 null, msg, title, 0, type, null, options, exit
    39             );
    40 
    41             if (ret != 0) {
    42                 break;
    43             }
    44         }
    45         System.exit(0);
    46     }
    47 }