// ============================================================================
//
// 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.dataprofiler.core.ui.dialog.provider;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.talend.dataquality.record.linkage.utils.BlockingKeyAlgorithmEnum;
import org.talend.dataquality.record.linkage.utils.BlockingKeyPostAlgorithmEnum;
import org.talend.dataquality.record.linkage.utils.BlockingKeyPreAlgorithmEnum;
public class BlockingKeysTableLabelProvider extends LabelProvider implements ITableLabelProvider {
public static final String BLOCKING_KEY_NAME = "BLOCKING_KEY_NAME"; //$NON-NLS-1$
public static final String PRECOLUMN = "PRECOLUMN"; //$NON-NLS-1$
public static final String PRE_ALGO = "PRE_ALGO"; //$NON-NLS-1$
public static final String PRE_VALUE = "PRE_VALUE"; //$NON-NLS-1$
public static final String KEY_ALGO = "KEY_ALGO"; //$NON-NLS-1$
public static final String KEY_VALUE = "KEY_VALUE"; //$NON-NLS-1$
public static final String POST_ALGO = "POST_ALGO"; //$NON-NLS-1$
public static final String POST_VALUE = "POST_VALUE"; //$NON-NLS-1$
List<String> inputColumnNames;
public BlockingKeysTableLabelProvider(List<String> inputColumnNames) {
this.inputColumnNames = inputColumnNames;
}
public Image getColumnImage(Object element, int columnIndex) {
Image warn = null;
Map<String, String> rule = (HashMap<String, String>) element;
if (0 == columnIndex && !hasColumnMatch(rule)) {
warn = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK);
}
return warn;
}
private boolean hasColumnMatch(Map<String, String> rule) {
if (inputColumnNames != null) {
for (String str : inputColumnNames) {
if (str.equalsIgnoreCase(rule.get(BLOCKING_KEY_NAME)) || str.equalsIgnoreCase(rule.get(PRECOLUMN))) {
return true;
}
}
}
return false;
}
public String getColumnText(Object element, int columnIndex) {
Map<String, String> rule = (HashMap<String, String>) element;
String result = null;
switch (columnIndex) {
case 0:
result = rule.get(BLOCKING_KEY_NAME);
break;
case 1:
result = rule.get(PRECOLUMN);
break;
case 2:
result = BlockingKeyPreAlgorithmEnum.getTypeBySavedValue(rule.get(PRE_ALGO)).getValue();
break;
case 3:
result = rule.get(PRE_VALUE);
break;
case 4:
result = BlockingKeyAlgorithmEnum.getTypeBySavedValue(rule.get(KEY_ALGO)).getValue();
break;
case 5:
result = rule.get(KEY_VALUE);
break;
case 6:
result = BlockingKeyPostAlgorithmEnum.getTypeBySavedValue(rule.get(POST_ALGO)).getValue();
break;
case 7:
result = rule.get(POST_VALUE);
break;
}
return result;
}
}