Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// This Source Code is in the Public Domain per: http://unlicense.org
package org.litesoft.GWT.client.widgets.nonpublic;

import org.litesoft.GWT.client.widgets.nonpublic.external.*;

public abstract class AbstractSplitterDragger extends AbstractDragger {
    private AbstractSizeableOneDimensionalPanel mSplitPanel;
    protected final int mIndex;

    public AbstractSplitterDragger( AbstractSizeableOneDimensionalPanel pSplitPanel, int pIndex ) {
        mSplitPanel = pSplitPanel;
        mIndex = pIndex;
    }

    @Override
    public void start( MouseEvent e ) {
        if ( mSplitPanel.getWidgetCount() > (mIndex + 1) ) {
            super.start( e );
        }
    }

    protected ISizeableWidget getSizeableAt( int pIndex ) {
        return (ISizeableWidget) mSplitPanel.getWidget( pIndex );
    }

    /**
     * @return false to prevent additional dragging
     */
    protected boolean adjustSizesBy( ISizeableDimensionHelper pPrevHelper, ISizeableDimensionHelper pNextHelper, int pDelta ) {
        return (pDelta == 0) || ((pDelta < 0) ? //
                                 shrinkExpandSizesBy( pPrevHelper, pNextHelper, -pDelta ) : //
                                 shrinkExpandSizesBy( pNextHelper, pPrevHelper, pDelta ));
    }

    private boolean shrinkExpandSizesBy( ISizeableDimensionHelper pShrinkingHelper, ISizeableDimensionHelper pExpandingHelper, int pDelta ) {
        int maxShrinkability = pShrinkingHelper.getDimensionMaxShrinkability();
        if ( maxShrinkability <= 1 ) {
            return false;
        }
        if ( pDelta >= maxShrinkability ) {
            pDelta = maxShrinkability - 1;
        }

        int shrinkingCurSize = pShrinkingHelper.getDimension();
        int expandingCurSize = pExpandingHelper.getDimension();
        //System.out.println( "Split Pair Panel:shrink (" + shrinkingCurSize + ") Expand (" +
        //                    expandingCurSize + ") SizesBy: " + pDelta );
        int shrinkingNewSize = shrinkingCurSize - pDelta;
        pShrinkingHelper.setDimension( shrinkingNewSize );
        if ( pShrinkingHelper.getDimension() != shrinkingNewSize ) {
            return false;
        }
        int expandingNewSize = expandingCurSize + pDelta;
        pExpandingHelper.setDimension( expandingNewSize );
        return true;
    }
}

Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/client/widgets/nonpublic/AbstractSplitterDragger.java

Diff revisions: vs.
Revision Author Commited Message
950 Diff Diff GeorgeS picture GeorgeS Thu 19 Jun, 2014 17:57:04 +0000

New Lines

948 Diff Diff GeorgeS picture GeorgeS Sat 07 Jun, 2014 23:42:39 +0000

Jusefuls Formatter Updated to New Code Format

947 Diff Diff GeorgeS picture GeorgeS Fri 06 Jun, 2014 23:36:56 +0000

Correct Spelling of package!

151 Diff Diff GeorgeS picture GeorgeS Thu 17 Mar, 2011 04:16:22 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

23 Diff Diff GeorgeS picture GeorgeS Wed 24 Feb, 2010 00:34:32 +0000
2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000