使用Link打开其他首选项页面

时间:2018-04-19 06:55:05

标签: eclipse eclipse-plugin swt

我正在尝试从我的自定义页面链接到另一个首选项页面。 我有一个FieldEditorPreferencePage,并制作了一个自定义LinkFieldEditor,扩展了FieldEditor,因此我可以将其添加到首选项页面。

        LinkFieldEditor linkField = new LinkFieldEditor("Click here for more options!", getFieldEditorParent());
    SelectionAdapter adapter = new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(getShell(), HTML_PREF_ID, null, null);
            if (pref != null) {
                pref.open();
            }
        }
    };
    linkField.addSelectionListener(adapter);
    return linkField;

我正在尝试链接到Web -> HTML Files -> EditorHTML_PREF_ID is "org.eclipse.wst.html.core"PreferenceDialog pref。我使用此ID以编程方式更改其首选项,因此我知道它是一个有效的ID。但是当我点击链接时没有任何反应。我调试了它,from django.db import models from django.contrib.auth.models import User from django.dispatch import receiver from django.db.models.signals import post_save class Stock(models.Model): name = models.CharField(max_length = 50) ticker = models.CharField(max_length = 50) def __str__(self): return self.name class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) followed_stocks = models.ManyToManyField(Stock, blank=True) def __str__(self): return self.user.first_name @receiver(post_save, sender=User) def update_user_profile(sender, instance, created, **kwargs): if created: Profile.objects.create(user=instance) instance.profile.save() class Article(models.Model): stock = models.ForeignKey(Stock, on_delete=models.CASCADE, default = 0 ) title = models.CharField(max_length = 200) url = models.URLField() description = models.TextField() def __str__(self): return self.title 不是空的。

1 个答案:

答案 0 :(得分:1)

您指定给createPreferenceDialogOn的ID是使用org.eclipse.ui.preferencePages扩展点声明的首选项页面的ID,不是首选项商店ID。

对于HTML编辑器页面,此ID为org.eclipse.wst.html.ui.preferences.source

注意:您不需要致电open。由于您已经打开了首选项,因此只需切换到当前选择的首选项页面即可调用createPreferenceDialogOn