--- /dev/null
+/*
+ * Created on 11/08/2003
+ *
+ */
+package com.quantum.actions;
+
+import java.util.Iterator;
+
+import com.quantum.QuantumPlugin;
+import com.quantum.model.Column;
+import com.quantum.model.EntityHolder;
+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.IViewPart;
+import org.eclipse.ui.actions.SelectionListenerAction;
+
+
+public class CustomCopyAction extends SelectionListenerAction {
+ private final IViewPart view;
+ private final int ind;
+ /**
+ * @param BookmarkView
+ */
+ public CustomCopyAction(IViewPart view, int ind) {
+ super(null);
+ this.view = view;
+ 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().getCondQualifiedName(), 0);
+ }
+ } else if (current instanceof EntityHolder) {
+ EntityHolder currentSelec = (EntityHolder) current;
+ converter.add(currentSelec.getEntity().getCondQualifiedName(), null, 1);
+ 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().getCondQualifiedName(), 0);
+ }
+ }
+ }
+ 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()});
+ }
+}