我正在尝试从我的自定义页面链接到另一个首选项页面。
我有一个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 -> Editor
。 HTML_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
不是空的。
答案 0 :(得分:1)
您指定给createPreferenceDialogOn
的ID是使用org.eclipse.ui.preferencePages
扩展点声明的首选项页面的ID,不是首选项商店ID。
对于HTML编辑器页面,此ID为org.eclipse.wst.html.ui.preferences.source
注意:您不需要致电open
。由于您已经打开了首选项,因此只需切换到当前选择的首选项页面即可调用createPreferenceDialogOn
。