1 package ch.odi.justblog; 2 3 import ch.odi.justblog.gui.Ui; 4 import ch.odi.justblog.gui.UiFactory; 5 6 /*** 7 * The application's main class. 8 * 9 * @author oglueck 10 */ 11 public class JustBlog { 12 private static JustBlog app; 13 private Ui gui; 14 15 public JustBlog(String uiName) { 16 int id = UiFactory.SWING; 17 if (uiName.equals("swing")) id = UiFactory.SWING; 18 if (uiName.equals("test")) id = UiFactory.TEST; 19 if (uiName.equals("cli")) id = UiFactory.CLI; 20 gui = UiFactory.getUi(id); 21 if (gui == null) throw new IllegalArgumentException("No such GUI: "+ uiName); 22 } 23 24 /*** 25 * Gets the application's user interface. 26 * 27 * @return 28 */ 29 public Ui getUi() { 30 return gui; 31 } 32 33 /*** 34 * Provides everybody with the current applicatio instance. 35 * 36 * @return 37 */ 38 public static JustBlog app() { 39 return app; 40 } 41 42 /*** 43 * Starts the application 44 * TODO accept parameters to choose a GUI: swing, test, cli 45 * @param args 46 */ 47 public static void main(String[] args) { 48 String name; 49 if (args.length < 1) { 50 name = "swing"; 51 } else { 52 name = args[0].toLowerCase(); 53 } 54 app = new JustBlog(name); 55 } 56 57 }