Hi all,

I'm currently experiencing some problems with the nebula DateChooserCombo and 
different Windows Themes. The scenario a simple editor with different controls 
arranged by a gridlayout. When I switch between the windows theme "Windows XP" 
and "Windows Classic" (via display properties -> themes/appearance) the spacing 
between the regular SWT controls and the DateChooser combo behaves different 
(see screenshot: http://pellepelster.de/datechoosercombo.png or example code at 
the bottom). Is there anything I can do to avoid this behaviour?


Regards,

   Christian

---
example code:

package rcpspielwiese.editors;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.nebula.widgets.datechooser.DateChooserCombo;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.part.EditorPart;

import com.swtdesigner.ResourceManager;

public class TestEditor1 extends EditorPart {

        private ScrolledForm scrolledForm;
        private Text text;
        private Text text_1;
        private Text text_2;
        public static final String ID = "rcpspielwiese.editors.TestEditor1"; 
//$NON-NLS-1$

        /**
         * Create contents of the editor part
         * 
         * @param parent
         */
        @Override
        public void createPartControl(Composite parent) {
                final FormToolkit toolkit = ResourceManager.getFormToolkit();
                toolkit.adapt(parent);

                scrolledForm = toolkit.createScrolledForm(parent);
                toolkit.adapt(scrolledForm);
                toolkit.paintBordersFor(scrolledForm);
                final Composite body = scrolledForm.getBody();
                toolkit.adapt(body);
                final GridLayout gridLayout = new GridLayout();
                gridLayout.numColumns = 2;
                body.setLayout(gridLayout);
                toolkit.paintBordersFor(body);

                toolkit.createLabel(body, "Label1", SWT.NONE);

                text = toolkit.createText(body, null, SWT.NONE);
                text.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, 
false));

                toolkit.createLabel(body, "Label2", SWT.NONE);

                text_1 = toolkit.createText(body, null, SWT.NONE);
                text_1.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, 
false));

                toolkit.createLabel(body, "Label3", SWT.NONE);

                DateChooserCombo date1 = new DateChooserCombo(body, SWT.FLAT);
                date1.setData(FormToolkit.KEY_DRAW_BORDER, 
FormToolkit.TEXT_BORDER);
                toolkit.adapt(date1);
                toolkit.paintBordersFor(date1);
                date1.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, 
false));

                toolkit.createLabel(body, "Label4", SWT.NONE);

                DateChooserCombo date2 = new DateChooserCombo(body, SWT.FLAT);
                date2.setData(FormToolkit.KEY_DRAW_BORDER, 
FormToolkit.TEXT_BORDER);
                toolkit.adapt(date2);
                toolkit.paintBordersFor(date2);
                date2.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, 
false));

                toolkit.createLabel(body, "Label5", SWT.NONE);

                text_2 = toolkit.createText(body, null, SWT.NONE);
                text_2.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, 
false));

        }

        @Override
        public void doSave(IProgressMonitor monitor) {
                // Do the Save operation
        }

        @Override
        public void doSaveAs() {
                // Do the Save As operation
        }

        @Override
        public String getTitleToolTip() {
                return "TestEditor1";
        }

        @Override
        public void init(IEditorSite site, IEditorInput input) throws 
PartInitException {
                setSite(site);
                setInput(input);
                setPartName("TestEditor1");
        }

        @Override
        public boolean isDirty() {
                return false;
        }

        @Override
        public boolean isSaveAsAllowed() {
                return false;
        }

        @Override
        public void setFocus() {
                // Set the focus
        }

}


Christian Pelster
Consultant
 
Lufthansa Systems
Business Unit Logistic
Schützenwall 1
22844 Norderstedt
Germany
 
Tel:    +49(0)151 58920040
Fax:    +49(0)40 5070 7880

E-mail:         [email protected]
Internet:       www.LHSystems.com
        
Sitz der Gesellschaft/Corporate Headquarters:
Lufthansa Systems, Norderstedt
 
Registereintragung/Registration:
Amtsgericht Norderstedt HRB 3688 
 
Geschäftsführer/Managing Directors:
Bernd Appel



 
Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems AS GmbH, 
Norderstedt, Registereintragung / Registration: Amtsgericht Kiel 3688NO
Geschaeftsfuehrung / Management Board: Bernd Appel


_______________________________________________
nebula-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/nebula-dev

Reply via email to