今天开始做些小的总结,因为Eclipse插件方面做了不少东西了,也该总结总结学习到的东西了!
为了增加普遍性,例子使用的Editor继承自最简单的EditorPart来制作。
程序里的说明,作为帮助吧!
package ztestpluginproject.editors.zeditors;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.widgets.ColumnLayout;
import org.eclipse.ui.forms.widgets.ColumnLayoutData;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.part.EditorPart;
public class ZTestEditor extends EditorPart {
// 简单情况下可以自己制作一个标志来记录当前编辑器状况
public boolean isDirty = false;
@Override
public void doSave(IProgressMonitor monitor) {
this.isDirty = false; // 先将标志设置为false
this.firePropertyChange(PROP_DIRTY); // 通知编辑器要修改状态了
}
@Override
public void doSaveAs() {
}
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
this.setInput(input);
this.setSite(site);
this.setPartName(input.getName());//设置标签为 文件名
}
@Override
public boolean isDirty() {
//firePropertyChange(PROP_DIRTY) 将根据这里返回的值,来修改编辑器状态(保存或者未保存<*>)
return this.isDirty;
}
@Override
public boolean isSaveAsAllowed() {
return false;
}
@Override
public void createPartControl(Composite parent) {
// 这里新建了一个表单 放了三个文本框
final FormToolkit toolkit = new FormToolkit(parent.getDisplay());
ColumnLayout layout = new ColumnLayout();
layout.horizontalSpacing = 5;
layout.verticalSpacing = 5;
parent.setLayout(layout);
Section section = toolkit.createSection(parent, Section.TWISTIE|Section.TITLE_BAR);
Composite compo = toolkit.createComposite(section, SWT.NONE);
ColumnLayout layoutSection = new ColumnLayout();
compo.setLayout(layoutSection);
section.setClient(compo);
section.setExpanded(true);
// 文本框内容变动监听器
TxtChangeListener listener = new TxtChangeListener();
Text txtName = toolkit.createText(compo, "Mike", SWT.NONE);
ColumnLayoutData td = new ColumnLayoutData();
txtName.setLayoutData(td);
txtName.addModifyListener(listener);
Text txtAge = toolkit.createText(compo, "22", SWT.NONE);
td = new ColumnLayoutData();
txtAge.setLayoutData(td);
txtAge.addModifyListener(listener);
Text txtSex = toolkit.createText(compo, "m", SWT.NONE);
td = new ColumnLayoutData();
txtSex.setLayoutData(td);
txtSex.addModifyListener(listener);
}
// 制作监听器 ,这里是对Text进行监听使用ModifyListener
//如果是TextField(awt包下)之类的有DocumentListener,此处不再赘述
class TxtChangeListener implements ModifyListener {
@Override
public void modifyText(ModifyEvent e) {
System.out.println("ok");
isDirty = true;
ZTestEditor.this.firePropertyChange(PROP_DIRTY);
}
}
@Override
public void setFocus() {
}
}
分享到:
相关推荐
导入这些资源后,开发者可以在Unity编辑器中直接应用到摄像机上,或者创建Volume节点并添加Dirty Lens效果。 总的来说,Unity的脏镜头光晕效果是通过结合Shader编程和后期处理技术来实现的,它为游戏和应用带来了更...
5. **检查编辑器内容是否被修改**:`IsDirty()`函数返回一个布尔值,指示编辑器内容是否与初始状态有差异。 #### 二、命令操作 fckeditor提供了丰富的命令集,如`DocProps`, `Templates`, `Link`, `Image`, `Table...
3. **文本处理**:文本编辑器的核心功能包括读写文件、查找替换、格式化等。C#提供了丰富的字符串处理函数,如`StreamReader`和`StreamWriter`用于文件读写,`Regex`类用于正则表达式匹配,`StringBuilder`用于高效...
- **IsDirty()**:检查编辑器中的内容是否已被修改。 #### 事件 FCKeditor支持多种事件,这些事件可以帮助开发者更好地控制编辑器的行为。例如,可以使用`"FCKeditor_OnComplete"`函数在编辑器加载完成后执行特定...
- `IsDirty`:检查编辑器内容是否被修改过。 4. **执行命令** - FCKeditor提供了许多内置命令,如`DocProps`, `Templates`, `Link`, `Image`等。要执行命令,首先通过`Commands.GetCommand('CommandName')`获取...
FCKeditor是一款强大的开源富文本编辑器,被广泛应用于Web应用程序中。它支持多种浏览器,并且提供了丰富的编辑功能,如图片上传、表格绘制等。FCKeditor_API则是用来控制和操作FCKeditor的核心接口集合,通过这些...
- 编辑器应包含必要的功能,如图形修改后的保存提示(`dirty handling`)。 - 编辑器继承自`org.eclipse.ui.part.EditorPart`,因此需要实现相应的方法以支持基本的编辑器行为。 ### GEF的基本结构 GEF的基本结构...
FCKeditor是一款强大的开源文本编辑器,主要用于网页内容的创建和编辑。它提供了一个类似Microsoft Word的用户界面,使得在网页上编辑富文本内容变得简单直观。本教程将引导你入门FCKeditor的使用,帮助你快速掌握其...
在Web开发中,富文本编辑器FCKeditor是一个常用的组件,它允许用户在网页上进行类似Word的文本编辑。JavaScript是与FCKeditor交互的主要语言,用于获取和设置编辑器中的内容,以及执行各种编辑操作。本文将详细介绍...
FCKeditorAPI还提供了检查编辑器内容是否被修改的`IsDirty()`方法。这在保存或者撤销更改时非常有用。 关于事件处理,FCKeditor定义了一些内置事件,如`OnComplete`、`OnBlur`和`OnFocus`。你可以通过`Events....
FCKeditor的JavaScript API使得开发者能够实现高度定制的编辑体验,包括添加自定义工具栏按钮、处理用户交互事件以及在编辑器内容改变时执行逻辑。通过熟练掌握这个API,开发者可以创建出符合特定需求的富文本编辑...
`oEditor.IsDirty()`方法可用来检测编辑器内容是否已发生改变。 在实际应用中,可能会需要监听编辑器的特定事件。FCKeditor提供了诸如OnComplete、OnBlur和OnFocus等事件。例如,`FCKeditor_OnComplete`可以在编辑...
3. 保存文件并退出编辑器,然后执行`sysctl -p`命令使改动立即生效。 如果以上方案均无法解决问题,建议联系Azure技术支持中心,他们能提供更深入的故障排查和专业帮助,可能涉及更复杂的系统诊断和修复措施。在...
要添加自定义代码,你需要打开VBA编辑器。有两种方法可以做到这一点:一是按下键盘上的`Alt + F11`快捷键;二是通过功能区,在“开发”选项卡中找到并点击“查看代码”按钮。 3. **编写VBA代码**: 在VBA编辑器中...
- **GEF (Graphical Editing Framework)**:GEF是Eclipse平台提供的一个用于构建图形编辑器的框架,能够帮助开发者快速构建出复杂且功能丰富的图形界面编辑器。 - **环境配置**:在进行GEF开发前,需确保以下软件...
OpenMV是一款基于微控制器的开源机器视觉开发板,它旨在让嵌入式系统也能进行复杂的图像处理任务。而MicroPython则是Python编程语言的一个轻量级实现,特别适用于资源有限的硬件,如OpenMV这样的MCU(微控制器)。 ...
在JavaScript中操作FCKeditor,一个流行的开源富文本编辑器,是常见的需求,尤其是在Web开发中需要处理用户输入的HTML内容时。FCKeditorAPI是一个关键的全局对象,提供了多种方法来实现对编辑器的控制。以下是一些...
GEF(Graphical Editing Framework)是Eclipse平台提供的一个用于构建图形编辑器的框架,它提供了一系列工具和API,使得开发者能够快速构建出功能丰富的图形用户界面,特别适用于模型驱动的设计场景。 #### RCP项目...
6. **使用轻量级应用**:替换掉资源消耗大的应用,例如使用轻量级的文本编辑器(如`nano`或`vim`代替`gedit`)、浏览器(如`Midori`或`Firefox Quantum`的节能模式)和音乐播放器(如`MPD`)。 7. **优化系统缓存和...