- 浏览: 113405 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
zxjlwt:
学习了!http://surenpi.com
Eclipse开发之进度条 -
coolboyysy:
解决的办法是:导入相关包即可解决。包名如下:jruby-con ...
请教Tomcat启动,Spring调用时的java.lang.ClassNotFoundException: groov -
sitoto:
给个对应的确build.xml 的例子啊,,
使用Ant 构建Eclipse RCP Product -
masuweng:
今天培训恰好讲到这些内容了
单例模式在多线程下的使用 -
zhaofangtao:
hi
你这个示例是在 3.2还是3.4的??
我的3.4里 ...
记录swt对话框上次打开的地址
import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.jface.dialogs.DialogSettings; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; import utils.system; /** * 扩展属性过滤对话框 * * @author sunway * */ public class ExtendedAttributeFilterDialog extends WorkflowDialog implements SelectionListener, ISelectionChangedListener { private ExtendedAttributes resultExtendedAttributes; private ExtendedAttributes sourceExtendedAttributes; private TableViewer tableViewer; private CheckboxTableViewer ctv; private Table table; private GridData gridData; private Button openBtn; private String fileFullPath; private Text fileFullPathText; private String lastFileFullPath = ""; private String projectPath= ""; /** * 创建c:\temp\opendDialogPath.xml文件 * * @return */ private File getDialogConfigFile() { String parent = getProjectPath() + File.separator + ".settings"; File dir = new File(parent); File file = new File(parent + File.separator + "opendDialogPath.xml"); try { if (!dir.exists()) { if (dir.mkdir()) { if (!file.exists()) { file.createNewFile(); } } } if (!file.exists()) { file.createNewFile(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return file; } public String getLastFileFullPath() { return this.lastFileFullPath; } public void setFileFullPath(String fileFullPath) { this.fileFullPath = fileFullPath; } public ExtendedAttributes getSourceExtendedAttributes() { return sourceExtendedAttributes; } public void setSourceExtendedAttributes( ExtendedAttributes sourceExtendedAttributes) { this.sourceExtendedAttributes = sourceExtendedAttributes; } public ExtendedAttributes getResultExtendedAttributes() { return resultExtendedAttributes; } public ExtendedAttributeFilterDialog(Shell parentShell) { super(parentShell); // TODO Auto-generated constructor stub } protected Control createDialogArea(Composite parent) { setTitle(DialogMessages .getString("ExtendedAttributeFilterDialog.title")); //$NON-NLS-1$ setMessage(DialogMessages .getString("ExtendedAttributeFilterDialog.message")); //$NON-NLS-1$ setHelpAvailable(false); Composite container = (Composite) super.createDialogArea(parent); createDialogContext(container); this.initTableViewer(); return container; } private void createDialogContext(Composite parent) { Composite container = new Composite(parent, SWT.NONE); GridData gdGroup = new GridData(GridData.FILL_BOTH); // gdGroup.widthHint = 600; container.setLayoutData(gdGroup); GridLayout gridLayout = new GridLayout(); gridLayout.verticalSpacing = 4; gridLayout.numColumns = 2; gridLayout.marginWidth = 10; gridLayout.marginTop = 10; container.setLayout(gridLayout); Group group = new Group(container, SWT.NONE); GridLayout gl = new GridLayout(); gl.numColumns = 2; gl.marginWidth = 10; group.setLayout(gl); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); group.setText(DialogMessages .getString("ExtendedAttributeFilterDialog.xpdlFile"));//$NON-NLS-1$ openBtn = new Button(group, SWT.OPEN); openBtn.setText(DialogMessages .getString("ExtendedAttributeFilterDialog.browserButton"));//$NON-NLS-1$ openBtn.addSelectionListener(this); fileFullPathText = new Text(group, SWT.BORDER); fileFullPathText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // 默认选中上次打开的页面 String fullPath = loadFileFullPath(); if (fullPath == null || fullPath == "" || fullPath.equals("")) { fileFullPathText.setText(fileFullPath); } else { fileFullPathText.setText(fullPath); } fileFullPathText.addSelectionListener(this); tableViewer = new TableViewer(container, SWT.CHECK | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION); // checkboxViewer ctv = new CheckboxTableViewer(tableViewer.getTable()); ctv.setContentProvider(new ExtendedAttributeFilterContentProvider()); ctv.setLabelProvider(new ExtendedAttributeFilterLabelProvider()); ctv.addSelectionChangedListener(this); ctv .setColumnProperties(new String[] { DialogMessages .getString("ExtendedAttributeFilterDialog.nameColumnProperties"), DialogMessages.getString("ExtendedAttributeFilterDialog.valueColumnProperties") }); //$NON-NLS-1$ //$NON-NLS-2$ table = tableViewer.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); gridData = new GridData(GridData.FILL_BOTH); gridData.horizontalSpan = 2; table.setLayoutData(gridData); } private void initTableViewer() { // TODO Auto-generated method stub final TableColumn nameCol = new TableColumn(table, SWT.NONE); nameCol.setText(DialogMessages .getString("ExtendedAttributeFilterDialog.nameTableColumn")); //$NON-NLS-1$ nameCol.setWidth((getInitialSize().x - 35) / 2); final TableColumn valueCol = new TableColumn(table, SWT.NONE); valueCol.setText(DialogMessages .getString("ExtendedAttributeFilterDialog.valueTableColumn")); //$NON-NLS-1$ valueCol.setWidth((getInitialSize().x - 35) / 2); CellEditor[] cellEditor = new CellEditor[table.getColumnCount() + 1]; cellEditor[table.getColumnCount() - 1] = new CheckboxCellEditor( tableViewer.getTable()); this.ctv.setCellEditors(cellEditor); this.table.setHeaderVisible(true); this.table.setLinesVisible(true); this.ctv.addSelectionChangedListener(this); this.ctv.setColumnProperties(new String[] { "name", "value" }); String filePath = this.fileFullPathText.getText(); if (filePath.endsWith("xml")) {// 简单处理 this.ctv.setInput(getExtendedAttributes(filePath)); } else { this.ctv .setInput(filterConfigExtendedAttributes(filterDuplicateExtendedAttributes(getExtendedAttributes(filePath)))); } } @Override protected void createButtonsForButtonBar(Composite parent) { // TODO Auto-generated method stub super.createButtonsForButtonBar(parent); dialogChanged(); setErrorMessage(null); } @Override protected Point getInitialSize() { return new Point(520, 560); } @Override protected void configureShell(Shell newShell) { // TODO Auto-generated method stub super.configureShell(newShell); newShell.setText(DialogMessages .getString("ExtendedAttributeFilterDialog.shellText")); //$NON-NLS-1$ } @Override protected void buttonPressed(int buttonId) { // TODO Auto-generated method stub this.resultExtendedAttributes = (ExtendedAttributes) this.sourceExtendedAttributes .clone(); this.resultExtendedAttributes.clear(); if (buttonId == IDialogConstants.OK_ID) { Object[] object = ctv.getCheckedElements(); if (object.length > 0) { for (int i = 0, n = object.length; i < n; i++) { ExtendedAttribute bean = (ExtendedAttribute) object[i]; this.resultExtendedAttributes.add(bean); } } } // 保存上次打开的文件路径 saveFileFullPath(); super.buttonPressed(buttonId); } private IDialogSettings getDialogTopSettings() { IDialogSettings settings = new DialogSettings("root"); try { File file = getDialogConfigFile(); settings.load(file.getAbsolutePath()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return settings; } /** * 从c:\temp\dialogPath.xml文件中取出上次打开的文件路径 * * @return */ private String loadFileFullPath() { // TODO Auto-generated method stub String result = ""; IDialogSettings topSettings = getDialogTopSettings(); IDialogSettings settings = topSettings.getSection("Dialog"); if (settings == null) { return result; } else { result = settings.get("path"); } return result; } /** * 保存上次打开的对话框路径到c:\temp\dialogPath.xml文件中 */ private void saveFileFullPath() { // TODO Auto-generated method stub IDialogSettings topSettings = getDialogTopSettings(); IDialogSettings settings = topSettings.getSection("Dialog"); if (settings == null) { settings = topSettings.addNewSection("Dialog"); } settings.put("path", this.fileFullPathText.getText()); try { topSettings.save(getDialogConfigFile().getAbsolutePath()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void widgetDefaultSelected(SelectionEvent e) { // TODO Auto-generated method stub } public void widgetSelected(SelectionEvent e) { // TODO Auto-generated method stub if (e.getSource().equals(this.openBtn)) { // 打开文件选择对话框 FileDialog fd = new FileDialog(WorkflowProjectUtils .getActiveShell(), SWT.OPEN); fd.setFilterExtensions(new String[] { "*.xpdl", "*.xml" }); String fileFullPath = fd.open(); fileFullPathText.setText(fileFullPath); if (fileFullPath.endsWith("xml")) {// 简单处理 this.ctv.setInput(getExtendedAttributes(fileFullPath)); } else this.ctv .setInput(filterConfigExtendedAttributes(filterDuplicateExtendedAttributes(getExtendedAttributes(this.fileFullPathText .getText())))); } if (e.getSource().equals(this.fileFullPathText)) { // 先过滤掉重复的扩展属性 this.ctv .setInput(filterConfigExtendedAttributes(filterDuplicateExtendedAttributes(getExtendedAttributes(this.fileFullPathText .getText())))); } } public void selectionChanged(SelectionChangedEvent event) { // TODO Auto-generated method stub } /** * 过滤掉配置文件里有的ExtendedAttribute */ private ExtendedAttributes filterConfigExtendedAttributes( ExtendedAttributes parent) { if (parent != null) { ExtendedAttributes result = (ExtendedAttributes) parent.clone(); Set<String> set = WorkflowProjectUtils .getConfigExtendedAttributesName(); Iterator<ExtendedAttribute> extendedAttributeIt = result .toElements().iterator(); while (extendedAttributeIt.hasNext()) { ExtendedAttribute extendedAttribute = extendedAttributeIt .next(); if (set.contains(extendedAttribute.getName())) { // 删除这个ExtendedAttribute result.remove(extendedAttribute); } } return result; } return null; } /** * 过滤掉一个ExtendedAttributes重复的ExtendedAttribute */ private ExtendedAttributes filterDuplicateExtendedAttributes( ExtendedAttributes parent) { if (parent != null) { try { ArrayList<ExtendedAttribute> extendedAttributeList = parent .toElements(); Iterator<ExtendedAttribute> extendedAttributeIt = extendedAttributeList .iterator(); ExtendedAttributes extendedAttributes = (ExtendedAttributes) parent .clone(); extendedAttributes.clear(); while (extendedAttributeIt.hasNext()) { ExtendedAttribute extendedAttribute = extendedAttributeIt .next(); if (!extendedAttributes.contains(extendedAttribute)) { extendedAttributes.add(extendedAttribute); } } return extendedAttributes; } catch (Exception ex) { // TODO: handle exception ex.printStackTrace(); } } return null; } /** * 向一个ExtendedAttributes里添加另一个ExtendedAttributes的所有元素 */ private ExtendedAttributes addExtendedAttributes(ExtendedAttributes parent, ExtendedAttributes children) { if (children != null) { ArrayList<ExtendedAttribute> extendedAttributeList = children .toElements(); Iterator<ExtendedAttribute> extendedAttributeIt = extendedAttributeList .iterator(); while (extendedAttributeIt.hasNext()) { parent.add(extendedAttributeIt.next()); } } return parent; } /** * 根据文件路径得到所有的扩展属性 * * @param fileFullPath * @return */ public ExtendedAttributes getExtendedAttributes(String fileFullPath) { ExtendedAttributes parent = null; if (fileFullPath.endsWith("xpdl")) { Package pkg = XpdlUtils.loadPageckFromFile(fileFullPath, null); if (pkg == null || pkg.equals("")) { return null; } // 如果是包的扩展属性 if (getSourceExtendedAttributes().getParent() instanceof Package) { parent = (ExtendedAttributes) pkg.getExtendedAttributes() .clone(); } // 如果是流程的扩展属性 if (getSourceExtendedAttributes().getParent() instanceof WorkflowProcess) { WorkflowProcesses workflowProcesses = pkg .getWorkflowProcesses(); ArrayList<WorkflowProcess> arrayList = workflowProcesses .toElements(); Iterator<WorkflowProcess> it = arrayList.iterator(); ExtendedAttributes workflowProcessParent = null; while (it.hasNext()) { WorkflowProcess workflowProcess = it.next(); ExtendedAttributes extendedAttributes = workflowProcess .getExtendedAttributes(); if (workflowProcessParent == null) { workflowProcessParent = (ExtendedAttributes) extendedAttributes .clone(); } else { // workflowProcessParent.add(extendedAttributes); addExtendedAttributes(workflowProcessParent, extendedAttributes); } } if (workflowProcessParent != null) { parent = (ExtendedAttributes) workflowProcessParent.clone(); } } // 如果是活动的扩展属性 if (getSourceExtendedAttributes().getParent() instanceof Activity) { WorkflowProcesses workflowProcesses = pkg .getWorkflowProcesses(); ArrayList<WorkflowProcess> arrayList = workflowProcesses .toElements(); Iterator<WorkflowProcess> it = arrayList.iterator(); ExtendedAttributes workflowProcessParent = null; while (it.hasNext()) { WorkflowProcess workflowProcess = it.next(); Activities activities = workflowProcess.getActivities(); ArrayList<Activity> activityArrayList = activities .toElements(); Iterator<Activity> activityIt = activityArrayList .iterator(); ExtendedAttributes activityParent = null; while (activityIt.hasNext()) { Activity activity = activityIt.next(); ExtendedAttributes extendedAttributes = activity .getExtendedAttributes(); if (activityParent == null) { activityParent = (ExtendedAttributes) extendedAttributes .clone(); } else { addExtendedAttributes(activityParent, extendedAttributes); } } if (workflowProcessParent == null) { if (activityParent != null) { workflowProcessParent = (ExtendedAttributes) activityParent .clone(); } } else { addExtendedAttributes(workflowProcessParent, activityParent); } } if (workflowProcessParent != null) { parent = (ExtendedAttributes) workflowProcessParent.clone(); } } // 如果是转移的扩展属性 if (getSourceExtendedAttributes().getParent() instanceof Transition) { WorkflowProcesses workflowProcesses = pkg .getWorkflowProcesses(); ArrayList<WorkflowProcess> arrayList = workflowProcesses .toElements(); Iterator<WorkflowProcess> it = arrayList.iterator(); ExtendedAttributes workflowProcessParent = null; while (it.hasNext()) { WorkflowProcess workflowProcess = it.next(); Transitions transitions = workflowProcess.getTransitions(); ArrayList<Transition> transitionArrayList = transitions .toElements(); Iterator<Transition> transitionIt = transitionArrayList .iterator(); ExtendedAttributes transitionParent = null; while (transitionIt.hasNext()) { Transition transition = transitionIt.next(); ExtendedAttributes extendedAttributes = transition .getExtendedAttributes(); if (transitionParent == null) { transitionParent = (ExtendedAttributes) extendedAttributes .clone(); } else { addExtendedAttributes(transitionParent, extendedAttributes); } } if (workflowProcessParent == null) { if (transitionParent != null) { workflowProcessParent = (ExtendedAttributes) transitionParent .clone(); } } else { addExtendedAttributes(workflowProcessParent, transitionParent); } } if (workflowProcessParent != null) { parent = (ExtendedAttributes) workflowProcessParent.clone(); } } // 如果是参与者的扩展属性 if (getSourceExtendedAttributes().getParent() instanceof Participant) { WorkflowProcesses workflowProcesses = pkg .getWorkflowProcesses(); ArrayList<WorkflowProcess> arrayList = workflowProcesses .toElements(); Iterator<WorkflowProcess> it = arrayList.iterator(); ExtendedAttributes workflowProcessParent = null; while (it.hasNext()) { WorkflowProcess workflowProcess = it.next(); Participants participants = workflowProcess .getParticipants(); ArrayList<Participant> participantArrayList = participants .toElements(); Iterator<Participant> participantIt = participantArrayList .iterator(); ExtendedAttributes participantParent = null; while (participantIt.hasNext()) { Participant participant = participantIt.next(); ExtendedAttributes extendedAttributes = participant .getExtendedAttributes(); if (participantParent == null) { participantParent = (ExtendedAttributes) extendedAttributes .clone(); } else { addExtendedAttributes(participantParent, extendedAttributes); } } if (workflowProcessParent == null) { if (participantParent != null) { workflowProcessParent = (ExtendedAttributes) participantParent .clone(); } } else { addExtendedAttributes(workflowProcessParent, participantParent); } } if (workflowProcessParent != null) { parent = (ExtendedAttributes) workflowProcessParent.clone(); } } // 如果是数据类型的扩展属性 if (getSourceExtendedAttributes().getParent() instanceof DataField) { // 如果是包级的数据类型 if (getSourceExtendedAttributes().getParent().getParent() .getParent() instanceof Package) { DataFields dataFields = pkg.getDataFields(); ArrayList<DataField> dataFieldArrayList = dataFields .toElements(); Iterator<DataField> dataFieldIt = dataFieldArrayList .iterator(); ExtendedAttributes dataFieldParent = null; while (dataFieldIt.hasNext()) { DataField dataField = dataFieldIt.next(); ExtendedAttributes extendedAttributes = dataField .getExtendedAttributes(); if (dataFieldParent == null) { dataFieldParent = (ExtendedAttributes) extendedAttributes .clone(); } else { addExtendedAttributes(dataFieldParent, extendedAttributes); } } if (dataFieldParent != null) { parent = (ExtendedAttributes) dataFieldParent.clone(); } } // 如果是流程级的数据类型 if (getSourceExtendedAttributes().getParent().getParent() .getParent() instanceof WorkflowProcess) { WorkflowProcesses workflowProcesses = pkg .getWorkflowProcesses(); ArrayList<WorkflowProcess> arrayList = workflowProcesses .toElements(); Iterator<WorkflowProcess> it = arrayList.iterator(); ExtendedAttributes workflowProcessParent = null; while (it.hasNext()) { WorkflowProcess workflowProcess = it.next(); DataFields dataFields = workflowProcess.getDataFields(); ArrayList<DataField> dataFieldArrayList = dataFields .toElements(); Iterator<DataField> dataFieldIt = dataFieldArrayList .iterator(); ExtendedAttributes dataFieldParent = null; while (dataFieldIt.hasNext()) { DataField dataField = dataFieldIt.next(); ExtendedAttributes extendedAttributes = dataField .getExtendedAttributes(); if (dataFieldParent == null) { dataFieldParent = (ExtendedAttributes) extendedAttributes .clone(); } else { addExtendedAttributes(dataFieldParent, extendedAttributes); } } if (workflowProcessParent == null) { if (dataFieldParent != null) { workflowProcessParent = (ExtendedAttributes) dataFieldParent .clone(); } } else { addExtendedAttributes(workflowProcessParent, dataFieldParent); } } if (workflowProcessParent != null) { parent = (ExtendedAttributes) workflowProcessParent .clone(); } } } } // 如果打开的是xml文件 if (fileFullPath.endsWith("xml")) { try { parent = (ExtendedAttributes) this.sourceExtendedAttributes .clone(); parent.clear(); SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileFullPath)); Node root = document .selectSingleNode("//beans/bean/property/props"); List<Element> list = root.selectNodes(".//prop"); Iterator<Element> it = list.iterator(); while (it.hasNext()) { Element element = it.next(); Attribute attribute = element.attribute("key"); String value = attribute.getValue(); ExtendedAttribute extendedAttribute = new ExtendedAttribute( parent); extendedAttribute.setName("URL"); extendedAttribute.setVValue(value.substring(1));// 去掉开始的斜杠 parent.add(extendedAttribute); } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return parent; } @Override protected void dialogChanged() { // TODO Auto-generated method stub } public void setProjectPath(String projectPath) { // TODO Auto-generated method stub this.projectPath = projectPath; } public String getProjectPath() { return projectPath; } }
评论
1 楼
zhaofangtao
2009-05-20
hi
你这个示例是在 3.2还是3.4的??
我的3.4里怎么没有
org.eclipse.jface.viewers.CellEditor;
org.eclipse.jface.viewers.ICellModifier;
呢?
你这个示例是在 3.2还是3.4的??
我的3.4里怎么没有
org.eclipse.jface.viewers.CellEditor;
org.eclipse.jface.viewers.ICellModifier;
呢?
发表评论
-
使用Ant 构建Eclipse RCP Product
2009-03-02 14:04 6233Keywords:rcp打包,headless build , ... -
rcp里右键菜单new组里添加自己的向导的办法
2009-01-09 10:48 1850plugin.xml这样写扩展点就可以了: <exten ... -
RCP PackageExplorer里不能显示工程图片的问题解决
2008-12-24 15:11 2514import java.net.URL; import or ... -
通过系统文件路径取得插件工程路径的方法
2008-12-15 10:15 1171/** * 得到当前编辑器所属工程的绝对路径 */ pub ... -
插件开发取路径问题
2008-11-25 09:40 11411.得到runtime workspace目录的绝对路径 S ... -
第四章 GEF框架(2)
2008-03-13 16:38 1171From:http://www.blog.edu.cn/use ... -
第四章 GEF框架(1)
2008-03-13 16:36 1891From:http://www.blog.edu.cn/use ... -
第三章 Draw2D简介
2008-03-13 16:34 1908From:http://www.blog.edu.cn/use ... -
第二章 主类和主界面类的实现(2)
2008-03-13 16:33 1671From:http://www.blog.edu.cn/use ... -
第二章 主类和主界面类的实现(1)
2008-03-13 16:30 1424From:http://www.blog.edu.cn/use ... -
第一章 创建一个GEF Editor插件
2008-03-13 16:26 1979From:http://www.blog.edu.cn/use ... -
SWT API
2007-09-15 20:47 1844SWT API,网上找的。
相关推荐
SWT的MessageBox对话框 SWT有不同类型的对话框。有些对话框具有特殊的属性。 MessageBox messageBox = new MessageBox(shell, SWT.OK|SWT.CANCEL); if (messageBox.open() == SWT.OK) { System.out.println(...
SWT或Applet打开Office文件,实现打开本地文件,已开发在服务器端实现,具体可以私聊
主要讲述了Jface向导式对话框的编写及代码。能够正确的运行在Eclipse中,希望能帮有所帮助
java SWT 对话框 table 添加 删除 修改 查看信息 menu栏操作 右键点击查看
用Eclipse SWT 实现的动态背景对话框的源码,动态背景为黑客帝国字符雨效果,极为炫酷。高端大气且上档次。
swt、jface对话框
第4章 使用基本控件与对话框.pdf 第4章 使用基本控件与对话框.pdf eclipse插件开发笔记,使用基本控件与对话框
使Excel嵌入到SWT窗口中 使用的Eclipse版本:3.3.1 使用的jdk版本:5.0
在swt开发中实现的一个小小的日历对话框,与文本框共同使用的,可以供大家参考,
这是我找到的最全的SWT示例,即使在官方网站上也非常难找,示例包括以下内容:SWT模式窗体,SWT浏览器,SWT树,SWT工具条,SWT画图工具,SWT图形,SWT各种布局,SWT剪贴板,SWT快捷键,SWT菜单,SWT文本编辑器,SWT...
SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置
基于SWT的视频播放器,具备视频打开视频功能
64位windows操作系统使用的SWT库
SWT 选择对话框 该项目为 SWT 实现了一个对话框,用户可以在其中选择多个选项之一。 它的灵感来自于提供的 DialogBox。 与其实现相反,该项目提供的对话框使用各自平台的本机小部件,并且支持键盘交互。 例子 此基本...
swt工具文档 swt工具文档 swt工具文档 swt工具文档 swt工具文档 swt工具文档
SWT examples,SWT官方例子:http://www.eclipse.org/swt/examples.php 该页面所要下载的例子 其中,swt的例子在\plugins\org.eclipse.swt.examples.source_3.7.0.v3740f.jar中
下载编译的SWT库,版本号4.911,包含多个版本: org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.gtk.linux.aarch64 org.eclipse.swt.gtk.linux.arm org.eclipse.swt.gtk.linux.ppc64le org.eclipse.swt.gtk....
SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法
swt 基础教程 swt 基础教程 swt 基础教程swt 基础教程swt 基础教程
org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt....