为了说起来方便,这里先把我自己实现的createInitialLayout方法贴出来:
String editorArea = layout.getEditorArea();
IFolderLayout left=layout.createFolder("left", IPageLayout.LEFT, 0.2f, editorArea);
left.addView("org.eclipse.ui.views.ResourceNavigator");
IFolderLayout bottom=layout.createFolder("bottom", IPageLayout.BOTTOM, 0.8f, editorArea);
bottom.addView(“MyView1”);
bottom.addView(“MyView2”);
IFolderLayout right=layout.createFolder("right", IPageLayout.RIGHT, 0.8f, editorArea);
right.addView(“MyView3”);
}
设置Pespective的布局就像是布置房间。editorArea代表你要布置的空间,最开始我们拥有的是房间的全部空间,editor=layout.getEditorArea()即获得了开始时房间的全部。接下来,我们开始布置,left=layout.createFolder("left", IPageLayout.LEFT, 0.2f, editorArea),这段代码表明我们把房间按左右2:8的比例划分,取了左半边出来,取得的这个空间就是left,我们往left这个空间里放了一个叫“org.eclipse.ui.views.ResourceNavigator”的穿衣镜。布置好left空间,现在我们可以布置的空间(editorArea)只剩刚才划分中留下的右边。对这部分空间我们又按上下分(当然实际房子我们可能是按前后分)分了一次,bottom=layout.createFolder("bottom", IPageLayout.BOTTOM, 0.8f, editorArea),这次分的比例是8:2,我们把分得的下边空间bottom放了“MyView1”,“MyView2”两个排好的书架。最后我们对所剩空间又分了一次,right=layout.createFolder("right", IPageLayout.RIGHT, 0.8f, editorArea),这次是按左右8:2分,我们取占2的右边空间right,在这个空间里我们放了一个借阅台。通过以上的布置,我把这个房间变成了一个简单的图书阅览室,还有没分的空间就是一块中间的活动场所了,供人们读书或休息(在实际的,留下的这一块就是eclipse中各种editor打开的地方了:))。划分后布局如图1所示:
图1
上面是我对Eclipse中Perspective简单形象的理解。刚才为了连贯性,我对layout.createFolder("left", IPageLayout.LEFT, 0.2f, editorArea)类似的方法没做详细解释,放在这里再细说:
参数1:String,这里“left”表示你对要分得空间的命名。
参数2:int,表示你需要获得空间的那一部分;IPageLayout有两对表方位的静态值(LEFT,RIGHT)和(TOP,BOTTOM),可在这里使用。
参数3:float,表示空间划分比例。这个数表示的是空间划分时前一部分所占比例,可以结合参数2。参数2为表左右方位(LEFT或RIGHT)时,那这个参数就是左半部占总体的比例;参数2为表上下方位(TOP或BOTTOM)时,这个数表示的就是上半部所占比例。请注意不管参数2里你取那部分,参数3表示的只可能是左半部或上半部占待分空间的比例。
参数4:String,表示待分的空间。
我领会的东西都在这里了,因为没有找到详细解释这部分的文档,只是自己的理解,可能存在问题,请大家指正。