Revision 47436 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureAttributeDescriptor.java
DefaultFeatureAttributeDescriptor.java | ||
---|---|---|
97 | 97 |
import org.gvsig.tools.evaluator.EvaluatorData; |
98 | 98 |
import org.gvsig.tools.evaluator.EvaluatorException; |
99 | 99 |
import org.gvsig.tools.i18n.I18nManager; |
100 |
import org.gvsig.tools.observer.BaseNotification; |
|
101 |
import org.gvsig.tools.observer.Observable; |
|
102 |
import org.gvsig.tools.observer.ObservableHelper; |
|
103 |
import org.gvsig.tools.observer.Observer; |
|
100 | 104 |
import org.gvsig.tools.persistence.PersistenceManager; |
101 | 105 |
import org.gvsig.tools.persistence.Persistent; |
102 | 106 |
import org.gvsig.tools.persistence.PersistentState; |
... | ... | |
108 | 112 |
|
109 | 113 |
@SuppressWarnings("UseSpecificCatch") |
110 | 114 |
public class DefaultFeatureAttributeDescriptor implements |
111 |
FeatureAttributeDescriptor, Persistent, DynField_v2, DynField_LabelAttribute { |
|
115 |
FeatureAttributeDescriptor, Persistent, DynField_v2, DynField_LabelAttribute, Observable {
|
|
112 | 116 |
|
113 | 117 |
protected static final Logger LOGGER = LoggerFactory.getLogger(DefaultFeatureAttributeDescriptor.class); |
114 | 118 |
|
119 |
public static final String NOTIFICATION_FIXED_CHANGED = "fixed_changed"; |
|
115 | 120 |
protected boolean allowNull; |
116 | 121 |
protected DataType dataType; |
117 | 122 |
protected String dataProfile; |
... | ... | |
170 | 175 |
protected int displaySize; |
171 | 176 |
|
172 | 177 |
protected String defaultFormat; |
178 |
protected boolean fixed; |
|
179 |
protected ObservableHelper observableHelper; |
|
173 | 180 |
|
174 | 181 |
public DefaultFeatureAttributeDescriptor() { |
175 | 182 |
// Usada en la persistencia |
176 | 183 |
this.precision = DataType.PRECISION_NONE; |
177 | 184 |
this.scale = DataType.SCALE_NONE; |
178 | 185 |
this.roundMode = BigDecimal.ROUND_HALF_UP; |
186 |
this.fixed = false; |
|
187 |
this.observableHelper = new ObservableHelper(); |
|
188 |
|
|
179 | 189 |
} |
180 | 190 |
|
181 | 191 |
protected DefaultFeatureAttributeDescriptor(FeatureType type) { |
... | ... | |
308 | 318 |
this.typeRef = new WeakReference(type); |
309 | 319 |
// LOGGER.info(String.format("FeatureAttributeDescriptor[%08x] set FeatureType [%08x], ref [%08x].", this.hashCode(), type.hashCode(), typeRef.hashCode())); |
310 | 320 |
} |
321 |
this.setFixed(false); |
|
311 | 322 |
} |
312 | 323 |
|
313 | 324 |
@Override |
... | ... | |
362 | 373 |
|
363 | 374 |
public FeatureAttributeDescriptor setDataType(int type) { |
364 | 375 |
this.dataType = ToolsLocator.getDataTypesManager().get(type); |
376 |
this.setFixed(false); |
|
365 | 377 |
return this; |
366 | 378 |
} |
367 | 379 |
|
... | ... | |
460 | 472 |
|
461 | 473 |
protected FeatureAttributeDescriptor setIndex(int index) { |
462 | 474 |
this.index = index; |
475 |
this.setFixed(false); |
|
463 | 476 |
return this; |
464 | 477 |
} |
465 | 478 |
|
... | ... | |
805 | 818 |
avoidCachingAvailableValues = state.getBoolean("avoidCachingAvailableValues", false); |
806 | 819 |
availableValuesCache = null; |
807 | 820 |
defaultFormat = state.getString("defaultFormat"); |
821 |
this.setFixed(false); |
|
808 | 822 |
} |
809 | 823 |
|
810 | 824 |
@Override |
... | ... | |
988 | 1002 |
|
989 | 1003 |
public FeatureAttributeDescriptor setAvailableValuesFilter(Expression filter) { |
990 | 1004 |
this.availableValuesFilter = filter; |
1005 |
this.setFixed(false); |
|
991 | 1006 |
return this; |
992 | 1007 |
} |
993 | 1008 |
|
994 | 1009 |
public FeatureAttributeDescriptor setAvailableValuesFilter(String filter) { |
995 | 1010 |
this.availableValuesFilter = ExpressionUtils.createExpression(filter); |
1011 |
this.setFixed(false); |
|
996 | 1012 |
return this; |
997 | 1013 |
} |
998 | 1014 |
|
... | ... | |
1276 | 1292 |
return this; |
1277 | 1293 |
} |
1278 | 1294 |
this.availableValuesExpression = ExpressionUtils.createExpression(expression); |
1295 |
this.setFixed(false); |
|
1279 | 1296 |
return this; |
1280 | 1297 |
} |
1281 | 1298 |
|
1282 | 1299 |
@Override |
1283 | 1300 |
public FeatureAttributeDescriptor setAvailableValuesExpression(Expression expression) { |
1284 | 1301 |
this.availableValuesExpression = expression; |
1302 |
this.setFixed(false); |
|
1285 | 1303 |
return this; |
1286 | 1304 |
} |
1287 | 1305 |
|
... | ... | |
1379 | 1397 |
this.availableValues[i] = new DynObjectValueItem(value, element.getLabel()); |
1380 | 1398 |
} |
1381 | 1399 |
} |
1400 |
this.setFixed(false); |
|
1382 | 1401 |
return this; |
1383 | 1402 |
} |
1384 | 1403 |
|
1385 | 1404 |
@Override |
1386 | 1405 |
public DynField setDescription(String description) { |
1387 | 1406 |
this.description = description; |
1407 |
this.setFixed(false); |
|
1388 | 1408 |
return this; |
1389 | 1409 |
} |
1390 | 1410 |
|
... | ... | |
1437 | 1457 |
@Override |
1438 | 1458 |
public DynField setDefaultFieldValue(Object defaultValue) { |
1439 | 1459 |
this.defaultValue = defaultValue; |
1460 |
this.setFixed(false); |
|
1440 | 1461 |
return this; |
1441 | 1462 |
} |
1442 | 1463 |
|
... | ... | |
1470 | 1491 |
|
1471 | 1492 |
public FeatureAttributeDescriptor setDataProfileName(String dataProfile) { |
1472 | 1493 |
this.dataProfile = dataProfile; |
1494 |
this.setFixed(false); |
|
1473 | 1495 |
return this; |
1474 | 1496 |
} |
1475 | 1497 |
|
... | ... | |
1539 | 1561 |
new DynObjectValueItem[values.size()] |
1540 | 1562 |
); |
1541 | 1563 |
} |
1564 |
this.setFixed(false); |
|
1542 | 1565 |
return this; |
1543 | 1566 |
} |
1544 | 1567 |
|
... | ... | |
1572 | 1595 |
@Override |
1573 | 1596 |
public DynField setLabel(String label) { |
1574 | 1597 |
this.label = label; |
1598 |
this.setFixed(false); |
|
1575 | 1599 |
return this; |
1576 | 1600 |
} |
1577 | 1601 |
|
1578 | 1602 |
@Override |
1579 | 1603 |
public DynField setShortLabel(String shortLabel) { |
1580 | 1604 |
this.shortLabel = shortLabel; |
1605 |
this.setFixed(false); |
|
1581 | 1606 |
return this; |
1582 | 1607 |
} |
1583 | 1608 |
|
... | ... | |
1598 | 1623 |
@Override |
1599 | 1624 |
public DynField setGroup(String groupName) { |
1600 | 1625 |
this.groupName = groupName; |
1626 |
this.setFixed(false); |
|
1601 | 1627 |
return this; |
1602 | 1628 |
} |
1603 | 1629 |
|
1604 | 1630 |
@Override |
1605 | 1631 |
public DynField setOrder(int order) { |
1606 | 1632 |
this.order = order; |
1633 |
this.setFixed(false); |
|
1607 | 1634 |
return this; |
1608 | 1635 |
} |
1609 | 1636 |
|
1610 | 1637 |
@Override |
1611 | 1638 |
public DynField setHidden(boolean hidden) { |
1612 | 1639 |
this.hidden = hidden; |
1640 |
this.setFixed(false); |
|
1613 | 1641 |
return this; |
1614 | 1642 |
} |
1615 | 1643 |
|
... | ... | |
1621 | 1649 |
@Override |
1622 | 1650 |
public DynField setReadOnly(boolean readOnly) { |
1623 | 1651 |
this.readOnly = readOnly; |
1652 |
this.setFixed(false); |
|
1624 | 1653 |
return this; |
1625 | 1654 |
} |
1626 | 1655 |
|
... | ... | |
1663 | 1692 |
public void setFeatureAttributeGetter( |
1664 | 1693 |
FeatureAttributeGetter featureAttributeTransform) { |
1665 | 1694 |
this.featureAttributeGetter = featureAttributeTransform; |
1695 |
this.setFixed(false); |
|
1666 | 1696 |
} |
1667 | 1697 |
|
1668 | 1698 |
@Override |
... | ... | |
1672 | 1702 |
|
1673 | 1703 |
public FeatureAttributeDescriptor setFeatureAttributeEmulator(FeatureAttributeEmulator featureAttributeEmulator) { |
1674 | 1704 |
this.featureAttributeEmulator = featureAttributeEmulator; |
1705 |
this.setFixed(false); |
|
1675 | 1706 |
return this; |
1676 | 1707 |
} |
1677 | 1708 |
|
... | ... | |
1753 | 1784 |
@Override |
1754 | 1785 |
public DynField setRelationType(int relationType) { |
1755 | 1786 |
this.relationType = relationType; |
1787 |
this.setFixed(false); |
|
1756 | 1788 |
return this; |
1757 | 1789 |
} |
1758 | 1790 |
|
... | ... | |
1764 | 1796 |
@Override |
1765 | 1797 |
public DynField setAvailableValues(DynMethod availableValuesMethod) { |
1766 | 1798 |
this.availableValuesMethod = availableValuesMethod; |
1799 |
this.setFixed(false); |
|
1767 | 1800 |
return this; |
1768 | 1801 |
} |
1769 | 1802 |
|
... | ... | |
1792 | 1825 |
@Override |
1793 | 1826 |
public DynField setCalculateMethod(DynMethod method) { |
1794 | 1827 |
this.calculateMethod = method; |
1828 |
this.setFixed(false); |
|
1795 | 1829 |
return this; |
1796 | 1830 |
} |
1797 | 1831 |
|
... | ... | |
1881 | 1915 |
} else { |
1882 | 1916 |
this.evaluator = null; |
1883 | 1917 |
} |
1918 |
this.setFixed(false); |
|
1884 | 1919 |
} |
1885 | 1920 |
|
1886 | 1921 |
@Override |
... | ... | |
1909 | 1944 |
|
1910 | 1945 |
public FeatureAttributeDescriptor setInterval(Interval interval) { |
1911 | 1946 |
this.interval = interval; |
1947 |
this.setFixed(false); |
|
1912 | 1948 |
return this; |
1913 | 1949 |
} |
1914 | 1950 |
|
1915 | 1951 |
public void fixAll() { |
1952 |
if(this.fixed) { |
|
1953 |
return; |
|
1954 |
} |
|
1916 | 1955 |
if (!this.getDataType().supportSize()) { |
1917 | 1956 |
this.size = 0; |
1918 | 1957 |
} |
... | ... | |
1935 | 1974 |
// if( this.isPrimaryKey() ) { |
1936 | 1975 |
// this.allowNull = false; |
1937 | 1976 |
// } |
1977 |
this.fixed = true; |
|
1938 | 1978 |
|
1939 | 1979 |
} |
1940 | 1980 |
|
... | ... | |
2322 | 2362 |
|
2323 | 2363 |
public void setSRSForced(IProjection SRS) { |
2324 | 2364 |
this.SRS = SRS; |
2365 |
this.setFixed(false); |
|
2325 | 2366 |
} |
2326 | 2367 |
|
2327 | 2368 |
@Override |
... | ... | |
2440 | 2481 |
this.foreingKey = null; |
2441 | 2482 |
} |
2442 | 2483 |
this.defaultFormat = json.getString("defaultFormat",null); |
2484 |
this.setFixed(false); |
|
2443 | 2485 |
} |
2444 | 2486 |
|
2445 | 2487 |
private static class TheJsonSerializer implements JsonManager.JsonSerializer { |
... | ... | |
2504 | 2546 |
} |
2505 | 2547 |
} |
2506 | 2548 |
|
2549 |
public void setFixed(boolean fixed){ |
|
2550 |
this.fixed = fixed; |
|
2551 |
this.observableHelper.notifyObservers(this, new BaseNotification(NOTIFICATION_FIXED_CHANGED, 0)); |
|
2552 |
} |
|
2507 | 2553 |
|
2554 |
public boolean isFixed() { |
|
2555 |
return this.fixed; |
|
2556 |
} |
|
2557 |
|
|
2558 |
@Override |
|
2559 |
public void addObserver(Observer o) { |
|
2560 |
this.observableHelper.addObserver(o); |
|
2561 |
} |
|
2562 |
|
|
2563 |
@Override |
|
2564 |
public void deleteObserver(Observer o) { |
|
2565 |
this.observableHelper.deleteObserver(o); |
|
2566 |
} |
|
2567 |
|
|
2568 |
@Override |
|
2569 |
public void deleteObservers() { |
|
2570 |
this.observableHelper.deleteObservers(); |
|
2571 |
} |
|
2572 |
|
|
2508 | 2573 |
} |
Also available in: Unified diff