package org.eclipse.osbp.authentication.account.actions;

import com.vaadin.ui.AbstractLayout;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.Notification;
import com.vaadin.ui.Notification.Type;
import com.vaadin.ui.Panel;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.UUID;
import org.eclipse.e4.core.contexts.ContextInjectionFactory;
import org.eclipse.e4.core.di.extensions.EventUtils;
import org.eclipse.e4.core.services.translation.TranslationService;
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.commands.MBindingContext;
import org.eclipse.e4.ui.model.application.commands.MBindingTable;
import org.eclipse.e4.ui.model.application.commands.MCommand;
import org.eclipse.e4.ui.model.application.commands.MHandler;
import org.eclipse.e4.ui.model.application.commands.MKeyBinding;
import org.eclipse.e4.ui.model.application.commands.impl.CommandsFactoryImpl;
import org.eclipse.e4.ui.model.application.ui.MContext;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspectiveStack;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow;
import org.eclipse.e4.ui.model.application.ui.menu.ItemType;
import org.eclipse.e4.ui.model.application.ui.menu.MHandledToolItem;
import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
import org.eclipse.e4.ui.model.application.ui.menu.impl.MenuFactoryImpl;
import org.eclipse.osbp.core.api.persistence.IPersistenceService;
import org.eclipse.osbp.eventbroker.EventBrokerMsg;
import org.eclipse.osbp.preferences.ProductConfiguration;
import org.eclipse.osbp.runtime.common.annotations.IsValid;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag;
import org.eclipse.osbp.ui.api.contextfunction.ICommandsProvider;
import org.eclipse.osbp.ui.api.e4.IE4Dialog;
import org.eclipse.osbp.ui.api.e4.IE4Focusable;
import org.eclipse.osbp.ui.api.e4.IE4Table;
import org.eclipse.osbp.ui.api.themes.EnumCssClass;
import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
import org.eclipse.osbp.vaaclipse.api.VaadinExecutorService;
import org.eclipse.osbp.xtext.action.ChartActionEnum;
import org.eclipse.osbp.xtext.action.DatainterchangeActionEnum;
import org.eclipse.osbp.xtext.action.DialogActionEnum;
import org.eclipse.osbp.xtext.action.ReportActionEnum;
import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum;
import org.eclipse.osbp.xtext.action.TaskActionEnum;
import org.eclipse.osbp.xtext.action.WorkflowActionEnum;
import org.eclipse.osbp.xtext.action.common.E4Helper;
import org.eclipse.osbp.xtext.action.common.TaskHelper;
import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
import org.osgi.framework.FrameworkUtil;
import org.osgi.service.event.Event;

@org.osgi.service.component.annotations.Component(service = ICommandsProvider.class)
@SuppressWarnings("all")
public class CommandsProvider implements ICommandsProvider {
  public CommandsProvider() {
    
  }
  
