txtValue.addKeyListener(this);
txtValue.addModifyListener(this);
    private void placeComponents()    {        FillLayout fl = new FillLayout();        fl.marginHeight = 0;        fl.marginWidth = 0;        setLayout(fl);        // THE LAYOUT OF THE OUTER COMPOSITE (THAT GROWS VERTICALLY BUT ANCHORS        // ITS CONTENT NORTH)        cmpContentOuter = new Composite(this, SWT.NONE);        GridLayout gl = new GridLayout();        gl.verticalSpacing = 0;        gl.horizontalSpacing = 0;        gl.marginHeight = 0;        gl.marginWidth = 0;        gl.numColumns = 1;        cmpContentOuter.setLayout(gl);        GridData gd = new GridData(GridData.FILL_HORIZONTAL);        cmpContentOuter.setLayoutData(gd);        // THE LAYOUT OF THE INNER COMPOSITE (ANCHORED NORTH AND ENCAPSULATES        // THE CANVAS + BUTTON)        cmpContentInner = new Composite(cmpContentOuter, SWT.NONE);        gl = new GridLayout();        gl.verticalSpacing = 0;        gl.horizontalSpacing = 0;        gl.marginHeight = 0;        gl.marginWidth = 0;        gl.numColumns = 2;        cmpContentInner.setLayout(gl);        gd = new GridData(GridData.FILL_HORIZONTAL);        cmpContentInner.setLayoutData(gd);        txtValue = new Text(cmpContentInner, SWT.BORDER);        gd = new GridData(GridData.FILL_HORIZONTAL);        gd.grabExcessHorizontalSpace = true;        gd.verticalAlignment = GridData.BEGINNING;        gd.heightHint = iSize;        txtValue.setLayoutData(gd);        txtValue.setText(String.valueOf(iCurrentValue));        txtValue.addKeyListener(this);        cmpBtnContainer = new Composite(cmpContentInner, SWT.NONE);        gd = new GridData();        gd.verticalAlignment = GridData.BEGINNING;        gd.horizontalAlignment = SWT.END;        cmpBtnContainer.setLayoutData(gd);        cmpBtnContainer.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_RED));        gl = new GridLayout();        gl.horizontalSpacing = 0;        gl.verticalSpacing = 0;        gl.marginHeight = 0;        gl.marginWidth = 0;        cmpBtnContainer.setLayout(gl);        final int iHalf = (iSize + 8) / 2;        btnIncrement = new Button(cmpBtnContainer, SWT.ARROW | SWT.UP);        gd = new GridData();        gd.grabExcessVerticalSpace = true;        gd.grabExcessHorizontalSpace = true;        gd.heightHint = iHalf;        gd.widthHint = iHalf;        btnIncrement.setLayoutData(gd);        btnIncrement.addSelectionListener(this);        btnDecrement = new Button(cmpBtnContainer, SWT.ARROW | SWT.DOWN);        gd = new GridData();        gd.grabExcessVerticalSpace = true;        gd.grabExcessHorizontalSpace = true;        gd.heightHint = iHalf;        gd.widthHint = iHalf;        btnDecrement.setLayoutData(gd);        btnDecrement.addSelectionListener(this);    }