/******************************************************************************* * 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.dialog.dml; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import com.hangum.tadpole.rdb.core.viewers.object.sub.rdb.table.CommentCellEditor; /** * 데이터 임포트 할것인지. * * @author hangum * */ public class DMLColumnEditingSupport extends EditingSupport { private static final Logger logger = Logger.getLogger(DMLColumnEditingSupport.class); private final TableViewer viewer; private final int columnIndex; GenerateStatmentDMLDialog parent; public DMLColumnEditingSupport(TableViewer viewer, int colIndex, GenerateStatmentDMLDialog parent) { super(viewer); this.viewer = viewer; this.columnIndex = colIndex; this.parent = parent; } @Override protected CellEditor getCellEditor(Object element) { if (columnIndex == 0) { return new CheckboxCellEditor(null, SWT.CHECK | SWT.READ_ONLY); } else { return new CommentCellEditor(columnIndex, viewer); } } @Override protected boolean canEdit(Object element) { return true; } @Override protected Object getValue(Object element) { ExtendTableColumnDAO modDao = (ExtendTableColumnDAO) element; if (columnIndex == 0) { return modDao.isCheck(); } else { return modDao.getColumnAlias(); } } @Override protected void setValue(Object element, Object value) { ExtendTableColumnDAO selDao = (ExtendTableColumnDAO) element; if (columnIndex == 0) { // Selection check button. selDao.setCheck((Boolean) value); viewer.update(element, null); if (selDao.isCheck()) { if ("*".equals(selDao.getField())) { for (ExtendTableColumnDAO allDao : (List<ExtendTableColumnDAO>) viewer.getInput()) { if (!"*".equals(allDao.getField())) { allDao.setCheck(false); viewer.update(allDao, null); } } } else { ExtendTableColumnDAO firstDao = (ExtendTableColumnDAO) viewer.getElementAt(0); firstDao.setCheck(false); viewer.update(firstDao, null); } } } else { // Column alias. selDao.setColumnAlias(value.toString()); viewer.update(selDao, null); } parent.queryGenetation(); } }