`
longgangbai
  • 浏览: 7331280 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SWT开发的学习

阅读更多

复习以前使用的技术

package tcprcp;


import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.eclipse.ui.dialogs.PropertyPage;
import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog;

/**
 *
 * @author longgangbai
 *
 */
public abstract class PreferenceAndPropertyPage extends PropertyPage implements
 IWorkbenchPropertyPage {
    private Button btnEnableProjectSettings;

    /**
     * (non-Javadoc)
     *
     * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
     */
    @Override
    protected final Control createContents(final Composite parent) {
 Composite container = new Composite(parent, SWT.NONE);
 container.setLayoutData(new GridData(GridData.FILL_BOTH));
 GridLayout layout = new GridLayout();
 layout.numColumns = 2;
 container.setLayout(layout);

 btnEnableProjectSettings = new Button(container, SWT.CHECK);
 btnEnableProjectSettings
  .setText(StingIDEMessages.PreferenceAndPropertyPage_enableProjectSettingsLabel);
 btnEnableProjectSettings.setLayoutData(new GridData(GridData.BEGINNING,
  GridData.CENTER, true, false, 1, 1));
 Link link = new Link(container, SWT.NONE);
 link
  .setText("<a>"
   + StingIDEMessages.PreferenceAndPropertyPage_configWorkspaceSettingsLink
   + "</a>");
 link.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER,
  false, false, 1, 1));

 Label label = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
 label.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true,
  false, 2, 1));

 final Composite comp = new Composite(container, SWT.NONE);
 comp.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
  true, 2, 1));
 comp.setLayout(new GridLayout());
 createCustomContents(comp);
 setEnabled(comp, false);

 btnEnableProjectSettings.addSelectionListener(new SelectionAdapter() {
     /**
      * (non-Javadoc)
      *
      * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
      */
     @Override
     public void widgetSelected(SelectionEvent e) {
  boolean selected = btnEnableProjectSettings.getSelection();
  setEnabled(comp, selected);
     }
 });
 link.addSelectionListener(new SelectionAdapter() {
     /**
      * (non-Javadoc)
      *
      * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
      */
     @Override
     public void widgetSelected(SelectionEvent e) {
  String id = getRelatedPreferencePageId();
  WorkbenchPreferenceDialog dialog = WorkbenchPreferenceDialog
   .createDialogOn(parent.getShell(), id);
  dialog.showOnly(new String[] { id });
  dialog.open();
     }
 });
 return container;
    }

    /**
     * 创建组件
     *
     * @param parent
     */
    protected abstract void createCustomContents(Composite parent);

    /**
     * 获取相关的首选项页面ID
     *
     * @return
     */
    protected abstract String getRelatedPreferencePageId();

    /**
     * 获取项目设置是否已经被启用
     *
     * @return
     */
    protected boolean isProjectSettingsEnabled() {
 return btnEnableProjectSettings.getSelection();
    }

    /**
     * 设置可用性
     *
     * @param comp
     * @param selected
     */
    private void setEnabled(final Composite comp, boolean selected) {
 comp.setEnabled(selected);
 Control[] controls = comp.getChildren();
 if (controls != null) {
     for (Control control : controls) {
  control.setEnabled(selected);
  if (control instanceof Composite) {
      setEnabled((Composite) control, selected);
  }
     }
 }
    }

    /**
     * 设置是否启用项目设置
     *
     * @param enabled
     */
    protected final void setEnableProjectSettings(boolean enabled) {
 btnEnableProjectSettings.setSelection(enabled);
    }
}

分享到:
评论

相关推荐

    swt 开发学习

    在SWT开发学习中,首先需要理解SWT的基本概念和架构。SWT基于事件驱动模型,通过监听用户的交互操作来更新界面。它的核心类包括Display、Shell、Composite、Widget等,这些类构成了SWT的基础框架。Display代表整个...

    SWT编程开发学习资料

    在"SWT编程开发学习资料"中,你可以期待获取关于以下几个方面的深入理解和实践指导: 1. **SWT基础知识**:SWT提供了一系列控件,如按钮、文本框、列表、树、表格等,以及布局管理器,如FillLayout、GridLayout、 ...

    swt开发包,eclipse

    标题"swt开发包"暗示了这是用于开发SWT应用的资源集合。这个压缩包可能包含了SWT库的jar文件,如`swt.jar`和`swt-debug.jar`,它们分别提供了SWT的标准版本和调试版本。开发者通常会根据目标平台选择合适的SWT库,...

    SWT开发手册.zip

    本SWT开发手册将深入讲解如何使用SWT中的基本控件,如按钮、文本和标签,以创建功能丰富的GUI应用。以下是对这些关键控件的详细介绍: 1. **按钮(Button)**:SWT提供了几种不同类型的按钮,包括普通按钮(Button)...

    swt入门学习资料

    总的来说,SWT 是 Java GUI 开发的一个强大选择,尤其适合那些需要原生外观和高性能的应用。对于初学者来说,理解 SWT 的基本概念、组件体系结构以及如何设置和运行环境是入门的关键。通过学习 SWT,开发者可以创建...

    SWT开发

    【标题】:“SWT开发”涉及的是使用Standard Widget Toolkit(SWT)进行图形用户界面(GUI)编程的知识点。SWT是Eclipse基金会提供的一种开源Java库,它为开发者提供了与操作系统原生UI组件交互的能力,使得Java应用...

    swt 开发实例

    在"基于SWT Browser与Freemarker的Java桌面开发"实例中,我们将探讨如何结合这两种技术来构建现代、动态的Java桌面应用。SWT Browser组件允许开发者在Java应用中集成Web浏览器功能,这样就可以利用HTML、CSS和...

    SWT开发教程1

    在本教程中,我们将深入学习SWT开发的基本概念和实践技巧。 1. SWT简介: SWT是由Eclipse基金会维护的,它弥补了Java AWT和Swing在与本地系统交互方面的不足。SWT提供了各种组件,如按钮、文本框、列表、树视图等,...

    使用swt开发的程序用于web上

    在描述中提到,现在可以通过特定的方法将SWT开发的程序应用于Web环境,这通常涉及到技术上的转换和适应。 将SWT程序移植到Web环境,意味着我们需要将桌面应用的特性转换为适合浏览器运行的代码。一种可能的方法是...

    SWT开发所需jar包

    标题 "SWT开发所需jar包" 指的是在Java编程环境中使用SWT(Standard Widget Toolkit)库进行GUI(图形用户界面)开发时所需的Java档案(jar)文件。SWT是Eclipse基金会的一个项目,它提供了一组原生的GUI组件,使...

    SWT相关学习资料(多个pdf文档)

    总的来说,这些学习资料提供了全面而深入的SWT学习路径,从基础到进阶,从理论到实践,对于想要提升Java GUI开发技能,特别是涉及Eclipse RCP开发的人员来说,是一份宝贵的资源。通过系统学习,开发者不仅可以掌握...

    SWT/Jface 开发入门指南

    SWT/Jface开发入门指南是一篇专为初学者编写的教程,旨在帮助他们快速搭建开发环境并掌握使用SWT和JFace编写图形化应用程序的基本技巧。以下是该教程所涵盖的关键知识点: 1. **SWT和JFace简介**: - SWT全称...

    SWT开发环境配置与项目发布

    SWT(Standard Widget Toolkit)是Java编程中用于创建桌面应用程序的一种图形用户界面(GUI)工具包..."SWT开发环境与发布.doc"文档和"Demo"文件可能包含了详细的步骤说明和示例代码,建议结合这些资源进行学习和实践。

    Eclipse SWT开发点滴

    ### Eclipse SWT开发点滴 #### 一、第三方包的引用 在使用Eclipse进行SWT开发时,经常会遇到需要引入第三方库的情况...通过以上知识点的学习,开发者可以更好地理解和掌握Eclipse SWT开发过程中的关键点和技术细节。

    eclipse开发SWT应用

    **Eclipse开发SWT应用详解** SWT(Standard Widget Toolkit)是IBM开发的一款用于Java GUI编程的开源库,它是JFC/Swing之外的一个选择。SWT设计的目标是提供更高效、更接近本机UI的Java图形用户界面。Eclipse IDE就...

    SWT开发的浏览器(Java)--源代码

    总的来说,这个SWT开发的浏览器项目为我们提供了一个学习和实践如何使用SWT创建复杂应用的好例子。通过对源代码的研究,我们可以深入了解SWT控件的使用,事件驱动的编程模式,以及如何结合Java和SWT实现跨平台的应用...

    SWT开发组件demo

    本包“SWT开发组件demo”聚焦于SWT组件的使用,通过示例代码和详细说明,帮助开发者更好地理解和应用这些组件。 1. **基础组件**:SWT的基础组件包括按钮(Button)、文本框(Text)、单选按钮(RadioButton)、复...

    swt3.7的最新开发帮助文档

    通过阅读"SWT3.7 doc"压缩包内的文档,开发者可以深入学习这些概念,并获得关于如何在实际项目中应用它们的指导。这份文档对于想要利用SWT3.7和WindowsBuilder3.7开发Java GUI应用的程序员来说,是一份极其宝贵的...

    SWT和JFace开发实例

    SWT(Standard Widget Toolkit)和JFace是Java中用于创建图形用户界面(GUI)的库,主要用于Eclipse插件开发和独立应用的构建。这两个库是Eclipse平台的重要组成部分,提供了一种高效、灵活的方式来创建丰富的桌面...

    JAVA swt 开发第二部分

    Java SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一种强大的图形用户界面(GUI)工具包。...通过学习这一系列教程,开发者可以熟练地利用SWT创建出功能丰富、性能优秀的Java桌面应用程序。

Global site tag (gtag.js) - Google Analytics