X-Git-Url: http://secure.phpeclipse.com

diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/BookmarkView.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/BookmarkView.java
index efc055f..c4e2e13 100644
--- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/BookmarkView.java
+++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/bookmark/BookmarkView.java
@@ -13,6 +13,7 @@ import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.viewers.IOpenListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.OpenEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
@@ -25,6 +26,7 @@ import org.eclipse.ui.WorkbenchException;
 import org.eclipse.ui.actions.ActionContext;
 import org.eclipse.ui.part.ViewPart;
 
+import com.quantum.ImageStore;
 import com.quantum.Messages;
 import com.quantum.QuantumPlugin;
 import com.quantum.actions.CustomCopyAction;
@@ -81,10 +83,9 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
 
 	private static BookmarkNode getRoot(TreeNode node){
 		if (node == null) return null;
-		if (! (node instanceof TreeNode)) return null;
 		while (!( node instanceof BookmarkNode))
 		{
-			node = (TreeNode) node.getParent();
+			node = node.getParent();
 		}
 		if (node instanceof BookmarkNode) return (BookmarkNode) node;
 		else return null;
@@ -97,7 +98,7 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
 
 		treeViewer = new TreeViewer(
             parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		treeViewer.setContentProvider(new BookmarkContentProvider());
+		treeViewer.setContentProvider(new BookmarkContentProvider(this));
 		treeViewer.setLabelProvider(this.labelProvider);
         BookmarkListNode input = BookmarkListNode.getInstance();
 		treeViewer.setInput(input);
@@ -166,25 +167,6 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
         
         this.actionGroup = new BookmarkViewActionGroup(this, this.treeViewer);
         
-//		openDataEditorAction = new OpenDataEditorAction();
-//		openDataEditorAction.setText("Edit Data"); 
-//		openDataEditorAction.setImageDescriptor(
-//			QuantumPlugin.getImageDescriptor("greentable.gif")); //$NON-NLS-1$
-//		openDataEditorAction.init(this);
-
-		IPreferenceStore store = QuantumPlugin.getDefault().getPreferenceStore();
-		this.customCopyAction1 = new CustomCopyAction(this,1); // 1 is unused, just in case more custom copies are defined        
-		this.customCopyAction1.setText(store.getString("customCopyName1")); //$NON-NLS-1$
-		this.customCopyAction1.setImageDescriptor(
-			QuantumPlugin.getImageDescriptor("copy.gif")); //$NON-NLS-1$
-		this.customCopyAction2 = new CustomCopyAction(this,2); // 1 is unused, just in case more custom copies are defined        
-		this.customCopyAction2.setText(store.getString("customCopyName2")); //$NON-NLS-1$
-		this.customCopyAction2.setImageDescriptor(
-			QuantumPlugin.getImageDescriptor("copy.gif")); //$NON-NLS-1$
-		this.customCopyAction3 = new CustomCopyAction(this,3); // 1 is unused, just in case more custom copies are defined        
-		this.customCopyAction3.setText(store.getString("customCopyName3")); //$NON-NLS-1$
-		this.customCopyAction3.setImageDescriptor(
-			QuantumPlugin.getImageDescriptor("copy.gif")); //$NON-NLS-1$
 
 		extensionVector = new Vector();
 		try {
@@ -193,8 +175,35 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
 			e.printStackTrace();
 		}
 
-		}
+	}
 	
+	/**
+	 * 
+	 */
+	private void initCustomCopyActions() {
+		IPreferenceStore store = QuantumPlugin.getDefault().getPreferenceStore();
+        String text1 = store.getString("customCopyName1");
+        if (text1 != null && text1.trim().length() > 0) {
+			this.customCopyAction1 = new CustomCopyAction(1); // 1 is unused, just in case more custom copies are defined        
+			this.customCopyAction1.setText(text1); //$NON-NLS-1$
+			this.customCopyAction1.setImageDescriptor(
+					ImageStore.getImageDescriptor(ImageStore.COPY)); //$NON-NLS-1$
+        }
+        String text2 = store.getString("customCopyName2");
+        if (text2 != null && text1.trim().length() > 0) {
+			this.customCopyAction2 = new CustomCopyAction(2); // 1 is unused, just in case more custom copies are defined        
+			this.customCopyAction2.setText(text2); //$NON-NLS-1$
+			this.customCopyAction2.setImageDescriptor(
+					ImageStore.getImageDescriptor(ImageStore.COPY)); //$NON-NLS-1$
+        }
+        String text3 = store.getString("customCopyName3");
+        if (text3 != null && text1.trim().length() > 0) {
+			this.customCopyAction3 = new CustomCopyAction(3); // 1 is unused, just in case more custom copies are defined        
+			this.customCopyAction3.setText(text3); //$NON-NLS-1$
+			this.customCopyAction3.setImageDescriptor(
+					ImageStore.getImageDescriptor(ImageStore.COPY)); //$NON-NLS-1$
+        }
+	}
 	public void dispose(){
 		super.dispose();
         BookmarkListNode.getInstance().removePropertyChangeListener(this);
@@ -226,6 +235,7 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
     private void fillContextMenu(IMenuManager mgr) {
     // TODO: this method is pretty barfy... make it cleaner
     
+		initCustomCopyActions();
         IStructuredSelection selection = getSelection();
         ActionContext context = new ActionContext(selection);
         this.actionGroup.setContext(context);
@@ -236,12 +246,25 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
         if (sel instanceof EntityNode) {
             EntityNode entityNode = (EntityNode) sel;
             if (!entityNode.isSequence()) {
-                mgr.add(new Separator());
-                MenuManager subMenu = new MenuManager(Messages.getString("bookmarkview.customCopyAction")); 
-                subMenu.add(customCopyAction1);
-                subMenu.add(customCopyAction2);
-                subMenu.add(customCopyAction3);
-                mgr.add(subMenu);
+            	if (this.customCopyAction1 != null 
+            			|| this.customCopyAction2 != null 
+						|| this.customCopyAction3 != null) {
+	                mgr.add(new Separator());
+	                MenuManager subMenu = new MenuManager(Messages.getString("bookmarkview.customCopyAction")); 
+	                if (this.customCopyAction1 != null) {
+	                    customCopyAction1.selectionChanged(selection);
+	                	subMenu.add(customCopyAction1);
+	                }
+	                if (this.customCopyAction2 != null) {
+	                	customCopyAction2.selectionChanged(selection);
+	                	subMenu.add(customCopyAction2);
+	                }
+	                if (this.customCopyAction3 != null) {
+	                	customCopyAction3.selectionChanged(selection);
+	                	subMenu.add(customCopyAction3);
+	                }
+	                mgr.add(subMenu);
+            	}
 
 				MenuManager subMenuExtension = new MenuManager("Extensions"); 
 				for (int i = 0; i < extensionVector.size(); i++) {
@@ -250,13 +273,23 @@ public class BookmarkView extends ViewPart implements PropertyChangeListener {
 				}
 				if (extensionVector.size() > 0) mgr.add(subMenuExtension);
             }
-        } else if (sel instanceof ColumnNode) {
+        } else if ((sel instanceof ColumnNode) && (this.customCopyAction1 != null 
+        			|| this.customCopyAction2 != null 
+					|| this.customCopyAction3 != null)) {
             MenuManager subMenu = new MenuManager(Messages.getString("bookmarkview.customCopyAction")); 
-            subMenu.add(customCopyAction1);
-            subMenu.add(customCopyAction2);
-            subMenu.add(customCopyAction3);
+            if (this.customCopyAction1 != null) {
+            	customCopyAction1.selectionChanged(selection);
+            	subMenu.add(customCopyAction1);
+            }
+            if (this.customCopyAction2 != null) {
+            	customCopyAction2.selectionChanged(selection);
+            	subMenu.add(customCopyAction2);
+            }
+            if (this.customCopyAction3 != null) {
+            	customCopyAction3.selectionChanged(selection);
+            	subMenu.add(customCopyAction3);
+            }
             mgr.add(subMenu);
-
         }
     }
     /**