View | Details | Raw Unified | Return to bug 173060
Collapse All | Expand All

(-)src/org/eclipse/pde/internal/ui/editor/plugin/ExtensionsSection.java (-41 / +70 lines)
Lines 245-251 Link Here
245
		initializeImages();
245
		initializeImages();
246
		Composite container = createClientContainer(section, 2, toolkit);
246
		Composite container = createClientContainer(section, 2, toolkit);
247
		TreePart treePart = getTreePart();
247
		TreePart treePart = getTreePart();
248
		createViewerPartControl(container, SWT.SINGLE, 2, toolkit);
248
		createViewerPartControl(container, SWT.MULTI, 2, toolkit);
249
		fExtensionTree = treePart.getTreeViewer();
249
		fExtensionTree = treePart.getTreeViewer();
250
		fExtensionTree.setContentProvider(new ExtensionContentProvider());
250
		fExtensionTree.setContentProvider(new ExtensionContentProvider());
251
		fExtensionTree.setLabelProvider(new ExtensionLabelProvider());
251
		fExtensionTree.setLabelProvider(new ExtensionLabelProvider());
Lines 262-268 Link Here
262
			public void modifyText(ModifyEvent e) {
262
			public void modifyText(ModifyEvent e) {
263
				StructuredViewer viewer = getStructuredViewerPart().getViewer();
263
				StructuredViewer viewer = getStructuredViewerPart().getViewer();
264
				IStructuredSelection ssel = (IStructuredSelection)viewer.getSelection();
264
				IStructuredSelection ssel = (IStructuredSelection)viewer.getSelection();
265
				updateButtons(ssel.size() != 1 ? null : ssel.getFirstElement());
265
				updateButtons(ssel.size() != 1 ? null : ssel);
266
			}
266
			}
267
		});
267
		});
268
	}
268
	}
Lines 301-307 Link Here
301
	
301
	
302
	protected void selectionChanged(IStructuredSelection selection) {
302
	protected void selectionChanged(IStructuredSelection selection) {
303
		getPage().getPDEEditor().setSelection(selection);
303
		getPage().getPDEEditor().setSelection(selection);
304
		updateButtons(selection.getFirstElement());
304
		updateButtons(selection);
305
		getTreePart().getButton(BUTTON_EDIT).setVisible(isSelectionEditable(selection));
305
		getTreePart().getButton(BUTTON_EDIT).setVisible(isSelectionEditable(selection));
306
	}
306
	}
307
	protected void buttonSelected(int index) {
307
	protected void buttonSelected(int index) {
Lines 352-364 Link Here
352
			return true;
352
			return true;
353
		}
353
		}
354
		if (actionId.equals(ActionFactory.CUT.getId())) {
354
		if (actionId.equals(ActionFactory.CUT.getId())) {
355
			// delete here and let the editor transfer
355
			if(singleSelection()) {
356
			// the selection to the clipboard
356
				// delete here and let the editor transfer
357
			handleDelete();
357
				// the selection to the clipboard
358
			return false;
358
				handleDelete();				
359
			}
360
			return true;
359
		}
361
		}
360
		if (actionId.equals(ActionFactory.PASTE.getId())) {
362
		if (actionId.equals(ActionFactory.PASTE.getId())) {
361
			doPaste();
363
			if(singleSelection()) {
364
				doPaste();
365
			}
366
			return true;
367
		}
368
		if(actionId.equals(ActionFactory.SELECT_ALL.getId())) {
369
			handleSelectAll();
362
			return true;
370
			return true;
363
		}
371
		}
364
		
372
		
Lines 385-390 Link Here
385
					manager.add(new Separator());
393
					manager.add(new Separator());
386
				}
394
				}
387
			}
395
			}
396
			manager.add(new Separator());
397
			if (object instanceof IPluginExtension) {
398
				PluginSearchActionGroup actionGroup = new PluginSearchActionGroup();
399
				actionGroup.setContext(new ActionContext(selection));
400
				actionGroup.fillContextMenu(manager);
401
				manager.add(new Separator());
402
			}
388
		} else if (ssel.size() > 1) {
403
		} else if (ssel.size() > 1) {
389
			// multiple
404
			// multiple
390
			Action delAction = new Action() {
405
			Action delAction = new Action() {
Lines 397-416 Link Here
397
			manager.add(new Separator());
412
			manager.add(new Separator());
398
			delAction.setEnabled(isEditable());
413
			delAction.setEnabled(isEditable());
399
		}
414
		}
400
		if (ssel.size() == 1) {
415
//		if (ssel.size() == 1) {
401
			manager.add(new Separator());
416
//			manager.add(new Separator());
402
			Object object = ssel.getFirstElement();
417
//			Object object = ssel.getFirstElement();
403
			if (object instanceof IPluginExtension) {
418
//			
404
				PluginSearchActionGroup actionGroup = new PluginSearchActionGroup();
419
//			//manager.add(new PropertiesAction(getFormPage().getEditor()));
405
				actionGroup.setContext(new ActionContext(selection));
420
//		}
406
				actionGroup.fillContextMenu(manager);
407
				manager.add(new Separator());
408
			}
409
			//manager.add(new PropertiesAction(getFormPage().getEditor()));
410
		}
411
		manager.add(new Separator());
421
		manager.add(new Separator());
412
		manager.add(new Separator());
422
		manager.add(new Separator());
413
		getPage().getPDEEditor().getContributor().addClipboardActions(manager);
423
		if(ssel.size() < 2) { //to disable actions when multiselect
424
			getPage().getPDEEditor().getContributor().addClipboardActions(manager);
425
		}
414
		getPage().getPDEEditor().getContributor().contextMenuAboutToShow(
426
		getPage().getPDEEditor().getContributor().contextMenuAboutToShow(
415
				manager, false);
427
				manager, false);
416
428
Lines 592-597 Link Here
592
			});
