Hotfix for bug 374789 in PDE/UI.
diff --git a/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/ExtensionEditorAdaptor.java b/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/ExtensionEditorAdaptor.java
index 26b2c8d..b23eaad 100644
--- a/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/ExtensionEditorAdaptor.java
+++ b/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/ExtensionEditorAdaptor.java
@@ -46,8 +46,11 @@
import org.eclipse.pde.internal.core.schema.SchemaRegistry;
import org.eclipse.pde.internal.core.util.IdUtil;
import org.eclipse.pde.internal.ui.PDEPlugin;
+import org.eclipse.pde.internal.ui.PDEUIMessages;
+import org.eclipse.pde.internal.ui.parts.StructuredViewerPart;
import org.eclipse.pde.internal.ui.util.PDEJavaHelperUI;
+import base org.eclipse.pde.internal.ui.editor.TreeSection;
import base org.eclipse.pde.internal.ui.editor.plugin.ExtensionsSection;
import base org.eclipse.pde.internal.ui.editor.plugin.JavaAttributeWizard;
import base org.eclipse.pde.internal.ui.editor.plugin.rows.ClassAttributeRow;
@@ -63,9 +66,27 @@
{
// role for XMLInsertionComputer obsoleted by patch in https://bugs.eclipse.org/bugs/show_bug.cgi?id=195763
+ // hot fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=374789
+ protected class FixBug374789 playedBy TreeSection {
+
+ void createViewerPart(String[] buttonLabels) <- replace StructuredViewerPart createViewerPart(String[] buttonLabels);
+
+ callin void createViewerPart(String[] buttonLabels) {
+ if (buttonLabels != null && buttonLabels.length > 0
+ && PDEUIMessages.ManifestEditor_DetailExtension_new == buttonLabels[0] // "==" indeed, we don't want to muddle with other equal strings.
+ && ExtensionsSection.getButtonAdd() == 1) {
+ int len = buttonLabels.length;
+ System.arraycopy(buttonLabels, 0, buttonLabels = new String[len+1], 1, len);
+ }
+ base.createViewerPart(buttonLabels);
+ }
+ }
+
/* avoid to use the icon attribute for the label, too. */
protected class ExtensionsSection playedBy ExtensionsSection
{
+ protected int getButtonAdd() -> get int BUTTON_ADD;
+
String resolveObjectName(SchemaRegistry schemaRegistry, Object obj) <- replace String resolveObjectName(SchemaRegistry schemaRegistry, Object obj);
@SuppressWarnings("basecall")
callin static String resolveObjectName(SchemaRegistry schemaRegistry, Object obj) {
@@ -141,6 +162,7 @@
String stripShortcuts(String input) -> String stripShortcuts(String input);
}
+
protected class ClassAttributeRow playedBy ClassAttributeRow {
doOpenSelectionDialog <- replace doOpenSelectionDialog;
@SuppressWarnings({ "inferredcallout", "basecall" })