// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.mdm.repository.core.impl.jobmodel;
import java.util.List;
import org.eclipse.ui.navigator.CommonViewer;
import org.talend.core.model.properties.FolderItem;
import org.talend.core.model.properties.FolderType;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.mdm.repository.core.AbstractRepositoryAction;
import org.talend.mdm.repository.core.IRepositoryViewGlobalActionHandler;
import org.talend.mdm.repository.core.impl.RepositoryNodeActionProviderAdapter;
import org.talend.mdm.repository.model.mdmproperties.ContainerItem;
import org.talend.mdm.repository.ui.actions.bridge.DeleteAction;
import org.talend.mdm.repository.ui.actions.bridge.RenameFolderAction;
import org.talend.mdm.repository.ui.actions.job.CreateProcessAction;
import org.talend.mdm.repository.ui.actions.job.EditJobPropertiesAction;
import org.talend.mdm.repository.ui.actions.job.EditProcessAction;
import org.talend.mdm.repository.ui.actions.job.GenerateJobTransformerAction;
import org.talend.mdm.repository.ui.actions.job.GenerateJobTriggerAction;
import org.talend.mdm.repository.ui.actions.job.OpenExistVersionProcessAction;
import org.talend.mdm.repository.ui.actions.job.ReadProcessAction;
import org.talend.mdm.repository.ui.actions.job.RunProcessAction;
import org.talend.mdm.repository.ui.editors.IRepositoryViewEditorInput;
/**
* DOC hbhong class global comment. Detailled comment <br/>
*
*/
public class TISProcessActionProvider extends RepositoryNodeActionProviderAdapter {
AbstractRepositoryAction createProcessAction;
AbstractRepositoryAction renameFolderAction;
AbstractRepositoryAction editProcessAction;
AbstractRepositoryAction readProcessAction;
AbstractRepositoryAction runProcessAction;
AbstractRepositoryAction openExistVersionProcessAction;
AbstractRepositoryAction generateTransformerAction;
AbstractRepositoryAction generateTriggerAction;
AbstractRepositoryAction deleteAction;
AbstractRepositoryAction editPropAction;
@Override
public void initCommonViewer(CommonViewer commonViewer) {
super.initCommonViewer(commonViewer);
renameFolderAction = new RenameFolderAction();
createProcessAction = new CreateProcessAction();
editProcessAction = new EditProcessAction();
readProcessAction = new ReadProcessAction();
runProcessAction = new RunProcessAction();
openExistVersionProcessAction = new OpenExistVersionProcessAction();
deleteAction = new DeleteAction();
generateTransformerAction = new GenerateJobTransformerAction();
generateTriggerAction = new GenerateJobTriggerAction();
refreshAction = globalActionHandler.getGlobalAction(IRepositoryViewGlobalActionHandler.REFRESH);
editPropAction = new EditJobPropertiesAction();
//
renameFolderAction.initCommonViewer(commonViewer);
createProcessAction.initCommonViewer(commonViewer);
editProcessAction.initCommonViewer(commonViewer);
readProcessAction.initCommonViewer(commonViewer);
runProcessAction.initCommonViewer(commonViewer);
openExistVersionProcessAction.initCommonViewer(commonViewer);
deleteAction.initCommonViewer(commonViewer);
generateTransformerAction.initCommonViewer(commonViewer);
generateTriggerAction.initCommonViewer(commonViewer);
editPropAction.initCommonViewer(commonViewer);
undeployAction.initCommonViewer(commonViewer);
}
@Override
public List<AbstractRepositoryAction> getActions(IRepositoryViewObject viewObj) {
List<AbstractRepositoryAction> actions = super.getActions(viewObj);
Item item = viewObj.getProperty().getItem();
if (item instanceof ContainerItem) {
FolderType type = ((FolderItem) item).getType();
switch (type.getValue()) {
case FolderType.SYSTEM_FOLDER:
addAction(actions, createProcessAction, viewObj);
break;
case FolderType.STABLE_SYSTEM_FOLDER:
break;
case FolderType.FOLDER:
addAction(actions, createProcessAction, viewObj);
addAction(actions, renameFolderAction, viewObj);
addAction(actions, deleteAction, viewObj);
break;
}
} else if (item instanceof ProcessItem) {
addAction(actions, editProcessAction, viewObj);
addAction(actions, readProcessAction, viewObj);
addAction(actions, runProcessAction, viewObj);
addAction(actions, openExistVersionProcessAction, viewObj);
addAction(actions, editPropAction, viewObj);
addAction(actions, deleteAction, viewObj);
addAction(actions, generateTransformerAction, viewObj);
addAction(actions, generateTriggerAction, viewObj);
// deploy
actions.add(deployToAction);
addAction(actions, deployToLastServerAction, viewObj);
addAction(actions, deployAnotherToAction, viewObj);
addAction(actions, undeployAction, viewObj);
}
actions.add(deployAllAction);
return actions;
}
@Override
public AbstractRepositoryAction getOpenAction(IRepositoryViewObject viewObj) {
return editProcessAction;
}
@Override
public IRepositoryViewEditorInput getOpenEditorInput(IRepositoryViewObject viewObj) {
return null;
}
}