/*******************************************************************************
* Copyright (c) 2017 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.rdb.core.editors.main.composite.direct;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import com.hangum.tadpole.engine.sql.util.resultset.ResultSetUtilDTO;
import com.hangum.tadpole.engine.utils.EditorDefine;
import com.hangum.tadpole.engine.utils.EditorDefine.QUERY_MODE;
import com.swtdesigner.SWTResourceManager;
/**
* Ledger SQLResult의 LabelProvider
*
* @author hangum
*
*/
public class LedgerSQLResultLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(LedgerSQLResultLabelProvider.class);
public static final String STR_NEW_LABEL_COLUMN = "(변경후)"; //Messages.LEDGER_AFTER_LABEL
private EditorDefine.QUERY_MODE queryMode = QUERY_MODE.QUERY;
private ResultSetUtilDTO rsDAO;
private Map<Integer, Integer> _showColumnIndex;
public LedgerSQLResultLabelProvider() {
}
public LedgerSQLResultLabelProvider(EditorDefine.QUERY_MODE queryMode, final ResultSetUtilDTO rsDAO, Map<Integer, Integer> _showColumnIndex) {
this.queryMode = queryMode;
this.rsDAO = rsDAO;
this._showColumnIndex = _showColumnIndex;
}
@Override
public Color getForeground(Object element, int columnIndex) {
return null;
}
@Override
public Color getBackground(Object element, int columnIndex) {
int realColumnIndex = _showColumnIndex.get(columnIndex);
String strColumnName = rsDAO.getColumnLabelName().get(realColumnIndex);
if(StringUtils.startsWithIgnoreCase(strColumnName, STR_NEW_LABEL_COLUMN)) {
return SWTResourceManager.getColor(SWT.COLOR_GRAY);
}
return null;
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
@SuppressWarnings("unchecked")
public String getColumnText(Object element, int columnIndex) {
HashMap<Integer, Object> rsResult = (HashMap<Integer, Object>)element;
int realColumnIndex = _showColumnIndex.get(columnIndex);
Object obj = rsResult.get(realColumnIndex);
if(obj == null) {
return "";
} else {
return obj.toString();
}
}
}