604
			});
593
		}
605
		}
594
	}
606
	}
607
	
608
	private void handleSelectAll() {
609
		fExtensionTree.getTree().selectAll();
610
		fExtensionTree.setSelection(fExtensionTree.getSelection());
611
	}
612
	
595
	private ArrayList getEditorWizards(IStructuredSelection selection) {
613
	private ArrayList getEditorWizards(IStructuredSelection selection) {
596
		if (selection.size()!=1) return null;
614
		if (selection.size()!=1) return null;
597
		Object obj = selection.getFirstElement();
615
		Object obj = selection.getFirstElement();
Lines 879-886 Link Here
879
	 * @see org.eclipse.pde.internal.ui.editor.StructuredViewerSection#canPaste(java.lang.Object, java.lang.Object[])
897
	 * @see org.eclipse.pde.internal.ui.editor.StructuredViewerSection#canPaste(java.lang.Object, java.lang.Object[])
880
	 */
898
	 */
881
	protected boolean canPaste(Object targetObject, Object[] sourceObjects) {
899
	protected boolean canPaste(Object targetObject, Object[] sourceObjects) {
882
		// Note:  Multi-select in tree viewer is disabled; but, this function
900
		// Note: Multi-select in is enabled and this function can support 
883
		// can support multiple source objects
901
		// multiple source object but it needs to be investigated
884
		// Rule:  Element source objects are always pasted as children of the
902
		// Rule:  Element source objects are always pasted as children of the
885
		// target object (if allowable)
903
		// target object (if allowable)
886
		// Rule:  Extension source objects are always pasted and are independent
904
		// Rule:  Extension source objects are always pasted and are independent
Lines 1137-1160 Link Here
1137
			downEnabled = false;
1155
			downEnabled = false;
1138
		}
1156
		}
1139
		else {
1157
		else {
1140
			if (item instanceof IPluginElement) {
1158
			if(item instanceof IStructuredSelection) {
1141
				IPluginElement element = (IPluginElement) item;
1159
				if(((IStructuredSelection)item).size() == 1) {
1142
				IPluginParent parent = (IPluginParent) element.getParent();
1160
					Object selected = ((IStructuredSelection)item).getFirstElement();
1143
				// check up
1161
					if (selected instanceof IPluginElement) {
1144
				int index = parent.getIndexOf(element);
1162
						IPluginElement element = (IPluginElement) selected;
1145
				if (index > 0)
1163
						IPluginParent parent = (IPluginParent) element.getParent();
1146
					upEnabled = true;
1164
						// check up
1147
				if (index < parent.getChildCount() - 1)
1165
						int index = parent.getIndexOf(element);
1148
					downEnabled = true;
1166
						if (index > 0)
1149
			} else if (item instanceof IPluginExtension) {
1167
							upEnabled = true;
1150
				IPluginExtension extension = (IPluginExtension) item;
1168
						if (index < parent.getChildCount() - 1)
1151
				IExtensions extensions = (IExtensions) extension.getParent();
1169
							downEnabled = true;
1152
				int index = extensions.getIndexOf(extension);
1170
					} else if (selected instanceof IPluginExtension) {
1153
				int size = extensions.getExtensions().length;
1171
						IPluginExtension extension = (IPluginExtension) selected;
1154
				if (index > 0)
1172
						IExtensions extensions = (IExtensions) extension.getParent();
1155
					upEnabled = true;
1173
						int index = extensions.getIndexOf(extension);
1156
				if (index < size - 1)
1174
						int size = extensions.getExtensions().length;
1157
					downEnabled = true;
1175
						if (index > 0)
1176
							upEnabled = true;
1177
						if (index < size - 1)
1178
							downEnabled = true;
1179
					}
1180
				}
1158
			}
1181
			}
1159
		}
1182
		}
1160
		getTreePart().setButtonEnabled(BUTTON_ADD, addEnabled);
1183
		getTreePart().setButtonEnabled(BUTTON_ADD, addEnabled);
Lines 1176-1182 Link Here
1176
		if (fSortAction.equals(event.getSource()) && IAction.RESULT.equals(event.getProperty())) {
1199
		if (fSortAction.equals(event.getSource()) && IAction.RESULT.equals(event.getProperty())) {
1177
			StructuredViewer viewer = getStructuredViewerPart().getViewer();
1200
			StructuredViewer viewer = getStructuredViewerPart().getViewer();
1178
			IStructuredSelection ssel = (IStructuredSelection)viewer.getSelection();
1201
			IStructuredSelection ssel = (IStructuredSelection)viewer.getSelection();
1179
			updateButtons(ssel.size() != 1 ? null : ssel.getFirstElement());
1202
			updateButtons(ssel);
1180
		}
1203
		}
1181
	}
1204
	}
1182
1205
Lines 1759-1762 Link Here
1759
		return fSortAction.isChecked();
1782
		return fSortAction.isChecked();
1760
	}
1783
	}
1761
	
1784
	
1785
	private boolean singleSelection() {
1786
		// selection from tree is always structured
1787
		IStructuredSelection selection = (IStructuredSelection) fExtensionTree.getSelection();
1788
		return selection.size() == 1;
1789
	}
1790
	
1762
}
1791
}

Return to bug 173060