/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.ui.forms; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.jboss.tools.common.model.ui.widgets.IWidgetSettings; import org.jboss.tools.common.model.ui.widgets.Split; public class SplitFormContainer extends DefaultFormContainer { int style; //WARNING : never used private IForm firstForm; private IForm secondForm; private Control control; public SplitFormContainer() { setLayoutData(new GridData(GridData.FILL_BOTH)); } public SplitFormContainer(int style) { this.style = style; } public SplitFormContainer(IForm firstForm, IForm secondForm, int style) { this.style = style; this.firstForm = firstForm; this.secondForm = secondForm; } public SplitFormContainer(IForm firstForm, IForm secondForm) { this.style = SWT.HORIZONTAL; this.firstForm = firstForm; this.secondForm = secondForm; } public void dispose() { super.dispose(); if (firstForm!=null) firstForm.dispose(); firstForm = null; if (secondForm!=null) secondForm.dispose(); secondForm = null; if (control!=null && !control.isDisposed()) control.dispose(); control = null; } public void setForm(IForm form) { this.setFirstForm(form); } public IForm getForm() { return this.getFirstForm(); } public void setExpandable(boolean expandable) { } public boolean isExpandable() { return false; } public void commitChanges(boolean onSave) { } public Control createFirstForm(Composite parent, IWidgetSettings settings) { return firstForm.createControl(parent, settings); } public Control createSecondForm(Composite parent, IWidgetSettings settings) { return secondForm.createControl(parent, settings); } public Control createControl(Composite parent, IWidgetSettings settings) { Composite main = new Composite(parent, settings.getStyle("Composite.Style")); //$NON-NLS-1$ settings.setupControl(main); main.setLayout(getLayout()); main.setLayoutData(getLayoutData()); Split composite = new Split(main, SWT.HORIZONTAL); GridData gd; // 1 Composite fistFormComposite = new Composite(composite, settings.getStyle("Composite.Style")); //$NON-NLS-1$ settings.setupControl(fistFormComposite); fistFormComposite.setLayout(getLayout()); gd = new GridData(GridData.FILL_BOTH); fistFormComposite.setLayoutData(gd); Control firstFormControl = this.createFirstForm(fistFormComposite, settings); gd = new GridData(GridData.FILL_BOTH); firstFormControl.setLayoutData(gd); // 2 Composite secondFormComposite = new Composite(composite, settings.getStyle("Composite.Style")); //$NON-NLS-1$ settings.setupControl(secondFormComposite); secondFormComposite.setLayout(getLayout()); gd = new GridData(GridData.FILL_BOTH); secondFormComposite.setLayoutData(gd); Control secondFormControl = this.createSecondForm(secondFormComposite, settings); gd = new GridData(GridData.FILL_BOTH); secondFormControl.setLayoutData(gd); composite.setWeights(new int[]{30, 70}); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); control = main; return control; } public boolean doGlobalAction(String actionId) { // as temp notify all forms boolean result = Boolean.FALSE.booleanValue(); if (firstForm!=null) result &= firstForm.doGlobalAction(actionId); if (secondForm!=null) result &= secondForm.doGlobalAction(actionId); return result; } public void expandTo(Object object) { } public Control getControl() { return control; } public Color getHeadingBackground() { return null; } public Color getHeadingForeground() { return null; } public Image getHeadingImage() { return null; } public String getHeadingText() { return "SplitSection"; } public void initialize(Object model) { } public boolean isHeadingVisible() { return false; } public void setFocus() { } public void setHeadingBackground(Color newHeadingBackground) { } public void setHeadingForeground(Color newHeadingForeground) { } public void setHeadingImage(Image headingImage) { } public void setHeadingVisible(boolean newHeadingVisible) { } public void setHeadingText(String heading) { } public void update() { } public static void main(String[] args) { } public IForm getFirstForm() { return firstForm; } public IForm getSecondForm() { return secondForm; } public void setFirstForm(IForm form) { firstForm = form; } public void setSecondForm(IForm form) { secondForm = form; } public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (this.firstForm!=null) { this.firstForm.setEnabled(enabled); } if (this.secondForm!=null) { this.secondForm.setEnabled(enabled); } } }