Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Custom Components

/*******************************************************************************  * All Right Reserved. Copyright (c) 1998, 2004 Jackwind Li Guojie  *   * Created on 2004-6-14 10:55:42 by JACK $Id$  *    ******************************************************************************/ import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.forms.HyperlinkGroup; import org.eclipse.ui.forms.events.ExpansionAdapter; import org.eclipse.ui.forms.events.ExpansionEvent; import org.eclipse.ui.forms.events.HyperlinkAdapter; import org.eclipse.ui.forms.events.HyperlinkEvent; import org.eclipse.ui.forms.events.IHyperlinkListener; import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.eclipse.ui.forms.widgets.Form; import org.eclipse.ui.forms.widgets.FormText; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Hyperlink; import org.eclipse.ui.forms.widgets.ImageHyperlink; import org.eclipse.ui.forms.widgets.Section; import org.eclipse.ui.forms.widgets.TableWrapLayout; public class CustomWidgets extends ApplicationWindow {   FormToolkit toolkit;   Form form;   /**    * @param parentShell    */   public CustomWidgets(Shell parentShell) {     super(parentShell);   }      private void demoSections() {     form.getBody().setLayout(new TableWrapLayout());          Section section = toolkit.createSection(form.getBody(), Section.DESCRIPTION |          Section.TREE_NODE | Section.EXPANDED);          section.setText("This is the title");     toolkit.createCompositeSeparator(section);     section.setDescription("-= This is a description -=");          FormText text = toolkit.createFormText(section, false);     text.setText(       "This is a long text. The user can show or hide this text "         + "by expanding or collapsing the expandable composite.",       false,       false);     section.setClient(text);   }     private void demoExpandableComposite() {     form.getBody().setLayout(new TableWrapLayout());     ExpandableComposite ec1 =       toolkit.createExpandableComposite(         form.getBody(),         ExpandableComposite.TREE_NODE | ExpandableComposite.EXPANDED);     ec1.setText("This is the title");     FormText text = toolkit.createFormText(ec1, false);     text.setText(       "This is a long text. The user can show or hide this text "         + "by expanding or collapsing the expandable composite.",       false,       false);     ec1.setClient(text);     ec1.addExpansionListener(new ExpansionAdapter() {       public void expansionStateChanged(ExpansionEvent e) {         // resizes the application window.         getShell().pack(true);       }     });   }   private void demoFormTextXML() {     form.getBody().setLayout(new TableWrapLayout());     FormText text = toolkit.createFormText(form.getBody(), true);     Image image = new Image(form.getDisplay(), "icons/eclipse0.gif");     text.setImage("eclipse", image);     text.setText(       "<form>"         + "<p><img href=\"eclipse\"/> Eclipse Projects: </p>"         + "<li><b>Platform</b> - Eclipse frameworks</li>"         + "<li><b>JDT</b> - Java development tools</li>"         + "<li><b>PDE</b> - Plug-in development environment</li>"         + "</form>",       true,       false);   }   private void demoFormTextNormal() {     form.getBody().setLayout(new TableWrapLayout());     FormText text = toolkit.createFormText(form.getBody(), true);     // text.setLayoutData(new TableWrapData(TableWrapData.FILL));     text.setText(       "Eclipse is a kind of universal tool platform - an open extensible "         + "IDE for anything and nothing in particular. For more details, please "         + "visit http://www.eclipse.org for more details.",       false,       false);   }   private void demoFormTextURL() {     form.getBody().setLayout(new TableWrapLayout());     FormText text = toolkit.createFormText(form.getBody(), true);     HyperlinkGroup group = new HyperlinkGroup(form.getDisplay());     group.setForeground(form.getDisplay().getSystemColor(SWT.COLOR_BLUE));     group.setActiveForeground(       form.getDisplay().getSystemColor(SWT.COLOR_BLUE));     text.setHyperlinkSettings(group);     text.setText(       "Eclipse is a kind of universal tool platform - an open extensible "         + "IDE for anything and nothing in particular. For more details, please "         + "visit http://www.eclipse.org web site.",       false,       true);     text.addHyperlinkListener(new HyperlinkAdapter() {       public void linkActivated(HyperlinkEvent e) {         System.out.println("Link activated: " + e.getHref());       }     });   }   private void demoHyperlinks() {     form.getBody().setLayout(new GridLayout());     Hyperlink hyperlink =       toolkit.createHyperlink(         form.getBody(),         "This is a hyperlink to Eclipse.org",         SWT.NULL);     hyperlink.setHref("http://www.eclipse.org");     hyperlink.setForeground(       getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE));     hyperlink.addHyperlinkListener(new IHyperlinkListener() {       public void linkEntered(HyperlinkEvent e) {         System.out.println("Mouse entered.");       }       public void linkExited(HyperlinkEvent e) {         System.out.println("Mouse left.");       }       public void linkActivated(HyperlinkEvent e) {         System.out.println("Hyperlink activated.");         System.out.println("HREF = " + e.getHref());       }     });     ImageHyperlink imageHyperlink =       toolkit.createImageHyperlink(form.getBody(), SWT.NULL);     imageHyperlink.setText("This is an image hyperlink.");     imageHyperlink.setForeground(       getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE));     imageHyperlink.setImage(       new Image(getShell().getDisplay(), "icons/eclipse0.gif"));     imageHyperlink.addHyperlinkListener(new HyperlinkAdapter() {       public void linkActivated(HyperlinkEvent e) {         System.out.println("Image hyperlink activated.");       }     });     HyperlinkGroup group = new HyperlinkGroup(getShell().getDisplay());     group.add(hyperlink);     group.add(imageHyperlink);     group.setActiveBackground(       getShell().getDisplay().getSystemColor(SWT.COLOR_YELLOW));     group.setActiveForeground(       getShell().getDisplay().getSystemColor(SWT.COLOR_RED));     group.setForeground(       getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE));   }   /*    * (non-Javadoc)    *     * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)    */   protected Control createContents(Composite parent) {     Composite composite = new Composite(parent, SWT.NULL);     composite.setLayout(new FillLayout());     // Sets up the toolkit.     toolkit = new FormToolkit(getShell().getDisplay());     // Creates a form instance.     form = toolkit.createForm(composite);     form.setLayoutData(new GridData(GridData.FILL_BOTH));     // Sets title.     form.setText("Custom Form Widgets Demo");     // demoHyperlinks();          // demoFormTextNormal();     // demoFormTextURL();     // demoFormTextXML();     // demoExpandableComposite();     demoSections();     return composite;   }   public static void main(String[] args) {     CustomWidgets win = new CustomWidgets(null);     win.setBlockOnOpen(true);     win.open();   } }