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 |
} |