samples/extensionpoint/src-api/org/apidesign/extensionpoint/Main.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:58:08 +0200
changeset 153 b5cbb797ec0a
parent 132 3bc4c54f4bcc
child 154 0fd5e9c500b9
permissions -rw-r--r--
up to line 2000
     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 = Lookup.getDefault().lookupAll(TipOfTheDay.class);
    16             List<TipOfTheDay> arr = new ArrayList<TipOfTheDay>(all);
    17             Collections.shuffle(arr);
    18 
    19             String msg;
    20             String title;
    21             int type;
    22             if (arr.isEmpty()) {
    23                 msg = "I do not know what to say!";
    24                 title = "No provider registered";
    25                 type = JOptionPane.WARNING_MESSAGE;
    26             } else {
    27                 msg = arr.get(0).sayHello();
    28                 title = "Selected from " + arr.size() + " providers";
    29                 type = JOptionPane.INFORMATION_MESSAGE;
    30             }
    31             // END: extension.point.Query
    32 
    33             String again = "Once Again";
    34             String exit = "Exit";
    35             String[] options = new String[] { again, exit };
    36             int ret = JOptionPane.showOptionDialog(null, msg, title, 0, type, null, options, exit);
    37 
    38             if (ret != 0) {
    39                 break;
    40             }
    41         }
    42         System.exit(0);
    43     }
    44 }