/*******************************************************************************
* Copyright (c) 2013 RelationWare, Benno Luthiger
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* RelationWare, Benno Luthiger
******************************************************************************/
package org.ripla.rap.demo.widgets.scr;
import org.ripla.interfaces.IControllerSet;
import org.ripla.interfaces.IMenuItem;
import org.ripla.interfaces.IMessages;
import org.ripla.menu.RiplaMenuComposite;
import org.ripla.rap.demo.widgets.Activator;
import org.ripla.rap.demo.widgets.Constants;
import org.ripla.rap.demo.widgets.controllers.ButtonWidgetsController;
import org.ripla.rap.demo.widgets.controllers.FormController;
import org.ripla.rap.demo.widgets.controllers.InputWidgetsController;
import org.ripla.rap.demo.widgets.controllers.SelectionWidgetsController;
import org.ripla.rap.demo.widgets.controllers.TableWidgetsController;
import org.ripla.rap.demo.widgets.controllers.TreeWidgetsController;
import org.ripla.rap.interfaces.IMenuSet;
import org.ripla.rap.services.IUseCase;
import org.ripla.rap.util.UseCaseHelper;
/**
* This bundle's provider of the <code>IUseCase</code> service.
*
* @author Luthiger
*/
public class UseCaseComponent implements IUseCase {
@Override
public Package getControllerClasses() {
return InputWidgetsController.class.getPackage();
}
@Override
public IMenuSet[] getContextMenus() {
return new IMenuSet[] { ContextMenuHelper.createContextMenuSet() };
}
@Override
public IMenuItem getMenu() {
return createMenu();
}
@Override
public IControllerSet getControllerSet() {
return UseCaseHelper.EMPTY_CONTROLLER_SET;
}
// ---
/**
* @return IMenuItem
*/
private IMenuItem createMenu() {
final IMessages lMessages = Activator.getMessages();
final RiplaMenuComposite outMenu = new RiplaMenuComposite(
lMessages.getMessage("component.menu.title"), 10); //$NON-NLS-1$
outMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(InputWidgetsController.class));
outMenu.setPermission(Constants.PERMISSION_INPUT_WIDGETS);
RiplaMenuComposite lSubMenu = new RiplaMenuComposite(
lMessages.getMessage("widgets.menu.input"), 10); //$NON-NLS-1$
lSubMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(InputWidgetsController.class));
outMenu.add(lSubMenu);
lSubMenu = new RiplaMenuComposite(
lMessages.getMessage("widgets.menu.button"), 20); //$NON-NLS-1$
lSubMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(ButtonWidgetsController.class));
outMenu.add(lSubMenu);
lSubMenu = new RiplaMenuComposite(
lMessages.getMessage("widgets.menu.selection"), 30); //$NON-NLS-1$
lSubMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(SelectionWidgetsController.class));
outMenu.add(lSubMenu);
lSubMenu = new RiplaMenuComposite(
lMessages.getMessage("widgets.menu.form"), 40); //$NON-NLS-1$
lSubMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(FormController.class));
outMenu.add(lSubMenu);
lSubMenu = new RiplaMenuComposite(
lMessages.getMessage("widgets.menu.table"), 50); //$NON-NLS-1$
lSubMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(TableWidgetsController.class));
outMenu.add(lSubMenu);
lSubMenu = new RiplaMenuComposite(
lMessages.getMessage("widgets.menu.tree"), 60); //$NON-NLS-1$
lSubMenu.setControllerName(UseCaseHelper
.createFullyQualifiedControllerName(TreeWidgetsController.class));
outMenu.add(lSubMenu);
return outMenu;
}
}