Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse RCP/RAP中的ScrolledComposite中没有滚动条_Eclipse_Swt_Eclipse Rcp_Jface_Eclipse Rap - Fatal编程技术网

Eclipse RCP/RAP中的ScrolledComposite中没有滚动条

Eclipse RCP/RAP中的ScrolledComposite中没有滚动条,eclipse,swt,eclipse-rcp,jface,eclipse-rap,Eclipse,Swt,Eclipse Rcp,Jface,Eclipse Rap,我有一段带有ScrolledComposite的代码,其中垂直滚动条不会出现,即使小部件的内容比小部件中的空间大得多。我能够在一个简单的例子中重现这种行为。 我需要它作为RAP应用程序工作,但如果我在RCP应用程序的视图中运行它,代码也不工作 下面是一个简单视图的代码(我省略了导入部分): 公共类视图扩展了ViewPart{ 公共静态最终字符串ID=“View\u spike.View”; List inputData=new ArrayList(); final String LONG_TEX

我有一段带有ScrolledComposite的代码,其中垂直滚动条不会出现,即使小部件的内容比小部件中的空间大得多。我能够在一个简单的例子中重现这种行为。 我需要它作为RAP应用程序工作,但如果我在RCP应用程序的视图中运行它,代码也不工作

下面是一个简单视图的代码(我省略了导入部分):

公共类视图扩展了ViewPart{
公共静态最终字符串ID=“View\u spike.View”;
List inputData=new ArrayList();
final String LONG_TEXT=“一些长文本。一些长文本。一些长文本。一些长文本。一些长文本。一些长文本。一些长文本。一些长文本。”;
私人桌面查看器;
/**
*内容提供程序类负责向
*视图。它可以将现有对象包装在适配器中,也可以只返回对象
*这些对象可能对视图的当前输入敏感,
*或者忽略它并始终显示相同的内容(例如任务列表)
*示例)。
*/
类ViewContentProvider实现IStructuredContentProvider{
公共无效输入已更改(查看器v、对象oldInput、对象newInput){
}
公共空间处置(){
}
公共对象[]getElements(对象父对象){
if(对象[]的父实例){
返回(对象[])父对象;
}
返回新对象[0];
}
}
类ViewLabelProvider扩展LabelProvider实现
ITableLabelProvider{
公共字符串getColumnText(对象对象对象,int索引){
返回getText(obj);
}
公共映像getColumnImage(对象对象对象,int索引){
返回getImage(obj);
}
公共映像getImage(对象obj){
返回平台ui.getWorkbench().getSharedImages().getImage(
ISharedImages.IMG_OBJ_元素);
}
}
/**
*这是一个回调,允许我们创建查看器并进行初始化
*它。
*/
公共void createPartControl(复合父级){
populateInputData();
最终SashForm容器=新的SashForm(父级,SWT.HORIZONTAL);
final ScrolledComposite objectViewerContainer=新ScrolledComposite(
容器,SWT.H|U卷轴(SWT.V|U卷轴);
setLayout(新的GridLayout());
objectViewerContainer.setExpandHorizontal(true);
objectViewerContainer.setExpandVertical(true);
setLayoutData(新的GridData(SWT.FILL,SWT.FILL,true,true));
最终复合材料someContainer=新复合材料(容器,SWT.NONE);
setLayoutData(新的GridData(SWT.FILL,SWT.FILL,true,true));
container.setWeights(新的int[]{1,2});
setLayoutData(新的GridData(SWT.FILL,SWT.FILL,true,true));
createObjectViewerArea(objectViewerContainer);
}
/**
*将焦点请求传递给查看器的控件。
*/
public void setFocus(){
viewer.getControl().setFocus();
}
私有void populateInputData(){
对于(int i=0;i<100;i++){
inputData.add(长文本);
}
}
私有void createObjectViewerArea(最终滚动复合父级){
最终复合材料面板=新复合材料(母材,SWT.无);
panel.setLayout(resetMargin(新的TableWrapLayout());
创建内容(面板);
panel.setLayoutData(新GridData(GridData.FILL_BOTH));
父.setContent(面板);
}
私有void createContent(最终复合父级){
最终树=新树(父级,SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
setLayoutData(新的TableWrapData());
TreeViewer TreeViewer=新的TreeViewer(树);
setContentProvider(新的ITreeContentProvider(){
@凌驾
公共空间处置(){
//TODO自动生成的方法存根
}
@凌驾
public void inputChanged(查看器、对象oldInput、,
对象(新输入){
viewer.refresh();
parent.layout();
}
@凌驾
公共对象[]getElements(对象inputElement){
//TODO自动生成的方法存根
return((List)inputData).toArray();
}
@凌驾
公共对象[]获取子对象(对象父元素){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共对象getParent(对象元素){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共布尔hasChildren(对象元素){
//TODO自动生成的方法存根
返回false;
}
});
treeViewer.setInput(this.inputData);
setAutoExpandLevel(1);//不要扩展到顶层
setLabelProvider(新的ILabelProvider(){
@凌驾
公共void RemovelListener(ILabelProviderListener侦听器){
}
@凌驾
公共布尔isLabelProperty(对象元素、字符串属性){
返回false;
}
@凌驾
公共空间处置(){
}
@凌驾
公共void addListener(ILabelProviderListener侦听器){
}
@凌驾
公共字符串getText(对象元素){
//TODO自动生成的方法存根
返回(字符串)元素;
}
@凌驾
公共映像getImage(对象元素){
//TODO自动生成的方法存根
返回null;