1
不工作在GraphicalEditor來我創建了一個標籤文件夾:SWT的JFace:SelectionProvider在TabFolder中
private final String[] tabNames = { "Text", "Image" };
private ResourcesTextComposite comText;
private ResourcesImageComposite comImage;
...
public void createPartControl(Composite parent) {
...
tabFolder = new TabFolder(parent, SWT.BORDER);
for (int loopIndex = 0; loopIndex < tabNames.length; loopIndex++) {
TabItem tabItem = new TabItem(tabFolder, SWT.NULL);
tabItem.setText(tabNames[loopIndex]);
if (loopIndex == 0) {
comText = new ResourcesTextComposite(tabFolder, SWT.NONE,
resources);
tabItem.setControl(comText);
} else if (loopIndex == 1) {
comImage = new ResourcesImageComposite(tabFolder, SWT.NONE,
resources);
tabItem.setControl(comImage);
}
}
...
}
它有2分選項卡的項目和每個項目都有一個複合在裏面,並且每個複合分別具有TableViewer中。
我想這使每一個TableViewer的選擇供應商時,用戶選擇相應的選項卡項目(編輯器的功能相同的createPartControl):
public void createPartControl(Composite parent) {
...
tabFolder.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
int tabIdx = tabFolder.getSelectionIndex();
getSite().setSelectionProvider(null);
if (tabIdx == 0) {
getSite().setSelectionProvider(comText.getViewer());
} else if (tabIdx == 1) {
getSite().setSelectionProvider(comImage.getViewer());
}
System.out.println("widgetSelected" + getSite() + ": "
+ getSite().getSelectionProvider());
}
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
...
}
我希望,當我在一個TableViewer中選擇一行, Properties視圖將顯示所選模型的屬性,我已經完成了這些IPropertySource的事情,並且在沒有選項卡文件夾的其他編輯器中運行良好,所以我認爲問題應該在Selection Provider區域中。
任何想法或任何人遇到同樣的問題?
我想在給定的時間,我希望只有一個TableViewer的作品,所以使用setSelectionProvider設置只有一個查看器是可能的。 –
對不起,你是對的!有用! –