Revision 31681 branches/v2_0_0_prep/libraries/libFMap_mapcontext/src/org/gvsig/fmap/mapcontext/ViewPort.java
ViewPort.java | ||
---|---|---|
65 | 65 |
import org.gvsig.fmap.mapcontext.events.listeners.ViewPortListener; |
66 | 66 |
import org.gvsig.tools.ToolsLocator; |
67 | 67 |
import org.gvsig.tools.dynobject.DynClass; |
68 |
import org.gvsig.tools.dynobject.DynField; |
|
68 | 69 |
import org.gvsig.tools.dynobject.DynObjectManager; |
69 | 70 |
import org.gvsig.tools.persistence.PersistenceException; |
70 | 71 |
import org.gvsig.tools.persistence.Persistent; |
... | ... | |
1648 | 1649 |
|
1649 | 1650 |
// XMLEntity xml = new XMLEntity(); |
1650 | 1651 |
// xml.putProperty("className", this.getClass().getName()); |
1651 |
|
|
1652 |
if (adjustedExtent != null) { |
|
1653 |
state.set("adjustedExtentX", adjustedExtent.getX()); |
|
1654 |
state.set("adjustedExtentY", adjustedExtent.getY()); |
|
1655 |
state.set("adjustedExtentW", adjustedExtent.getWidth()); |
|
1656 |
state.set("adjustedExtentH", adjustedExtent.getHeight()); |
|
1657 |
} else { |
|
1658 |
throw new PersistenceException("Adjusted extent is null"); |
|
1659 |
} |
|
1660 |
|
|
1652 |
state.set("adjustedExtent", adjustedExtent); |
|
1653 |
|
|
1661 | 1654 |
if (backColor != null) { |
1662 | 1655 |
state.set("backColor", color2String(backColor)); |
1663 | 1656 |
} else { |
... | ... | |
1665 | 1658 |
} |
1666 | 1659 |
|
1667 | 1660 |
if (cliprect != null) { |
1668 |
state.set("clipX", cliprect.getX()); |
|
1669 |
state.set("clipY", cliprect.getY()); |
|
1670 |
state.set("clipW", cliprect.getWidth()); |
|
1671 |
state.set("clipH", cliprect.getHeight()); |
|
1672 |
} else { |
|
1673 |
throw new PersistenceException("Clip area is null"); |
|
1661 |
state.set("clip", cliprect); |
|
1674 | 1662 |
} |
1675 |
|
|
1663 |
|
|
1676 | 1664 |
state.set("dist1pixel", dist1pixel); |
1677 | 1665 |
state.set("dist3pixel", dist3pixel); |
1678 | 1666 |
state.set("distanceUnits", distanceUnits); |
1679 |
|
|
1680 |
if (extent != null) { |
|
1681 |
state.set("extentX", extent.getX()); |
|
1682 |
state.set("extentY", extent.getY()); |
|
1683 |
state.set("extentW", extent.getWidth()); |
|
1684 |
state.set("extentH", extent.getHeight()); |
|
1685 |
} else { |
|
1686 |
throw new PersistenceException("Extent is null"); |
|
1667 |
if (distanceArea != distanceUnits) { |
|
1668 |
state.set("distanceArea", distanceArea); |
|
1687 | 1669 |
} |
1688 |
|
|
1670 |
|
|
1671 |
state.set("extent", extent); |
|
1689 | 1672 |
state.set("extents", extents); |
1690 | 1673 |
|
1691 | 1674 |
state.set("mapUnits", mapUnits); |
1692 | 1675 |
state.set("offsetX", offset.getX()); |
1693 | 1676 |
state.set("offsetY", offset.getY()); |
1694 | 1677 |
|
1695 |
if (proj != null) { |
|
1696 |
state.set("proj", proj); |
|
1697 |
} |
|
1678 |
state.set("proj", proj); |
|
1698 | 1679 |
|
1699 | 1680 |
state.set("scale", scale); |
1700 | 1681 |
} |
... | ... | |
1708 | 1689 |
"ViewPort_Persistent", |
1709 | 1690 |
"ViewPort Persistent definition"); |
1710 | 1691 |
|
1711 |
dynClass.addDynFieldSingle("adjustedExtentX", DataTypes.DOUBLE, null, true, true); |
|
1712 |
dynClass.addDynFieldSingle("adjustedExtentY", DataTypes.DOUBLE, null, true, true); |
|
1713 |
dynClass.addDynFieldSingle("adjustedExtentW", DataTypes.DOUBLE, null, true, true); |
|
1714 |
dynClass.addDynFieldSingle("adjustedExtentH", DataTypes.DOUBLE, null, true, true); |
|
1692 |
DynField field; |
|
1715 | 1693 |
|
1716 |
dynClass.addDynFieldSingle("backColor", DataTypes.STRING, null, true, true); |
|
1717 |
|
|
1718 |
dynClass.addDynFieldSingle("clipX", DataTypes.DOUBLE, null, true, true); |
|
1719 |
dynClass.addDynFieldSingle("clipY", DataTypes.DOUBLE, null, true, true); |
|
1720 |
dynClass.addDynFieldSingle("clipW", DataTypes.DOUBLE, null, true, true); |
|
1721 |
dynClass.addDynFieldSingle("clipH", DataTypes.DOUBLE, null, true, true); |
|
1722 |
|
|
1723 |
dynClass.addDynFieldSingle("dist1pixel", DataTypes.DOUBLE, null, true, true); |
|
1724 |
dynClass.addDynFieldSingle("dist3pixel", DataTypes.DOUBLE, null, true, true); |
|
1725 |
dynClass.addDynFieldSingle("distanceUnits", DataTypes.INT, null, true, true); |
|
1726 |
|
|
1727 |
dynClass.addDynFieldSingle("extentX", DataTypes.DOUBLE, null, true, true); |
|
1728 |
dynClass.addDynFieldSingle("extentY", DataTypes.DOUBLE, null, true, true); |
|
1729 |
dynClass.addDynFieldSingle("extentW", DataTypes.DOUBLE, null, true, true); |
|
1730 |
dynClass.addDynFieldSingle("extentH", DataTypes.DOUBLE, null, true, true); |
|
1731 |
dynClass.addDynFieldSingle("extents", DataTypes.PERSISTENT, null, true, true); |
|
1732 |
|
|
1733 |
dynClass.addDynFieldSingle("mapUnits", DataTypes.INT, null, true, true); |
|
1734 |
dynClass.addDynFieldSingle("offsetX", DataTypes.DOUBLE, null, true, true); |
|
1735 |
dynClass.addDynFieldSingle("offsetY", DataTypes.DOUBLE, null, true, true); |
|
1736 |
|
|
1737 |
dynClass.addDynFieldSingle("proj", DataTypes.OBJECT, null, true, true); |
|
1738 |
dynClass.addDynFieldSingle("scale", DataTypes.DOUBLE, null, true, true); |
|
1694 |
field = dynClass.addDynField("adjustedExtent"); |
|
1695 |
field.setType(DataTypes.OBJECT); |
|
1696 |
field.setMandatory(true); |
|
1697 |
|
|
1698 |
field = dynClass.addDynField("backColor"); |
|
1699 |
field.setType(DataTypes.STRING); |
|
1700 |
field.setMandatory(true); |
|
1701 |
|
|
1702 |
field = dynClass.addDynField("clip"); |
|
1703 |
field.setType(DataTypes.OBJECT); |
|
1704 |
field.setMandatory(false); |
|
1705 |
|
|
1706 |
field = dynClass.addDynField("dist1pixel"); |
|
1707 |
field.setType(DataTypes.DOUBLE); |
|
1708 |
field.setMandatory(true); |
|
1709 |
|
|
1710 |
field = dynClass.addDynField("dist3pixel"); |
|
1711 |
field.setType(DataTypes.DOUBLE); |
|
1712 |
field.setMandatory(true); |
|
1713 |
|
|
1714 |
field = dynClass.addDynField("distanceUnits"); |
|
1715 |
field.setType(DataTypes.INT); |
|
1716 |
field.setMandatory(true); |
|
1717 |
|
|
1718 |
field = dynClass.addDynField("distanceArea"); |
|
1719 |
field.setType(DataTypes.INT); |
|
1720 |
field.setMandatory(false); |
|
1721 |
|
|
1722 |
field = dynClass.addDynField("extent"); |
|
1723 |
field.setType(DataTypes.OBJECT); |
|
1724 |
field.setMandatory(true); |
|
1725 |
|
|
1726 |
field = dynClass.addDynField("extents"); |
|
1727 |
field.setType(DataTypes.LIST); |
|
1728 |
field.setMandatory(true); |
|
1729 |
|
|
1730 |
field = dynClass.addDynField("mapUnits"); |
|
1731 |
field.setType(DataTypes.INT); |
|
1732 |
field.setMandatory(true); |
|
1733 |
|
|
1734 |
field = dynClass.addDynField("offsetX"); |
|
1735 |
field.setType(DataTypes.DOUBLE); |
|
1736 |
field.setMandatory(true); |
|
1737 |
|
|
1738 |
field = dynClass.addDynField("offsetY"); |
|
1739 |
field.setType(DataTypes.DOUBLE); |
|
1740 |
field.setMandatory(true); |
|
1741 |
|
|
1742 |
field = dynClass.addDynField("proj"); |
|
1743 |
field.setType(DataTypes.OBJECT); |
|
1744 |
field.setMandatory(true); |
|
1745 |
|
|
1746 |
field = dynClass.addDynField("scale"); |
|
1747 |
field.setType(DataTypes.DOUBLE); |
|
1748 |
field.setMandatory(true); |
|
1749 |
|
|
1739 | 1750 |
dynMan.add(dynClass); |
1740 | 1751 |
|
1741 | 1752 |
ToolsLocator.getPersistenceManager().registerClass(ViewPort.class, dynClass); |
... | ... | |
1745 | 1756 |
|
1746 | 1757 |
// ViewPort vp = new ViewPort(null); |
1747 | 1758 |
|
1748 |
double x = 0, y = 0, w = 0, h = 0; |
|
1759 |
adjustedExtent = (Rectangle2D) state.get("adjustedExtent"); |
|
1760 |
|
|
1761 |
String str = state.getString("backColor"); |
|
1762 |
setBackColor(string2Color(str)); |
|
1749 | 1763 |
|
1750 |
boolean exist = false; |
|
1751 | 1764 |
try { |
1752 |
x = state.getDouble("adjustedExtentX"); |
|
1753 |
exist = true; |
|
1754 |
} catch (PersistenceValueNotFoundException pvnf) { } |
|
1755 |
|
|
1756 |
if (exist) { |
|
1757 |
adjustedExtent = new Rectangle2D.Double( |
|
1758 |
x, |
|
1759 |
state.getDouble("adjustedExtentY"), |
|
1760 |
state.getDouble("adjustedExtentW"), |
|
1761 |
state.getDouble("adjustedExtentH")); |
|
1765 |
cliprect = (Rectangle2D) state.get("clip"); |
|
1766 |
} catch (PersistenceException pex) { |
|
1767 |
// not mandatory |
|
1768 |
cliprect = null; |
|
1762 | 1769 |
} |
1763 |
|
|
1764 |
String str; |
|
1765 | 1770 |
|
1766 |
try { |
|
1767 |
str = state.getString("backColor"); |
|
1768 |
setBackColor(string2Color(str)); |
|
1769 |
|
|
1770 |
} catch (PersistenceValueNotFoundException pvnf) { |
|
1771 |
setBackColor(Color.white); |
|
1772 |
} |
|
1773 |
|
|
1774 |
exist = false; |
|
1775 |
try { |
|
1776 |
x = state.getDouble("clipX"); |
|
1777 |
exist = true; |
|
1778 |
} catch (PersistenceValueNotFoundException pvnf) { } |
|
1779 |
|
|
1780 |
if (exist) { |
|
1781 |
cliprect = new Rectangle2D.Double( |
|
1782 |
x, |
|
1783 |
state.getDouble("clipY"), |
|
1784 |
state.getDouble("clipW"), |
|
1785 |
state.getDouble("clipH")); |
|
1786 |
} |
|
1787 |
|
|
1788 | 1771 |
setDist1pixel(state.getDouble("dist1pixel")); |
1789 | 1772 |
setDist3pixel(state.getDouble("dist3pixel")); |
1790 | 1773 |
setDistanceUnits(state.getInt("distanceUnits")); |
1791 |
|
|
1792 |
exist = false; |
|
1793 |
int d = 0; |
|
1774 |
|
|
1794 | 1775 |
try { |
1795 |
d = state.getInt("distanceArea"); |
|
1796 |
exist = true; |
|
1797 |
} catch (PersistenceValueNotFoundException pvnf) { } |
|
1776 |
setDistanceArea(state.getInt("distanceArea")); |
|
1777 |
} catch (Exception pvnf) { |
|
1778 |
// not mandatory , use dist units |
|
1779 |
setDistanceArea(getDistanceUnits()); |
|
1780 |
} |
|
1798 | 1781 |
|
1799 |
if (exist) { |
|
1800 |
setDistanceArea(d); |
|
1801 |
} else { |
|
1802 |
setDistanceArea(state.getInt("distanceUnits")); |
|
1803 |
} |
|
1804 |
|
|
1805 | 1782 |
extents = (ExtentHistory) state.get("extents"); |
1806 | 1783 |
|
1807 |
exist = false; |
|
1808 |
|
|
1809 |
try { |
|
1810 |
x = state.getDouble("extentX"); |
|
1811 |
exist = true; |
|
1812 |
} catch (PersistenceValueNotFoundException exc) { } |
|
1813 |
|
|
1814 |
if (exist) { |
|
1815 |
y = state.getDouble("extentY"); |
|
1816 |
w = state.getDouble("extentW"); |
|
1817 |
h = state.getDouble("extentH"); |
|
1818 |
try { |
|
1819 |
setEnvelope(geomManager.createEnvelope(x, y, x+w, y+h, SUBTYPES.GEOM2D)); |
|
1820 |
} catch (CreateEnvelopeException e) { |
|
1821 |
e.printStackTrace(); |
|
1822 |
logger.error("Error setting the extent", e); |
|
1823 |
} |
|
1824 |
} |
|
1784 |
extent = (Rectangle2D) state.get("extent"); |
|
1825 | 1785 |
|
1826 | 1786 |
setMapUnits(state.getInt("mapUnits")); |
1827 |
x = state.getDouble("offsetX"); |
|
1828 |
y = state.getDouble("offsetY"); |
|
1787 |
|
|
1788 |
double x = state.getDouble("offsetX"); |
|
1789 |
double y = state.getDouble("offsetY"); |
|
1829 | 1790 |
setOffset(new Point2D.Double(x, y)); |
1830 | 1791 |
|
1831 | 1792 |
proj = (IProjection) state.get("proj"); |
Also available in: Unified diff