/* * Created on 11/08/2003 * */ package com.quantum.actions; import java.sql.SQLException; import java.util.Iterator; import com.quantum.Messages; import com.quantum.QuantumPlugin; import com.quantum.model.Column; import com.quantum.model.EntityHolder; import com.quantum.model.NotConnectedException; import com.quantum.util.NthLevelConverter; import com.quantum.util.QuantumUtil; import com.quantum.util.StringUtil; import com.quantum.view.bookmark.ColumnNode; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.dnd.Transfer; import org.eclipse.ui.actions.SelectionListenerAction; public class CustomCopyAction extends SelectionListenerAction { private final int ind; public CustomCopyAction( int ind ) { super(Messages.getString(CustomCopyAction.class.getName() + ".text")); this.ind = ind; } public void run() { String copyText = ""; Iterator iter = getSelectedNonResources().iterator(); NthLevelConverter converter = new NthLevelConverter(); // Fill up the converter. We iterate the selection items while (iter.hasNext()) { Object current = iter.next(); if (current instanceof ColumnNode) { ColumnNode column = (ColumnNode) current; if (column != null) { converter.add(column.getColumn().getName(), column.getColumn().getParentEntity().getQualifiedName(), 0); } } else if (current instanceof EntityHolder) { EntityHolder currentSelec = (EntityHolder) current; converter.add(currentSelec.getEntity().getQualifiedName(), null, 1); try { Column[] columns = currentSelec.getEntity().getColumns(); for (int i = 0, length = (columns == null) ? 0 : columns.length; i < length; i++) { converter.add(columns[i].getName(), currentSelec.getEntity().getQualifiedName(), 0); } } catch (NotConnectedException e) { } catch (SQLException e) { } } } IPreferenceStore store = QuantumPlugin.getDefault().getPreferenceStore(); converter.convert(Integer.toString(ind)); String template = QuantumUtil.trasposeEscape(store.getString("customCopyTemplate" + Integer.toString(ind))); copyText = StringUtil.substituteString(template, "${table_list}", converter.getTableList()); QuantumPlugin.getDefault().getSysClip().setContents( new Object[] { copyText }, new Transfer[] { TextTransfer.getInstance()}); } }