litesoft
@ 151
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 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.GWT.client.widgets.datatables; import com.google.gwt.gen2.table.client.SelectionGrid.*; import com.google.gwt.user.client.ui.*; public class RowSelectionPolicy { static enum Type { None, Single, Multi, CheckBox, Radio } public static final RowSelectionPolicy NONE = new RowSelectionPolicy(); public static final RowSelectionPolicy SINGLE = new RowSelectionPolicy( Type.Single, SelectionPolicy.ONE_ROW ); public static final RowSelectionPolicy MULTI = new RowSelectionPolicy( Type.Multi, SelectionPolicy.MULTI_ROW ); public static final Column CHECKBOX = new Column( Type.CheckBox, SelectionPolicy.CHECKBOX, null ); public static final Column RADIO = new Column( Type.Radio, SelectionPolicy.RADIO, null ); private final Type mType; private final SelectionPolicy mSelectionPolicy; private final boolean mSelectionEnabled; /** * Special constructor for selection=none */ private RowSelectionPolicy() { this( Type.None, null, false ); } private RowSelectionPolicy( Type pType, SelectionPolicy pSelectionPolicy ) { this( pType, pSelectionPolicy, true ); } private RowSelectionPolicy( Type pType, SelectionPolicy pSelectionPolicy, boolean pSelectionEnabled ) { mType = pType; mSelectionPolicy = pSelectionPolicy; mSelectionEnabled = pSelectionEnabled; } protected Type getType() { return mType; } boolean isSelectionEnabled() { return mSelectionEnabled; } SelectionPolicy getSelectionPolicy() { return mSelectionPolicy; } @Override public String toString() { return mType.name(); } public static class Column extends RowSelectionPolicy { private final Widget mColLabel; private Column( Type pType, SelectionPolicy pSelectionPolicy, Widget pColLabel ) { super( pType, pSelectionPolicy ); mColLabel = pColLabel; } Widget getColLabel() { return mColLabel; } public Column withLabel( String pColLabel ) { return withLabel( (pColLabel != null) ? new Label( pColLabel ) : null ); } public Column withLabel( Widget pColLabel ) { return new Column( getType(), getSelectionPolicy(), pColLabel ); } } } |