  @Override
  public void init(final MApplication application) {
    if(!application.getBindingTables().isEmpty()) {
    	MBindingTable bindingTable = application.getBindingTables().get(0);
    	MKeyBinding keyBinding;
    	MCommand command;
    	MHandler commandHandler;
    	command = CommandsFactoryImpl.eINSTANCE.createCommand();
    	command.setElementId("org.eclipse.osbp.authentication.account.actions.newItem");
    	command.setCommandName("newItem");
    	application.getCommands().add(command);
    	commandHandler = CommandsFactoryImpl.eINSTANCE.createHandler();
    	commandHandler.setElementId("org.eclipse.osbp.authentication.account.actions.newItemHandler");
    	commandHandler.setCommand(command);
    	commandHandler.setContributionURI("bundleclass://"+FrameworkUtil.getBundle(org.eclipse.osbp.authentication.account.actions.NewItemAction.class).getSymbolicName()+"/org.eclipse.osbp.authentication.account.actions.NewItemAction");
    	application.getHandlers().add(commandHandler);
    	keyBinding = CommandsFactoryImpl.eINSTANCE.createKeyBinding();
    	keyBinding.setElementId("org.eclipse.osbp.authentication.account.actions.newItemKeybinding");
    	keyBinding.setKeySequence("CTRL+ALT+N");
    	keyBinding.setCommand(command);
    	bindingTable.getBindings().add(keyBinding);
    	command = CommandsFactoryImpl.eINSTANCE.createCommand();
    	command.setElementId("org.eclipse.osbp.authentication.account.actions.saveItem");
    	command.setCommandName("saveItem");
    	application.getCommands().add(command);
    	commandHandler = CommandsFactoryImpl.eINSTANCE.createHandler();
    	commandHandler.setElementId("org.eclipse.osbp.authentication.account.actions.saveItemHandler");
    	commandHandler.setCommand(command);
    	commandHandler.setContributionURI("bundleclass://"+FrameworkUtil.getBundle(org.eclipse.osbp.authentication.account.actions.SaveItemAction.class).getSymbolicName()+"/org.eclipse.osbp.authentication.account.actions.SaveItemAction");
    	application.getHandlers().add(commandHandler);
    	keyBinding = CommandsFactoryImpl.eINSTANCE.createKeyBinding();
    	keyBinding.setElementId("org.eclipse.osbp.authentication.account.actions.saveItemKeybinding");
    	keyBinding.setKeySequence("CTRL+ALT+S");
    	keyBinding.setCommand(command);
    	bindingTable.getBindings().add(keyBinding);
    	command = CommandsFactoryImpl.eINSTANCE.createCommand();
    	command.setElementId("org.eclipse.osbp.authentication.account.actions.deleteItem");
    	command.setCommandName("deleteItem");
    	application.getCommands().add(command);
    	commandHandler = CommandsFactoryImpl.eINSTANCE.createHandler();
    	commandHandler.setElementId("org.eclipse.osbp.authentication.account.actions.deleteItemHandler");
    	commandHandler.setCommand(command);
    	commandHandler.setContributionURI("bundleclass://"+FrameworkUtil.getBundle(org.eclipse.osbp.authentication.account.actions.DeleteItemAction.class).getSymbolicName()+"/org.eclipse.osbp.authentication.account.actions.DeleteItemAction");
    	application.getHandlers().add(commandHandler);
    	keyBinding = CommandsFactoryImpl.eINSTANCE.createKeyBinding();
    	keyBinding.setElementId("org.eclipse.osbp.authentication.account.actions.deleteItemKeybinding");
    	keyBinding.setKeySequence("CTRL+ALT+D");
    	keyBinding.setCommand(command);
    	bindingTable.getBindings().add(keyBinding);
    	command = CommandsFactoryImpl.eINSTANCE.createCommand();
    	command.setElementId("org.eclipse.osbp.authentication.account.actions.cancelItem");
    	command.setCommandName("cancelItem");
    	application.getCommands().add(command);
    	commandHandler = CommandsFactoryImpl.eINSTANCE.createHandler();
    	commandHandler.setElementId("org.eclipse.osbp.authentication.account.actions.cancelItemHandler");
    	commandHandler.setCommand(command);
    	commandHandler.setContributionURI("bundleclass://"+FrameworkUtil.getBundle(org.eclipse.osbp.authentication.account.actions.CancelItemAction.class).getSymbolicName()+"/org.eclipse.osbp.authentication.account.actions.CancelItemAction");
    	application.getHandlers().add(commandHandler);
    	keyBinding = CommandsFactoryImpl.eINSTANCE.createKeyBinding();
    	keyBinding.setElementId("org.eclipse.osbp.authentication.account.actions.cancelItemKeybinding");
    	keyBinding.setKeySequence("CTRL+ALT+Z");
    	keyBinding.setCommand(command);
    	bindingTable.getBindings().add(keyBinding);
    }
    
  }
}
