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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// This Source Code is in the Public Domain per: http://unlicense.org
package org.litesoft.GWT.client.widgets.nonpublic;

import org.litesoft.commonfoundation.base.*;

import com.google.gwt.user.client.*;
import com.google.gwt.user.client.ui.*;

public class TwoDimensionalChildHelper {
    private Element mTBody;
    private int mColsPerRow;
    private Cell[] mEmptyRow;
    private Row[] mRows = NO_ROWS;

    public TwoDimensionalChildHelper( Element pTBody, int pColsPerRow ) {
        Confirm.isNotNull( "TBODY", mTBody = pTBody );
        if ( (mColsPerRow = pColsPerRow) < 1 ) {
            throw new IllegalArgumentException( "Must have at least 1 column, but was given: " + pColsPerRow );
        }
    }

    public void add( Widget pWidget ) {
        if ( pWidget != null ) {
            Cell zCell = findEmptyCell();
        }
    }

    private Cell findEmptyCell() {
        return null; // todo...
    }

    private Cell getCell( int pRow, int pCol ) {
        return null; // todo...
    }

    private class Row {
        private int mIndex;
        private Element mTR;
        private Cell[] mCells;

        public Row( int pIndex ) {
            mIndex = pIndex;
            DOM.appendChild( mTBody, mTR = DOM.createTR() );
            mCells = new Cell[mColsPerRow];
            for ( int i = 0; i < mCells.length; i++ ) {
                mCells[i] = new Cell( this, i );
            }
        }

        public int getIndex() {
            return mIndex;
        }

        public Element getTR() {
            return mTR;
        }
    }

    private class Cell {
        private Row mRow;
        private int mIndex;
        private int mAdditionalRightCells = 0;
        private int mAdditionalDownCells = 0;
        private Cell mSpannedFrom = null;
        private Element mTD = null;
        private Widget mContent = null;

        public Cell( Row pRow, int pIndex ) {
            mRow = pRow;
            mIndex = pIndex;
            int zRowIndex = mRow.getIndex();
            if ( zRowIndex != 0 ) {
                Cell zPotentialSpanFromCell = getCell( zRowIndex - 1, mIndex );
                while ( zPotentialSpanFromCell.mSpannedFrom != null ) {
                    zPotentialSpanFromCell = zPotentialSpanFromCell.mSpannedFrom;
                }
                if ( zPotentialSpanFromCell.coverageIncludes( zRowIndex, pIndex ) ) {
                    mSpannedFrom = zPotentialSpanFromCell;
                }
            }
        }

        public Row getRow() {
            return mRow;
        }

        private boolean coverageIncludes( int pRow, int pCol ) {
            int zRowIndex = mRow.getIndex();
            return (zRowIndex <= pRow) && (pRow <= (zRowIndex + mAdditionalDownCells)) && (mIndex <= pCol) && (pCol <= (mIndex + mAdditionalRightCells));
        }
    }

    private static final Row[] NO_ROWS = new Row[0];
}

Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/client/widgets/nonpublic/TwoDimensionalChildHelper.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!

939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

804 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 12:48:51 +0000
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

2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000