// ============================================================================
//
// 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.ui.editors;
import java.util.Arrays;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.talend.mdm.repository.core.service.RepositoryWebServiceAdapter;
import org.talend.mdm.repository.i18n.Messages;
import org.talend.mdm.repository.ui.dialogs.xpath.XpathSelectDialog2;
import org.talend.mdm.repository.ui.widgets.TisTableViewerR;
import org.talend.mdm.repository.ui.widgets.xmleditor.infoholder.RepositoryExternalInfoHolder;
import com.amalto.workbench.dialogs.XpathSelectDialog;
import com.amalto.workbench.editors.RoutingRuleMainPage;
import com.amalto.workbench.utils.XtentisException;
import com.amalto.workbench.webservices.WSServiceGetDocument;
import com.amalto.workbench.widgets.TisTableViewer;
import com.amalto.workbench.widgets.xmleditor.infoholder.ExternalInfoHolder;
/**
* DOC hbhong class global comment. Detailled comment
*/
public class RoutingRuleMainPage2 extends RoutingRuleMainPage {
private static Log log = LogFactory.getLog(RoutingRuleMainPage2.class);
/**
* DOC hbhong RoutingRuleMainPage2 constructor comment.
*
* @param editor
*/
public RoutingRuleMainPage2(FormEditor editor) {
super(editor);
}
@Override
protected void initServiceNameCombo() throws XtentisException {
for (String name : RepositoryWebServiceAdapter.getServiceNames()) {
serviceNameCombo.add(name);
}
}
@Override
protected void initExternalInfoHolder() {
ExternalInfoHolder<?> allProcessNamesHolder = RepositoryExternalInfoHolder.getAllProcessesNamesHolder(null);
ExternalInfoHolder<?> allJobInfosHolder = RepositoryExternalInfoHolder.getAllJobInfosHolder(null);
ExternalInfoHolder<?> allVarCandidatesHolder = ExternalInfoHolder.getTriggerAllCallJobVarsCandidatesHolder();
ExternalInfoHolder<?> mdmServerInfoHolder = RepositoryExternalInfoHolder.getAllMDMServerInfoHolder2(null);
ExternalInfoHolder<?> workflowInfoHolder = RepositoryExternalInfoHolder.getAllWorkflowInfoHolder(null);
ExternalInfoHolder<?> allDataModelHolderProxy = RepositoryExternalInfoHolder.getAllDataModelInfoHolderProxy(null);
initExternalInfoHolderForEachType("callprocess", new ExternalInfoHolder<?>[] { allProcessNamesHolder });//$NON-NLS-1$
initExternalInfoHolderForEachType("callJob", new ExternalInfoHolder<?>[] { allJobInfosHolder, mdmServerInfoHolder,//$NON-NLS-1$
allVarCandidatesHolder });
initExternalInfoHolderForEachType("workflow", new ExternalInfoHolder<?>[] { workflowInfoHolder, //$NON-NLS-1$
allDataModelHolderProxy });
initExternalInfoHolderForEachType("workflowcontext", new ExternalInfoHolder<?>[] { workflowInfoHolder, //$NON-NLS-1$
allDataModelHolderProxy });
//
}
@Override
protected TisTableViewer getNewTisTableViewer(FormToolkit toolkit, Composite routingExpressionsGroup) {
return new TisTableViewerR(Arrays.asList(conditionsColumns), toolkit, routingExpressionsGroup);
}
@Override
protected void createCharacteristicsContent(FormToolkit toolkit, Composite charComposite) {
super.createCharacteristicsContent(toolkit, charComposite);
}
@Override
protected XpathSelectDialog getNewXpathDlg() {
return new XpathSelectDialog2(getSite().getShell(), Messages.RoutingRuleMainPage2_selectEntity, getSite(), false,
dataModelName);
}
@Override
protected WSServiceGetDocument getServiceDocument(String jndiName) {
return RepositoryWebServiceAdapter.getServiceDocument(jndiName);
}
@Override
public void markDirtyWithoutCommit() {
IEditorInput editorInput = getEditorInput();
boolean isReadOnly = false;
if (editorInput instanceof IRepositoryViewEditorInput) {
isReadOnly = ((IRepositoryViewEditorInput) editorInput).isReadOnly();
}
if (!isReadOnly) {
super.markDirtyWithoutCommit();
}
}
}