Visual Editor 阅读笔记

1. 如何定制多visual editor 编辑器,集成design editor and java editor.

Note book style (multi tab):

protected void createNotebookEditor(Composite parent, Preferences store) {
// Create a notebook folder
final CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM);
Composite editorParent = new Composite(folder, SWT.NONE);
editorParent.setLayout(new FillLayout());

CTabItem jveTab = new CTabItem(folder, SWT.NONE);
jveTab.setControl(editorParent);
jveTab.setText(CodegenEditorPartMessages.JavaVisualEditorPart_DesignPart);

paletteSplitter = new FlyoutPaletteComposite(editorParent, SWT.NONE, getSite().getPage(), getPaletteViewerProvider(), getPalettePreferences());
paletteSplitter.setGraphicalControl(createPrimaryViewer(paletteSplitter));
if (palettePage != null) {
paletteSplitter.setExternalViewer(palettePage.getPaletteViewer());
palettePage = null;
}

// Create the parent (new tab) for the java text editor.
Composite javaParent = new Composite(folder, SWT.NONE);
javaParent.setLayout(new FillLayout());

CTabItem javaTab = new CTabItem(folder, SWT.NONE);
javaTab.setControl(javaParent);
javaTab.setText(CodegenEditorPartMessages.JavaVisualEditorPart_SourcePart);
// Let the super java text editor fill it in.
super.createPartControl(javaParent);

// Selection must be on the first page otherwise it does not activate correctly
folder.setSelection(jveTab);
increaseSourceSyncTimer();
}

Split style (custom sashform):

protected void createSplitpaneEditor(Composite parent, Preferences store) {
paletteSplitter = new FlyoutPaletteComposite(parent, SWT.NONE, getSite().getPage(), getPaletteViewerProvider(), getPalettePreferences());
// JVE/Text editor split on the right under editorComposite
final CustomSashForm editorParent = new CustomSashForm(paletteSplitter, SWT.VERTICAL|SWT.SMOOTH);
editorSettings.addSetting(new SashSetting(editorParent));
createPrimaryViewer(editorParent);

// Let the super java text editor fill it in.
super.createPartControl(editorParent);
editorParent.setSashBorders(new boolean[] { true, true });
paletteSplitter.setGraphicalControl(editorParent);
if (palettePage != null) {
paletteSplitter.setExternalViewer(palettePage.getPaletteViewer());
palettePage = null;
}
final CustomSashForm.ICustomSashFormListener customSashformlistener = new CustomSashForm.ICustomSashFormListener(){
boolean isMaxed = false;
public void dividerMoved(int firstControlWeight, int secondControlWeight) {
if(firstControlWeight==0){
if(!isMaxed){
isMaxed = true;
increaseSourceSyncTimer();
}
}else{
if(isMaxed){
isMaxed = false;
restoreSourceSyncTimer();
}
}
}
};
editorParent.addCustomSashFormListener(customSashformlistener);
editorParent.addDisposeListener(new DisposeListener(){
public void widgetDisposed(DisposeEvent e) {
editorParent.removeCustomSashFormListener(customSashformlistener);
}
});
}

2. The ve architecture

RoundTripeditor_thumb1.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值