📄 tab.java
字号:
/* Create a two column page with a SashForm*/ tabFolderPage = new Composite (tabFolder, SWT.NULL); tabFolderPage.setLayout (new FillLayout ()); sash = new SashForm (tabFolderPage, SWT.HORIZONTAL); /* Create the "layout" and "control" columns */ createLayoutGroup (); createControlGroup (); return tabFolderPage; } /** * Creates the TableEditor with a Text in the given column * of the table. */ void createTextEditor (Text text, TableEditor textEditor, int column) { text.setFont (table.getFont ()); text.selectAll (); textEditor.horizontalAlignment = SWT.LEFT; textEditor.grabHorizontal = true; textEditor.setEditor (text, newItem, column); text.addTraverseListener(new TraverseListener() { public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_TAB_NEXT) { resetEditors (true); } if (e.detail == SWT.TRAVERSE_ESCAPE) { disposeEditors (); } } }); } /** * Disposes the editors without placing their contents * into the table. * Subclasses override this method. */ void disposeEditors () { } /** * Generates the code needed to produce the example layout. */ StringBuffer generateCode () { /* Make sure all information being entered is stored in the table */ resetEditors (); /* Get names for controls in the layout */ names = new String [children.length]; for (int i = 0; i < children.length; i++) { Control control = children [i]; String controlClass = control.getClass ().toString (); String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); names [i] = controlType.toLowerCase () + i; } /* Create StringBuffer containing the code */ StringBuffer code = new StringBuffer (); code.append ("import org.eclipse.swt.*;\n"); code.append ("import org.eclipse.swt.custom.*;\n"); code.append ("import org.eclipse.swt.graphics.*;\n"); code.append ("import org.eclipse.swt.layout.*;\n"); code.append ("import org.eclipse.swt.widgets.*;\n\n"); code.append ("public class MyLayout {\n"); code.append ("\tpublic static void main (String [] args) {\n"); code.append ("\t\tDisplay display = new Display ();\n"); code.append ("\t\tShell shell = new Shell (display);\n"); /* Get layout specific code */ code.append (generateLayoutCode ()); code.append ("\n\t\tshell.pack ();\n\t\tshell.open ();\n\n"); code.append ("\t\twhile (!shell.isDisposed ()) {\n"); code.append ("\t\t\tif (!display.readAndDispatch ())\n"); code.append ("\t\t\t\tdisplay.sleep ();\n\t\t}\n\t\tdisplay.dispose ();\n\t}\n}"); return code; } /** * Generates layout specific code for the example layout. * Subclasses override this method. */ StringBuffer generateLayoutCode () { return new StringBuffer (); } /** * Returns the StringBuffer for the code which will * create a child control. */ StringBuffer getChildCode (Control control, int i) { StringBuffer code = new StringBuffer (); /* Find the type of control */ String controlClass = control.getClass().toString (); String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); /* Find the style of the control */ String styleString; if (controlType.equals ("Button")) { styleString = "SWT.PUSH"; } else if (controlType.equals ("Text")) { styleString = "SWT.BORDER"; } else if (controlType.equals ("StyledText")) { styleString = "SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL"; } else if (controlType.equals ("Canvas") || controlType.equals ("Composite") || controlType.equals ("Table") || controlType.equals ("StyledText") || controlType.equals ("ToolBar") || controlType.equals ("Tree") || controlType.equals ("List")) { styleString = "SWT.BORDER"; } else styleString = "SWT.NONE"; /* Write out the control being declared */ code.append ("\n\t\t" + controlType + " " + names [i] + " = new " + controlType + " (shell, " + styleString + ");\n"); /* Add items to those controls that need items */ if (controlType.equals ("Combo") || controlType.equals ("List")) { code.append ("\t\t" + names [i] + ".setItems (new String [] {\"Item 1\", \"Item 2\", \"Item 2\"});\n"); } else if (controlType.equals ("Table")) { code.append ("\t\t" + names [i] + ".setLinesVisible (true);\n"); for (int j = 1; j < 3; j++) { code.append ("\t\tTableItem tableItem" + j + " = new TableItem (" + names [i] + ", SWT.NONE);\n"); code.append ("\t\ttableItem" + j + ".setText (\"Item" + j + "\");\n"); } } else if (controlType.equals ("Tree")) { for (int j = 1; j < 3; j++) { code.append ("\t\tTreeItem treeItem" + j + " = new TreeItem (" + names [i] + ", SWT.NONE);\n"); code.append ("\t\ttreeItem" + j + ".setText (\"Item" + j + "\");\n"); } } else if (controlType.equals ("ToolBar")) { for (int j = 1; j < 3; j++) { code.append ("\t\tToolItem toolItem" + j + " = new ToolItem (" + names [i] + ", SWT.NONE);\n"); code.append ("\t\ttoolItem" + j + ".setText (\"Item" + j + "\");\n"); } } else if (controlType.equals ("CoolBar")) { code.append ("\t\tToolBar coolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n"); code.append ("\t\tToolItem coolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); code.append ("\t\tcoolToolItem.setText (\"Item 1\");\n"); code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); code.append ("\t\tcoolToolItem.setText (\"Item 2\");\n"); code.append ("\t\tCoolItem coolItem1 = new CoolItem (" + names [i] + ", SWT.NONE);\n"); code.append ("\t\tcoolItem1.setControl (coolToolBar);\n"); code.append ("\t\tPoint size = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n"); code.append ("\t\tcoolItem1.setSize (coolItem1.computeSize (size.x, size.y));\n"); code.append ("\t\tcoolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n"); code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); code.append ("\t\tcoolToolItem.setText (\"Item 3\");\n"); code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); code.append ("\t\tcoolToolItem.setText (\"Item 4\");\n"); code.append ("\t\tCoolItem coolItem2 = new CoolItem (" + names [i] + ", SWT.NONE);\n"); code.append ("\t\tcoolItem2.setControl (coolToolBar);\n"); code.append ("\t\tsize = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n"); code.append ("\t\tcoolItem2.setSize (coolItem2.computeSize (size.x, size.y));\n"); code.append ("\t\t" + names [i] + ".setSize (" + names [i] + ".computeSize (SWT.DEFAULT, SWT.DEFAULT));\n"); } else if (controlType.equals ("ProgressBar")) { code.append ("\t\t" + names [i] + ".setSelection (50);\n"); } /* Set text for those controls that support it */ if (controlType.equals ("Button") || controlType.equals ("Combo") || controlType.equals ("Group") || controlType.equals ("Label") || controlType.equals ("StyledText") || controlType.equals ("Text")) { code.append ("\t\t" + names [i] + ".setText (\"" + names [i] + "\");\n"); } return code; } /** * Returns the layout data field names. * Subclasses override this method. */ String [] getLayoutDataFieldNames () { return new String [] {}; } /** * Gets the text for the tab folder item. * Subclasses override this method. */ String getTabText () { return ""; } /** * Refreshes the composite and draws all controls * in the layout example. */ void refreshLayoutComposite () { /* Remove children that are already layed out */ children = layoutComposite.getChildren (); for (int i = 0; i < children.length; i++) { children [i].dispose (); } /* Add all children listed in the table */ TableItem [] items = table.getItems (); children = new Control [items.length]; String [] itemValues = new String [] { LayoutExample.getResourceString ("Item",new String [] {"1"}), LayoutExample.getResourceString ("Item",new String [] {"2"}), LayoutExample.getResourceString ("Item",new String [] {"3"})}; for (int i = 0; i < items.length; i++) { String control = items [i].getText (1); if (control.equals ("Button")) { Button button = new Button (layoutComposite, SWT.PUSH); button.setText (LayoutExample.getResourceString ("Button_Index", new String [] {new Integer (i).toString ()})); children [i] = button; } else if (control.equals ("Canvas")) { Canvas canvas = new Canvas (layoutComposite, SWT.BORDER); children [i] = canvas; } else if (control.equals ("Combo")) { Combo combo = new Combo (layoutComposite, SWT.NONE); combo.setItems (itemValues); combo.setText (LayoutExample.getResourceString ("Combo_Index", new String [] {new Integer (i).toString ()})); children [i] = combo; } else if (control.equals ("Composite")) { Composite composite = new Composite (layoutComposite, SWT.BORDER); children [i] = composite; } else if (control.equals ("CoolBar")) { CoolBar coolBar = new CoolBar (layoutComposite, SWT.NONE); ToolBar toolBar = new ToolBar (coolBar, SWT.BORDER); ToolItem item = new ToolItem (toolBar, 0); item.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); item = new ToolItem (toolBar, 0); item.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); CoolItem coolItem1 = new CoolItem (coolBar, 0); coolItem1.setControl (toolBar); toolBar = new ToolBar (coolBar, SWT.BORDER); item = new ToolItem (toolBar, 0); item.setText (LayoutExample.getResourceString ("Item",new String [] {"3"})); item = new ToolItem (toolBar, 0); item.setText (LayoutExample.getResourceString ("Item",new String [] {"4"})); CoolItem coolItem2 = new CoolItem (coolBar, 0); coolItem2.setControl (toolBar); Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); coolItem1.setSize(coolItem1.computeSize (size.x, size.y)); coolItem2.setSize(coolItem2.computeSize (size.x, size.y)); coolBar.setSize(coolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT)); children [i] = coolBar; } else if (control.equals ("Group")) { Group group = new Group (layoutComposite, SWT.NONE); group.setText (LayoutExample.getResourceString ("Group_Index", new String [] {new Integer (i).toString ()})); children [i] = group; } else if (control.equals ("Label")) { Label label = new Label (layoutComposite, SWT.NONE); label.setText (LayoutExample.getResourceString ("Label_Index", new String [] {new Integer (i).toString ()})); children [i] = label; } else if (control.equals ("List")) { List list = new List (layoutComposite, SWT.BORDER); list.setItems (itemValues); children [i] = list; } else if (control.equals ("ProgressBar")) { ProgressBar progress = new ProgressBar (layoutComposite, SWT.NONE); progress.setSelection (50); children [i] = progress; } else if (control.equals ("Scale")) { Scale scale = new Scale (layoutComposite, SWT.NONE); children [i] = scale; } else if (control.equals ("Slider")) { Slider slider = new Slider (layoutComposite, SWT.NONE); children [i] = slider; } else if (control.equals ("StyledText")) { StyledText styledText = new StyledText (layoutComposite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); styledText.setText (LayoutExample.getResourceString ("StyledText_Index", new String [] {new Integer (i).toString ()})); children [i] = styledText; } else if (control.equals ("Table")) { Table table = new Table (layoutComposite, SWT.BORDER); table.setLinesVisible (true); TableItem item1 = new TableItem (table, 0); item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); TableItem item2 = new TableItem (table, 0); item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); children [i] = table; } else if (control.equals ("Text")) { Text text = new Text (layoutComposite, SWT.BORDER); text.setText (LayoutExample.getResourceString ("Text_Index", new String [] {new Integer (i).toString ()})); children [i] = text; } else if (control.equals ("ToolBar")) { ToolBar toolBar = new ToolBar (layoutComposite, SWT.BORDER); ToolItem item1 = new ToolItem (toolBar, 0); item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); ToolItem item2 = new ToolItem (toolBar, 0); item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); children [i] = toolBar; } else { Tree tree = new Tree (layoutComposite, SWT.BORDER); TreeItem item1 = new TreeItem (tree, 0); item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); TreeItem item2 = new TreeItem (tree, 0); item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); children [i] = tree; } } } /** * Takes information from TableEditors and stores it. * Subclasses override this method. */ void resetEditors () { resetEditors (false); } void resetEditors (boolean tab) { } /** * Sets the layout data for the children of the layout. * Subclasses override this method. */ void setLayoutData () { } /** * Sets the state of the layout. * Subclasses override this method. */ void setLayoutState () { }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -