001: package org.swingml.tablebrowser.ext;
002:
003: import org.swingml.model.*;
004:
005: /**
006: * @author dpitt
007: */
008: public class CellDataValue {
009:
010: private int col = 0;
011: private String columnName = null;
012: private boolean dirty;
013: private String displayValue = null;
014: private boolean editable = true;
015: public String key = null;
016: private int modelRow = 0;
017: private int row = 0;
018: public String value = null;
019:
020: public CellDataValue(String key, String text, String value) {
021:
022: setKey(key);
023: setDisplayValue(text);
024: if (value == null) {
025: setValue(text);
026: } else {
027: setValue(value);
028: }
029:
030: }
031:
032: public boolean equals(Object item) {
033: if (item instanceof ItemModel) {
034: return this .value.equals(((ItemModel) item).getValue());
035: } else {
036: return super .equals(item);
037: }
038:
039: }
040:
041: /**
042: * Returns the col.
043: * @return String
044: */
045: public int getCol() {
046: return col;
047: }
048:
049: /**
050: * Returns the columnName.
051: * @return String
052: */
053: public String getColumnName() {
054: return columnName;
055: }
056:
057: public String getDisplayValue() {
058: return displayValue;
059: }
060:
061: /**
062: * Returns the key.
063: * @return String
064: */
065: public String getKey() {
066: return key;
067: }
068:
069: public int getModelRow() {
070: return modelRow;
071: }
072:
073: /**
074: * Returns the row.
075: * @return String
076: */
077: public int getRow() {
078: return row;
079: }
080:
081: /**
082: * Returns the value.
083: * @return String
084: */
085: public String getValue() {
086: return value;
087: }
088:
089: public boolean isDirty() {
090: return this .dirty;
091: }
092:
093: /**
094: * @return Returns the editable.
095: */
096: public boolean isEditable() {
097: return editable;
098: }
099:
100: public boolean match(String pattern, String colName) {
101:
102: if (pattern.trim().equals("")) {
103: return true;
104: }
105:
106: if (colName != null
107: && !getColumnName().equalsIgnoreCase(colName)) {
108: return false;
109: }
110:
111: return getValue().equalsIgnoreCase(pattern);
112:
113: }
114:
115: public boolean matchPartial(Pattern pattern, String colName) {
116:
117: if (pattern == null) {
118: return false;
119: }
120:
121: if (pattern.isEmpty()) {
122: return true;
123: }
124:
125: if (colName != null
126: && !getColumnName().equalsIgnoreCase(colName)) {
127: return false;
128: }
129:
130: return pattern.matches(getValue());
131:
132: }
133:
134: public boolean matchPartial(String pattern, String colName) {
135:
136: if (pattern.trim().equals("")) {
137: return true;
138: }
139:
140: if (colName != null
141: && !getColumnName().equalsIgnoreCase(colName)) {
142: return false;
143: }
144:
145: return getValue().toLowerCase().indexOf(pattern.toLowerCase()) >= 0;
146:
147: }
148:
149: /**
150: * Sets the col.
151: * @param col The col to set
152: */
153: public void setCol(int col) {
154: this .col = col;
155: }
156:
157: /**
158: * Sets the columnName.
159: * @param columnName The columnName to set
160: */
161: public void setColumnName(String columnName) {
162: this .columnName = columnName;
163: }
164:
165: public void setDirty(boolean b) {
166: this .dirty = b;
167: }
168:
169: public void setDisplayValue(String v) {
170:
171: displayValue = v;
172:
173: }
174:
175: /**
176: * @param editable The editable to set.
177: */
178: public void setEditable(boolean editable) {
179: this .editable = editable;
180: }
181:
182: /**
183: * Sets the key.
184: * @param key The key to set
185: */
186: public void setKey(String key) {
187: this .key = key;
188: }
189:
190: public void setModelRow(int i) {
191: modelRow = i;
192: }
193:
194: /**
195: * Sets the row.
196: * @param row The row to set
197: */
198: public void setRow(int row) {
199: this .row = row;
200: }
201:
202: /**
203: * Sets the value.
204: * @param value The value to set
205: */
206: public void setValue(String value) {
207: this .value = value;
208: }
209:
210: public boolean startsWith(String pattern, String colName) {
211:
212: if (pattern.trim().equals("")) {
213: return true;
214: }
215:
216: if (colName != null
217: && !getColumnName().equalsIgnoreCase(colName)) {
218: return false;
219: }
220:
221: return getValue().startsWith(pattern);
222:
223: }
224:
225: public Boolean toBoolean() {
226: return Boolean.valueOf(getValue());
227: }
228:
229: public String toString() {
230: return getDisplayValue() == null ? getValue()
231: : getDisplayValue();
232: }
233: }
|