// Some "shared" GUI components
container.registerComponentInstance(Display.getDefault());
container.registerComponentImplementation("mainShell", Shell.class);
container.registerComponentImplementation("mainMenu", Menu.class, new Parameter[] {
new ComponentParameter("mainShell"), new ConstantParameter(SWT.BAR) });
container.registerComponentImplementation("commandsMenu", CommandsMenu.class);
container.registerComponentImplementation("feederArea", Composite.class, new Parameter[] {
new ComponentParameter("mainShell"), new ConstantParameter(SWT.NONE) });
container.registerComponentImplementation("controlsArea", Composite.class, new Parameter[] {
new ComponentParameter("mainShell"), new ConstantParameter(SWT.NONE) });
container.registerComponentImplementation("startStopButton", Button.class, new Parameter[] {
new ComponentParameter("controlsArea"), new ConstantParameter(SWT.NONE) });
container.registerComponentImplementation("feederSelectionCombo", Combo.class,
new Parameter[] { new ComponentParameter("controlsArea"), new ConstantParameter(SWT.READ_ONLY) });
// GUI Feeders
container.registerComponentImplementation(FeederGUIRegistry.class);
Parameter[] feederGUIParameters = new Parameter[] { new ComponentParameter("feederArea") };
container.registerComponentImplementation(RangeFeederGUI.class, RangeFeederGUI.class, feederGUIParameters);
container.registerComponentImplementation(RandomFeederGUI.class, RandomFeederGUI.class, feederGUIParameters);
container.registerComponentImplementation(FileFeederGUI.class, FileFeederGUI.class, feederGUIParameters);
container.registerComponentImplementation(OpenerLauncher.class);
container.registerComponentImplementation(MainWindow.class, MainWindow.class, new Parameter[] {
new ComponentParameter("mainShell"), anyComponentParameter, new ComponentParameter("feederArea"),
new ComponentParameter("controlsArea"), new ComponentParameter("feederSelectionCombo"),
new ComponentParameter("startStopButton"), anyComponentParameter, anyComponentParameter,
anyComponentParameter, anyComponentParameter, anyComponentParameter, anyComponentParameter,
anyComponentParameter, anyComponentParameter });
container.registerComponentImplementation(ResultTable.class, ResultTable.class, new Parameter[] {
new ComponentParameter("mainShell"), anyComponentParameter, anyComponentParameter,
anyComponentParameter, anyComponentParameter, anyComponentParameter, anyComponentParameter });
container.registerComponentImplementation(StatusBar.class, StatusBar.class, new Parameter[] {
new ComponentParameter("mainShell"), anyComponentParameter, anyComponentParameter, anyComponentParameter, anyComponentParameter });
container.registerComponentImplementation(MainMenu.class, MainMenu.class, new Parameter[] {
new ComponentParameter("mainShell"), new ComponentParameter("mainMenu"),
new ComponentParameter("commandsMenu"), anyComponentParameter, new ConstantParameter(container) });
container.registerComponentImplementation(MainMenu.ColumnsMenu.class, MainMenu.ColumnsMenu.class,
new Parameter[] { new ComponentParameter("mainShell"), anyComponentParameter, anyComponentParameter, anyComponentParameter });
if (Platform.MAC_OS)
container.registerComponentImplementation(MacApplicationMenu.class);