/******************************************************************************* * Copyright (c) 2013 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.viewers.object.sub.rdb.table; import org.apache.log4j.Logger; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.graphics.Image; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.engine.query.dao.mysql.TableColumnDAO; import com.hangum.tadpole.engine.query.dao.mysql.TableDAO; import com.hangum.tadpole.rdb.core.extensionpoint.definition.ITableDecorationExtension; import com.hangum.tadpole.rdb.core.viewers.object.ObjectExploreDefine; import com.swtdesigner.ResourceManager; /** * TABLE, VIEW의 컬럼 정보 * * @author hangum * */ public class TableColumnLabelprovider extends LabelProvider implements ITableLabelProvider { private static final Logger logger = Logger.getLogger(TableColumnLabelprovider.class); TableViewer tableListViewer; ITableDecorationExtension tableDecorationExtension; public TableColumnLabelprovider() {} public TableColumnLabelprovider(TableViewer tableListViewer, ITableDecorationExtension tableDecorationExtension) { this.tableListViewer = tableListViewer; this.tableDecorationExtension = tableDecorationExtension; } @Override public Image getColumnImage(Object element, int columnIndex) { TableColumnDAO tc = (TableColumnDAO) element; if(columnIndex == 0) { Image imageBase = null; if(PublicTadpoleDefine.isPK(tc.getKey())) imageBase = ObjectExploreDefine.IMAGE_PRIMARY_KEY; else if(PublicTadpoleDefine.isFK(tc.getKey())) imageBase = ObjectExploreDefine.IMAGE_FOREIGN_KEY; else if(PublicTadpoleDefine.isMUL(tc.getKey())) imageBase = ObjectExploreDefine.IMAGE_MULTI_KEY; else imageBase = ObjectExploreDefine.IMAGE_COLUMN; // image decoration extension point try { if(tableListViewer != null && tableDecorationExtension != null) { IStructuredSelection iss = (IStructuredSelection)tableListViewer.getSelection(); TableDAO table = (TableDAO)iss.getFirstElement(); Image imageExtension = tableDecorationExtension.getColumnImage(table.getName(), tc.getField()); if(imageExtension != null) { return ResourceManager.decorateImage(imageBase, imageExtension, ResourceManager.BOTTOM_RIGHT); } } } catch(Exception e){ logger.error("extension point exception", e); } return imageBase; } return null; } @Override public String getColumnText(Object element, int columnIndex) { TableColumnDAO tc = (TableColumnDAO) element; switch(columnIndex) { case 0: return tc.getField(); case 1: return tc.getType(); case 2: return tc.getKey(); case 3: return tc.getComment(); case 4: return tc.getNull(); case 5: return tc.getDefault(); case 6: return tc.getExtra(); } return null; } }