Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Demonstrates SashForm Advanced

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.com) //Robert Harris (rbrt_harris@yahoo.com) import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**  * This class demonstrates SashForm  */ public class SashFormAdvanced {   /**    * Runs the application    */   public void run() {     Display display = new Display();     Shell shell = new Shell(display);     shell.setText("SashForm Advanced");     createContents(shell);     shell.open();     while (!shell.isDisposed()) {       if (!display.readAndDispatch()) {         display.sleep();       }     }     display.dispose();   }   /**    * Creates the main window's contents    *     * @param parent the parent window    */   private void createContents(Composite parent) {     // Our layout will have a row of buttons, and     // then a SashForm below it.     parent.setLayout(new GridLayout(1, false));     // Create the row of buttons     Composite buttonBar = new Composite(parent, SWT.NONE);     buttonBar.setLayout(new RowLayout());     Button flip = new Button(buttonBar, SWT.PUSH);     flip.setText("Switch Orientation");     Button weights = new Button(buttonBar, SWT.PUSH);     weights.setText("Restore Weights");     // Create the SashForm     Composite sash = new Composite(parent, SWT.NONE);     sash.setLayout(new FillLayout());     sash.setLayoutData(new GridData(GridData.FILL_BOTH));     final SashForm sashForm = new SashForm(sash, SWT.HORIZONTAL);     // Change the width of the sashes     sashForm.SASH_WIDTH = 20;     // Change the color used to paint the sashes     sashForm.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GREEN));     // Create the buttons and their event handlers     final Button one = new Button(sashForm, SWT.PUSH);     one.setText("One");     one.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         maximizeHelper(one, sashForm);       }     });     final Button two = new Button(sashForm, SWT.PUSH);     two.setText("Two");     two.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         maximizeHelper(two, sashForm);       }     });     final Button three = new Button(sashForm, SWT.PUSH);     three.setText("Three");     three.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         maximizeHelper(three, sashForm);       }     });     // Set the relative weights for the buttons     sashForm.setWeights(new int[] { 1, 2, 3});     // Add the Switch Orientation functionality     flip.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         switch (sashForm.getOrientation()) {         case SWT.HORIZONTAL:           sashForm.setOrientation(SWT.VERTICAL);           break;         case SWT.VERTICAL:           sashForm.setOrientation(SWT.HORIZONTAL);           break;         }       }     });     // Add the Restore Weights functionality     weights.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         sashForm.setWeights(new int[] { 1, 2, 3});       }     });   }   /**    * Helper method for our maximize behavior. If the passed control is already    * maximized, restore it. Otherwise, maximize it    *     * @param control the control to maximize or restore    * @param sashForm the parent SashForm    */   private void maximizeHelper(Control control, SashForm sashForm) {     // See if the control is already maximized     if (control == sashForm.getMaximizedControl()) {       // Already maximized; restore it       sashForm.setMaximizedControl(null);     } else {       // Not yet maximized, so maximize it       sashForm.setMaximizedControl(control);     }   }   /**    * The application entry point    *     * @param args the command line arguments    */   public static void main(String[] args) {     new SashFormAdvanced().run();   } }