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;
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;
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;
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);
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 {
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);
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);
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++) {
}
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);
-
}
}
/**